/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ (window.ml_bundle_jsonpfunction=window.ml_bundle_jsonpfunction||[]).push([[14],{350:function(t,e){var n,i;n=this,i=function(t){"use strict";function e(t,e,n){return t.fields=e||[],t.fname=n,t}function n(t){return null==t?null:t.fname}function i(t){return null==t?null:t.fields}function r(t){return 1===t.length?o(t[0]):a(t)}const o=t=>function(e){return e[t]},a=t=>{const e=t.length;return function(n){for(let i=0;ii&&c(),l=i=r+1):"]"===o&&(l||s("Access path missing open bracket: "+t),l>0&&c(),l=0,i=r+1):r>i?c():i=r+1}return l&&s("Access path missing closing bracket: "+t),a&&s("Access path missing closing quote: "+t),r>i&&(r++,c()),e}function u(t,n,i){const o=l(t);return t=1===o.length?o[0]:t,e((i&&i.get||r)(o),[t],n||t)}const c=u("id"),f=e((t=>t),[],"identity"),d=e((()=>0),[],"zero"),h=e((()=>1),[],"one"),p=e((()=>!0),[],"true"),m=e((()=>!1),[],"false");function g(t,e,n){const i=[e].concat([].slice.call(n));console[t].apply(console,i)}const y=0,v=1,x=2,b=3,_=4;function w(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g,i=t||y;return{level(t){return arguments.length?(i=+t,this):i},error(){return i>=v&&n(e||"error","ERROR",arguments),this},warn(){return i>=x&&n(e||"warn","WARN",arguments),this},info(){return i>=b&&n(e||"log","INFO",arguments),this},debug(){return i>=_&&n(e||"log","DEBUG",arguments),this}}}var k=Array.isArray;function A(t){return t===Object(t)}const D=t=>"__proto__"!==t;function S(){for(var t=arguments.length,e=new Array(t),n=0;n{for(const n in e)if("signals"===n)t.signals=E(t.signals,e.signals);else{const i="legend"===n?{layout:1}:"style"===n||null;M(t,n,e[n],i)}return t}),{})}function M(t,e,n,i){if(!D(e))return;let r,o;if(A(n)&&!k(n))for(r in o=A(t[e])?t[e]:t[e]={},n)i&&(!0===i||i[r])?M(o,r,n[r]):D(r)&&(o[r]=n[r]);else t[e]=n}function E(t,e){if(null==t)return e;const n={},i=[];function r(t){n[t.name]||(n[t.name]=1,i.push(t))}return e.forEach(r),t.forEach(r),i}function C(t){return t[t.length-1]}function F(t){return null==t||""===t?null:+t}const N=t=>e=>t*Math.exp(e),O=t=>e=>Math.log(t*e),z=t=>e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),T=t=>e=>Math.sign(e)*Math.expm1(Math.abs(e))*t,P=t=>e=>e<0?-Math.pow(-e,t):Math.pow(e,t);function R(t,e,n,i){const r=n(t[0]),o=n(C(t)),a=(o-r)*e;return[i(r-a),i(o-a)]}function B(t,e){return R(t,e,F,f)}function j(t,e){var n=Math.sign(t[0]);return R(t,e,O(n),N(n))}function $(t,e,n){return R(t,e,P(n),P(1/n))}function L(t,e,n){return R(t,e,z(n),T(n))}function U(t,e,n,i,r){const o=i(t[0]),a=i(C(t)),s=null!=e?i(e):(o+a)/2;return[r(s+(o-s)*n),r(s+(a-s)*n)]}function q(t,e,n){return U(t,e,n,F,f)}function I(t,e,n){const i=Math.sign(t[0]);return U(t,e,n,O(i),N(i))}function W(t,e,n,i){return U(t,e,n,P(i),P(1/i))}function H(t,e,n,i){return U(t,e,n,z(i),T(i))}function V(t){return 1+~~(new Date(t).getMonth()/3)}function G(t){return 1+~~(new Date(t).getUTCMonth()/3)}function Y(t){return null!=t?k(t)?t:[t]:[]}function X(t,e,n){let i,r=t[0],o=t[1];return o=n-e?[e,n]:[r=Math.min(Math.max(r,e),n-i),r+i]}function J(t){return"function"==typeof t}const Q="descending";function Z(t,n,r){r=r||{},n=Y(n)||[];const o=[],a=[],s={},l=r.comparator||tt;return Y(t).forEach(((t,e)=>{null!=t&&(o.push(n[e]===Q?-1:1),a.push(t=J(t)?t:u(t,null,r)),(i(t)||[]).forEach((t=>s[t]=1)))})),0===a.length?null:e(l(a,o),Object.keys(s))}const K=(t,e)=>(te||null==e)&&null!=t?1:(e=e instanceof Date?+e:e,(t=t instanceof Date?+t:t)!==t&&e==e?-1:e!=e&&t==t?1:0),tt=(t,e)=>1===t.length?et(t[0],e[0]):nt(t,e,t.length),et=(t,e)=>function(n,i){return K(t(n),t(i))*e},nt=(t,e,n)=>(e.push(0),function(i,r){let o,a=0,s=-1;for(;0===a&&++st}function rt(t,e){let n;return i=>{n&&clearTimeout(n),n=setTimeout((()=>(e(i),n=null)),t)}}function ot(t){for(let e,n,i=1,r=arguments.length;io&&(o=i))}else{for(i=e(t[a]);ao&&(o=i))}return[r,o]}function st(t,e){const n=t.length;let i,r,o,a,s,l=-1;if(null==e){for(;++l=r){i=o=r;break}if(l===n)return[-1,-1];for(a=s=l;++lr&&(i=r,a=l),o=r){i=o=r;break}if(l===n)return[-1,-1];for(a=s=l;++lr&&(i=r,a=l),oi(t)?n[t]:void 0,set(t,e){return i(t)||(++r.size,n[t]===ct&&--r.empty),n[t]=e,this},delete(t){return i(t)&&(--r.size,++r.empty,n[t]=ct),this},clear(){r.size=r.empty=0,r.object=n={}},test(t){return arguments.length?(e=t,r):e},clean(){const t={};let i=0;for(const r in n){const o=n[r];o===ct||e&&e(o)||(t[r]=o,++i)}r.size=i,r.empty=0,r.object=n=t}};return t&&Object.keys(t).forEach((e=>{r.set(e,t[e])})),r}function dt(t,e,n,i,r,o){if(!n&&0!==n)return o;const a=+n;let s,l=t[0],u=C(t);ua&&(r=o,o=a,a=r),i=void 0===i||i,((n=void 0===n||n)?o<=t:ot.replace(/\\(.)/g,"$1"))):Y(t));const o=t&&t.length,a=i&&i.get||r,s=t=>a(n?[t]:l(t));let u;if(o)if(1===o){const e=s(t[0]);u=function(t){return""+e(t)}}else{const e=t.map(s);u=function(t){let n=""+e[0](t),i=0;for(;++i{e={},n={},i=0},o=(r,o)=>(++i>t&&(n=e,e={},i=1),e[r]=o);return r(),{clear:r,has:t=>ut(e,t)||ut(n,t),get:t=>ut(e,t)?e[t]:ut(n,t)?o(t,n[t]):void 0,set:(t,n)=>ut(e,t)?e[t]=n:o(t,n)}}function Dt(t,e,n,i){const r=e.length,o=n.length;if(!o)return e;if(!r)return n;const a=i||new e.constructor(r+o);let s=0,l=0,u=0;for(;s0?n[l++]:e[s++];for(;s=0;)n+=t;return n}function Mt(t,e,n,i){const r=n||" ",o=t+"",a=e-o.length;return a<=0?o:"left"===i?St(r,a)+o:"center"===i?St(r,~~(a/2))+o+St(r,Math.ceil(a/2)):o+St(r,a)}function Et(t){return t&&C(t)-t[0]||0}function Ct(t){return k(t)?"["+t.map(Ct)+"]":A(t)||bt(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function Ft(t){return null==t||""===t?null:!(!t||"false"===t||"0"===t||!t)}const Nt=t=>vt(t)||gt(t)?t:Date.parse(t);function Ot(t,e){return e=e||Nt,null==t||""===t?null:e(t)}function zt(t){return null==t||""===t?null:t+""}function Tt(t){const e={},n=t.length;for(let i=0;i=o?l=!0:(i=t.charCodeAt(a++))===Lt?u=!0:i===Ut&&(u=!0,t.charCodeAt(a)===Lt&&++a),t.slice(r+1,e-1).replace(/""/g,'"')}for(;a9999?"+"+Wt(e,6):Wt(e,4))+"-"+Wt(t.getUTCMonth()+1,2)+"-"+Wt(t.getUTCDate(),2)+(o?"T"+Wt(n,2)+":"+Wt(i,2)+":"+Wt(r,2)+"."+Wt(o,3)+"Z":r?"T"+Wt(n,2)+":"+Wt(i,2)+":"+Wt(r,2)+"Z":i||n?"T"+Wt(n,2)+":"+Wt(i,2)+"Z":"")}(t):e.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}return{parse:function(t,e){var n,r,o=i(t,(function(t,i){if(n)return n(t,i-1);r=t,n=e?function(t,e){var n=qt(t);return function(i,r){return e(n(i),r,t)}}(t,e):qt(t)}));return o.columns=r||[],o},parseRows:i,format:function(e,n){return null==n&&(n=It(e)),[n.map(a).join(t)].concat(r(e,n)).join("\n")},formatBody:function(t,e){return null==e&&(e=It(t)),r(t,e).join("\n")},formatRows:function(t){return t.map(o).join("\n")},formatRow:o,formatValue:a}}function Vt(t){return t}function Gt(t,e){return"string"==typeof e&&(e=t.objects[e]),"GeometryCollection"===e.type?{type:"FeatureCollection",features:e.geometries.map((function(e){return Yt(t,e)}))}:Yt(t,e)}function Yt(t,e){var n=e.id,i=e.bbox,r=null==e.properties?{}:e.properties,o=Xt(t,e);return null==n&&null==i?{type:"Feature",properties:r,geometry:o}:null==i?{type:"Feature",id:n,properties:r,geometry:o}:{type:"Feature",id:n,bbox:i,properties:r,geometry:o}}function Xt(t,e){var n=function(t){if(null==t)return Vt;var e,n,i=t.scale[0],r=t.scale[1],o=t.translate[0],a=t.translate[1];return function(t,s){s||(e=n=0);var l=2,u=t.length,c=new Array(u);for(c[0]=(e+=t[0])*i+o,c[1]=(n+=t[1])*r+a;l1)i=function(t,e,n){var i,r=[],o=[];function a(t){var e=t<0?~t:t;(o[e]||(o[e]=[])).push({i:t,g:i})}function s(t){t.forEach(a)}function l(t){t.forEach(s)}return function t(e){switch(i=e,e.type){case"GeometryCollection":e.geometries.forEach(t);break;case"LineString":s(e.arcs);break;case"MultiLineString":case"Polygon":l(e.arcs);break;case"MultiPolygon":!function(t){t.forEach(l)}(e.arcs)}}(e),o.forEach(null==n?function(t){r.push(t[0].i)}:function(t){n(t[0].g,t[t.length-1].g)&&r.push(t[0].i)}),r}(0,e,n);else for(r=0,i=new Array(o=t.arcs.length);re?1:t>=e?0:NaN}function te(t,e){return null==t||null==e?NaN:et?1:e>=t?0:NaN}function ee(t){let e,n,i;function r(t,i){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length;if(r>>1;n(t[e],i)<0?r=e+1:o=e}while(rKt(t(e),n),i=(e,n)=>t(e)-n):(e=t===Kt||t===te?t:ne,n=t,i=t),{left:r,center:function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const o=r(t,e,n,(arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length)-1);return o>n&&i(t[o-1],e)>-i(t[o],e)?o-1:o},right:function(t,i){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length;if(r>>1;n(t[e],i)<=0?r=e+1:o=e}while(r0){for(o=t[--r];r>0&&(e=o,n=t[--r],o=e+n,i=n-(o-e),!i););r>0&&(i<0&&t[r-1]<0||i>0&&t[r-1]>0)&&(n=2*i,e=o+n,n==e-o&&(o=e))}return o}}class InternMap extends Map{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:fe;if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const[e,n]of t)this.set(e,n)}get(t){return super.get(le(this,t))}has(t){return super.has(le(this,t))}set(t,e){return super.set(ue(this,t),e)}delete(t){return super.delete(ce(this,t))}}class InternSet extends Set{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:fe;if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const e of t)this.add(e)}has(t){return super.has(le(this,t))}add(t){return super.add(ue(this,t))}delete(t){return super.delete(ce(this,t))}}function le(t,e){let{_intern:n,_key:i}=t;const r=i(e);return n.has(r)?n.get(r):e}function ue(t,e){let{_intern:n,_key:i}=t;const r=i(e);return n.has(r)?n.get(r):(n.set(r,e),e)}function ce(t,e){let{_intern:n,_key:i}=t;const r=i(e);return n.has(r)&&(e=n.get(r),n.delete(r)),e}function fe(t){return null!==t&&"object"==typeof t?t.valueOf():t}function de(t,e){return(null==t||!(t>=t))-(null==e||!(e>=e))||(te?1:0)}const he=Math.sqrt(50),pe=Math.sqrt(10),me=Math.sqrt(2);function ge(t,e,n){const i=(e-t)/Math.max(0,n),r=Math.floor(Math.log10(i)),o=i/Math.pow(10,r),a=o>=he?10:o>=pe?5:o>=me?2:1;let s,l,u;return r<0?(u=Math.pow(10,-r)/a,s=Math.round(t*u),l=Math.round(e*u),s/ue&&--l,u=-u):(u=Math.pow(10,r)*a,s=Math.round(t/u),l=Math.round(e/u),s*ue&&--l),l0))return[];if((t=+t)==(e=+e))return[t];const i=e=r))return[];const s=o-r+1,l=new Array(s);if(i)if(a<0)for(let t=0;t=e)&&(n=e);else{let i=-1;for(let r of t)null!=(r=e(r,++i,t))&&(n=r)&&(n=r)}return n}function _e(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n>e||void 0===n&&e>=e)&&(n=e);else{let i=-1;for(let r of t)null!=(r=e(r,++i,t))&&(n>r||void 0===n&&r>=r)&&(n=r)}return n}function we(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1/0,r=arguments.length>4?arguments[4]:void 0;if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),i=Math.floor(Math.min(t.length-1,i)),!(n<=e&&e<=i))return t;for(r=void 0===r?de:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Kt;if(t===Kt)return de;if("function"!=typeof t)throw new TypeError("compare is not a function");return(e,n)=>{const i=t(e,n);return i||0===i?i:(0===t(n,n))-(0===t(e,e))}}(r);i>n;){if(i-n>600){const o=i-n+1,a=e-n+1,s=Math.log(o),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(o-l)/o)*(a-o/2<0?-1:1);we(t,e,Math.max(n,Math.floor(e-a*l/o+u)),Math.min(i,Math.floor(e+(o-a)*l/o+u)),r)}const o=t[e];let a=n,s=i;for(ke(t,n,e),r(t[i],o)>0&&ke(t,n,i);a0;)--s}0===r(t[n],o)?ke(t,n,s):(++s,ke(t,s,i)),s<=e&&(n=s+1),e<=s&&(i=s-1)}return t}function ke(t,e,n){const i=t[e];t[e]=t[n],t[n]=i}function Ae(t,e,n){if(t=Float64Array.from(function*(t,e){if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(yield e);else{let n=-1;for(let i of t)null!=(i=e(i,++n,t))&&(i=+i)>=i&&(yield i)}}(t,n)),(i=t.length)&&!isNaN(e=+e)){if(e<=0||i<2)return _e(t);if(e>=1)return be(t);var i,r=(i-1)*e,o=Math.floor(r),a=be(we(t,o).subarray(0,o+1));return a+(_e(t.subarray(o+1))-a)*(r-o)}}function De(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ie;if((i=t.length)&&!isNaN(e=+e)){if(e<=0||i<2)return+n(t[0],0,t);if(e>=1)return+n(t[i-1],i-1,t);var i,r=(i-1)*e,o=Math.floor(r),a=+n(t[o],o,t);return a+(+n(t[o+1],o+1,t)-a)*(r-o)}}function Se(t,e){return Ae(t,.5,e)}function Me(t){return Array.from(function*(t){for(const e of t)yield*e}(t))}function Ee(t,e,n){t=+t,e=+e,n=(r=arguments.length)<2?(e=t,t=0,1):r<3?1:+n;for(var i=-1,r=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(r);++i1?i[0]+i.slice(2):i,+t.slice(n+1)]}function Oe(t){return(t=Ne(Math.abs(t)))?t[1]:NaN}var ze,Te=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Pe(t){if(!(e=Te.exec(t)))throw new Error("invalid format: "+t);var e;return new Re({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function Re(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Be(t,e){var n=Ne(t,e);if(!n)return t+"";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")}Pe.prototype=Re.prototype,Re.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 je={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Be(100*t,e),r:Be,s:function(t,e){var n=Ne(t,e);if(!n)return t+"";var i=n[0],r=n[1],o=r-(ze=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")+Ne(t,Math.max(0,e+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function $e(t){return t}var Le,Ue,qe,Ie=Array.prototype.map,We=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function He(t){var e,n,i=void 0===t.grouping||void 0===t.thousands?$e:(e=Ie.call(t.grouping,Number),n=t.thousands+"",function(t,i){for(var r=t.length,o=[],a=0,s=e[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(t.substring(r-=s,r+s)),!((l+=s+1)>i));)s=e[a=(a+1)%e.length];return o.reverse().join(n)}),r=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",s=void 0===t.numerals?$e:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(Ie.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",u=void 0===t.minus?"−":t.minus+"",c=void 0===t.nan?"NaN":t.nan+"";function f(t){var e=(t=Pe(t)).fill,n=t.align,f=t.sign,d=t.symbol,h=t.zero,p=t.width,m=t.comma,g=t.precision,y=t.trim,v=t.type;"n"===v?(m=!0,v="g"):je[v]||(void 0===g&&(g=12),y=!0,v="g"),(h||"0"===e&&"="===n)&&(h=!0,e="0",n="=");var x="$"===d?r:"#"===d&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",b="$"===d?o:/[%p]/.test(v)?l:"",_=je[v],w=/[defgprs%]/.test(v);function k(t){var r,o,l,d=x,k=b;if("c"===v)k=_(t)+k,t="";else{var A=(t=+t)<0||1/t<0;if(t=isNaN(t)?c:_(Math.abs(t),g),y&&(t=function(t){t:for(var e,n=t.length,i=1,r=-1;i0&&(r=0)}return r>0?t.slice(0,r)+t.slice(e+1):t}(t)),A&&0==+t&&"+"!==f&&(A=!1),d=(A?"("===f?f:u:"-"===f||"("===f?"":f)+d,k=("s"===v?We[8+ze/3]:"")+k+(A&&"("===f?")":""),w)for(r=-1,o=t.length;++r(l=t.charCodeAt(r))||l>57){k=(46===l?a+t.slice(r+1):t.slice(r))+k,t=t.slice(0,r);break}}m&&!h&&(t=i(t,1/0));var D=d.length+t.length+k.length,S=D>1)+d+t+k+S.slice(D);break;default:t=S+d+t+k}return s(t)}return g=void 0===g?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),k.toString=function(){return t+""},k}return{format:f,formatPrefix:function(t,e){var n=f(((t=Pe(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Oe(e)/3))),r=Math.pow(10,-i),o=We[8+i/3];return function(t){return n(r*t)+o}}}}function Ve(t){return Math.max(0,-Oe(Math.abs(t)))}function Ge(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Oe(e)/3)))-Oe(Math.abs(t)))}function Ye(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Oe(e)-Oe(t))+1}Le=He({thousands:",",grouping:[3],currency:["$",""]}),Ue=Le.format,qe=Le.formatPrefix;const Xe=new Date,Je=new Date;function Qe(t,e,n,i){function r(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return r.floor=e=>(t(e=new Date(+e)),e),r.ceil=n=>(t(n=new Date(n-1)),e(n,1),t(n),n),r.round=t=>{const e=r(t),n=r.ceil(t);return t-e(e(t=new Date(+t),null==n?1:Math.floor(n)),t),r.range=(n,i,o)=>{const a=[];if(n=r.ceil(n),o=null==o?1:Math.floor(o),!(n0))return a;let s;do{a.push(s=new Date(+n)),e(n,o),t(n)}while(sQe((e=>{if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),((t,i)=>{if(t>=t)if(i<0)for(;++i<=0;)for(;e(t,-1),!n(t););else for(;--i>=0;)for(;e(t,1),!n(t););})),n&&(r.count=(e,i)=>(Xe.setTime(+e),Je.setTime(+i),t(Xe),t(Je),Math.floor(n(Xe,Je))),r.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?r.filter(i?e=>i(e)%t==0:e=>r.count(0,e)%t==0):r:null)),r}const Ze=Qe((()=>{}),((t,e)=>{t.setTime(+t+e)}),((t,e)=>e-t));Ze.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?Qe((e=>{e.setTime(Math.floor(e/t)*t)}),((e,n)=>{e.setTime(+e+n*t)}),((e,n)=>(n-e)/t)):Ze:null),Ze.range;const Ke=1e3,tn=60*Ke,en=60*tn,nn=24*en,rn=7*nn,on=30*nn,an=365*nn,sn=Qe((t=>{t.setTime(t-t.getMilliseconds())}),((t,e)=>{t.setTime(+t+e*Ke)}),((t,e)=>(e-t)/Ke),(t=>t.getUTCSeconds()));sn.range;const ln=Qe((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ke)}),((t,e)=>{t.setTime(+t+e*tn)}),((t,e)=>(e-t)/tn),(t=>t.getMinutes()));ln.range;const un=Qe((t=>{t.setUTCSeconds(0,0)}),((t,e)=>{t.setTime(+t+e*tn)}),((t,e)=>(e-t)/tn),(t=>t.getUTCMinutes()));un.range;const cn=Qe((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ke-t.getMinutes()*tn)}),((t,e)=>{t.setTime(+t+e*en)}),((t,e)=>(e-t)/en),(t=>t.getHours()));cn.range;const fn=Qe((t=>{t.setUTCMinutes(0,0,0)}),((t,e)=>{t.setTime(+t+e*en)}),((t,e)=>(e-t)/en),(t=>t.getUTCHours()));fn.range;const dn=Qe((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*tn)/nn),(t=>t.getDate()-1));dn.range;const hn=Qe((t=>{t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+e)}),((t,e)=>(e-t)/nn),(t=>t.getUTCDate()-1));hn.range;const pn=Qe((t=>{t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+e)}),((t,e)=>(e-t)/nn),(t=>Math.floor(t/nn)));function mn(t){return Qe((e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),((t,e)=>{t.setDate(t.getDate()+7*e)}),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*tn)/rn))}pn.range;const gn=mn(0),yn=mn(1),vn=mn(2),xn=mn(3),bn=mn(4),_n=mn(5),wn=mn(6);function kn(t){return Qe((e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+7*e)}),((t,e)=>(e-t)/rn))}gn.range,yn.range,vn.range,xn.range,bn.range,_n.range,wn.range;const An=kn(0),Dn=kn(1),Sn=kn(2),Mn=kn(3),En=kn(4),Cn=kn(5),Fn=kn(6);An.range,Dn.range,Sn.range,Mn.range,En.range,Cn.range,Fn.range;const Nn=Qe((t=>{t.setDate(1),t.setHours(0,0,0,0)}),((t,e)=>{t.setMonth(t.getMonth()+e)}),((t,e)=>e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())),(t=>t.getMonth()));Nn.range;const On=Qe((t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)}),((t,e)=>e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())),(t=>t.getUTCMonth()));On.range;const zn=Qe((t=>{t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,e)=>{t.setFullYear(t.getFullYear()+e)}),((t,e)=>e.getFullYear()-t.getFullYear()),(t=>t.getFullYear()));zn.every=t=>isFinite(t=Math.floor(t))&&t>0?Qe((e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,n)=>{e.setFullYear(e.getFullYear()+n*t)})):null,zn.range;const Tn=Qe((t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)}),((t,e)=>e.getUTCFullYear()-t.getUTCFullYear()),(t=>t.getUTCFullYear()));function Pn(t,e,n,i,r,o){const a=[[sn,1,Ke],[sn,5,5*Ke],[sn,15,15*Ke],[sn,30,30*Ke],[o,1,tn],[o,5,5*tn],[o,15,15*tn],[o,30,30*tn],[r,1,en],[r,3,3*en],[r,6,6*en],[r,12,12*en],[i,1,nn],[i,2,2*nn],[n,1,rn],[e,1,on],[e,3,3*on],[t,1,an]];function s(e,n,i){const r=Math.abs(n-e)/i,o=ee((t=>{let[,,e]=t;return e})).right(a,r);if(o===a.length)return t.every(xe(e/an,n/an,i));if(0===o)return Ze.every(Math.max(xe(e,n,i),1));const[s,l]=a[r/a[o-1][2]isFinite(t=Math.floor(t))&&t>0?Qe((e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null,Tn.range;const[Rn,Bn]=Pn(Tn,On,An,pn,fn,un),[jn,$n]=Pn(zn,Nn,gn,dn,cn,ln),Ln="year",Un="quarter",qn="month",In="week",Wn="date",Hn="day",Vn="dayofyear",Gn="hours",Yn="minutes",Xn="seconds",Jn="milliseconds",Qn=[Ln,Un,qn,In,Wn,Hn,Vn,Gn,Yn,Xn,Jn],Zn=Qn.reduce(((t,e,n)=>(t[e]=1+n,t)),{});function Kn(t){const e=Y(t).slice(),n={};return e.length||s("Missing time unit."),e.forEach((t=>{ut(Zn,t)?n[t]=1:s(`Invalid time unit: ${t}.`)})),(n[In]||n[Hn]?1:0)+(n[Un]||n[qn]||n[Wn]?1:0)+(n[Vn]?1:0)>1&&s(`Incompatible time units: ${t}`),e.sort(((t,e)=>Zn[t]-Zn[e])),e}const ti={[Ln]:"%Y ",[Un]:"Q%q ",[qn]:"%b ",[Wn]:"%d ",[In]:"W%U ",[Hn]:"%a ",[Vn]:"%j ",[Gn]:"%H:00",[Yn]:"00:%M",[Xn]:":%S",[Jn]:".%L",[`${Ln}-${qn}`]:"%Y-%m ",[`${Ln}-${qn}-${Wn}`]:"%Y-%m-%d ",[`${Gn}-${Yn}`]:"%H:%M"};function ei(t,e){const n=ot({},ti,e),i=Kn(t),r=i.length;let o,a,s="",l=0;for(l=0;ll;--o)if(a=i.slice(l,o).join("-"),null!=n[a]){s+=n[a],l=o;break}return s.trim()}const ni=new Date;function ii(t){return ni.setFullYear(t),ni.setMonth(0),ni.setDate(1),ni.setHours(0,0,0,0),ni}function ri(t){return ai(new Date(t))}function oi(t){return si(new Date(t))}function ai(t){return dn.count(ii(t.getFullYear())-1,t)}function si(t){return gn.count(ii(t.getFullYear())-1,t)}function li(t){return ii(t).getDay()}function ui(t,e,n,i,r,o,a){if(0<=t&&t<100){const s=new Date(-1,e,n,i,r,o,a);return s.setFullYear(t),s}return new Date(t,e,n,i,r,o,a)}function ci(t){return di(new Date(t))}function fi(t){return hi(new Date(t))}function di(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return hn.count(e-1,t)}function hi(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return An.count(e-1,t)}function pi(t){return ni.setTime(Date.UTC(t,0,1)),ni.getUTCDay()}function mi(t,e,n,i,r,o,a){if(0<=t&&t<100){const t=new Date(Date.UTC(-1,e,n,i,r,o,a));return t.setUTCFullYear(n.y),t}return new Date(Date.UTC(t,e,n,i,r,o,a))}function gi(t,e,n,i,r){const o=e||1,a=C(t),s=(t,e,r)=>function(t,e,n,i){const r=n<=1?t:i?(e,r)=>i+n*Math.floor((t(e,r)-i)/n):(e,i)=>n*Math.floor(t(e,i)/n);return e?(t,n)=>e(r(t,n),n):r}(n[r=r||t],i[r],t===a&&o,e),l=new Date,u=Tt(t),c=u[Ln]?s(Ln):it(2012),f=u[qn]?s(qn):u[Un]?s(Un):d,p=u[In]&&u[Hn]?s(Hn,1,In+Hn):u[In]?s(In,1):u[Hn]?s(Hn,1):u[Wn]?s(Wn,1):u[Vn]?s(Vn,1):h,m=u[Gn]?s(Gn):d,g=u[Yn]?s(Yn):d,y=u[Xn]?s(Xn):d,v=u[Jn]?s(Jn):d;return function(t){l.setTime(+t);const e=c(l);return r(e,f(l),p(l,e),m(l),g(l),y(l),v(l))}}function yi(t,e,n){return e+7*t-(n+6)%7}const vi={[Ln]:t=>t.getFullYear(),[Un]:t=>Math.floor(t.getMonth()/3),[qn]:t=>t.getMonth(),[Wn]:t=>t.getDate(),[Gn]:t=>t.getHours(),[Yn]:t=>t.getMinutes(),[Xn]:t=>t.getSeconds(),[Jn]:t=>t.getMilliseconds(),[Vn]:t=>ai(t),[In]:t=>si(t),[In+Hn]:(t,e)=>yi(si(t),t.getDay(),li(e)),[Hn]:(t,e)=>yi(1,t.getDay(),li(e))},xi={[Un]:t=>3*t,[In]:(t,e)=>yi(t,0,li(e))};function bi(t,e){return gi(t,e||1,vi,xi,ui)}const _i={[Ln]:t=>t.getUTCFullYear(),[Un]:t=>Math.floor(t.getUTCMonth()/3),[qn]:t=>t.getUTCMonth(),[Wn]:t=>t.getUTCDate(),[Gn]:t=>t.getUTCHours(),[Yn]:t=>t.getUTCMinutes(),[Xn]:t=>t.getUTCSeconds(),[Jn]:t=>t.getUTCMilliseconds(),[Vn]:t=>di(t),[In]:t=>hi(t),[Hn]:(t,e)=>yi(1,t.getUTCDay(),pi(e)),[In+Hn]:(t,e)=>yi(hi(t),t.getUTCDay(),pi(e))},wi={[Un]:t=>3*t,[In]:(t,e)=>yi(t,0,pi(e))};function ki(t,e){return gi(t,e||1,_i,wi,mi)}const Ai={[Ln]:zn,[Un]:Nn.every(3),[qn]:Nn,[In]:gn,[Wn]:dn,[Hn]:dn,[Vn]:dn,[Gn]:cn,[Yn]:ln,[Xn]:sn,[Jn]:Ze},Di={[Ln]:Tn,[Un]:On.every(3),[qn]:On,[In]:An,[Wn]:hn,[Hn]:hn,[Vn]:hn,[Gn]:fn,[Yn]:un,[Xn]:sn,[Jn]:Ze};function Si(t){return Ai[t]}function Mi(t){return Di[t]}function Ei(t,e,n){return t?t.offset(e,n):void 0}function Ci(t,e,n){return Ei(Si(t),e,n)}function Fi(t,e,n){return Ei(Mi(t),e,n)}function Ni(t,e,n,i){return t?t.range(e,n,i):void 0}function Oi(t,e,n,i){return Ni(Si(t),e,n,i)}function zi(t,e,n,i){return Ni(Mi(t),e,n,i)}const Ti=31536e6,Pi=[Ln,qn,Wn,Gn,Yn,Xn,Jn],Ri=Pi.slice(0,-1),Bi=Ri.slice(0,-1),ji=Bi.slice(0,-1),$i=ji.slice(0,-1),Li=[Ln,qn],Ui=[Ln],qi=[[Ri,1,1e3],[Ri,5,5e3],[Ri,15,15e3],[Ri,30,3e4],[Bi,1,6e4],[Bi,5,3e5],[Bi,15,9e5],[Bi,30,18e5],[ji,1,36e5],[ji,3,108e5],[ji,6,216e5],[ji,12,432e5],[$i,1,864e5],[[Ln,In],1,6048e5],[Li,1,2592e6],[Li,3,7776e6],[Ui,1,Ti]];function Ii(t){const e=t.extent,n=t.maxbins||40,i=Math.abs(Et(e))/n;let r,o,a=ee((t=>t[2])).right(qi,i);return a===qi.length?(r=Ui,o=xe(e[0]/Ti,e[1]/Ti,n)):a?(a=qi[i/qi[a-1][2]=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:mo,s:go,S:Pr,u:Rr,U:Br,V:$r,w:Lr,W:Ur,x:null,X:null,y:qr,Y:Wr,Z:Vr,"%":po},b={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:Gr,e:Gr,f:Zr,g:uo,G:fo,H:Yr,I:Xr,j:Jr,L:Qr,m:Kr,M:to,p:function(t){return r[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:mo,s:go,S:eo,u:no,U:io,V:oo,w:ao,W:so,x:null,X:null,y:lo,Y:co,Z:ho,"%":po},_={a:function(t,e,n){var i=h.exec(e.slice(n));return i?(t.w=p.get(i[0].toLowerCase()),n+i[0].length):-1},A:function(t,e,n){var i=f.exec(e.slice(n));return i?(t.w=d.get(i[0].toLowerCase()),n+i[0].length):-1},b:function(t,e,n){var i=y.exec(e.slice(n));return i?(t.m=v.get(i[0].toLowerCase()),n+i[0].length):-1},B:function(t,e,n){var i=m.exec(e.slice(n));return i?(t.m=g.get(i[0].toLowerCase()),n+i[0].length):-1},c:function(t,n,i){return A(t,e,n,i)},d:yr,e:yr,f:kr,g:hr,G:dr,H:xr,I:xr,j:vr,L:wr,m:gr,M:br,p:function(t,e,n){var i=u.exec(e.slice(n));return i?(t.p=c.get(i[0].toLowerCase()),n+i[0].length):-1},q:mr,Q:Dr,s:Sr,S:_r,u:lr,U:ur,V:cr,w:sr,W:fr,x:function(t,e,i){return A(t,n,e,i)},X:function(t,e,n){return A(t,i,e,n)},y:hr,Y:dr,Z:pr,"%":Ar};function w(t,e){return function(n){var i,r,o,a=[],s=-1,l=0,u=t.length;for(n instanceof Date||(n=new Date(+n));++s53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=Hi(Vi(o.y,0,1))).getUTCDay(),i=r>4||0===r?Dn.ceil(i):Dn(i),i=hn.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=Wi(Vi(o.y,0,1))).getDay(),i=r>4||0===r?yn.ceil(i):yn(i),i=dn.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?Hi(Vi(o.y,0,1)).getUTCDay():Wi(Vi(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,Hi(o)):Wi(o)}}function A(t,e,n,i){for(var r,o,a=0,s=e.length,l=n.length;a=l)return-1;if(37===(r=e.charCodeAt(a++))){if(r=e.charAt(a++),!(o=_[r in Ki?e.charAt(a++):r])||(i=o(t,n,i))<0)return-1}else if(r!=n.charCodeAt(i++))return-1}return i}return x.x=w(n,x),x.X=w(i,x),x.c=w(e,x),b.x=w(n,b),b.X=w(i,b),b.c=w(e,b),{format:function(t){var e=w(t+="",x);return e.toString=function(){return t},e},parse:function(t){var e=k(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=w(t+="",b);return e.toString=function(){return t},e},utcParse:function(t){var e=k(t+="",!0);return e.toString=function(){return t},e}}}var Yi,Xi,Ji,Qi,Zi,Ki={"-":"",_:" ",0:"0"},tr=/^\s*\d+/,er=/^%/,nr=/[\\^$*+?|[\]().{}]/g;function ir(t,e,n){var i=t<0?"-":"",r=(i?-t:t)+"",o=r.length;return i+(o[t.toLowerCase(),e])))}function sr(t,e,n){var i=tr.exec(e.slice(n,n+1));return i?(t.w=+i[0],n+i[0].length):-1}function lr(t,e,n){var i=tr.exec(e.slice(n,n+1));return i?(t.u=+i[0],n+i[0].length):-1}function ur(t,e,n){var i=tr.exec(e.slice(n,n+2));return i?(t.U=+i[0],n+i[0].length):-1}function cr(t,e,n){var i=tr.exec(e.slice(n,n+2));return i?(t.V=+i[0],n+i[0].length):-1}function fr(t,e,n){var i=tr.exec(e.slice(n,n+2));return i?(t.W=+i[0],n+i[0].length):-1}function dr(t,e,n){var i=tr.exec(e.slice(n,n+4));return i?(t.y=+i[0],n+i[0].length):-1}function hr(t,e,n){var i=tr.exec(e.slice(n,n+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function pr(t,e,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function mr(t,e,n){var i=tr.exec(e.slice(n,n+1));return i?(t.q=3*i[0]-3,n+i[0].length):-1}function gr(t,e,n){var i=tr.exec(e.slice(n,n+2));return i?(t.m=i[0]-1,n+i[0].length):-1}function yr(t,e,n){var i=tr.exec(e.slice(n,n+2));return i?(t.d=+i[0],n+i[0].length):-1}function vr(t,e,n){var i=tr.exec(e.slice(n,n+3));return i?(t.m=0,t.d=+i[0],n+i[0].length):-1}function xr(t,e,n){var i=tr.exec(e.slice(n,n+2));return i?(t.H=+i[0],n+i[0].length):-1}function br(t,e,n){var i=tr.exec(e.slice(n,n+2));return i?(t.M=+i[0],n+i[0].length):-1}function _r(t,e,n){var i=tr.exec(e.slice(n,n+2));return i?(t.S=+i[0],n+i[0].length):-1}function wr(t,e,n){var i=tr.exec(e.slice(n,n+3));return i?(t.L=+i[0],n+i[0].length):-1}function kr(t,e,n){var i=tr.exec(e.slice(n,n+6));return i?(t.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function Ar(t,e,n){var i=er.exec(e.slice(n,n+1));return i?n+i[0].length:-1}function Dr(t,e,n){var i=tr.exec(e.slice(n));return i?(t.Q=+i[0],n+i[0].length):-1}function Sr(t,e,n){var i=tr.exec(e.slice(n));return i?(t.s=+i[0],n+i[0].length):-1}function Mr(t,e){return ir(t.getDate(),e,2)}function Er(t,e){return ir(t.getHours(),e,2)}function Cr(t,e){return ir(t.getHours()%12||12,e,2)}function Fr(t,e){return ir(1+dn.count(zn(t),t),e,3)}function Nr(t,e){return ir(t.getMilliseconds(),e,3)}function Or(t,e){return Nr(t,e)+"000"}function zr(t,e){return ir(t.getMonth()+1,e,2)}function Tr(t,e){return ir(t.getMinutes(),e,2)}function Pr(t,e){return ir(t.getSeconds(),e,2)}function Rr(t){var e=t.getDay();return 0===e?7:e}function Br(t,e){return ir(gn.count(zn(t)-1,t),e,2)}function jr(t){var e=t.getDay();return e>=4||0===e?bn(t):bn.ceil(t)}function $r(t,e){return t=jr(t),ir(bn.count(zn(t),t)+(4===zn(t).getDay()),e,2)}function Lr(t){return t.getDay()}function Ur(t,e){return ir(yn.count(zn(t)-1,t),e,2)}function qr(t,e){return ir(t.getFullYear()%100,e,2)}function Ir(t,e){return ir((t=jr(t)).getFullYear()%100,e,2)}function Wr(t,e){return ir(t.getFullYear()%1e4,e,4)}function Hr(t,e){var n=t.getDay();return ir((t=n>=4||0===n?bn(t):bn.ceil(t)).getFullYear()%1e4,e,4)}function Vr(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+ir(e/60|0,"0",2)+ir(e%60,"0",2)}function Gr(t,e){return ir(t.getUTCDate(),e,2)}function Yr(t,e){return ir(t.getUTCHours(),e,2)}function Xr(t,e){return ir(t.getUTCHours()%12||12,e,2)}function Jr(t,e){return ir(1+hn.count(Tn(t),t),e,3)}function Qr(t,e){return ir(t.getUTCMilliseconds(),e,3)}function Zr(t,e){return Qr(t,e)+"000"}function Kr(t,e){return ir(t.getUTCMonth()+1,e,2)}function to(t,e){return ir(t.getUTCMinutes(),e,2)}function eo(t,e){return ir(t.getUTCSeconds(),e,2)}function no(t){var e=t.getUTCDay();return 0===e?7:e}function io(t,e){return ir(An.count(Tn(t)-1,t),e,2)}function ro(t){var e=t.getUTCDay();return e>=4||0===e?En(t):En.ceil(t)}function oo(t,e){return t=ro(t),ir(En.count(Tn(t),t)+(4===Tn(t).getUTCDay()),e,2)}function ao(t){return t.getUTCDay()}function so(t,e){return ir(Dn.count(Tn(t)-1,t),e,2)}function lo(t,e){return ir(t.getUTCFullYear()%100,e,2)}function uo(t,e){return ir((t=ro(t)).getUTCFullYear()%100,e,2)}function co(t,e){return ir(t.getUTCFullYear()%1e4,e,4)}function fo(t,e){var n=t.getUTCDay();return ir((t=n>=4||0===n?En(t):En.ceil(t)).getUTCFullYear()%1e4,e,4)}function ho(){return"+0000"}function po(){return"%"}function mo(t){return+t}function go(t){return Math.floor(+t/1e3)}function yo(t){const e={};return n=>e[n]||(e[n]=t(n))}function vo(t){const e=yo(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(t){const n=Pe(t||",");if(null==n.precision){switch(n.precision=12,n.type){case"%":n.precision-=2;break;case"e":n.precision-=1}return i=e(n),r=e(".1f")(1)[1],t=>{const e=i(t),n=e.indexOf(r);if(n<0)return e;let o=function(t,e){let n,i=t.lastIndexOf("e");if(i>0)return i;for(i=t.length;--i>e;)if(n=t.charCodeAt(i),n>=48&&n<=57)return i+1}(e,n);const a=on;)if("0"!==e[o]){++o;break}return e.slice(0,o)+a}}return e(n);var i,r},formatSpan(t,i,r,o){o=Pe(null==o?",f":o);const a=xe(t,i,r),s=Math.max(Math.abs(t),Math.abs(i));let l;if(null==o.precision)switch(o.type){case"s":return isNaN(l=Ge(a,s))||(o.precision=l),n(o,s);case"":case"e":case"g":case"p":case"r":isNaN(l=Ye(a,s))||(o.precision=l-("e"===o.type));break;case"f":case"%":isNaN(l=Ve(a))||(o.precision=l-2*("%"===o.type))}return e(o)}}}let xo,bo;function _o(){return xo=vo({format:Ue,formatPrefix:qe})}function wo(t){return vo(He(t))}function ko(t){return arguments.length?xo=wo(t):xo}function Ao(t,e,n){A(n=n||{})||s(`Invalid time multi-format specifier: ${n}`);const i=e(Xn),r=e(Yn),o=e(Gn),a=e(Wn),l=e(In),u=e(qn),c=e(Un),f=e(Ln),d=t(n[Jn]||".%L"),h=t(n[Xn]||":%S"),p=t(n[Yn]||"%I:%M"),m=t(n[Gn]||"%I %p"),g=t(n[Wn]||n[Hn]||"%a %d"),y=t(n[In]||"%b %d"),v=t(n[qn]||"%B"),x=t(n[Un]||"%B"),b=t(n[Ln]||"%Y");return t=>(i(t)bt(t)?e(t):Ao(e,Si,t),utcFormat:t=>bt(t)?n(t):Ao(n,Mi,t),timeParse:yo(t.parse),utcParse:yo(t.utcParse)}}function So(){return bo=Do({format:Xi,parse:Ji,utcFormat:Qi,utcParse:Zi})}function Mo(t){return Do(Gi(t))}function Eo(t){return arguments.length?bo=Mo(t):bo}Yi=Gi({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"]}),Xi=Yi.format,Ji=Yi.parse,Qi=Yi.utcFormat,Zi=Yi.utcParse,_o(),So();const Co=(t,e)=>ot({},t,e);function Fo(t,e){const n=t?wo(t):ko(),i=e?Mo(e):Eo();return Co(n,i)}function No(t,e){const n=arguments.length;return n&&2!==n&&s("defaultLocale expects either zero or two arguments."),n?Co(ko(t),Eo(e)):Co(ko(),Eo())}const Oo=/^(data:|([A-Za-z]+:)?\/\/)/,zo=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,To=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Po="file://";async function Ro(t,e){const n=await this.sanitize(t,e),i=n.href;return n.localFile?this.file(i):this.http(i,e)}async function Bo(t,e){e=ot({},this.options,e);const n=this.fileAccess,i={href:null};let r,o,a;const l=zo.test(t.replace(To,""));null!=t&&"string"==typeof t&&l||s("Sanitize failure, invalid URI: "+Ct(t));const u=Oo.test(t);return(a=e.baseURL)&&!u&&(t.startsWith("/")||a.endsWith("/")||(t="/"+t),t=a+t),o=(r=t.startsWith(Po))||"file"===e.mode||"http"!==e.mode&&!u&&n,r?t=t.slice(Po.length):t.startsWith("//")&&("file"===e.defaultProtocol?(t=t.slice(2),o=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(i,"localFile",{value:!!o}),i.href=t,e.target&&(i.target=e.target+""),e.rel&&(i.rel=e.rel+""),"image"===e.context&&e.crossOrigin&&(i.crossOrigin=e.crossOrigin+""),i}function jo(t){return t?e=>new Promise(((n,i)=>{t.readFile(e,((t,e)=>{t?i(t):n(e)}))})):$o}async function $o(){s("No file system access.")}function Lo(t){return t?async function(e,n){const i=ot({},this.options.http,n),r=n&&n.response,o=await t(e,i);return o.ok?J(o[r])?o[r]():o.text():s(o.status+""+o.statusText)}:Uo}async function Uo(){s("No HTTP fetch method available.")}const qo=t=>null!=t&&t==t,Io=t=>!(Number.isNaN(+t)||t instanceof Date),Wo={boolean:Ft,integer:F,number:F,date:Ot,string:zt,unknown:f},Ho=[t=>"true"===t||"false"===t||!0===t||!1===t,t=>Io(t)&&Number.isInteger(+t),Io,t=>!Number.isNaN(Date.parse(t))],Vo=["boolean","integer","number","date"];function Go(t,e){if(!t||!t.length)return"unknown";const n=t.length,i=Ho.length,r=Ho.map(((t,e)=>e+1));for(let o,a,s=0,l=0;s0===t?e:t),0)-1]}function Yo(t,e){return e.reduce(((e,n)=>(e[n]=Go(t,n),e)),{})}function Xo(t){const e=function(e,n){const i={delimiter:t};return Jo(e,n?ot(n,i):i)};return e.responseType="text",e}function Jo(t,e){return e.header&&(t=e.header.map(Ct).join(e.delimiter)+"\n"+t),Ht(e.delimiter).parse(t+"")}function Qo(t,e){const n=e&&e.property?u(e.property):f;return!A(t)||(i=t,"function"==typeof Buffer&&J(Buffer.isBuffer)&&Buffer.isBuffer(i))?n(JSON.parse(t)):function(t,e){return!k(t)&&yt(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}(n(t),e);var i}Jo.responseType="text",Qo.responseType="json";const Zo={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function Ko(t,e){let n,i,r,o;return t=Qo(t,e),e&&e.feature?(n=Gt,r=e.feature):e&&e.mesh?(n=Qt,r=e.mesh,o=Zo[e.filter]):s("Missing TopoJSON feature or mesh parameter."),i=(i=t.objects[r])?n(t,i,o):s("Invalid TopoJSON object: "+r),i&&i.features||[i]}Ko.responseType="json";const ta={dsv:Jo,csv:Xo(","),tsv:Xo("\t"),json:Qo,topojson:Ko};function ea(t,e){return arguments.length>1?(ta[t]=e,this):ut(ta,t)?ta[t]:null}function na(t){const e=ea(t);return e&&e.responseType||"text"}function ia(t,e,n,i){const r=ea((e=e||{}).type||"json");return r||s("Unknown data format type: "+e.type),t=r(t,e),e.parse&&function(t,e,n,i){if(!t.length)return;const r=Eo();n=n||r.timeParse,i=i||r.utcParse;let o,a,s,l,u,c,f=t.columns||Object.keys(t[0]);"auto"===e&&(e=Yo(t,f)),f=Object.keys(e);const d=f.map((t=>{const r=e[t];let o,a;if(r&&(r.startsWith("date:")||r.startsWith("utc:")))return o=r.split(/:(.+)?/,2),a=o[1],("'"===a[0]&&"'"===a[a.length-1]||'"'===a[0]&&'"'===a[a.length-1])&&(a=a.slice(1,-1)),("utc"===o[0]?i:n)(a);if(!Wo[r])throw Error("Illegal format pattern: "+t+":"+r);return Wo[r]}));for(s=0,u=t.length,c=f.length;s({options:e||{},sanitize:Bo,load:Ro,fileAccess:!1,file:jo(null),http:Lo(t)})}("undefined"!=typeof fetch&&fetch);function oa(t){const e=t||f,n=[],i={};return n.add=t=>{const r=e(t);return i[r]||(i[r]=1,n.push(t)),n},n.remove=t=>{const r=e(t);if(i[r]){i[r]=0;const e=n.indexOf(t);e>=0&&n.splice(e,1)}return n},n}async function aa(t,e){try{await e(t)}catch(e){t.error(e)}}const sa=Symbol("vega_id");let la=1;function ua(t){return!(!t||!ca(t))}function ca(t){return t[sa]}function fa(t,e){return t[sa]=e,t}function da(t){const e=t===Object(t)?t:{data:t};return ca(e)?e:fa(e,la++)}function ha(t){return pa(t,da({}))}function pa(t,e){for(const n in t)e[n]=t[n];return e}function ma(t,e){return fa(e,ca(t))}function ga(t,e){return t?e?(n,i)=>t(n,i)||ca(e(n))-ca(e(i)):(e,n)=>t(e,n)||ca(e)-ca(n):null}function ya(t){return t&&t.constructor===va}function va(){const t=[],e=[],n=[],i=[],r=[];let o=null,a=!1;return{constructor:va,insert(e){const n=Y(e),i=n.length;for(let e=0;e{p(t)&&(u[ca(t)]=-1)}));for(f=0,d=t.length;f0&&(y(m,p,h.value),s.modifies(p));for(f=0,d=r.length;f{p(t)&&u[ca(t)]>0&&y(t,h.field,h.value)})),s.modifies(h.field);if(a)s.mod=e.length||i.length?l.filter((t=>u[ca(t)]>0)):l.slice();else for(g in c)s.mod.push(c[g]);return(o||null==o&&(e.length||i.length))&&s.clean(!0),s}}}const xa="_:mod:_";function ba(){Object.defineProperty(this,xa,{writable:!0,value:{}})}ba.prototype={set(t,e,n,i){const r=this,o=r[t],a=r[xa];return null!=e&&e>=0?(o[e]!==n||i)&&(o[e]=n,a[e+":"+t]=-1,a[t]=-1):(o!==n||i)&&(r[t]=n,a[t]=k(n)?1+n.length:-1),r},modified(t,e){const n=this[xa];if(!arguments.length){for(const t in n)if(n[t])return!0;return!1}if(k(t)){for(let e=0;e=0?e+1{a instanceof ka?(a!==this&&(e&&a.targets().add(this),o.push(a)),r.push({op:a,name:t,index:n})):i.set(t,n,a)};for(a in t)if(l=t[a],"pulse"===a)Y(l).forEach((t=>{t instanceof ka?t!==this&&(t.targets().add(this),o.push(t)):s("Pulse parameters must be operator instances.")})),this.source=l;else if(k(l))for(i.set(a,-1,Array(u=l.length)),c=0;c{const n=Date.now();return n-e>t?(e=n,1):0}))},debounce(t){const e=Ma();return this.targets().add(Ma(null,null,rt(t,(t=>{const n=t.dataflow;e.receive(t),n&&n.run&&n.run()})))),e},between(t,e){let n=!1;return t.targets().add(Ma(null,null,(()=>n=!0))),e.targets().add(Ma(null,null,(()=>n=!1))),this.filter((()=>n))},detach(){this._filter=p,this._targets=null}};const Ea={skip:!0};function Ca(t,e,n,i,r,o){const a=ot({},o,Ea);let s,l;J(n)||(n=it(n)),void 0===i?s=e=>t.touch(n(e)):J(i)?(l=new ka(null,i,r,!1),s=e=>{l.evaluate(e);const i=n(e),r=l.value;ya(r)?t.pulse(i,r,o):t.update(i,r,a)}):s=e=>t.update(n(e),i,a),e.apply(s)}function Fa(t,e,n,i,r,o){if(void 0===i)e.targets().add(n);else{const a=o||{},s=new ka(null,function(t,e){return e=J(e)?e:it(e),t?function(n,i){const r=e(n,i);return t.skip()||(t.skip(r!==this.value).value=r),r}:e}(n,i),r,!1);s.modified(a.force),s.rank=e.rank,e.targets().add(s),n&&(s.skip(!0),s.value=n.value,s.targets().add(n),t.connect(n,[s]))}}const Na={};function Oa(t,e,n){this.dataflow=t,this.stamp=null==e?-1:e,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function za(t,e){const n=[];return Rt(t,e,(t=>n.push(t))),n}function Ta(t,e){const n={};return t.visit(e,(t=>{n[ca(t)]=1})),t=>n[ca(t)]?null:t}function Pa(t,e){return t?(n,i)=>t(n,i)&&e(n,i):e}function Ra(t,e,n,i){const r=this;let o=0;this.dataflow=t,this.stamp=e,this.fields=null,this.encode=i||null,this.pulses=n;for(const t of n)if(t.stamp===e){if(t.fields){const e=r.fields||(r.fields={});for(const n in t.fields)e[n]=1}t.changed(r.ADD)&&(o|=r.ADD),t.changed(r.REM)&&(o|=r.REM),t.changed(r.MOD)&&(o|=r.MOD)}this.changes=o}function Ba(t){return t.error("Dataflow already running. Use runAsync() to chain invocations."),t}Oa.prototype={StopPropagation:Na,ADD:1,REM:2,MOD:4,ADD_REM:3,ADD_MOD:5,ALL:7,REFLOW:8,SOURCE:16,NO_SOURCE:32,NO_FIELDS:64,fork(t){return new Oa(this.dataflow).init(this,t)},clone(){const t=this.fork(7);return t.add=t.add.slice(),t.rem=t.rem.slice(),t.mod=t.mod.slice(),t.source&&(t.source=t.source.slice()),t.materialize(23)},addAll(){let t=this;return!t.source||t.add===t.rem||!t.rem.length&&t.source.length===t.add.length||(t=new Oa(this.dataflow).init(this),t.add=t.source,t.rem=[]),t},init(t,e){const n=this;return n.stamp=t.stamp,n.encode=t.encode,!t.fields||64&e||(n.fields=t.fields),1&e?(n.addF=t.addF,n.add=t.add):(n.addF=null,n.add=[]),2&e?(n.remF=t.remF,n.rem=t.rem):(n.remF=null,n.rem=[]),4&e?(n.modF=t.modF,n.mod=t.mod):(n.modF=null,n.mod=[]),32&e?(n.srcF=null,n.source=null):(n.srcF=t.srcF,n.source=t.source,t.cleans&&(n.cleans=t.cleans)),n},runAfter(t){this.dataflow.runAfter(t)},changed(t){const e=t||7;return 1&e&&this.add.length||2&e&&this.rem.length||4&e&&this.mod.length},reflow(t){if(t)return this.fork(7).reflow();const e=this.add.length,n=this.source&&this.source.length;return n&&n!==e&&(this.mod=this.source,e&&this.filter(4,Ta(this,1))),this},clean(t){return arguments.length?(this.cleans=!!t,this):this.cleans},modifies(t){const e=this.fields||(this.fields={});return k(t)?t.forEach((t=>e[t]=!0)):e[t]=!0,this},modified(t,e){const n=this.fields;return!(!e&&!this.mod.length||!n)&&(arguments.length?k(t)?t.some((t=>n[t])):n[t]:!!n)},filter(t,e){const n=this;return 1&t&&(n.addF=Pa(n.addF,e)),2&t&&(n.remF=Pa(n.remF,e)),4&t&&(n.modF=Pa(n.modF,e)),16&t&&(n.srcF=Pa(n.srcF,e)),n},materialize(t){const e=this;return 1&(t=t||7)&&e.addF&&(e.add=za(e.add,e.addF),e.addF=null),2&t&&e.remF&&(e.rem=za(e.rem,e.remF),e.remF=null),4&t&&e.modF&&(e.mod=za(e.mod,e.modF),e.modF=null),16&t&&e.srcF&&(e.source=e.source.filter(e.srcF),e.srcF=null),e},visit(t,e){const n=this,i=e;if(16&t)return Rt(n.source,n.srcF,i),n;1&t&&Rt(n.add,n.addF,i),2&t&&Rt(n.rem,n.remF,i),4&t&&Rt(n.mod,n.modF,i);const r=n.source;if(8&t&&r){const t=n.add.length+n.mod.length;t===r.length||Rt(r,t?Ta(n,5):n.srcF,i)}return n}},ht(Ra,Oa,{fork(t){const e=new Oa(this.dataflow).init(this,t&this.NO_FIELDS);return void 0!==t&&(t&e.ADD&&this.visit(e.ADD,(t=>e.add.push(t))),t&e.REM&&this.visit(e.REM,(t=>e.rem.push(t))),t&e.MOD&&this.visit(e.MOD,(t=>e.mod.push(t)))),e},changed(t){return this.changes&t},modified(t){const e=this,n=e.fields;return n&&e.changes&e.MOD?k(t)?t.some((t=>n[t])):n[t]:0},filter(){s("MultiPulse does not support filtering.")},materialize(){s("MultiPulse does not support materialization.")},visit(t,e){const n=this,i=n.pulses,r=i.length;let o=0;if(t&n.SOURCE)for(;oe&&(o=n-1>>1,r=t[o],i(a,r)<0);)t[n]=r,n=o;return t[n]=a}function La(){this.logger(w()),this.logLevel(v),this._clock=0,this._rank=0,this._locale=No();try{this._loader=ra()}catch(t){}this._touched=oa(c),this._input={},this._pulse=null,this._heap=function(t){let e=[];return{clear:()=>e=[],size:()=>e.length,peek:()=>e[0],push:n=>(e.push(n),$a(e,0,e.length-1,t)),pop:()=>{const n=e.pop();let i;return e.length?(i=e[0],e[0]=n,function(t,e,n){const i=e,r=t.length,o=t[e];let a,s=1+(e<<1);for(;s=0&&(s=a),t[e]=t[s],s=1+((e=s)<<1);t[e]=o,$a(t,i,e,n)}(e,0,t)):i=n,i}}}(((t,e)=>t.qrank-e.qrank)),this._postrun=[]}function Ua(t){return function(){return this._log[t].apply(this,arguments)}}function qa(t,e){ka.call(this,t,null,e)}La.prototype={stamp(){return this._clock},loader(t){return arguments.length?(this._loader=t,this):this._loader},locale(t){return arguments.length?(this._locale=t,this):this._locale},logger(t){return arguments.length?(this._log=t,this):this._log},error:Ua("error"),warn:Ua("warn"),info:Ua("info"),debug:Ua("debug"),logLevel:Ua("level"),cleanThreshold:1e4,add:function(t,e,n,i){let r,o=1;return t instanceof ka?r=t:t&&t.prototype instanceof ka?r=new t:J(t)?r=new ka(null,t):(o=0,r=new ka(t,e)),this.rank(r),o&&(i=n,n=e),n&&this.connect(r,r.parameters(n,i)),this.touch(r),r},connect:function(t,e){const n=t.rank,i=e.length;for(let r=0;r=0;)e.push(n=i[r]),n===t&&s("Cycle detected in dataflow graph.")},pulse:function(t,e,n){this.touch(t,n||ja);const i=new Oa(this,this._clock+(this._pulse?0:1)),r=t.pulse&&t.pulse.source||[];return i.target=t,this._input[t.id]=e.pulse(i,r),this},touch:function(t,e){const n=e||ja;return this._pulse?this._enqueue(t):this._touched.add(t),n.skip&&t.skip(!0),this},update:function(t,e,n){const i=n||ja;return(t.set(e)||i.force)&&this.touch(t,i),this},changeset:va,ingest:function(t,e,n){return e=this.parse(e,n),this.pulse(t,this.changeset().insert(e))},parse:function(t,e){const n=this.locale();return ia(t,e,n.timeParse,n.utcParse)},preload:async function(t,e,n){const i=this,r=i._pending||function(t){let e;const n=new Promise((t=>e=t));return n.requests=0,n.done=()=>{0==--n.requests&&(t._pending=null,e(t))},t._pending=n}(i);r.requests+=1;const o=await i.request(e,n);return i.pulse(t,i.changeset().remove(p).insert(o.data||[])),r.done(),o},request:async function(t,e){const n=this;let i,r=0;try{i=await n.loader().load(t,{context:"dataflow",response:na(e&&e.type)});try{i=n.parse(i,e)}catch(e){r=-2,n.warn("Data ingestion failed",t,e)}}catch(e){r=-1,n.warn("Loading failed",t,e)}return{data:i,status:r}},events:function(t,e,n,i){const r=this,o=Ma(n,i),a=function(t){t.dataflow=r;try{o.receive(t)}catch(t){r.error(t)}finally{r.run()}};let s;s="string"==typeof t&&"undefined"!=typeof document?document.querySelectorAll(t):Y(t);const l=s.length;for(let t=0;ti._enqueue(t,!0))),i._touched=oa(c);let a,s,l,u=0;try{for(;i._heap.size()>0;)a=i._heap.pop(),a.rank===a.qrank?(s=a.run(i._getPulse(a,t)),s.then?s=await s:s.async&&(r.push(s.async),s=Na),s!==Na&&a._targets&&a._targets.forEach((t=>i._enqueue(t))),++u):i._enqueue(a,!0)}catch(t){i._heap.clear(),l=t}if(i._input={},i._pulse=null,i.debug(`Pulse ${o}: ${u} operators`),l&&(i._postrun=[],i.error(l)),i._postrun.length){const t=i._postrun.sort(((t,e)=>e.priority-t.priority));i._postrun=[];for(let e=0;ei.runAsync(null,(()=>{t.forEach((t=>{try{t(i)}catch(t){i.error(t)}}))})))),i},run:function(t,e,n){return this._pulse?Ba(this):(this.evaluate(t,e,n),this)},runAsync:async function(t,e,n){for(;this._running;)await this._running;const i=()=>this._running=null;return(this._running=this.evaluate(t,e,n)).then(i,i),this._running},runAfter:function(t,e,n){if(this._pulse||e)this._postrun.push({priority:n||0,callback:t});else try{t(this)}catch(t){this.error(t)}},_enqueue:function(t,e){const n=t.stampt.pulse)),e):this._input[t.id]||function(t,e){return e&&e.stamp===t.stamp?e:(t=t.fork(),e&&e!==Na&&(t.source=e.source),t)}(this._pulse,n&&n.pulse)}},ht(qa,ka,{run(t){if(t.stampthis.pulse=t)):e!==t.StopPropagation&&(this.pulse=e),e},evaluate(t){const e=this.marshall(t.stamp),n=this.transform(e,t);return e.clear(),n},transform(){}});const Ia={};function Wa(t){const e=Ha(t);return e&&e.Definition||null}function Ha(t){return t=t&&t.toLowerCase(),ut(Ia,t)?Ia[t]:null}function*Va(t,e){if(null==e)for(let e of t)null!=e&&""!==e&&(e=+e)>=e&&(yield e);else{let n=-1;for(let i of t)i=e(i,++n,t),null!=i&&""!==i&&(i=+i)>=i&&(yield i)}}function Ga(t,e,n){const i=Float64Array.from(Va(t,n));return i.sort(Kt),e.map((t=>De(i,t)))}function Ya(t,e){return Ga(t,[.25,.5,.75],e)}function Xa(t,e){const n=t.length,i=function(t,e){const n=function(t,e){let n,i=0,r=0,o=0;if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(n=e-r,r+=n/++i,o+=n*(e-r));else{let a=-1;for(let s of t)null!=(s=e(s,++a,t))&&(s=+s)>=s&&(n=s-r,r+=n/++i,o+=n*(s-r))}if(i>1)return o/(i-1)}(t,e);return n?Math.sqrt(n):n}(t,e),r=Ya(t,e),o=(r[2]-r[0])/1.34;return 1.06*(Math.min(i,o)||i||Math.abs(r[0])||1)*Math.pow(n,-.2)}function Ja(t){const e=t.maxbins||20,n=t.base||10,i=Math.log(n),r=t.divide||[5,2];let o,a,s,l,u,c,f=t.extent[0],d=t.extent[1];const h=t.span||d-f||Math.abs(f)||1;if(t.step)o=t.step;else if(t.steps){for(l=h/e,u=0,c=t.steps.length;ue;)o*=n;for(u=0,c=r.length;u=s&&h/l<=e&&(o=l)}l=Math.log(o);const p=l>=0?0:1+~~(-l/i),m=Math.pow(n,-p-1);return(t.nice||void 0===t.nice)&&(l=Math.floor(f/o+m)*o,f=ft);const r=t.length,o=new Float64Array(r);let a,s=0,l=1,u=i(t[0]),c=u,f=u+e;for(;l=f){for(c=(u+c)/2;s>1);ra;)t[r--]=t[o]}o=a,a=i}return t}(o,e+e/4):o}t.random=Math.random;const Ka=Math.sqrt(2*Math.PI),ts=Math.SQRT2;let es=NaN;function ns(e,n){e=e||0,n=null==n?1:n;let i,r,o=0,a=0;if(es==es)o=es,es=NaN;else{do{o=2*t.random()-1,a=2*t.random()-1,i=o*o+a*a}while(0===i||i>1);r=Math.sqrt(-2*Math.log(i)/i),o*=r,es=a*r}return e+o*n}function is(t,e,n){const i=(t-(e||0))/(n=null==n?1:n);return Math.exp(-.5*i*i)/(n*Ka)}function rs(t,e,n){const i=(t-(e=e||0))/(n=null==n?1:n),r=Math.abs(i);let o;if(r>37)o=0;else{const t=Math.exp(-r*r/2);let e;r<7.07106781186547?(e=.0352624965998911*r+.700383064443688,e=e*r+6.37396220353165,e=e*r+33.912866078383,e=e*r+112.079291497871,e=e*r+221.213596169931,e=e*r+220.206867912376,o=t*e,e=.0883883476483184*r+1.75566716318264,e=e*r+16.064177579207,e=e*r+86.7807322029461,e=e*r+296.564248779674,e=e*r+637.333633378831,e=e*r+793.826512519948,e=e*r+440.413735824752,o/=e):(e=r+.65,e=r+4/e,e=r+3/e,e=r+2/e,e=r+1/e,o=t/e/2.506628274631)}return i>0?1-o:o}function os(t,e,n){return t<0||t>1?NaN:(e||0)+(null==n?1:n)*ts*function(t){let e,n=-Math.log((1-t)*(1+t));return n<6.25?(n-=3.125,e=-364441206401782e-35,e=e*n-16850591381820166e-35,e=128584807152564e-32+e*n,e=11157877678025181e-33+e*n,e=e*n-1333171662854621e-31,e=20972767875968562e-33+e*n,e=6637638134358324e-30+e*n,e=e*n-4054566272975207e-29,e=e*n-8151934197605472e-29,e=26335093153082323e-28+e*n,e=e*n-12975133253453532e-27,e=e*n-5415412054294628e-26,e=1.0512122733215323e-9+e*n,e=e*n-4.112633980346984e-9,e=e*n-2.9070369957882005e-8,e=4.2347877827932404e-7+e*n,e=e*n-13654692000834679e-22,e=e*n-13882523362786469e-21,e=.00018673420803405714+e*n,e=e*n-.000740702534166267,e=e*n-.006033670871430149,e=.24015818242558962+e*n,e=1.6536545626831027+e*n):n<16?(n=Math.sqrt(n)-3.25,e=2.2137376921775787e-9,e=9.075656193888539e-8+e*n,e=e*n-2.7517406297064545e-7,e=1.8239629214389228e-8+e*n,e=15027403968909828e-22+e*n,e=e*n-4013867526981546e-21,e=29234449089955446e-22+e*n,e=12475304481671779e-21+e*n,e=e*n-47318229009055734e-21,e=6828485145957318e-20+e*n,e=24031110387097894e-21+e*n,e=e*n-.0003550375203628475,e=.0009532893797373805+e*n,e=e*n-.0016882755560235047,e=.002491442096107851+e*n,e=e*n-.003751208507569241,e=.005370914553590064+e*n,e=1.0052589676941592+e*n,e=3.0838856104922208+e*n):Number.isFinite(n)?(n=Math.sqrt(n)-5,e=-27109920616438573e-27,e=e*n-2.555641816996525e-10,e=1.5076572693500548e-9+e*n,e=e*n-3.789465440126737e-9,e=7.61570120807834e-9+e*n,e=e*n-1.496002662714924e-8,e=2.914795345090108e-8+e*n,e=e*n-6.771199775845234e-8,e=2.2900482228026655e-7+e*n,e=e*n-9.9298272942317e-7,e=4526062597223154e-21+e*n,e=e*n-1968177810553167e-20,e=7599527703001776e-20+e*n,e=e*n-.00021503011930044477,e=e*n-.00013871931833623122,e=1.0103004648645344+e*n,e=4.849906401408584+e*n):e=1/0,e*t}(2*t-1)}function as(t,e){let n,i;const r={mean(t){return arguments.length?(n=t||0,r):n},stdev(t){return arguments.length?(i=null==t?1:t,r):i},sample:()=>ns(n,i),pdf:t=>is(t,n,i),cdf:t=>rs(t,n,i),icdf:t=>os(t,n,i)};return r.mean(t).stdev(e)}function ss(e,n){const i=as();let r=0;const o={data(t){return arguments.length?(e=t,r=t?t.length:0,o.bandwidth(n)):e},bandwidth(t){return arguments.length?(!(n=t)&&e&&(n=Xa(e)),o):n},sample:()=>e[~~(t.random()*r)]+n*i.sample(),pdf(t){let o=0,a=0;for(;als(n,i),pdf:t=>us(t,n,i),cdf:t=>cs(t,n,i),icdf:t=>fs(t,n,i)};return r.mean(t).stdev(e)}function hs(e,n){let i,r=0;const o={weights(t){return arguments.length?(i=function(t){const e=[];let n,i=0;for(n=0;n=e&&t<=n?1/(n-e):0}function gs(t,e,n){return null==n&&(n=null==e?1:e,e=0),tn?1:(t-e)/(n-e)}function ys(t,e,n){return null==n&&(n=null==e?1:e,e=0),t>=0&&t<=1?e+t*(n-e):NaN}function vs(t,e){let n,i;const r={min(t){return arguments.length?(n=t||0,r):n},max(t){return arguments.length?(i=null==t?1:t,r):i},sample:()=>ps(n,i),pdf:t=>ms(t,n,i),cdf:t=>gs(t,n,i),icdf:t=>ys(t,n,i)};return null==e&&(e=null==t?1:t,t=0),r.min(t).max(e)}function xs(t,e,n,i){const r=i-t*t,o=Math.abs(r)<1e-24?0:(n-t*e)/r;return[e-o*t,o]}function bs(t,e,n,i){t=t.filter((t=>{let i=e(t),r=n(t);return null!=i&&(i=+i)>=i&&null!=r&&(r=+r)>=r})),i&&t.sort(((t,n)=>e(t)-e(n)));const r=t.length,o=new Float64Array(r),a=new Float64Array(r);let s,l,u,c=0,f=0,d=0;for(u of t)o[c]=s=+e(u),a[c]=l=+n(u),++c,f+=(s-f)/c,d+=(l-d)/c;for(c=0;c=r&&null!=o&&(o=+o)>=o&&i(r,o,++a)}function ws(t,e,n,i,r){let o=0,a=0;return _s(t,e,n,((t,e)=>{const n=e-r(t),s=e-i;o+=n*n,a+=s*s})),1-o/a}function ks(t,e,n){let i=0,r=0,o=0,a=0,s=0;_s(t,e,n,((t,e)=>{++s,i+=(t-i)/s,r+=(e-r)/s,o+=(t*e-o)/s,a+=(t*t-a)/s}));const l=xs(i,r,o,a),u=t=>l[0]+l[1]*t;return{coef:l,predict:u,rSquared:ws(t,e,n,r,u)}}function As(t,e,n){let i=0,r=0,o=0,a=0,s=0;_s(t,e,n,((t,e)=>{++s,t=Math.log(t),i+=(t-i)/s,r+=(e-r)/s,o+=(t*e-o)/s,a+=(t*t-a)/s}));const l=xs(i,r,o,a),u=t=>l[0]+l[1]*Math.log(t);return{coef:l,predict:u,rSquared:ws(t,e,n,r,u)}}function Ds(t,e,n){const[i,r,o,a]=bs(t,e,n);let s,l,u,c=0,f=0,d=0,h=0,p=0;_s(t,e,n,((t,e)=>{s=i[p++],l=Math.log(e),u=s*e,c+=(e*l-c)/p,f+=(u-f)/p,d+=(u*l-d)/p,h+=(s*u-h)/p}));const[m,g]=xs(f/a,c/a,d/a,h/a),y=t=>Math.exp(m+g*(t-o));return{coef:[Math.exp(m-g*o),g],predict:y,rSquared:ws(t,e,n,a,y)}}function Ss(t,e,n){let i=0,r=0,o=0,a=0,s=0,l=0;_s(t,e,n,((t,e)=>{const n=Math.log(t),u=Math.log(e);++l,i+=(n-i)/l,r+=(u-r)/l,o+=(n*u-o)/l,a+=(n*n-a)/l,s+=(e-s)/l}));const u=xs(i,r,o,a),c=t=>u[0]*Math.pow(t,u[1]);return u[0]=Math.exp(u[0]),{coef:u,predict:c,rSquared:ws(t,e,n,s,c)}}function Ms(t,e,n){const[i,r,o,a]=bs(t,e,n),s=i.length;let l,u,c,f,d=0,h=0,p=0,m=0,g=0;for(l=0;lx*(t-=o)*t+b*t+_+a;return{coef:[_-b*o+x*o*o+a,b-2*x*o,x],predict:w,rSquared:ws(t,e,n,a,w)}}function Es(t,e,n,i){if(1===i)return ks(t,e,n);if(2===i)return Ms(t,e,n);const[r,o,a,s]=bs(t,e,n),l=r.length,u=[],c=[],f=i+1;let d,h,p,m,g;for(d=0;dMath.abs(t[i][a])&&(a=r);for(o=i;o=i;o--)t[o][r]-=t[o][i]*t[i][r]/t[i][i]}for(r=e-1;r>=0;--r){for(s=0,o=r+1;o{t-=a;let e=s+y[0]+y[1]*t+y[2]*t*t;for(d=3;d=0;--o)for(s=e[o],l=1,r[o]+=s,a=1;a<=o;++a)l*=(o+1-a)/a,r[o-a]+=s*Math.pow(n,a)*l;return r[0]+=i,r}const Fs=2,Ns=1e-12;function Os(t,e,n,i){const[r,o,a,s]=bs(t,e,n,!0),l=r.length,u=Math.max(2,~~(i*l)),c=new Float64Array(l),f=new Float64Array(l),d=new Float64Array(l).fill(1);for(let t=-1;++t<=Fs;){const e=[0,u-1];for(let t=0;tr[a]-n?i:a;let l=0,u=0,h=0,p=0,m=0;const g=1/Math.abs(r[s]-n||1);for(let t=i;t<=a;++t){const e=r[t],i=o[t],a=zs(Math.abs(n-e)*g)*d[t],s=e*a;l+=a,u+=s,h+=i*a,p+=i*s,m+=e*s}const[y,v]=xs(u/l,h/l,p/l,m/l);c[t]=y+v*n,f[t]=Math.abs(o[t]-c[t]),Ts(r,t+1,e)}if(t===Fs)break;const n=Se(f);if(Math.abs(n)=1?Ns:(e=1-t*t)*e}return function(t,e,n,i){const r=t.length,o=[];let a,s=0,l=0,u=[];for(;s=t.length))for(;e>r&&t[o]-i<=i-t[r];)n[0]=++r,n[1]=o,++o}const Ps=.5*Math.PI/180;function Rs(t,e,n,i){n=n||25,i=Math.max(n,i||200);const r=e=>[e,t(e)],o=e[0],a=e[1],s=a-o,l=s/i,u=[r(o)],c=[];if(n===i){for(let t=1;t0;)c.push(r(o+t/n*s));let f=u[0],d=c[c.length-1];const h=1/s,p=function(t,e){let n=t,i=t;const r=e.length;for(let t=0;ti&&(i=r)}return 1/(i-n)}(f[1],c);for(;d;){const t=r((f[0]+d[0])/2);t[0]-f[0]>=l&&Bs(f,t,d,h,p)>Ps?c.push(t):(f=d,u.push(d),c.pop()),d=c[c.length-1]}return u}function Bs(t,e,n,i,r){const o=Math.atan2(r*(n[1]-t[1]),i*(n[0]-t[0])),a=Math.atan2(r*(e[1]-t[1]),i*(e[0]-t[0]));return Math.abs(o-a)}function js(t){return t&&t.length?1===t.length?t[0]:(e=t,t=>{const n=e.length;let i=1,r=String(e[0](t));for(;i{},Us={init:Ls,add:Ls,rem:Ls,idx:0},qs={values:{init:t=>t.cell.store=!0,value:t=>t.cell.data.values(),idx:-1},count:{value:t=>t.cell.num},__count__:{value:t=>t.missing+t.valid},missing:{value:t=>t.missing},valid:{value:t=>t.valid},sum:{init:t=>t.sum=0,value:t=>t.sum,add:(t,e)=>t.sum+=+e,rem:(t,e)=>t.sum-=e},product:{init:t=>t.product=1,value:t=>t.valid?t.product:void 0,add:(t,e)=>t.product*=e,rem:(t,e)=>t.product/=e},mean:{init:t=>t.mean=0,value:t=>t.valid?t.mean:void 0,add:(t,e)=>(t.mean_d=e-t.mean,t.mean+=t.mean_d/t.valid),rem:(t,e)=>(t.mean_d=e-t.mean,t.mean-=t.valid?t.mean_d/t.valid:t.mean)},average:{value:t=>t.valid?t.mean:void 0,req:["mean"],idx:1},variance:{init:t=>t.dev=0,value:t=>t.valid>1?t.dev/(t.valid-1):void 0,add:(t,e)=>t.dev+=t.mean_d*(e-t.mean),rem:(t,e)=>t.dev-=t.mean_d*(e-t.mean),req:["mean"],idx:1},variancep:{value:t=>t.valid>1?t.dev/t.valid:void 0,req:["variance"],idx:2},stdev:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:t=>t.valid>1?Math.sqrt(t.dev/t.valid):void 0,req:["variance"],idx:2},stderr:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid*(t.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:t=>t.cell.data.distinct(t.get),req:["values"],idx:3},ci0:{value:t=>t.cell.data.ci0(t.get),req:["values"],idx:3},ci1:{value:t=>t.cell.data.ci1(t.get),req:["values"],idx:3},median:{value:t=>t.cell.data.q2(t.get),req:["values"],idx:3},q1:{value:t=>t.cell.data.q1(t.get),req:["values"],idx:3},q3:{value:t=>t.cell.data.q3(t.get),req:["values"],idx:3},min:{init:t=>t.min=void 0,value:t=>t.min=Number.isNaN(t.min)?t.cell.data.min(t.get):t.min,add:(t,e)=>{(e{e<=t.min&&(t.min=NaN)},req:["values"],idx:4},max:{init:t=>t.max=void 0,value:t=>t.max=Number.isNaN(t.max)?t.cell.data.max(t.get):t.max,add:(t,e)=>{(e>t.max||void 0===t.max)&&(t.max=e)},rem:(t,e)=>{e>=t.max&&(t.max=NaN)},req:["values"],idx:4},argmin:{init:t=>t.argmin=void 0,value:t=>t.argmin||t.cell.data.argmin(t.get),add:(t,e,n)=>{e{e<=t.min&&(t.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:t=>t.argmax=void 0,value:t=>t.argmax||t.cell.data.argmax(t.get),add:(t,e,n)=>{e>t.max&&(t.argmax=n)},rem:(t,e)=>{e>=t.max&&(t.argmax=void 0)},req:["max","values"],idx:3}},Is=Object.keys(qs).filter((t=>"__count__"!==t));function Ws(t,e){return qs[t](e)}function Hs(t,e){return t.idx-e.idx}function Vs(){this.valid=0,this.missing=0,this._ops.forEach((t=>t.init(this)))}function Gs(t,e){null!=t&&""!==t?t==t&&(++this.valid,this._ops.forEach((n=>n.add(this,t,e)))):++this.missing}function Ys(t,e){null!=t&&""!==t?t==t&&(--this.valid,this._ops.forEach((n=>n.rem(this,t,e)))):--this.missing}function Xs(t){return this._out.forEach((e=>t[e.out]=e.value(this))),t}function Js(t,e){const n=e||f,i=function(t){const e={};t.forEach((t=>e[t.name]=t));const n=t=>{t.req&&t.req.forEach((t=>{e[t]||n(e[t]=qs[t]())}))};return t.forEach(n),Object.values(e).sort(Hs)}(t),r=t.slice().sort(Hs);function o(t){this._ops=i,this._out=r,this.cell=t,this.init()}return o.prototype.init=Vs,o.prototype.add=Gs,o.prototype.rem=Ys,o.prototype.set=Xs,o.prototype.get=n,o.fields=t.map((t=>t.out)),o}function Qs(t){this._key=t?u(t):ca,this.reset()}[...Is,"__count__"].forEach((t=>{qs[t]=function(t,e){return n=>ot({name:t,out:n||t},Us,e)}(t,qs[t])}));const Zs=Qs.prototype;function Ks(t){qa.call(this,null,t),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}function tl(t){qa.call(this,null,t)}function el(t,e,n){const i=t;let r=e||[],o=n||[],a={},s=0;return{add:t=>o.push(t),remove:t=>a[i(t)]=++s,size:()=>r.length,data:(t,e)=>(s&&(r=r.filter((t=>!a[i(t)])),a={},s=0),e&&t&&r.sort(t),o.length&&(r=t?Dt(t,r,o.sort(t)):r.concat(o),o=[]),r)}}function nl(t){qa.call(this,[],t)}function il(t){ka.call(this,null,rl,t)}function rl(t){return this.value&&!t.modified()?this.value:Z(t.fields,t.orders)}function ol(t){qa.call(this,null,t)}function al(t){qa.call(this,null,t)}Zs.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},Zs.add=function(t){this._add.push(t)},Zs.rem=function(t){this._rem.push(t)},Zs.values=function(){if(this._get=null,0===this._rem.length)return this._add;const t=this._add,e=this._rem,n=this._key,i=t.length,r=e.length,o=Array(i-r),a={};let s,l,u;for(s=0;s=0;)i=t(e[r])+"",ut(n,i)||(n[i]=1,++o);return o},Zs.extent=function(t){if(this._get!==t||!this._ext){const e=this.values(),n=st(e,t);this._ext=[e[n[0]],e[n[1]]],this._get=t}return this._ext},Zs.argmin=function(t){return this.extent(t)[0]||{}},Zs.argmax=function(t){return this.extent(t)[1]||{}},Zs.min=function(t){const e=this.extent(t)[0];return null!=e?t(e):void 0},Zs.max=function(t){const e=this.extent(t)[1];return null!=e?t(e):void 0},Zs.quartile=function(t){return this._get===t&&this._q||(this._q=Ya(this.values(),t),this._get=t),this._q},Zs.q1=function(t){return this.quartile(t)[0]},Zs.q2=function(t){return this.quartile(t)[1]},Zs.q3=function(t){return this.quartile(t)[2]},Zs.ci=function(t){return this._get===t&&this._ci||(this._ci=Qa(this.values(),1e3,.05,t),this._get=t),this._ci},Zs.ci0=function(t){return this.ci(t)[0]},Zs.ci1=function(t){return this.ci(t)[1]},Ks.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Is},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]},ht(Ks,qa,{transform(t,e){const n=this,i=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=t.modified();return n.stamp=i.stamp,n.value&&(r||e.modified(n._inputs,!0))?(n._prev=n.value,n.value=r?n.init(t):{},e.visit(e.SOURCE,(t=>n.add(t)))):(n.value=n.value||n.init(t),e.visit(e.REM,(t=>n.rem(t))),e.visit(e.ADD,(t=>n.add(t)))),i.modifies(n._outputs),n._drop=!1!==t.drop,t.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),e.clean()&&n._drop&&i.clean(!0).runAfter((()=>this.clean())),n.changes(i)},cross(){const t=this,e=t.value,n=t._dnames,i=n.map((()=>({}))),r=n.length;function o(t){let e,o,a,s;for(e in t)for(a=t[e].tuple,o=0;o{const e=n(t);return a(t),r.push(e),e})),this.cellkey=t.key?t.key:js(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const l=t.fields||[null],u=t.ops||["count"],c=t.as||[],f=l.length,d={};let h,p,m,g,y,v;for(f!==u.length&&s("Unmatched number of fields and aggregate ops."),v=0;vJs(t,t.field))),{}},cellkey:js(),cell(t,e){let n=this.value[t];return n?0===n.num&&this._drop&&n.stamp{const e=r(t);t[l]=e,t[u]=null==e?null:o+a*(1+(e-o)/a)}:t=>t[l]=r(t)),e.modifies(n?s:l)},_bins(t){if(this.value&&!t.modified())return this.value;const r=t.field,o=Ja(t),a=o.step;let s,l,u=o.start,c=u+Math.ceil((o.stop-u)/a)*a;null!=(s=t.anchor)&&(l=s-(u+a*Math.floor((s-u)/a)),u+=l,c+=l);const f=function(t){let e=F(r(t));return null==e?null:ec?1/0:(e=Math.max(u,Math.min(e,c-a)),u+a*Math.floor(1e-14+(e-u)/a))};return f.start=u,f.stop=o.stop,f.step=a,this.value=e(f,i(r),t.name||"bin_"+n(r))}}),nl.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},ht(nl,qa,{transform(t,e){const n=e.fork(e.ALL),i=el(ca,this.value,n.materialize(n.ADD).add),r=t.sort,o=e.changed()||r&&(t.modified("sort")||e.modified(r.fields));return n.visit(n.REM,i.remove),this.modified(o),this.value=n.source=i.data(ga(r),o),e.source&&e.source.root&&(this.value.root=e.source.root),n}}),ht(il,ka),ol.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]},ht(ol,qa,{transform(t,e){const n=e=>n=>{for(var i,r=function(t,e,n){switch(e){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase()}return t.match(n)}(s(n),t.case,o)||[],l=0,u=r.length;lr[t]=1+(r[t]||0))),c=n((t=>r[t]-=1));return i?e.visit(e.SOURCE,u):(e.visit(e.ADD,u),e.visit(e.REM,c)),this._finish(e,l)},_parameterCheck(t,e){let n=!1;return!t.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(t.stopwords||"")+"$","i"),n=!0),!t.modified("pattern")&&this._match||(this._match=new RegExp(t.pattern||"[\\w']+","g"),n=!0),(t.modified("field")||e.modified(t.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(t,e){const n=this._counts,i=this._tuples||(this._tuples={}),r=e[0],o=e[1],a=t.fork(t.NO_SOURCE|t.NO_FIELDS);let s,l,u;for(s in n)l=i[s],u=n[s]||0,!l&&u?(i[s]=l=da({}),l[r]=s,l[o]=u,a.add.push(l)):0===u?(l&&a.rem.push(l),n[s]=null,i[s]=null):l[o]!==u&&(l[o]=u,a.mod.push(l));return a.modifies(e)}}),al.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},ht(al,qa,{transform(t,e){const n=e.fork(e.NO_SOURCE),i=t.as||["a","b"],r=i[0],o=i[1],a=!this.value||e.changed(e.ADD_REM)||t.modified("as")||t.modified("filter");let s=this.value;return a?(s&&(n.rem=s),s=e.materialize(e.SOURCE).source,n.add=this.value=function(t,e,n,i){for(var r,o,a=[],s={},l=t.length,u=0;ufl(t,e)))):typeof i[n]===ul&&i[n](t[n]);return i}function dl(t){qa.call(this,null,t)}const hl=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],pl={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:hl},{name:"weights",type:"number",array:!0}]};function ml(t,e){return t?t.map(((t,i)=>e[i]||n(t))):null}function gl(t,e,n){const i=[],r=t=>t(l);let o,a,s,l,u,c;if(null==e)i.push(t.map(n));else for(o={},a=0,s=t.length;ar(e,t)),i(r),n(r))}function bl(t){qa.call(this,[void 0,void 0],t)}function _l(t,e){ka.call(this,t),this.parent=e,this.count=0}function wl(t){qa.call(this,{},t),this._keys=ft();const e=this._targets=[];e.active=0,e.forEach=t=>{for(let n=0,i=e.active;nu(t))):u(t.name,t.as)}function Dl(t){qa.call(this,ft(),t)}function Sl(t){qa.call(this,[],t)}function Ml(t){qa.call(this,[],t)}function El(t){qa.call(this,null,t)}function Cl(t){qa.call(this,[],t)}dl.Definition={type:"Density",metadata:{generates:!0},params:[{name:"extent",type:"number",array:!0,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:hl.concat(pl)},{name:"as",type:"string",array:!0,default:["value","density"]}]},ht(dl,qa,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const i=fl(t.distribution,function(t){return()=>t.materialize(t.SOURCE).source}(e)),r=t.steps||t.minsteps||25,o=t.steps||t.maxsteps||200;let a=t.method||"pdf";"pdf"!==a&&"cdf"!==a&&s("Invalid density method: "+a),t.extent||i.data||s("Missing density extent parameter."),a=i[a];const l=t.as||["value","density"],u=Rs(a,t.extent||at(i.data()),r,o).map((t=>{const e={};return e[l[0]]=t[0],e[l[1]]=t[1],da(e)}));this.value&&(n.rem=this.value),this.value=n.add=n.source=u}return n}}),yl.Definition={type:"DotBin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"step",type:"number"},{name:"smooth",type:"boolean",default:!1},{name:"as",type:"string",default:"bin"}]},ht(yl,qa,{transform(t,e){if(this.value&&!t.modified()&&!e.changed())return e;const n=e.materialize(e.SOURCE).source,i=gl(e.source,t.groupby,f),r=t.smooth||!1,o=t.field,a=t.step||((t,e)=>Et(at(t,e))/30)(n,o),s=ga(((t,e)=>o(t)-o(e))),l=t.as||"bin",u=i.length;let c,d=1/0,h=-1/0,p=0;for(;ph&&(h=e),t[++c][l]=e}return this.value={start:d,stop:h,step:a},e.reflow(!0).modifies(l)}}),ht(vl,ka),bl.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},ht(bl,qa,{transform(t,e){const i=this.value,r=t.field,o=e.changed()||e.modified(r.fields)||t.modified("field");let a=i[0],s=i[1];if((o||null==a)&&(a=1/0,s=-1/0),e.visit(o?e.SOURCE:e.ADD,(t=>{const e=F(r(t));null!=e&&(es&&(s=e))})),!Number.isFinite(a)||!Number.isFinite(s)){let t=n(r);t&&(t=` for field "${t}"`),e.dataflow.warn(`Infinite extent${t}: [${a}, ${s}]`),a=s=void 0}this.value=[a,s]}}),ht(_l,ka,{connect(t){return this.detachSubflow=t.detachSubflow,this.targets().add(t),t.source=this},add(t){this.count+=1,this.value.add.push(t)},rem(t){this.count-=1,this.value.rem.push(t)},mod(t){this.value.mod.push(t)},init(t){this.value.init(t,t.NO_SOURCE)},evaluate(){return this.value}}),ht(wl,qa,{activate(t){this._targets[this._targets.active++]=t},subflow(t,e,n,i){const r=this.value;let o,a,s=ut(r,t)&&r[t];return s?s.value.stampt&&t.count>0));this.initTargets(t)}},initTargets(t){const e=this._targets,n=e.length,i=t?t.length:0;let r=0;for(;rthis.subflow(t,r,e);return this._group=t.group||{},this.initTargets(),e.visit(e.REM,(t=>{const e=ca(t),n=o.get(e);void 0!==n&&(o.delete(e),s(n).rem(t))})),e.visit(e.ADD,(t=>{const e=i(t);o.set(ca(t),e),s(e).add(t)})),a||e.modified(i.fields)?e.visit(e.MOD,(t=>{const e=ca(t),n=o.get(e),r=i(t);n===r?s(r).mod(t):(o.set(e,r),s(n).rem(t),s(r).add(t))})):e.changed(e.MOD)&&e.visit(e.MOD,(t=>{s(o.get(ca(t))).mod(t)})),a&&e.visit(e.REFLOW,(t=>{const e=ca(t),n=o.get(e),r=i(t);n!==r&&(o.set(e,r),s(n).rem(t),s(r).add(t))})),e.clean()?n.runAfter((()=>{this.clean(),o.clean()})):o.empty>n.cleanThreshold&&n.runAfter(o.clean),e}}),ht(kl,ka),Dl.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},ht(Dl,qa,{transform(t,e){const n=e.dataflow,i=this.value,r=e.fork(),o=r.add,a=r.rem,s=r.mod,l=t.expr;let u=!0;function c(e){const n=ca(e),r=l(e,t),c=i.get(n);r&&c?(i.delete(n),o.push(e)):r||c?u&&r&&!c&&s.push(e):(i.set(n,1),a.push(e))}return e.visit(e.REM,(t=>{const e=ca(t);i.has(e)?i.delete(e):a.push(t)})),e.visit(e.ADD,(e=>{l(e,t)?o.push(e):i.set(ca(e),1)})),e.visit(e.MOD,c),t.modified()&&(u=!1,e.visit(e.REFLOW,c)),i.empty>n.cleanThreshold&&n.runAfter(i.clean),r}}),Sl.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]},ht(Sl,qa,{transform(t,e){const n=e.fork(e.NO_SOURCE),i=t.fields,r=ml(i,t.as||[]),o=t.index||null,a=r.length;return n.rem=this.value,e.visit(e.SOURCE,(t=>{const e=i.map((e=>e(t))),s=e.reduce(((t,e)=>Math.max(t,e.length)),0);let l,u,c,f=0;for(;f{for(let e,n=0;ne[i]=n(e,t)))}}),ht(Cl,qa,{transform(t,e){const n=e.fork(e.ALL),i=t.generator;let r,o,a,s=this.value,l=t.size-s.length;if(l>0){for(r=[];--l>=0;)r.push(a=da(i(t))),s.push(a);n.add=n.add.length?n.materialize(n.ADD).add.concat(r):r}else o=s.slice(0,-l),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(o):o,s=s.slice(-l);return n.source=this.value=s,n}});const Fl={value:"value",median:Se,mean:function(t,e){let n=0,i=0;if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(++n,i+=e);else{let r=-1;for(let o of t)null!=(o=e(o,++r,t))&&(o=+o)>=o&&(++n,i+=o)}if(n)return i/n},min:_e,max:be},Nl=[];function Ol(t){qa.call(this,[],t)}function zl(t){Ks.call(this,t)}function Tl(t){qa.call(this,null,t)}function Pl(t){ka.call(this,null,Rl,t)}function Rl(t){return this.value&&!t.modified()?this.value:_t(t.fields,t.flat)}function Bl(t){qa.call(this,[],t),this._pending=null}function jl(t,e,n){n.forEach(da);const i=e.fork(e.NO_FIELDS&e.NO_SOURCE);return i.rem=t.value,t.value=i.source=i.add=n,t._pending=null,i.rem.length&&i.clean(!0),i}function $l(t){qa.call(this,{},t)}function Ll(t){ka.call(this,null,Ul,t)}function Ul(t){if(this.value&&!t.modified())return this.value;const e=t.extents,n=e.length;let i,r,o=1/0,a=-1/0;for(i=0;ia&&(a=r[1]);return[o,a]}function ql(t){ka.call(this,null,Il,t)}function Il(t){return this.value&&!t.modified()?this.value:t.values.reduce(((t,e)=>t.concat(e)),[])}function Wl(t){qa.call(this,null,t)}function Hl(t){Ks.call(this,t)}function Vl(t){wl.call(this,t)}function Gl(t){qa.call(this,null,t)}function Yl(t){qa.call(this,null,t)}function Xl(t){qa.call(this,null,t)}function Jl(t){qa.call(this,null,t)}function Ql(t){qa.call(this,[],t),this.count=0}function Zl(t){qa.call(this,null,t)}function Kl(t){qa.call(this,null,t),this.modified(!0)}function tu(t){qa.call(this,null,t)}Ol.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]},ht(Ol,qa,{transform(t,e){var i,r,o,a,l,u,c,f,d,h,p=e.fork(e.ALL),m=function(t){var e,n=t.method||Fl.value;if(null!=Fl[n])return n===Fl.value?(e=void 0!==t.value?t.value:0,()=>e):Fl[n];s("Unrecognized imputation method: "+n)}(t),g=function(t){const e=t.field;return t=>t?e(t):NaN}(t),y=n(t.field),v=n(t.key),x=(t.groupby||[]).map(n),b=function(t,e,n,i){var r,o,a,s,l,u,c,f,d=t=>t(f),h=[],p=i?i.slice():[],m={},g={};for(p.forEach(((t,e)=>m[t]=e+1)),s=0,c=t.length;sn.add(t)))):(r=n.value=n.value||this.init(t),e.visit(e.REM,(t=>n.rem(t))),e.visit(e.ADD,(t=>n.add(t)))),n.changes(),e.visit(e.SOURCE,(t=>{ot(t,r[n.cellkey(t)].tuple)})),e.reflow(i).modifies(this._outputs)},changes(){const t=this._adds,e=this._mods;let n,i;for(n=0,i=this._alen;n{const n=ss(e,l)[u],i=t.counts?e.length:1;Rs(n,d||at(e),h,p).forEach((t=>{const n={};for(let t=0;t(this._pending=Y(t.data),t=>t.touch(this))));return{async:e}}return n.request(t.url,t.format).then((t=>jl(this,e,Y(t.data))))}}),$l.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]},ht($l,qa,{transform(t,e){const i=t.fields,r=t.index,o=t.values,a=null==t.default?null:t.default,l=t.modified(),u=i.length;let c,f,d,h=l?e.SOURCE:e.ADD,p=e,m=t.as;return o?(f=o.length,u>1&&!m&&s('Multi-field lookup requires explicit "as" parameter.'),m&&m.length!==u*f&&s('The "as" parameter has too few output field names.'),m=m||o.map(n),c=function(t){for(var e,n,s=0,l=0;se.modified(t.fields))),h|=d?e.MOD:0),e.visit(h,c),p.modifies(m)}}),ht(Ll,ka),ht(ql,ka),ht(Wl,qa,{transform(t,e){return this.modified(t.modified()),this.value=t,e.fork(e.NO_SOURCE|e.NO_FIELDS)}}),Hl.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:Is,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},ht(Hl,Ks,{_transform:Ks.prototype.transform,transform(t,n){return this._transform(function(t,n){const r=t.field,o=t.value,a=("count"===t.op?"__count__":t.op)||"sum",s=i(r).concat(i(o)),l=function(t,e,n){const i={},r=[];return n.visit(n.SOURCE,(e=>{const n=t(e);i[n]||(i[n]=1,r.push(n))})),r.sort(K),e?r.slice(0,e):r}(r,t.limit||0,n);return n.changed()&&t.set("__pivot__",null,null,!0),{key:t.key,groupby:t.groupby,ops:l.map((()=>a)),fields:l.map((t=>function(t,n,i,r){return e((e=>n(e)===t?i(e):NaN),r,t+"")}(t,r,o,s))),as:l.map((t=>t+"")),modified:t.modified.bind(t)}}(t,n),n)}}),ht(Vl,wl,{transform(t,e){const n=t.subflow,r=t.field,o=t=>this.subflow(ca(t),n,e,t);return(t.modified("field")||r&&e.modified(i(r)))&&s("PreFacet does not support field modification."),this.initTargets(),r?(e.visit(e.MOD,(t=>{const e=o(t);r(t).forEach((t=>e.mod(t)))})),e.visit(e.ADD,(t=>{const e=o(t);r(t).forEach((t=>e.add(da(t))))})),e.visit(e.REM,(t=>{const e=o(t);r(t).forEach((t=>e.rem(t)))}))):(e.visit(e.MOD,(t=>o(t).mod(t))),e.visit(e.ADD,(t=>o(t).add(t))),e.visit(e.REM,(t=>o(t).rem(t)))),e.clean()&&e.runAfter((()=>this.clean())),e}}),Gl.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},ht(Gl,qa,{transform(t,e){const n=e.fork(e.NO_SOURCE),i=t.fields,r=ml(t.fields,t.as||[]),o=i?(t,e)=>function(t,e,n,i){for(let r=0,o=n.length;r{const e=ca(t);n.rem.push(a[e]),a[e]=null})),e.visit(e.ADD,(t=>{const e=o(t,da({}));a[ca(t)]=e,n.add.push(e)})),e.visit(e.MOD,(t=>{n.mod.push(o(t,a[ca(t)]))})),n}}),ht(Yl,qa,{transform(t,e){return this.value=t.value,t.modified("value")?e.fork(e.NO_SOURCE|e.NO_FIELDS):e.StopPropagation}}),Xl.Definition={type:"Quantile",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"probs",type:"number",array:!0},{name:"step",type:"number",default:.01},{name:"as",type:"string",array:!0,default:["prob","value"]}]},ht(Xl,qa,{transform(t,e){const i=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=t.as||["prob","value"];if(this.value&&!t.modified()&&!e.changed())return i.source=this.value,i;const o=gl(e.materialize(e.SOURCE).source,t.groupby,t.field),a=(t.groupby||[]).map(n),s=[],l=t.step||.01,u=t.probs||Ee(l/2,1-1e-14,l),c=u.length;return o.forEach((t=>{const e=Ga(t,u);for(let n=0;n{const e=ca(t);n.rem.push(i[e]),i[e]=null})),e.visit(e.ADD,(t=>{const e=ha(t);i[ca(t)]=e,n.add.push(e)})),e.visit(e.MOD,(t=>{const e=i[ca(t)];for(const i in t)e[i]=t[i],n.modifies(i);n.mod.push(e)}))),n}}),Ql.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},ht(Ql,qa,{transform(e,n){const i=n.fork(n.NO_SOURCE),r=e.modified("size"),o=e.size,a=this.value.reduce(((t,e)=>(t[ca(e)]=1,t)),{});let s=this.value,l=this.count,u=0;function c(e){let n,r;s.length=u&&(n=s[r],a[ca(n)]&&i.rem.push(n),s[r]=e)),++l}if(n.rem.length&&(n.visit(n.REM,(t=>{const e=ca(t);a[e]&&(a[e]=-1,i.rem.push(t)),--l})),s=s.filter((t=>-1!==a[ca(t)]))),(n.rem.length||r)&&s.length{a[ca(t)]||c(t)})),u=-1),r&&s.length>o){const t=s.length-o;for(let e=0;e{a[ca(t)]&&i.mod.push(t)})),n.add.length&&n.visit(n.ADD,c),(n.add.length||u<0)&&(i.add=s.filter((t=>!a[ca(t)]))),this.count=l,this.value=i.source=s,i}}),Zl.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]},ht(Zl,qa,{transform(t,e){if(this.value&&!t.modified())return;const n=e.materialize().fork(e.MOD),i=t.as||"data";return n.rem=this.value?e.rem.concat(this.value):e.rem,this.value=Ee(t.start,t.stop,t.step||1).map((t=>{const e={};return e[i]=t,da(e)})),n.add=e.add.concat(this.value),n}}),ht(Kl,qa,{transform(t,e){return this.value=e.source,e.changed()?e.fork(e.NO_SOURCE|e.NO_FIELDS):e.StopPropagation}});const eu=["unit0","unit1"];function nu(t){qa.call(this,ft(),t)}function iu(t){qa.call(this,null,t)}tu.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:Qn,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:eu}]},ht(tu,qa,{transform(t,e){const n=t.field,r=!1!==t.interval,o="utc"===t.timezone,a=this._floor(t,e),s=(o?Mi:Si)(a.unit).offset,l=t.as||eu,u=l[0],c=l[1],f=a.step;let d=a.start||1/0,h=a.stop||-1/0,p=e.ADD;return(t.modified()||e.changed(e.REM)||e.modified(i(n)))&&(p=(e=e.reflow(!0)).SOURCE,d=1/0,h=-1/0),e.visit(p,(t=>{const e=n(t);let i,o;null==e?(t[u]=null,r&&(t[c]=null)):(t[u]=i=o=a(e),r&&(t[c]=o=s(i,f)),ih&&(h=o))})),a.start=d,a.stop=h,e.modifies(r?l:u)},_floor(t,e){const n="utc"===t.timezone,{units:i,step:r}=t.units?{units:t.units,step:t.step||1}:Ii({extent:t.extent||at(e.materialize(e.SOURCE).source,t.field),maxbins:t.maxbins}),o=Kn(i),a=this.value||{},s=(n?ki:bi)(o,r);return s.unit=C(o),s.units=o,s.step=r,s.start=a.start,s.stop=a.stop,this.value=s}}),ht(nu,qa,{transform(t,e){const n=e.dataflow,i=t.field,r=this.value,o=t=>r.set(i(t),t);let a=!0;return t.modified("field")||e.modified(i.fields)?(r.clear(),e.visit(e.SOURCE,o)):e.changed()?(e.visit(e.REM,(t=>r.delete(i(t)))),e.visit(e.ADD,o)):a=!1,this.modified(a),r.empty>n.cleanThreshold&&n.runAfter(r.clean),e.fork()}}),ht(iu,qa,{transform(t,e){(!this.value||t.modified("field")||t.modified("sort")||e.changed()||t.sort&&e.modified(t.sort.fields))&&(this.value=(t.sort?e.source.slice().sort(ga(t.sort)):e.source).map(t.field))}});const ru={row_number:function(){return{next:t=>t.index+1}},rank:function(){let t;return{init:()=>t=1,next:e=>{const n=e.index,i=e.data;return n&&e.compare(i[n-1],i[n])?t=n+1:t}}},dense_rank:function(){let t;return{init:()=>t=1,next:e=>{const n=e.index,i=e.data;return n&&e.compare(i[n-1],i[n])?++t:t}}},percent_rank:function(){const t=ru.rank(),e=t.next;return{init:t.init,next:t=>(e(t)-1)/(t.data.length-1)}},cume_dist:function(){let t;return{init:()=>t=0,next:e=>{const n=e.data,i=e.compare;let r=e.index;if(t0||s("ntile num must be greater than zero.");const n=ru.cume_dist(),i=n.next;return{init:n.init,next:t=>Math.ceil(e*i(t))}},lag:function(t,e){return e=+e||1,{next:n=>{const i=n.index-e;return i>=0?t(n.data[i]):null}}},lead:function(t,e){return e=+e||1,{next:n=>{const i=n.index+e,r=n.data;return it(e.data[e.i0])}},last_value:function(t){return{next:e=>t(e.data[e.i1-1])}},nth_value:function(t,e){return(e=+e)>0||s("nth_value nth must be greater than zero."),{next:n=>{const i=n.i0+(e-1);return ie=null,next:n=>{const i=t(n.data[n.index]);return null!=i?e=i:e}}},next_value:function(t){let e,n;return{init:()=>(e=null,n=-1),next:i=>{const r=i.data;return i.index<=n?e:(n=function(t,e,n){for(let i=e.length;nc[t]=1))}g(t.sort),e.forEach(((t,e)=>{const i=r[e],c=n(i),y=$s(t,c,a[e]);if(g(i),l.push(y),ut(ru,t))u.push(function(t,e,n,i){const r=ru[t](e,n);return{init:r.init||d,update:function(t,e){e[i]=r.next(t)}}}(t,r[e],o[e],y));else{if(null==i&&"count"!==t&&s("Null aggregate field specified."),"count"===t)return void h.push(y);m=!1;let e=f[c];e||(e=f[c]=[],e.field=i,p.push(e)),e.push(Ws(t,y))}})),(h.length||p.length)&&(this.cell=function(t,e,n){t=t.map((t=>Js(t,t.field)));const i={num:0,agg:null,store:!1,count:e};if(!n)for(var r=t.length,o=i.agg=Array(r),a=0;a0&&!r(o[n],o[n-1])&&(t.i0=e.left(o,o[n])),it.init())),this.cell&&this.cell.init()},su.update=function(t,e){const n=this.cell,i=this.windows,r=t.data,o=i&&i.length;let a;if(n){for(a=t.p0;athis.group(r(t));let a=this.state;a&&!n||(a=this.state=new au(t)),n||e.modified(a.inputs)?(this.value={},e.visit(e.SOURCE,(t=>o(t).add(t)))):(e.visit(e.REM,(t=>o(t).remove(t))),e.visit(e.ADD,(t=>o(t).add(t))));for(let e=0,n=this._mlen;e=1?ku:t<=-1?-ku:Math.asin(t)}const Su=Math.PI,Mu=2*Su,Eu=1e-6,Cu=Mu-Eu;function Fu(t){this._+=t[0];for(let e=1,n=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return Fu;const n=10**e;return function(t){this._+=t[0];for(let e=1,i=t.length;eEu)if(Math.abs(c*s-l*u)>Eu&&r){let d=n-o,h=i-a,p=s*s+l*l,m=d*d+h*h,g=Math.sqrt(p),y=Math.sqrt(f),v=r*Math.tan((Su-Math.acos((p+f-m)/(2*g*y)))/2),x=v/y,b=v/g;Math.abs(x-1)>Eu&&this._append`L${t+x*u},${e+x*c}`,this._append`A${r},${r},0,0,${+(c*d>u*h)},${this._x1=t+b*s},${this._y1=e+b*l}`}else this._append`L${this._x1=t},${this._y1=e}`}arc(t,e,n,i,r,o){if(t=+t,e=+e,o=!!o,(n=+n)<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(i),s=n*Math.sin(i),l=t+a,u=e+s,c=1^o,f=o?i-r:r-i;null===this._x1?this._append`M${l},${u}`:(Math.abs(this._x1-l)>Eu||Math.abs(this._y1-u)>Eu)&&this._append`L${l},${u}`,n&&(f<0&&(f=f%Mu+Mu),f>Cu?this._append`A${n},${n},0,1,${c},${t-a},${e-s}A${n},${n},0,1,${c},${this._x1=l},${this._y1=u}`:f>Eu&&this._append`A${n},${n},0,${+(f>=Su)},${c},${this._x1=t+n*Math.cos(r)},${this._y1=e+n*Math.sin(r)}`)}rect(t,e,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};function Ou(){return new Nu}function zu(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(null==n)e=null;else{const t=Math.floor(n);if(!(t>=0))throw new RangeError(`invalid digits: ${n}`);e=t}return t},()=>new Nu(e)}function Tu(t){return t.innerRadius}function Pu(t){return t.outerRadius}function Ru(t){return t.startAngle}function Bu(t){return t.endAngle}function ju(t){return t&&t.padAngle}function $u(t,e,n,i,r,o,a){var s=t-n,l=e-i,u=(a?o:-o)/bu(s*s+l*l),c=u*l,f=-u*s,d=t+c,h=e+f,p=n+c,m=i+f,g=(d+p)/2,y=(h+m)/2,v=p-d,x=m-h,b=v*v+x*x,_=r-o,w=d*m-p*h,k=(x<0?-1:1)*bu(yu(0,_*_*b-w*w)),A=(w*x-v*k)/b,D=(-w*v-x*k)/b,S=(w*x+v*k)/b,M=(-w*v+x*k)/b,E=A-g,C=D-y,F=S-g,N=M-y;return E*E+C*C>F*F+N*N&&(A=S,D=M),{cx:A,cy:D,x01:-c,y01:-f,x11:A*(r/_-1),y11:D*(r/_-1)}}function Lu(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Uu(t){this._context=t}function qu(t){return new Uu(t)}function Iu(t){return t[0]}function Wu(t){return t[1]}function Hu(t,e){var n=hu(!0),i=null,r=qu,o=null,a=zu(s);function s(s){var l,u,c,f=(s=Lu(s)).length,d=!1;for(null==i&&(o=r(c=a())),l=0;l<=f;++l)!(l=f;--d)s.point(y[d],v[d]);s.lineEnd(),s.areaEnd()}g&&(y[c]=+t(h,c,u),v[c]=+e(h,c,u),s.point(i?+i(h,c,u):y[c],n?+n(h,c,u):v[c]))}if(p)return s=null,p+""||null}function c(){return Hu().defined(r).curve(a).context(o)}return t="function"==typeof t?t:void 0===t?Iu:hu(+t),e="function"==typeof e?e:hu(void 0===e?0:+e),n="function"==typeof n?n:void 0===n?Wu:hu(+n),u.x=function(e){return arguments.length?(t="function"==typeof e?e:hu(+e),i=null,u):t},u.x0=function(e){return arguments.length?(t="function"==typeof e?e:hu(+e),u):t},u.x1=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:hu(+t),u):i},u.y=function(t){return arguments.length?(e="function"==typeof t?t:hu(+t),n=null,u):e},u.y0=function(t){return arguments.length?(e="function"==typeof t?t:hu(+t),u):e},u.y1=function(t){return arguments.length?(n=null==t?null:"function"==typeof t?t:hu(+t),u):n},u.lineX0=u.lineY0=function(){return c().x(t).y(e)},u.lineY1=function(){return c().x(t).y(n)},u.lineX1=function(){return c().x(i).y(e)},u.defined=function(t){return arguments.length?(r="function"==typeof t?t:hu(!!t),u):r},u.curve=function(t){return arguments.length?(a=t,null!=o&&(s=a(o)),u):a},u.context=function(t){return arguments.length?(null==t?o=s=null:s=a(o=t),u):o},u}Ou.prototype=Nu.prototype,Uu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};var Gu={draw(t,e){const n=bu(e/wu);t.moveTo(n,0),t.arc(0,0,n,0,Au)}};function Yu(){}function Xu(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function Ju(t){this._context=t}function Qu(t){this._context=t}function Zu(t){this._context=t}function Ku(t,e){this._basis=new Ju(t),this._beta=e}Ju.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Xu(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Xu(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Qu.prototype={areaStart:Yu,areaEnd:Yu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Xu(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Zu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:Xu(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Ku.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var i,r=t[0],o=e[0],a=t[n]-r,s=e[n]-o,l=-1;++l<=n;)i=l/n,this._basis.point(this._beta*t[l]+(1-this._beta)*(r+i*a),this._beta*e[l]+(1-this._beta)*(o+i*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var tc=function t(e){function n(t){return 1===e?new Ju(t):new Ku(t,e)}return n.beta=function(e){return t(+e)},n}(.85);function ec(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function nc(t,e){this._context=t,this._k=(1-e)/6}nc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:ec(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:ec(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var ic=function t(e){function n(t){return new nc(t,e)}return n.tension=function(e){return t(+e)},n}(0);function rc(t,e){this._context=t,this._k=(1-e)/6}rc.prototype={areaStart:Yu,areaEnd:Yu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:ec(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var oc=function t(e){function n(t){return new rc(t,e)}return n.tension=function(e){return t(+e)},n}(0);function ac(t,e){this._context=t,this._k=(1-e)/6}ac.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ec(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var sc=function t(e){function n(t){return new ac(t,e)}return n.tension=function(e){return t(+e)},n}(0);function lc(t,e,n){var i=t._x1,r=t._y1,o=t._x2,a=t._y2;if(t._l01_a>_u){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,r=(r*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>_u){var u=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*u+t._x1*t._l23_2a-e*t._l12_2a)/c,a=(a*u+t._y1*t._l23_2a-n*t._l12_2a)/c}t._context.bezierCurveTo(i,r,o,a,t._x2,t._y2)}function uc(t,e){this._context=t,this._alpha=e}uc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:lc(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var cc=function t(e){function n(t){return e?new uc(t,e):new nc(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function fc(t,e){this._context=t,this._alpha=e}fc.prototype={areaStart:Yu,areaEnd:Yu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:lc(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var dc=function t(e){function n(t){return e?new fc(t,e):new rc(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function hc(t,e){this._context=t,this._alpha=e}hc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:lc(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var pc=function t(e){function n(t){return e?new hc(t,e):new ac(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function mc(t){this._context=t}function gc(t){return t<0?-1:1}function yc(t,e,n){var i=t._x1-t._x0,r=e-t._x1,o=(t._y1-t._y0)/(i||r<0&&-0),a=(n-t._y1)/(r||i<0&&-0),s=(o*r+a*i)/(i+r);return(gc(o)+gc(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function vc(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function xc(t,e,n){var i=t._x0,r=t._y0,o=t._x1,a=t._y1,s=(o-i)/3;t._context.bezierCurveTo(i+s,r+s*e,o-s,a-s*n,o,a)}function bc(t){this._context=t}function _c(t){this._context=new wc(t)}function wc(t){this._context=t}function kc(t){this._context=t}function Ac(t){var e,n,i=t.length-1,r=new Array(i),o=new Array(i),a=new Array(i);for(r[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e=0;--e)r[e]=(a[e]-r[e+1])/o[e];for(o[i-1]=(t[i]+r[i-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}};const Mc=()=>"undefined"!=typeof Image?Image:null;function Ec(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function Cc(t,e){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof e?this.interpolator(e):this.range(e)}return this}const Fc=Symbol("implicit");function Nc(){var t=new InternMap,e=[],n=[],i=Fc;function r(r){let o=t.get(r);if(void 0===o){if(i!==Fc)return i;t.set(r,o=e.push(r)-1)}return n[o%n.length]}return r.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new InternMap;for(const i of n)t.has(i)||t.set(i,e.push(i)-1);return r},r.range=function(t){return arguments.length?(n=Array.from(t),r):n.slice()},r.unknown=function(t){return arguments.length?(i=t,r):i},r.copy=function(){return Nc(e,n).unknown(i)},Ec.apply(r,arguments),r}function Oc(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function zc(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function Tc(){}var Pc=.7,Rc=1/Pc,Bc="\\s*([+-]?\\d+)\\s*",jc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",$c="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Lc=/^#([0-9a-f]{3,8})$/,Uc=new RegExp(`^rgb\\(${Bc},${Bc},${Bc}\\)$`),qc=new RegExp(`^rgb\\(${$c},${$c},${$c}\\)$`),Ic=new RegExp(`^rgba\\(${Bc},${Bc},${Bc},${jc}\\)$`),Wc=new RegExp(`^rgba\\(${$c},${$c},${$c},${jc}\\)$`),Hc=new RegExp(`^hsl\\(${jc},${$c},${$c}\\)$`),Vc=new RegExp(`^hsla\\(${jc},${$c},${$c},${jc}\\)$`),Gc={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 Yc(){return this.rgb().formatHex()}function Xc(){return this.rgb().formatRgb()}function Jc(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Lc.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?Qc(e):3===n?new ef(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Zc(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Zc(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Uc.exec(t))?new ef(e[1],e[2],e[3],1):(e=qc.exec(t))?new ef(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Ic.exec(t))?Zc(e[1],e[2],e[3],e[4]):(e=Wc.exec(t))?Zc(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Hc.exec(t))?lf(e[1],e[2]/100,e[3]/100,1):(e=Vc.exec(t))?lf(e[1],e[2]/100,e[3]/100,e[4]):Gc.hasOwnProperty(t)?Qc(Gc[t]):"transparent"===t?new ef(NaN,NaN,NaN,0):null}function Qc(t){return new ef(t>>16&255,t>>8&255,255&t,1)}function Zc(t,e,n,i){return i<=0&&(t=e=n=NaN),new ef(t,e,n,i)}function Kc(t){return t instanceof Tc||(t=Jc(t)),t?new ef((t=t.rgb()).r,t.g,t.b,t.opacity):new ef}function tf(t,e,n,i){return 1===arguments.length?Kc(t):new ef(t,e,n,null==i?1:i)}function ef(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function nf(){return`#${sf(this.r)}${sf(this.g)}${sf(this.b)}`}function rf(){const t=of(this.opacity);return`${1===t?"rgb(":"rgba("}${af(this.r)}, ${af(this.g)}, ${af(this.b)}${1===t?")":`, ${t})`}`}function of(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function af(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function sf(t){return((t=af(t))<16?"0":"")+t.toString(16)}function lf(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new ff(t,e,n,i)}function uf(t){if(t instanceof ff)return new ff(t.h,t.s,t.l,t.opacity);if(t instanceof Tc||(t=Jc(t)),!t)return new ff;if(t instanceof ff)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,r=Math.min(e,n,i),o=Math.max(e,n,i),a=NaN,s=o-r,l=(o+r)/2;return s?(a=e===o?(n-i)/s+6*(n0&&l<1?0:a,new ff(a,s,l,t.opacity)}function cf(t,e,n,i){return 1===arguments.length?uf(t):new ff(t,e,n,null==i?1:i)}function ff(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function df(t){return(t=(t||0)%360)<0?t+360:t}function hf(t){return Math.max(0,Math.min(1,t||0))}function pf(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}Oc(Tc,Jc,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Yc,formatHex:Yc,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return uf(this).formatHsl()},formatRgb:Xc,toString:Xc}),Oc(ef,tf,zc(Tc,{brighter(t){return t=null==t?Rc:Math.pow(Rc,t),new ef(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Pc:Math.pow(Pc,t),new ef(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ef(af(this.r),af(this.g),af(this.b),of(this.opacity))},displayable(){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:nf,formatHex:nf,formatHex8:function(){return`#${sf(this.r)}${sf(this.g)}${sf(this.b)}${sf(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:rf,toString:rf})),Oc(ff,cf,zc(Tc,{brighter(t){return t=null==t?Rc:Math.pow(Rc,t),new ff(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Pc:Math.pow(Pc,t),new ff(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new ef(pf(t>=240?t-240:t+120,r,i),pf(t,r,i),pf(t<120?t+240:t-120,r,i),this.opacity)},clamp(){return new ff(df(this.h),hf(this.s),hf(this.l),of(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=of(this.opacity);return`${1===t?"hsl(":"hsla("}${df(this.h)}, ${100*hf(this.s)}%, ${100*hf(this.l)}%${1===t?")":`, ${t})`}`}}));const mf=Math.PI/180,gf=180/Math.PI,yf=.96422,vf=1,xf=.82521,bf=4/29,_f=6/29,wf=3*_f*_f,kf=_f*_f*_f;function Af(t){if(t instanceof Sf)return new Sf(t.l,t.a,t.b,t.opacity);if(t instanceof Of)return zf(t);t instanceof ef||(t=Kc(t));var e,n,i=Ff(t.r),r=Ff(t.g),o=Ff(t.b),a=Mf((.2225045*i+.7168786*r+.0606169*o)/vf);return i===r&&r===o?e=n=a:(e=Mf((.4360747*i+.3850649*r+.1430804*o)/yf),n=Mf((.0139322*i+.0971045*r+.7141733*o)/xf)),new Sf(116*a-16,500*(e-a),200*(a-n),t.opacity)}function Df(t,e,n,i){return 1===arguments.length?Af(t):new Sf(t,e,n,null==i?1:i)}function Sf(t,e,n,i){this.l=+t,this.a=+e,this.b=+n,this.opacity=+i}function Mf(t){return t>kf?Math.pow(t,1/3):t/wf+bf}function Ef(t){return t>_f?t*t*t:wf*(t-bf)}function Cf(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Ff(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Nf(t,e,n,i){return 1===arguments.length?function(t){if(t instanceof Of)return new Of(t.h,t.c,t.l,t.opacity);if(t instanceof Sf||(t=Af(t)),0===t.a&&0===t.b)return new Of(NaN,0=1?(n=1,e-1):Math.floor(n*e),r=t[i],o=t[i+1],a=i>0?t[i-1]:2*r-o,s=i()=>t;function Yf(t,e){return function(n){return t+n*e}}function Xf(t,e){var n=e-t;return n?Yf(t,n>180||n<-180?n-360*Math.round(n/360):n):Gf(isNaN(t)?e:t)}function Jf(t,e){var n=e-t;return n?Yf(t,n):Gf(isNaN(t)?e:t)}var Qf=function t(e){var n=function(t){return 1==(t=+t)?Jf:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}}(e,n,t):Gf(isNaN(e)?n:e)}}(e);function i(t,e){var i=n((t=tf(t)).r,(e=tf(e)).r),r=n(t.g,e.g),o=n(t.b,e.b),a=Jf(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=r(e),t.b=o(e),t.opacity=a(e),t+""}}return i.gamma=t,i}(1);function Zf(t){return function(e){var n,i,r=e.length,o=new Array(r),a=new Array(r),s=new Array(r);for(n=0;no&&(r=e.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,l.push({i:a,x:od(n,i)})),o=ld.lastIndex;return o180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(r(n)+"rotate(",null,i)-2,x:od(t,e)})):e&&n.push(r(n)+"rotate("+e+i)}(o.rotate,a.rotate,s,l),function(t,e,n,o){t!==e?o.push({i:n.push(r(n)+"skewX(",null,i)-2,x:od(t,e)}):e&&n.push(r(n)+"skewX("+e+i)}(o.skewX,a.skewX,s,l),function(t,e,n,i,o,a){if(t!==n||e!==i){var s=o.push(r(o)+"scale(",null,",",null,")");a.push({i:s-4,x:od(t,n)},{i:s-2,x:od(e,i)})}else 1===n&&1===i||o.push(r(o)+"scale("+n+","+i+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(t){for(var e,n=-1,i=l.length;++ne&&(n=t,t=e,e=n),function(n){return Math.max(t,Math.min(e,n))}}(a[0],a[t-1])),i=t>2?jd:Bd,r=o=null,f}function f(e){return null==e||isNaN(e=+e)?n:(r||(r=i(a.map(t),s,l)))(t(u(e)))}return f.invert=function(n){return u(e((o||(o=i(s,a.map(t),od)))(n)))},f.domain=function(t){return arguments.length?(a=Array.from(t,zd),c()):a.slice()},f.range=function(t){return arguments.length?(s=Array.from(t),c()):s.slice()},f.rangeRound=function(t){return s=Array.from(t),l=fd,c()},f.clamp=function(t){return arguments.length?(u=!!t||Pd,c()):u!==Pd},f.interpolate=function(t){return arguments.length?(l=t,c()):l},f.unknown=function(t){return arguments.length?(n=t,f):n},function(n,i){return t=n,e=i,c()}}function Ud(){return Ld()(Pd,Pd)}function qd(t,e,n,i){var r,o=xe(t,e,n);switch((i=Pe(null==i?",f":i)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(e));return null!=i.precision||isNaN(r=Ge(o,a))||(i.precision=r),qe(i,a);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(r=Ye(o,Math.max(Math.abs(t),Math.abs(e))))||(i.precision=r-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(r=Ve(o))||(i.precision=r-2*("%"===i.type))}return Ue(i)}function Id(t){var e=t.domain;return t.ticks=function(t){var n=e();return ye(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var i=e();return qd(i[0],i[i.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var i,r,o=e(),a=0,s=o.length-1,l=o[a],u=o[s],c=10;for(u0;){if((r=ve(l,u,n))===i)return o[a]=l,o[s]=u,e(o);if(r>0)l=Math.floor(l/r)*r,u=Math.ceil(u/r)*r;else{if(!(r<0))break;l=Math.ceil(l*r)/r,u=Math.floor(u*r)/r}i=r}return t},t}function Wd(t,e){var n,i=0,r=(t=t.slice()).length-1,o=t[i],a=t[r];return a-t(-e,n)}function Qd(t){const e=t(Hd,Vd),n=e.domain;let i,r,o=10;function a(){return i=function(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}(o),r=function(t){return 10===t?Xd:t===Math.E?Math.exp:e=>Math.pow(t,e)}(o),n()[0]<0?(i=Jd(i),r=Jd(r),t(Gd,Yd)):t(Hd,Vd),e}return e.base=function(t){return arguments.length?(o=+t,a()):o},e.domain=function(t){return arguments.length?(n(t),a()):n()},e.ticks=t=>{const e=n();let a=e[0],s=e[e.length-1];const l=s0){for(;f<=d;++f)for(u=1;us)break;p.push(c)}}else for(;f<=d;++f)for(u=o-1;u>=1;--u)if(c=f>0?u/r(-f):u*r(f),!(cs)break;p.push(c)}2*p.length{if(null==t&&(t=10),null==n&&(n=10===o?"s":","),"function"!=typeof n&&(o%1||null!=(n=Pe(n)).precision||(n.trim=!0),n=Ue(n)),t===1/0)return n;const a=Math.max(1,o*t/e.ticks().length);return t=>{let e=t/r(Math.round(i(t)));return e*on(Wd(n(),{floor:t=>r(Math.floor(i(t))),ceil:t=>r(Math.ceil(i(t)))})),e}function Zd(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function Kd(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function th(t){var e=1,n=t(Zd(e),Kd(e));return n.constant=function(n){return arguments.length?t(Zd(e=+n),Kd(e)):e},Id(n)}function eh(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function nh(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function ih(t){return t<0?-t*t:t*t}function rh(t){var e=t(Pd,Pd),n=1;return e.exponent=function(e){return arguments.length?1==(n=+e)?t(Pd,Pd):.5===n?t(nh,ih):t(eh(n),eh(1/n)):n},Id(e)}function oh(){var t=rh(Ld());return t.copy=function(){return $d(t,oh()).exponent(t.exponent())},Ec.apply(t,arguments),t}function ah(t){return new Date(t)}function sh(t){return t instanceof Date?+t:+new Date(+t)}function lh(t,e,n,i,r,o,a,s,l,u){var c=Ud(),f=c.invert,d=c.domain,h=u(".%L"),p=u(":%S"),m=u("%I:%M"),g=u("%I %p"),y=u("%a %d"),v=u("%b %d"),x=u("%B"),b=u("%Y");function _(t){return(l(t)0?i:1:0}const gh="linear",yh="log",vh="pow",xh="sqrt",bh="symlog",_h="time",wh="utc",kh="sequential",Ah="diverging",Dh="quantile",Sh="quantize",Mh="threshold",Eh="ordinal",Ch="point",Fh="band",Nh="bin-ordinal",Oh="continuous",zh="discrete",Th="discretizing",Ph="interpolating",Rh="temporal";function Bh(){const t=Nc().unknown(void 0),e=t.domain,n=t.range;let i,r,o=[0,1],a=!1,s=0,l=0,u=.5;function c(){const t=e().length,c=o[1]h+i*t));return n(c?p.reverse():p)}return delete t.unknown,t.domain=function(t){return arguments.length?(e(t),c()):e()},t.range=function(t){return arguments.length?(o=[+t[0],+t[1]],c()):o.slice()},t.rangeRound=function(t){return o=[+t[0],+t[1]],a=!0,c()},t.bandwidth=function(){return r},t.step=function(){return i},t.round=function(t){return arguments.length?(a=!!t,c()):a},t.padding=function(t){return arguments.length?(l=Math.max(0,Math.min(1,t)),s=l,c()):s},t.paddingInner=function(t){return arguments.length?(s=Math.max(0,Math.min(1,t)),c()):s},t.paddingOuter=function(t){return arguments.length?(l=Math.max(0,Math.min(1,t)),c()):l},t.align=function(t){return arguments.length?(u=Math.max(0,Math.min(1,t)),c()):u},t.invertRange=function(t){if(null==t[0]||null==t[1])return;const i=o[1]o[1-i])?void 0:(l=Math.max(0,oe(a,f)-1),u=f===d?l:oe(a,d)-1,f-a[l]>r+1e-10&&++l,i&&(c=l,l=s-u,u=s-c),l>u?void 0:e().slice(l,u+1))},t.invert=function(e){const n=t.invertRange([e,e]);return n?n[0]:n},t.copy=function(){return Bh().domain(e()).range(o).round(a).paddingInner(s).paddingOuter(l).align(u)},c()}function jh(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return jh(e())},t}var $h=Array.prototype.map;const Lh=Array.prototype.slice,Uh=new Map,qh=Symbol("vega_scale");function Ih(t){return t[qh]=!0,t}function Wh(t,e,n){return arguments.length>1?(Uh.set(t,function(t,e,n){const i=function(){const n=e();return n.invertRange||(n.invertRange=n.invert?function(t){return function(e){let n,i=e[0],r=e[1];return r=s&&n[o]<=l&&(u<0&&(u=o),i=o);if(!(u<0))return s=t.invertExtent(n[u]),l=t.invertExtent(n[i]),[void 0===s[0]?s[1]:s[0],void 0===l[1]?l[0]:l[1]]}}(n):void 0),n.type=t,Ih(n)};return i.metadata=Tt(Y(n)),i}(t,e,n)),this):Hh(t)?Uh.get(t):void 0}function Hh(t){return Uh.has(t)}function Vh(t,e){const n=Uh.get(t);return n&&n.metadata[e]}function Gh(t){return Vh(t,Oh)}function Yh(t){return Vh(t,zh)}function Xh(t){return Vh(t,Th)}function Jh(t){return Vh(t,yh)}function Qh(t){return Vh(t,Ph)}function Zh(t){return Vh(t,Dh)}Wh("identity",(function t(e){var n;function i(t){return null==t||isNaN(t=+t)?n:t}return i.invert=i,i.domain=i.range=function(t){return arguments.length?(e=Array.from(t,zd),i):e.slice()},i.unknown=function(t){return arguments.length?(n=t,i):n},i.copy=function(){return t(e).unknown(n)},e=arguments.length?Array.from(e,zd):[0,1],Id(i)})),Wh(gh,(function t(){var e=Ud();return e.copy=function(){return $d(e,t())},Ec.apply(e,arguments),Id(e)}),Oh),Wh(yh,(function t(){const e=Qd(Ld()).domain([1,10]);return e.copy=()=>$d(e,t()).base(e.base()),Ec.apply(e,arguments),e}),[Oh,yh]),Wh(vh,oh,Oh),Wh(xh,(function(){return oh.apply(null,arguments).exponent(.5)}),Oh),Wh(bh,(function t(){var e=th(Ld());return e.copy=function(){return $d(e,t()).constant(e.constant())},Ec.apply(e,arguments)}),Oh),Wh(_h,(function(){return Ec.apply(lh(jn,$n,zn,Nn,gn,dn,cn,ln,sn,Xi).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}),[Oh,Rh]),Wh(wh,(function(){return Ec.apply(lh(Rn,Bn,Tn,On,An,hn,fn,un,sn,Qi).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[Oh,Rh]),Wh(kh,fh,[Oh,Ph]),Wh(`${kh}-${gh}`,fh,[Oh,Ph]),Wh(`${kh}-${yh}`,(function t(){var e=Qd(uh()).domain([1,10]);return e.copy=function(){return ch(e,t()).base(e.base())},Cc.apply(e,arguments)}),[Oh,Ph,yh]),Wh(`${kh}-${vh}`,dh,[Oh,Ph]),Wh(`${kh}-${xh}`,(function(){return dh.apply(null,arguments).exponent(.5)}),[Oh,Ph]),Wh(`${kh}-${bh}`,(function t(){var e=th(uh());return e.copy=function(){return ch(e,t()).constant(e.constant())},Cc.apply(e,arguments)}),[Oh,Ph]),Wh(`${Ah}-${gh}`,(function t(){var e=Id(hh()(Pd));return e.copy=function(){return ch(e,t())},Cc.apply(e,arguments)}),[Oh,Ph]),Wh(`${Ah}-${yh}`,(function t(){var e=Qd(hh()).domain([.1,1,10]);return e.copy=function(){return ch(e,t()).base(e.base())},Cc.apply(e,arguments)}),[Oh,Ph,yh]),Wh(`${Ah}-${vh}`,ph,[Oh,Ph]),Wh(`${Ah}-${xh}`,(function(){return ph.apply(null,arguments).exponent(.5)}),[Oh,Ph]),Wh(`${Ah}-${bh}`,(function t(){var e=th(hh());return e.copy=function(){return ch(e,t()).constant(e.constant())},Cc.apply(e,arguments)}),[Oh,Ph]),Wh(Dh,(function t(){var e,n=[],i=[],r=[];function o(){var t=0,e=Math.max(1,i.length);for(r=new Array(e-1);++t0?r[e-1]:n[0],e=r?[o[r-1],i]:[o[e-1],o[e]]},s.unknown=function(t){return arguments.length?(e=t,s):s},s.thresholds=function(){return o.slice()},s.copy=function(){return t().domain([n,i]).range(a).unknown(e)},Ec.apply(Id(s),arguments)}),Th),Wh(Mh,(function t(){var e,n=[.5],i=[0,1],r=1;function o(t){return null!=t&&t<=t?i[se(n,t,0,r)]:e}return o.domain=function(t){return arguments.length?(n=Array.from(t),r=Math.min(n.length,i.length-1),o):n.slice()},o.range=function(t){return arguments.length?(i=Array.from(t),r=Math.min(n.length,i.length-1),o):i.slice()},o.invertExtent=function(t){var e=i.indexOf(t);return[n[e-1],n[e]]},o.unknown=function(t){return arguments.length?(e=t,o):e},o.copy=function(){return t().domain(n).range(i).unknown(e)},Ec.apply(o,arguments)}),Th),Wh(Nh,(function t(){let e=[],n=[];function i(t){return null==t||t!=t?void 0:n[(se(e,t)-1)%n.length]}return i.domain=function(t){return arguments.length?(e=function(t){return $h.call(t,F)}(t),i):e.slice()},i.range=function(t){return arguments.length?(n=Lh.call(t),i):n.slice()},i.tickFormat=function(t,n){return qd(e[0],C(e),null==t?10:t,n)},i.copy=function(){return t().domain(i.domain()).range(i.range())},i}),[zh,Th]),Wh(Eh,Nc,zh),Wh(Fh,Bh,zh),Wh(Ch,(function(){return jh(Bh().paddingInner(1))}),zh);const Kh=["clamp","base","constant","exponent"];function tp(t,e){const n=e[0],i=C(e)-n;return function(e){return t(n+e*i)}}function ep(t,e,n){return Nd(rp(e||"rgb",n),t)}function np(t,e){const n=new Array(e),i=e+1;for(let r=0;rt[e]?a[e](t[e]()):0)),a):it(.5)}function rp(t,e){const n=Od[function(t){return"interpolate"+t.toLowerCase().split("-").map((t=>t[0].toUpperCase()+t.slice(1))).join("")}(t)];return null!=e&&n&&n.gamma?n.gamma(e):n}function op(t){const e=t.length/6|0,n=new Array(e);for(let i=0;i1?(sp[t]=e,this):sp[t]}ap({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"},op),ap({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",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",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"},(t=>ep(op(t))));const up="symbol",cp="discrete",fp=t=>k(t)?t.map((t=>String(t))):String(t),dp=(t,e)=>t[1]-e[1],hp=(t,e)=>e[1]-t[1];function pp(t,e,n){let i;return vt(e)&&(t.bins&&(e=Math.max(e,t.bins.length)),null!=n&&(e=Math.min(e,Math.floor(Et(t.domain())/n||1)))),A(e)&&(i=e.step,e=e.interval),bt(e)&&(e=t.type===_h?Si(e):t.type==wh?Mi(e):s("Only time and utc scales accept interval strings."),i&&(e=e.every(i))),e}function mp(t,e,n){let i=t.range(),r=i[0],o=C(i),a=dp;if(r>o&&(i=o,o=r,r=i,a=hp),r=Math.floor(r),o=Math.ceil(o),e=e.map((e=>[e,t(e)])).filter((t=>r<=t[1]&&t[1]<=o)).sort(a).map((t=>t[0])),n>0&&e.length>1){const t=[e[0],C(e)];for(;e.length>n&&e.length>=3;)e=e.filter(((t,e)=>!(e%2)));e.length<3&&(e=t)}return e}function gp(t,e){return t.bins?mp(t,t.bins):t.ticks?t.ticks(e):t.domain()}function yp(t,e,n,i,r,o){const a=e.type;let s=fp;if(a===_h||r===_h)s=t.timeFormat(i);else if(a===wh||r===wh)s=t.utcFormat(i);else if(Jh(a)){const r=t.formatFloat(i);if(o||e.bins)s=r;else{const t=vp(e,n,!1);s=e=>t(e)?r(e):""}}else if(e.tickFormat){const r=e.domain();s=t.formatSpan(r[0],r[r.length-1],n,i)}else i&&(s=t.format(i));return s}function vp(t,e,n){const i=gp(t,e),r=t.base(),o=Math.log(r),a=Math.max(1,r*e/i.length),s=t=>{let e=t/Math.pow(r,Math.round(Math.log(t)/o));return e*rxp[t.type]||t.bins;function kp(t,e,n,i,r,o,a){const s=bp[e.type]&&o!==_h&&o!==wh?function(t,e,n){const i=e[bp[e.type]](),r=i.length;let o,a=r>1?i[1]-i[0]:i[0];for(o=1;o(e,n,i)=>{const r=Dp(i[n+1],Dp(i.max,1/0)),o=Ep(e,t),a=Ep(r,t);return o&&a?o+" – "+a:a?"< "+a:"≥ "+o},Dp=(t,e)=>null!=t?t:e,Sp=t=>(e,n)=>n?t(e):null,Mp=t=>e=>t(e),Ep=(t,e)=>Number.isFinite(t)?e(t):null;function Cp(t,e,n){n=n||{};const i=Math.max(3,n.maxlen||7),r=function(t,e,n,i){const r=i||e.type;return bt(n)&&function(t){return Vh(t,Rh)}(r)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),n||r!==_h?n||r!==wh?kp(t,e,5,null,n,i,!0):t.utcFormat("%A, %d %B %Y, %X UTC"):t.timeFormat("%A, %d %B %Y, %X")}(t,e,n.format,n.formatType);if(Xh(e.type)){const t=_p(e).slice(1).map(r),n=t.length;return`${n} boundar${1===n?"y":"ies"}: ${t.join(", ")}`}if(Yh(e.type)){const t=e.domain(),n=t.length;return`${n} value${1===n?"":"s"}: ${n>i?t.slice(0,i-2).map(r).join(", ")+", ending with "+t.slice(-1).map(r):t.map(r).join(", ")}`}{const t=e.domain();return`values from ${r(t[0])} to ${r(C(t))}`}}let Fp=0;const Np="p_";function Op(t){return t&&t.gradient}function zp(t,e,n){const i=t.gradient;let r=t.id,o="radial"===i?Np:"";return r||(r=t.id="gradient_"+Fp++,"radial"===i?(t.x1=Tp(t.x1,.5),t.y1=Tp(t.y1,.5),t.r1=Tp(t.r1,0),t.x2=Tp(t.x2,.5),t.y2=Tp(t.y2,.5),t.r2=Tp(t.r2,.5),o=Np):(t.x1=Tp(t.x1,0),t.y1=Tp(t.y1,0),t.x2=Tp(t.x2,1),t.y2=Tp(t.y2,0))),e[r]=t,"url("+(n||"")+"#"+o+r+")"}function Tp(t,e){return null!=t?t:e}function Pp(t,e){var n,i=[];return n={gradient:"linear",x1:t?t[0]:0,y1:t?t[1]:0,x2:e?e[0]:1,y2:e?e[1]:0,stops:i,stop:function(t,e){return i.push({offset:t,color:e}),n}}}const Rp={basis:{curve:function(t){return new Ju(t)}},"basis-closed":{curve:function(t){return new Qu(t)}},"basis-open":{curve:function(t){return new Zu(t)}},bundle:{curve:tc,tension:"beta",value:.85},cardinal:{curve:ic,tension:"tension",value:0},"cardinal-open":{curve:sc,tension:"tension",value:0},"cardinal-closed":{curve:oc,tension:"tension",value:0},"catmull-rom":{curve:cc,tension:"alpha",value:.5},"catmull-rom-closed":{curve:dc,tension:"alpha",value:.5},"catmull-rom-open":{curve:pc,tension:"alpha",value:.5},linear:{curve:qu},"linear-closed":{curve:function(t){return new mc(t)}},monotone:{horizontal:function(t){return new _c(t)},vertical:function(t){return new bc(t)}},natural:{curve:function(t){return new kc(t)}},step:{curve:function(t){return new Dc(t,.5)}},"step-after":{curve:function(t){return new Dc(t,1)}},"step-before":{curve:function(t){return new Dc(t,0)}}};function Bp(t,e,n){var i=ut(Rp,t)&&Rp[t],r=null;return i&&(r=i.curve||i[e||"vertical"],i.tension&&null!=n&&(r=r[i.tension](n))),r}const jp={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},$p=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,Lp=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,Up=/^((\s+,?\s*)|(,\s*))/,qp=/^[01]/;function Ip(t){const e=[];return(t.match($p)||[]).forEach((t=>{let n=t[0];const i=n.toLowerCase(),r=jp[i],o=function(t,e,n){const i=[];for(let r=0;e&&r1&&(m=Math.sqrt(m),n*=m,i*=m);const g=d/n,y=f/n,v=-f/i,x=d/i,b=g*s+y*l,_=v*s+x*l,w=g*t+y*e,k=v*t+x*e;let A=1/((w-b)*(w-b)+(k-_)*(k-_))-.25;A<0&&(A=0);let D=Math.sqrt(A);o==r&&(D=-D);const S=.5*(b+w)-D*(k-_),M=.5*(_+k)+D*(w-b),E=Math.atan2(_-M,b-S);let C=Math.atan2(k-M,w-S)-E;C<0&&1===o?C+=Gp:C>0&&0===o&&(C-=Gp);const F=Math.ceil(Math.abs(C/(Vp+.001))),N=[];for(let t=0;t+t}function hm(t,e,n){return Math.max(e,Math.min(t,n))}function pm(){var t=lm,e=um,n=cm,i=fm,r=dm(0),o=r,a=r,s=r,l=null;function u(u,c,f){var d,h=null!=c?c:+t.call(this,u),p=null!=f?f:+e.call(this,u),m=+n.call(this,u),g=+i.call(this,u),y=Math.min(m,g)/2,v=hm(+r.call(this,u),0,y),x=hm(+o.call(this,u),0,y),b=hm(+a.call(this,u),0,y),_=hm(+s.call(this,u),0,y);if(l||(l=d=Ou()),v<=0&&x<=0&&b<=0&&_<=0)l.rect(h,p,m,g);else{var w=h+m,k=p+g;l.moveTo(h+v,p),l.lineTo(w-x,p),l.bezierCurveTo(w-sm*x,p,w,p+sm*x,w,p+x),l.lineTo(w,k-_),l.bezierCurveTo(w,k-sm*_,w-sm*_,k,w-_,k),l.lineTo(h+b,k),l.bezierCurveTo(h+sm*b,k,h,k-sm*b,h,k-b),l.lineTo(h,p+v),l.bezierCurveTo(h,p+sm*v,h+sm*v,p,h+v,p),l.closePath()}if(d)return l=null,d+""||null}return u.x=function(e){return arguments.length?(t=dm(e),u):t},u.y=function(t){return arguments.length?(e=dm(t),u):e},u.width=function(t){return arguments.length?(n=dm(t),u):n},u.height=function(t){return arguments.length?(i=dm(t),u):i},u.cornerRadius=function(t,e,n,i){return arguments.length?(r=dm(t),o=null!=e?dm(e):r,s=null!=n?dm(n):r,a=null!=i?dm(i):o,u):r},u.context=function(t){return arguments.length?(l=null==t?null:t,u):l},u}function mm(){var t,e,n,i,r,o,a,s,l=null;function u(t,e,n){const i=n/2;if(r){var u=a-e,c=t-o;if(u||c){var f=Math.sqrt(u*u+c*c),d=(u/=f)*s,h=(c/=f)*s,p=Math.atan2(c,u);l.moveTo(o-d,a-h),l.lineTo(t-u*i,e-c*i),l.arc(t,e,i,p-Math.PI,p),l.lineTo(o+d,a+h),l.arc(o,a,s,p,p+Math.PI)}else l.arc(t,e,i,0,Gp);l.closePath()}else r=1;o=t,a=e,s=i}function c(o){var a,s,c,f=o.length,d=!1;for(null==l&&(l=c=Ou()),a=0;a<=f;++a)!(at.x||0,vm=t=>t.y||0,xm=t=>!(!1===t.defined),bm=function(){var t=Tu,e=Pu,n=hu(0),i=null,r=Ru,o=Bu,a=ju,s=null,l=zu(u);function u(){var u,c,f=+t.apply(this,arguments),d=+e.apply(this,arguments),h=r.apply(this,arguments)-ku,p=o.apply(this,arguments)-ku,m=pu(p-h),g=p>h;if(s||(s=u=l()),d_u)if(m>Au-_u)s.moveTo(d*gu(h),d*xu(h)),s.arc(0,0,d,h,p,!g),f>_u&&(s.moveTo(f*gu(p),f*xu(p)),s.arc(0,0,f,p,h,g));else{var y,v,x=h,b=p,_=h,w=p,k=m,A=m,D=a.apply(this,arguments)/2,S=D>_u&&(i?+i.apply(this,arguments):bu(f*f+d*d)),M=vu(pu(d-f)/2,+n.apply(this,arguments)),E=M,C=M;if(S>_u){var F=Du(S/f*xu(D)),N=Du(S/d*xu(D));(k-=2*F)>_u?(_+=F*=g?1:-1,w-=F):(k=0,_=w=(h+p)/2),(A-=2*N)>_u?(x+=N*=g?1:-1,b-=N):(A=0,x=b=(h+p)/2)}var O=d*gu(x),z=d*xu(x),T=f*gu(w),P=f*xu(w);if(M>_u){var R,B=d*gu(b),j=d*xu(b),$=f*gu(_),L=f*xu(_);if(m1?0:t<-1?wu:Math.acos(t)}((U*I+q*W)/(bu(U*U+q*q)*bu(I*I+W*W)))/2),V=bu(R[0]*R[0]+R[1]*R[1]);E=vu(M,(f-V)/(H-1)),C=vu(M,(d-V)/(H+1))}else E=C=0}A>_u?C>_u?(y=$u($,L,O,z,d,C,g),v=$u(B,j,T,P,d,C,g),s.moveTo(y.cx+y.x01,y.cy+y.y01),C_u&&k>_u?E>_u?(y=$u(T,P,B,j,f,-E,g),v=$u(O,z,$,L,f,-E,g),s.lineTo(y.cx+y.x01,y.cy+y.y01),Et.startAngle||0)).endAngle((t=>t.endAngle||0)).padAngle((t=>t.padAngle||0)).innerRadius((t=>t.innerRadius||0)).outerRadius((t=>t.outerRadius||0)).cornerRadius((t=>t.cornerRadius||0)),_m=Vu().x(ym).y1(vm).y0((t=>(t.y||0)+(t.height||0))).defined(xm),wm=Vu().y(vm).x1(ym).x0((t=>(t.x||0)+(t.width||0))).defined(xm),km=Hu().x(ym).y(vm).defined(xm),Am=pm().x(ym).y(vm).width((t=>t.width||0)).height((t=>t.height||0)).cornerRadius((t=>gm(t.cornerRadiusTopLeft,t.cornerRadius)||0),(t=>gm(t.cornerRadiusTopRight,t.cornerRadius)||0),(t=>gm(t.cornerRadiusBottomRight,t.cornerRadius)||0),(t=>gm(t.cornerRadiusBottomLeft,t.cornerRadius)||0)),Dm=function(t,e){let n=null,i=zu(r);function r(){let r;if(n||(n=r=i()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),r)return n=null,r+""||null}return t="function"==typeof t?t:hu(t||Gu),e="function"==typeof e?e:hu(void 0===e?64:+e),r.type=function(e){return arguments.length?(t="function"==typeof e?e:hu(e),r):t},r.size=function(t){return arguments.length?(e="function"==typeof t?t:hu(+t),r):e},r.context=function(t){return arguments.length?(n=null==t?null:t,r):n},r}().type((t=>om(t.shape||"circle"))).size((t=>gm(t.size,64))),Sm=mm().x(ym).y(vm).defined(xm).size((t=>t.size||1));function Mm(t){return t.cornerRadius||t.cornerRadiusTopLeft||t.cornerRadiusTopRight||t.cornerRadiusBottomRight||t.cornerRadiusBottomLeft}function Em(t,e,n,i){return Am.context(t)(e,n,i)}var Cm=1;function Fm(){Cm=1}function Nm(t,e,n){var i=e.clip,r=t._defs,o=e.clip_id||(e.clip_id="clip"+Cm++),a=r.clipping[o]||(r.clipping[o]={id:o});return J(i)?a.path=i(null):Mm(n)?a.path=Em(null,n,0,0):(a.width=n.width||0,a.height=n.height||0),"url(#"+o+")"}function Om(t){this.clear(),t&&this.union(t)}function zm(t){this.mark=t,this.bounds=this.bounds||new Om}function Tm(t){zm.call(this,t),this.items=this.items||[]}function Pm(t){this._pending=0,this._loader=t||ra()}function Rm(t){t._pending+=1}function Bm(t){t._pending-=1}function jm(t,e,n){if(e.stroke&&0!==e.opacity&&0!==e.strokeOpacity){const i=null!=e.strokeWidth?+e.strokeWidth:1;t.expand(i+(n?function(t,e){return t.strokeJoin&&"miter"!==t.strokeJoin?0:e}(e,i):0))}return t}Om.prototype={clone(){return new Om(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2},set(t,e,n,i){return nthis.x2&&(this.x2=t),e>this.y2&&(this.y2=e),this},expand(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(t){return this.x1*=t,this.y1*=t,this.x2*=t,this.y2*=t,this},translate(t,e){return this.x1+=t,this.x2+=t,this.y1+=e,this.y2+=e,this},rotate(t,e,n){const i=this.rotatedPoints(t,e,n);return this.clear().add(i[0],i[1]).add(i[2],i[3]).add(i[4],i[5]).add(i[6],i[7])},rotatedPoints(t,e,n){var{x1:i,y1:r,x2:o,y2:a}=this,s=Math.cos(t),l=Math.sin(t),u=e-e*s+n*l,c=n-e*l-n*s;return[s*i-l*r+u,l*i+s*r+c,s*i-l*a+u,l*i+s*a+c,s*o-l*r+u,l*o+s*r+c,s*o-l*a+u,l*o+s*a+c]},union(t){return t.x1this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},intersect(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},alignsWith(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},intersects(t){return t&&!(this.x2t.x2||this.y2t.y2)},contains(t,e){return!(tthis.x2||ethis.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}},ht(Tm,zm),Pm.prototype={pending(){return this._pending},sanitizeURL(t){const e=this;return Rm(e),e._loader.sanitize(t,{context:"href"}).then((t=>(Bm(e),t))).catch((()=>(Bm(e),null)))},loadImage(t){const e=this,n=Mc();return Rm(e),e._loader.sanitize(t,{context:"image"}).then((t=>{const i=t.href;if(!i||!n)throw{url:i};const r=new n,o=ut(t,"crossOrigin")?t.crossOrigin:"anonymous";return null!=o&&(r.crossOrigin=o),r.onload=()=>Bm(e),r.onerror=()=>Bm(e),r.src=i,r})).catch((t=>(Bm(e),{complete:!1,width:0,height:0,src:t&&t.url||""})))},ready(){const t=this;return new Promise((e=>{!function n(i){t.pending()?setTimeout((()=>{n(!0)}),10):e(i)}(!1)}))}};const $m=Gp-1e-8;let Lm,Um,qm,Im,Wm,Hm,Vm,Gm;const Ym=(t,e)=>Lm.add(t,e),Xm=(t,e)=>Ym(Um=t,qm=e),Jm=t=>Ym(t,Lm.y1),Qm=t=>Ym(Lm.x1,t),Zm=(t,e)=>Wm*t+Vm*e,Km=(t,e)=>Hm*t+Gm*e,tg=(t,e)=>Ym(Zm(t,e),Km(t,e)),eg=(t,e)=>Xm(Zm(t,e),Km(t,e));function ng(t,e){return Lm=t,e?(Im=e*Wp,Wm=Gm=Math.cos(Im),Hm=Math.sin(Im),Vm=-Hm):(Wm=Gm=1,Im=Hm=Vm=0),ig}const ig={beginPath(){},closePath(){},moveTo:eg,lineTo:eg,rect(t,e,n,i){Im?(tg(t+n,e),tg(t+n,e+i),tg(t,e+i),eg(t,e)):(Ym(t+n,e+i),Xm(t,e))},quadraticCurveTo(t,e,n,i){const r=Zm(t,e),o=Km(t,e),a=Zm(n,i),s=Km(n,i);rg(Um,r,a,Jm),rg(qm,o,s,Qm),Xm(a,s)},bezierCurveTo(t,e,n,i,r,o){const a=Zm(t,e),s=Km(t,e),l=Zm(n,i),u=Km(n,i),c=Zm(r,o),f=Km(r,o);og(Um,a,l,c,Jm),og(qm,s,u,f,Qm),Xm(c,f)},arc(t,e,n,i,r,o){if(i+=Im,r+=Im,Um=n*Math.cos(r)+t,qm=n*Math.sin(r)+e,Math.abs(r-i)>$m)Ym(t-n,e-n),Ym(t+n,e+n);else{const a=i=>Ym(n*Math.cos(i)+t,n*Math.sin(i)+e);let s,l;if(a(i),a(r),r!==i)if((i%=Gp)<0&&(i+=Gp),(r%=Gp)<0&&(r+=Gp),rr;++l,s-=Vp)a(s);else for(s=i-i%Vp+Vp,l=0;l<4&&sHp?(l=a*a+s*o,l>=0&&(l=Math.sqrt(l),u=(-a+l)/o,c=(-a-l)/o)):u=.5*s/a,0g)return!1;h>m&&(m=h)}else if(f>0){if(h0&&(t.globalAlpha=n,t.fillStyle=yg(t,e,e.fill),!0)}var xg=[];function bg(t,e,n){var i=null!=(i=e.strokeWidth)?i:1;return!(i<=0)&&(n*=null==e.strokeOpacity?1:e.strokeOpacity)>0&&(t.globalAlpha=n,t.strokeStyle=yg(t,e,e.stroke),t.lineWidth=i,t.lineCap=e.strokeCap||"butt",t.lineJoin=e.strokeJoin||"miter",t.miterLimit=e.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(e.strokeDash||xg),t.lineDashOffset=e.strokeDashOffset||0),!0)}function _g(t,e){return t.zindex-e.zindex||t.index-e.index}function wg(t){if(!t.zdirty)return t.zitems;var e,n,i,r=t.items,o=[];for(n=0,i=r.length;n=0;)if(n=e(r[i]))return n;if(r===o)for(i=(r=t.items).length;--i>=0;)if(!r[i].zindex&&(n=e(r[i])))return n;return null}function Dg(t){return function(e,n,i){kg(n,(n=>{i&&!i.intersects(n.bounds)||Mg(t,e,n,n)}))}}function Sg(t){return function(e,n,i){!n.items.length||i&&!i.intersects(n.bounds)||Mg(t,e,n.items[0],n.items)}}function Mg(t,e,n,i){var r=null==n.opacity?1:n.opacity;0!==r&&(t(e,i)||(pg(e,n),n.fill&&vg(e,n,r)&&e.fill(),n.stroke&&bg(e,n,r)&&e.stroke()))}function Eg(t){return t=t||p,function(e,n,i,r,o,a){return i*=e.pixelRatio,r*=e.pixelRatio,Ag(n,(n=>{const s=n.bounds;if((!s||s.contains(o,a))&&s)return t(e,n,i,r,o,a)?n:void 0}))}}function Cg(t,e){return function(n,i,r,o){var a,s,l=Array.isArray(i)?i[0]:i,u=null==e?l.fill:e,c=l.stroke&&n.isPointInStroke;return c&&(a=l.strokeWidth,s=l.strokeCap,n.lineWidth=null!=a?a:1,n.lineCap=null!=s?s:"butt"),!t(n,i)&&(u&&n.isPointInPath(r,o)||c&&n.isPointInStroke(r,o))}}function Fg(t){return Eg(Cg(t))}function Ng(t,e){return"translate("+t+","+e+")"}function Og(t){return"rotate("+t+")"}function zg(t){return Ng(t.x||0,t.y||0)}function Tg(t,e,n){function i(t,n){var i=n.x||0,r=n.y||0,o=n.angle||0;t.translate(i,r),o&&t.rotate(o*=Wp),t.beginPath(),e(t,n),o&&t.rotate(-o),t.translate(-i,-r)}return{type:t,tag:"path",nested:!1,attr:function(t,n){t("transform",function(t){return Ng(t.x||0,t.y||0)+(t.angle?" "+Og(t.angle):"")}(n)),t("d",e(null,n))},bound:function(t,n){return e(ng(t,n.angle),n),jm(t,n).translate(n.x||0,n.y||0)},draw:Dg(i),pick:Fg(i),isect:n||ug(i)}}var Pg=Tg("arc",(function(t,e){return bm.context(t)(e)}));function Rg(t,e,n){function i(t,n){t.beginPath(),e(t,n)}const r=Cg(i);return{type:t,tag:"path",nested:!0,attr:function(t,n){var i=n.mark.items;i.length&&t("d",e(null,i))},bound:function(t,n){var i=n.items;return 0===i.length?t:(e(ng(t),i),jm(t,i[0]))},draw:Sg(i),pick:function(t,e,n,i,o,a){var s=e.items,l=e.bounds;return!s||!s.length||l&&!l.contains(o,a)?null:(n*=t.pixelRatio,i*=t.pixelRatio,r(t,s,n,i)?s[0]:null)},isect:cg,tip:n}}var Bg=Rg("area",(function(t,e){const n=e[0],i=n.interpolate||"linear";return("horizontal"===n.orient?wm:_m).curve(Bp(i,n.orient,n.tension)).context(t)(e)}),(function(t,e){for(var n,i,r="horizontal"===t[0].orient?e[1]:e[0],o="horizontal"===t[0].orient?"y":"x",a=t.length,s=1/0;--a>=0;)!1!==t[a].defined&&(i=Math.abs(t[a][o]-r)).5&&e<1.5?.5-Math.abs(e-1):0}function Lg(t,e){const n=$g(e);t("d",Em(null,e,n,n))}function Ug(t,e,n,i){const r=$g(e);t.beginPath(),Em(t,e,(n||0)+r,(i||0)+r)}const qg=Cg(Ug),Ig=Cg(Ug,!1),Wg=Cg(Ug,!0);var Hg={type:"group",tag:"g",nested:!1,attr:function(t,e){t("transform",zg(e))},bound:function(t,e){if(!e.clip&&e.items){const n=e.items,i=n.length;for(let e=0;e{const i=e.x||0,r=e.y||0,o=e.strokeForeground,a=null==e.opacity?1:e.opacity;(e.stroke||e.fill)&&a&&(Ug(t,e,i,r),pg(t,e),e.fill&&vg(t,e,a)&&t.fill(),e.stroke&&!o&&bg(t,e,a)&&t.stroke()),t.save(),t.translate(i,r),e.clip&&jg(t,e),n&&n.translate(-i,-r),kg(e,(e=>{this.draw(t,e,n)})),n&&n.translate(i,r),t.restore(),o&&e.stroke&&a&&(Ug(t,e,i,r),pg(t,e),bg(t,e,a)&&t.stroke())}))},pick:function(t,e,n,i,r,o){if(e.bounds&&!e.bounds.contains(r,o)||!e.items)return null;const a=n*t.pixelRatio,s=i*t.pixelRatio;return Ag(e,(l=>{let u,c,f;const d=l.bounds;if(d&&!d.contains(r,o))return;c=l.x||0,f=l.y||0;const h=c+(l.width||0),p=f+(l.height||0),m=l.clip;if(m&&(rh||op))return;if(t.save(),t.translate(c,f),c=r-c,f=o-f,m&&Mm(l)&&!Wg(t,l,a,s))return t.restore(),null;const g=l.strokeForeground,y=!1!==e.interactive;return y&&g&&l.stroke&&Ig(t,l,a,s)?(t.restore(),l):(u=Ag(l,(t=>function(t,e,n){return(!1!==t.interactive||"group"===t.marktype)&&t.bounds&&t.bounds.contains(e,n)}(t,c,f)?this.pick(t,n,i,c,f):null)),!u&&y&&(l.fill||!g&&l.stroke)&&qg(t,l,a,s)&&(u=l),t.restore(),u||null)}))},isect:fg,content:function(t,e,n){t("clip-path",e.clip?Nm(n,e,e):null)},background:function(t,e){t("class","background"),t("aria-hidden",!0),Lg(t,e)},foreground:function(t,e){t("class","foreground"),t("aria-hidden",!0),e.strokeForeground?Lg(t,e):t("d","")}},Vg={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function Gg(t,e){var n=t.image;return(!n||t.url&&t.url!==n.url)&&(n={complete:!1,width:0,height:0},e.loadImage(t.url).then((e=>{t.image=e,t.image.url=t.url}))),n}function Yg(t,e){return null!=t.width?t.width:e&&e.width?!1!==t.aspect&&t.height?t.height*e.width/e.height:e.width:0}function Xg(t,e){return null!=t.height?t.height:e&&e.height?!1!==t.aspect&&t.width?t.width*e.height/e.width:e.height:0}function Jg(t,e){return"center"===t?e/2:"right"===t?e:0}function Qg(t,e){return"middle"===t?e/2:"bottom"===t?e:0}var Zg={type:"image",tag:"image",nested:!1,attr:function(t,e,n){const i=Gg(e,n),r=Yg(e,i),o=Xg(e,i),a=(e.x||0)-Jg(e.align,r),s=(e.y||0)-Qg(e.baseline,o);t("href",!i.src&&i.toDataURL?i.toDataURL():i.src||"",Vg["xmlns:xlink"],"xlink:href"),t("transform",Ng(a,s)),t("width",r),t("height",o),t("preserveAspectRatio",!1===e.aspect?"none":"xMidYMid")},bound:function(t,e){const n=e.image,i=Yg(e,n),r=Xg(e,n),o=(e.x||0)-Jg(e.align,i),a=(e.y||0)-Qg(e.baseline,r);return t.set(o,a,o+i,a+r)},draw:function(t,e,n){kg(e,(e=>{if(n&&!n.intersects(e.bounds))return;const i=Gg(e,this);let r=Yg(e,i),o=Xg(e,i);if(0===r||0===o)return;let a,s,l,u,c=(e.x||0)-Jg(e.align,r),f=(e.y||0)-Qg(e.baseline,o);!1!==e.aspect&&(s=i.width/i.height,l=e.width/e.height,s==s&&l==l&&s!==l&&(l=0;)if(!1!==t[o].defined&&(n=t[o].x-e[0])*n+(i=t[o].y-e[1])*i{if(!n||n.intersects(e.bounds)){var i=null==e.opacity?1:e.opacity;i&&ry(t,e,i)&&(pg(t,e),t.stroke())}}))},pick:Eg((function(t,e,n,i){return!!t.isPointInStroke&&ry(t,e,1)&&t.isPointInStroke(n,i)})),isect:dg},ay=Tg("shape",(function(t,e){return(e.mark.shape||e.shape).context(t)(e)})),sy=Tg("symbol",(function(t,e){return Dm.context(t)(e)}),cg);const ly=At();var uy={height:my,measureWidth:hy,estimateWidth:fy,width:fy,canvas:cy};function cy(t){uy.width=t&&sg?hy:fy}function fy(t,e){return dy(xy(t,e),my(t))}function dy(t,e){return~~(.8*t.length*e)}function hy(t,e){return my(t)<=0||!(e=xy(t,e))?0:py(e,_y(t))}function py(t,e){const n=`(${e}) ${t}`;let i=ly.get(n);return void 0===i&&(sg.font=e,i=sg.measureText(t).width,ly.set(n,i)),i}function my(t){return null!=t.fontSize?+t.fontSize||0:11}function gy(t){return null!=t.lineHeight?t.lineHeight:my(t)+2}function yy(t){return e=t.lineBreak&&t.text&&!k(t.text)?t.text.split(t.lineBreak):t.text,k(e)?e.length>1?e:e[0]:e;var e}function vy(t){const e=yy(t);return(k(e)?e.length-1:0)*gy(t)}function xy(t,e){const n=null==e?"":(e+"").trim();return t.limit>0&&n.length?function(t,e){var n=+t.limit,i=function(t){if(uy.width===hy){const e=_y(t);return t=>py(t,e)}{const e=my(t);return t=>dy(t,e)}}(t);if(i(e)>>1,i(e.slice(r))>n?s=r+1:l=r;return o+e.slice(s)}for(;s>>1),i(e.slice(0,r))Math.max(t,uy.width(e,n))),0)):i=uy.width(e,f),"center"===o?u-=i/2:"right"===o&&(u-=i),t.set(u+=s,c+=l,u+i,c+r),e.angle&&!n)t.rotate(e.angle*Wp,s,l);else if(2===n)return t.rotatedPoints(e.angle*Wp,s,l);return t}var My={type:"text",tag:"text",nested:!1,attr:function(t,e){var n,i=e.dx||0,r=(e.dy||0)+wy(e),o=Dy(e),a=o.x1,s=o.y1,l=e.angle||0;t("text-anchor",ky[e.align]||"start"),l?(n=Ng(a,s)+" "+Og(l),(i||r)&&(n+=" "+Ng(i,r))):n=Ng(a+i,s+r),t("transform",n)},bound:Sy,draw:function(t,e,n){kg(e,(e=>{var i,r,o,a,s,l,u,c=null==e.opacity?1:e.opacity;if(!(n&&!n.intersects(e.bounds)||0===c||e.fontSize<=0||null==e.text||0===e.text.length)){if(t.font=_y(e),t.textAlign=e.align||"left",r=(i=Dy(e)).x1,o=i.y1,e.angle&&(t.save(),t.translate(r,o),t.rotate(e.angle*Wp),r=o=0),r+=e.dx||0,o+=(e.dy||0)+wy(e),l=yy(e),pg(t,e),k(l))for(s=gy(e),a=0;a=0;)if(!1!==t[r].defined&&(n=t[r].x-e[0])*n+(i=t[r].y-e[1])*i<(n=t[r].size||1)*n)return t[r];return null})),Cy={arc:Pg,area:Bg,group:Hg,image:Zg,line:Kg,path:ey,rect:iy,rule:oy,shape:ay,symbol:sy,text:My,trail:Ey};function Fy(t,e,n){var i=Cy[t.mark.marktype],r=e||i.bound;return i.nested&&(t=t.mark),r(t.bounds||(t.bounds=new Om),t,n)}var Ny={mark:null};function Oy(t,e,n){var i,r,o,a,s=Cy[t.marktype],l=s.bound,u=t.items,c=u&&u.length;if(s.nested)return c?o=u[0]:(Ny.mark=t,o=Ny),a=Fy(o,l,n),e&&e.union(a)||a;if(e=e||t.bounds&&t.bounds.clear()||new Om,c)for(i=0,r=u.length;ie;)t.removeChild(n[--i]);return t}function Iy(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function Wy(t,e){const n=e.getBoundingClientRect();return[t.clientX-n.left-(e.clientLeft||0),t.clientY-n.top-(e.clientTop||0)]}function Hy(t,e){this._active=null,this._handlers={},this._loader=t||ra(),this._tooltip=e||Vy}function Vy(t,e,n,i){t.element().setAttribute("title",i||"")}function Gy(t){this._el=null,this._bgcolor=null,this._loader=new Pm(t)}By.prototype={toJSON(t){return Ty(this.root,t||0)},mark(t,e,n){const i=jy(t,e=e||this.root.items[0]);return e.items[n]=i,i.zindex&&(i.group.zdirty=!0),i}},Hy.prototype={initialize(t,e,n){return this._el=t,this._obj=n||null,this.origin(e)},element(){return this._el},canvas(){return this._el&&this._el.firstChild},origin(t){return arguments.length?(this._origin=t||[0,0],this):this._origin.slice()},scene(t){return arguments.length?(this._scene=t,this):this._scene},on(){},off(){},_handlerIndex(t,e,n){for(let i=t?t.length:0;--i>=0;)if(t[i].type===e&&(!n||t[i].handler===n))return i;return-1},handlers(t){const e=this._handlers,n=[];if(t)n.push(...e[this.eventName(t)]);else for(const t in e)n.push(...e[t]);return n},eventName(t){const e=t.indexOf(".");return e<0?t:t.slice(0,e)},handleHref(t,e,n){this._loader.sanitize(n,{context:"href"}).then((e=>{const n=new MouseEvent(t.type,t),i=$y(null,"a");for(const t in e)i.setAttribute(t,e[t]);i.dispatchEvent(n)})).catch((()=>{}))},handleTooltip(t,e,n){if(e&&null!=e.tooltip){e=function(t,e,n,i){var r,o,a=t&&t.mark;if(a&&(r=Cy[a.marktype]).tip){for((o=Wy(e,n))[0]-=i[0],o[1]-=i[1];t=t.mark.group;)o[0]-=t.x||0,o[1]-=t.y||0;t=r.tip(a.items,o)}return t}(e,t,this.canvas(),this._origin);const i=n&&e&&e.tooltip||null;this._tooltip.call(this._obj,this,t,e,i)}},getItemBoundingClientRect(t){const e=this.canvas();if(!e)return;const n=e.getBoundingClientRect(),i=this._origin,r=t.bounds,o=r.width(),a=r.height();let s=r.x1+i[0]+n.left,l=r.y1+i[1]+n.top;for(;t.mark&&(t=t.mark.group);)s+=t.x||0,l+=t.y||0;return{x:s,y:l,width:o,height:a,left:s,top:l,right:s+o,bottom:l+a}}},Gy.prototype={initialize(t,e,n,i,r){return this._el=t,this.resize(e,n,i,r)},element(){return this._el},canvas(){return this._el&&this._el.firstChild},background(t){return 0===arguments.length?this._bgcolor:(this._bgcolor=t,this)},resize(t,e,n,i){return this._width=t,this._height=e,this._origin=n||[0,0],this._scale=i||1,this},dirty(){},render(t){const e=this;return e._call=function(){e._render(t)},e._call(),e._call=null,e},_render(){},renderAsync(t){const e=this.render(t);return this._ready?this._ready.then((()=>e)):Promise.resolve(e)},_load(t,e){var n=this,i=n._loader[t](e);if(!n._ready){const t=n._call;n._ready=n._loader.ready().then((e=>{e&&t(),n._ready=null}))}return i},sanitizeURL(t){return this._load("sanitizeURL",t)},loadImage(t){return this._load("loadImage",t)}};const Yy="dragenter",Xy="dragleave",Jy="dragover",Qy="mousedown",Zy="mousemove",Ky="mouseout",tv="mouseover",ev="click",nv="mousewheel",iv="touchstart",rv="touchmove",ov="touchend",av=Zy,sv=Ky,lv=ev;function uv(t,e){Hy.call(this,t,e),this._down=null,this._touch=null,this._first=!0,this._events={}}const cv=t=>t===iv||t===rv||t===ov?[iv,rv,ov]:[t];function fv(t,e){cv(e).forEach((e=>function(t,e){const n=t.canvas();n&&!t._events[e]&&(t._events[e]=1,n.addEventListener(e,t[e]?n=>t[e](n):n=>t.fire(e,n)))}(t,e)))}function dv(t,e,n){return function(i){const r=this._active,o=this.pickEvent(i);o===r||(r&&r.exit||this.fire(n,i),this._active=o,this.fire(e,i)),this.fire(t,i)}}function hv(t){return function(e){this.fire(t,e),this._active=null}}ht(uv,Hy,{initialize(t,e,n){return this._canvas=t&&Ly(t,"canvas"),[ev,Qy,Zy,Ky,Xy].forEach((t=>fv(this,t))),Hy.prototype.initialize.call(this,t,e,n)},canvas(){return this._canvas},context(){return this._canvas.getContext("2d")},events:["keydown","keypress","keyup",Yy,Xy,Jy,Qy,"mouseup",Zy,Ky,tv,ev,"dblclick","wheel",nv,iv,rv,ov],DOMMouseScroll(t){this.fire(nv,t)},mousemove:dv(Zy,tv,Ky),dragover:dv(Jy,Yy,Xy),mouseout:hv(Ky),dragleave:hv(Xy),mousedown(t){this._down=this._active,this.fire(Qy,t)},click(t){this._down===this._active&&(this.fire(ev,t),this._down=null)},touchstart(t){this._touch=this.pickEvent(t.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(iv,t,!0)},touchmove(t){this.fire(rv,t,!0)},touchend(t){this.fire(ov,t,!0),this._touch=null},fire(t,e,n){const i=n?this._touch:this._active,r=this._handlers[t];if(e.vegaType=t,t===lv&&i&&i.href?this.handleHref(e,i,i.href):t!==av&&t!==sv||this.handleTooltip(e,i,t!==sv),r)for(let t=0,n=r.length;t=0&&i.splice(r,1),this},pickEvent(t){const e=Wy(t,this._canvas),n=this._origin;return this.pick(this._scene,e[0],e[1],e[0]-n[0],e[1]-n[1])},pick(t,e,n,i,r){const o=this.context();return Cy[t.marktype].pick.call(this,o,t,e,n,i,r)}});var pv="undefined"!=typeof window&&window.devicePixelRatio||1;function mv(t){Gy.call(this,t),this._options={},this._redraw=!1,this._dirty=new Om,this._tempb=new Om}const gv=Gy.prototype;function yv(t,e){Hy.call(this,t,e);const n=this;n._hrefHandler=vv(n,((t,e)=>{e&&e.href&&n.handleHref(t,e,e.href)})),n._tooltipHandler=vv(n,((t,e)=>{n.handleTooltip(t,e,t.type!==sv)}))}ht(mv,Gy,{initialize(t,e,n,i,r,o){return this._options=o||{},this._canvas=this._options.externalContext?null:Sc(1,1,this._options.type),t&&this._canvas&&(qy(t,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),gv.initialize.call(this,t,e,n,i,r)},resize(t,e,n,i){if(gv.resize.call(this,t,e,n,i),this._canvas)!function(t,e,n,i,r,o){const a="undefined"!=typeof HTMLElement&&t instanceof HTMLElement&&null!=t.parentNode,s=t.getContext("2d"),l=a?pv:r;t.width=e*l,t.height=n*l;for(const t in o)s[t]=o[t];a&&1!==l&&(t.style.width=e+"px",t.style.height=n+"px"),s.pixelRatio=l,s.setTransform(l,0,0,l,l*i[0],l*i[1])}(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const t=this._options.externalContext;t||s("CanvasRenderer is missing a valid canvas or context"),t.scale(this._scale,this._scale),t.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this},canvas(){return this._canvas},context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)},dirty(t){const e=this._tempb.clear().union(t.bounds);let n=t.mark.group;for(;n;)e.translate(n.x||0,n.y||0),n=n.mark.group;this._dirty.union(e)},_render(t){const e=this.context(),n=this._origin,i=this._width,r=this._height,o=this._dirty,a=((t,e,n)=>(new Om).set(0,0,e,n).translate(-t[0],-t[1]))(n,i,r);e.save();const s=this._redraw||o.empty()?(this._redraw=!1,a.expand(1)):function(t,e,n){return e.expand(1).round(),t.pixelRatio%1&&e.scale(t.pixelRatio).round().scale(1/t.pixelRatio),e.translate(-n[0]%1,-n[1]%1),t.beginPath(),t.rect(e.x1,e.y1,e.width(),e.height()),t.clip(),e}(e,a.intersect(o),n);return this.clear(-n[0],-n[1],i,r),this.draw(e,t,s),e.restore(),o.clear(),this},draw(t,e,n){const i=Cy[e.marktype];e.clip&&function(t,e){var n=e.clip;t.save(),J(n)?(t.beginPath(),n(t),t.clip()):jg(t,e.group)}(t,e),i.draw.call(this,t,e,n),e.clip&&t.restore()},clear(t,e,n,i){const r=this._options,o=this.context();"pdf"===r.type||r.externalContext||o.clearRect(t,e,n,i),null!=this._bgcolor&&(o.fillStyle=this._bgcolor,o.fillRect(t,e,n,i))}});const vv=(t,e)=>n=>{let i=n.target.__data__;i=Array.isArray(i)?i[0]:i,n.vegaType=n.type,e.call(t._obj,n,i)};ht(yv,Hy,{initialize(t,e,n){let i=this._svg;return i&&(i.removeEventListener(lv,this._hrefHandler),i.removeEventListener(av,this._tooltipHandler),i.removeEventListener(sv,this._tooltipHandler)),this._svg=i=t&&Ly(t,"svg"),i&&(i.addEventListener(lv,this._hrefHandler),i.addEventListener(av,this._tooltipHandler),i.addEventListener(sv,this._tooltipHandler)),Hy.prototype.initialize.call(this,t,e,n)},canvas(){return this._svg},on(t,e){const n=this.eventName(t),i=this._handlers;if(this._handlerIndex(i[n],t,e)<0){const r={type:t,handler:e,listener:vv(this,e)};(i[n]||(i[n]=[])).push(r),this._svg&&this._svg.addEventListener(n,r.listener)}return this},off(t,e){const n=this.eventName(t),i=this._handlers[n],r=this._handlerIndex(i,t,e);return r>=0&&(this._svg&&this._svg.removeEventListener(n,i[r].listener),i.splice(r,1)),this}});const xv="aria-hidden",bv="aria-label",_v="role",wv="aria-roledescription",kv="graphics-object",Av="graphics-symbol",Dv=(t,e,n)=>({[_v]:t,[wv]:e,[bv]:n||void 0}),Sv=Tt(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),Mv={axis:{desc:"axis",caption:function(t){const e=t.datum,n=t.orient,i=e.title?Ov(t):null,r=t.context,o=r.scales[e.scale].value,a=r.dataflow.locale(),s=o.type;return("left"===n||"right"===n?"Y":"X")+"-axis"+(i?` titled '${i}'`:"")+` for a ${Yh(s)?"discrete":s} scale`+` with ${Cp(a,o,t)}`}},legend:{desc:"legend",caption:function(t){const e=t.datum,n=e.title?Ov(t):null,i=`${e.type||""} legend`.trim(),r=e.scales,o=Object.keys(r),a=t.context,s=a.scales[r[o[0]]].value,l=a.dataflow.locale();return((u=i).length?u[0].toUpperCase()+u.slice(1):u)+(n?` titled '${n}'`:"")+` for ${function(t){return(t=t.map((t=>t+("fill"===t||"stroke"===t?" color":"")))).length<2?t[0]:t.slice(0,-1).join(", ")+" and "+C(t)}(o)}`+` with ${Cp(l,s,t)}`;var u}},"title-text":{desc:"title",caption:t=>`Title text '${Nv(t)}'`},"title-subtitle":{desc:"subtitle",caption:t=>`Subtitle text '${Nv(t)}'`}},Ev={ariaRole:_v,ariaRoleDescription:wv,description:bv};function Cv(t,e){const n=!1===e.aria;if(t(xv,n||void 0),n||null==e.description)for(const e in Ev)t(Ev[e],void 0);else{const n=e.mark.marktype;t(bv,e.description),t(_v,e.ariaRole||("group"===n?kv:Av)),t(wv,e.ariaRoleDescription||`${n} mark`)}}function Fv(t){return!1===t.aria?{[xv]:!0}:Sv[t.role]?null:Mv[t.role]?function(t,e){try{const n=t.items[0],i=e.caption||(()=>"");return Dv(e.role||Av,e.desc,n.description||i(n))}catch(t){return null}}(t,Mv[t.role]):function(t){const e=t.marktype,n="group"===e||"text"===e||t.items.some((t=>null!=t.description&&!1!==t.aria));return Dv(n?kv:Av,`${e} mark container`,t.description)}(t)}function Nv(t){return Y(t.text).join(" ")}function Ov(t){try{return Y(C(t.items).items[0].text).join(" ")}catch(t){return null}}const zv=t=>(t+"").replace(/&/g,"&").replace(//g,">"),Tv=t=>zv(t).replace(/"/g,""").replace(/\t/g," ").replace(/\n/g," ").replace(/\r/g," ");function Pv(){let t="",e="",n="";const i=[],r=()=>e=n="",o=(t,n)=>(null!=n&&(e+=` ${t}="${Tv(n)}"`),a),a={open(s){(o=>{e&&(t+=`${e}>${n}`,r()),i.push(o)})(s),e="<"+s;for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c${n}`:"/>"):``,r(),a},attr:o,text:t=>(n+=zv(t),a),toString:()=>t};return a}const Rv=t=>Bv(Pv(),t)+"";function Bv(t,e){if(t.open(e.tagName),e.hasAttributes()){const n=e.attributes,i=n.length;for(let e=0;e1&&t.previousSibling!=e}(a,n))&&e.insertBefore(a,n?n.nextSibling:e.firstChild),a}ht(Iv,Gy,{initialize(t,e,n,i,r){return this._defs={},this._clearDefs(),t&&(this._svg=Uy(t,0,"svg",qv),this._svg.setAttributeNS(Uv,"xmlns",qv),this._svg.setAttributeNS(Uv,"xmlns:xlink",Vg["xmlns:xlink"]),this._svg.setAttribute("version",Vg.version),this._svg.setAttribute("class","marks"),qy(t,1),this._root=Uy(this._svg,0,"g",qv),tx(this._root,Lv),qy(this._svg,1)),this.background(this._bgcolor),Wv.initialize.call(this,t,e,n,i,r)},background(t){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",t),Wv.background.apply(this,arguments)},resize(t,e,n,i){return Wv.resize.call(this,t,e,n,i),this._svg&&(tx(this._svg,{width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}),this._root.setAttribute("transform",`translate(${this._origin})`)),this._dirty=[],this},canvas(){return this._svg},svg(){const t=this._svg,e=this._bgcolor;if(!t)return null;let n;e&&(t.removeAttribute("style"),n=Uy(t,0,"rect",qv),tx(n,{width:this._width,height:this._height,fill:e}));const i=Rv(t);return e&&(t.removeChild(n),this._svg.style.setProperty("background-color",e)),i},_render(t){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,t),qy(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this},dirty(t){t.dirty!==this._dirtyID&&(t.dirty=this._dirtyID,this._dirty.push(t))},isDirty(t){return this._dirtyAll||!t._svg||!t._svg.ownerSVGElement||t.dirty===this._dirtyID},_dirtyCheck(){this._dirtyAll=!0;const t=this._dirty;if(!t.length||!this._dirtyID)return!0;const e=++this._dirtyID;let n,i,r,o,a,s,l;for(a=0,s=t.length;a{t.dirty=e}))),i.zdirty||(n.exit?(o.nested&&i.items.length?(l=i.items[0],l._svg&&this._update(o,l._svg,l)):n._svg&&(l=n._svg.parentNode,l&&l.removeChild(n._svg)),n._svg=null):(n=o.nested?i.items[0]:n,n._update!==e&&(n._svg&&n._svg.ownerSVGElement?this._update(o,n._svg,n):(this._dirtyAll=!1,Hv(n,e)),n._update=e)));return!this._dirtyAll},mark(t,e,n){if(!this.isDirty(e))return e._svg;const i=this._svg,r=Cy[e.marktype],o=!1===e.interactive?"none":null,a="g"===r.tag,s=Yv(e,t,n,"g",i);s.setAttribute("class",Iy(e));const l=Fv(e);for(const t in l)ex(s,t,l[t]);a||ex(s,"pointer-events",o),ex(s,"clip-path",e.clip?Nm(this,e,e.group):null);let u=null,c=0;const f=t=>{const e=this.isDirty(t),n=Yv(t,s,u,r.tag,i);e&&(this._update(r,n,t),a&&function(t,e,n){e=e.lastChild.previousSibling;let i,r=0;kg(n,(n=>{i=t.mark(e,n,i),++r})),qy(e,1+r)}(this,n,t)),u=n,++c};return r.nested?e.items.length&&f(e.items[0]):kg(e,f),qy(s,c),s},_update(t,e,n){Xv=e,Jv=e.__values__,Cv(Zv,n),t.attr(Zv,n,this);const i=Qv[t.type];i&&i.call(this,t,e,n),Xv&&this.style(Xv,n)},style(t,e){if(null!=e){for(const n in jv){let i="font"===n?by(e):e[n];if(i===Jv[n])continue;const r=jv[n];null==i?t.removeAttribute(r):(Op(i)&&(i=zp(i,this._defs.gradient,nx())),t.setAttribute(r,i+"")),Jv[n]=i}for(const n in $v)Kv(t,$v[n],e[n])}},defs(){const t=this._svg,e=this._defs;let n=e.el,i=0;for(const r in e.gradient)n||(e.el=n=Uy(t,1,"defs",qv)),i=Vv(n,e.gradient[r],i);for(const r in e.clipping)n||(e.el=n=Uy(t,1,"defs",qv)),i=Gv(n,e.clipping[r],i);n&&(0===i?(t.removeChild(n),e.el=null):qy(n,i))},_clearDefs(){const t=this._defs;t.gradient={},t.clipping={}}});let Xv=null,Jv=null;const Qv={group(t,e,n){const i=Xv=e.childNodes[2];Jv=i.__values__,t.foreground(Zv,n,this),Jv=e.__values__,Xv=e.childNodes[1],t.content(Zv,n,this);const r=Xv=e.childNodes[0];t.background(Zv,n,this);const o=!1===n.mark.interactive?"none":null;if(o!==Jv.events&&(ex(i,"pointer-events",o),ex(r,"pointer-events",o),Jv.events=o),n.strokeForeground&&n.stroke){const t=n.fill;ex(i,"display",null),this.style(r,n),ex(r,"stroke",null),t&&(n.fill=null),Jv=i.__values__,this.style(i,n),t&&(n.fill=t),Xv=null}else ex(i,"display","none")},image(t,e,n){!1===n.smooth?(Kv(e,"image-rendering","optimizeSpeed"),Kv(e,"image-rendering","pixelated")):Kv(e,"image-rendering",null)},text(t,e,n){const i=yy(n);let r,o,a,s;k(i)?(o=i.map((t=>xy(n,t))),r=o.join("\n"),r!==Jv.text&&(qy(e,0),a=e.ownerDocument,s=gy(n),o.forEach(((t,i)=>{const r=$y(a,"tspan",qv);r.__data__=n,r.textContent=t,i&&(r.setAttribute("x",0),r.setAttribute("dy",s)),e.appendChild(r)})),Jv.text=r)):(o=xy(n,i),o!==Jv.text&&(e.textContent=o,Jv.text=o)),ex(e,"font-family",by(n)),ex(e,"font-size",my(n)+"px"),ex(e,"font-style",n.fontStyle),ex(e,"font-variant",n.fontVariant),ex(e,"font-weight",n.fontWeight)}};function Zv(t,e,n){e!==Jv[t]&&(n?function(t,e,n,i){null!=n?t.setAttributeNS(i,e,n):t.removeAttributeNS(i,e)}(Xv,t,e,n):ex(Xv,t,e),Jv[t]=e)}function Kv(t,e,n){n!==Jv[e]&&(null==n?t.style.removeProperty(e):t.style.setProperty(e,n+""),Jv[e]=n)}function tx(t,e){for(const n in e)ex(t,n,e[n])}function ex(t,e,n){null!=n?t.setAttribute(e,n):t.removeAttribute(e)}function nx(){let t;return"undefined"==typeof window?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}function ix(t){Gy.call(this,t),this._text=null,this._defs={gradient:{},clipping:{}}}ht(ix,Gy,{svg(){return this._text},_render(t){const e=Pv();e.open("svg",ot({},Vg,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&"transparent"!==n&&"none"!==n&&e.open("rect",{width:this._width,height:this._height,fill:n}).close(),e.open("g",Lv,{transform:"translate("+this._origin+")"}),this.mark(e,t),e.close(),this.defs(e),this._text=e.close()+"",this},mark(t,e){const n=Cy[e.marktype],i=n.tag,r=[Cv,n.attr];t.open("g",{class:Iy(e),"clip-path":e.clip?Nm(this,e,e.group):null},Fv(e),{"pointer-events":"g"!==i&&!1===e.interactive?"none":null});const o=o=>{const a=this.href(o);if(a&&t.open("a",a),t.open(i,this.attr(e,o,r,"g"!==i?i:null)),"text"===i){const e=yy(o);if(k(e)){const n={x:0,dy:gy(o)};for(let i=0;ithis.mark(t,e))),t.close(),i&&a?(r&&(o.fill=null),o.stroke=a,t.open("path",this.attr(e,o,n.foreground,"bgrect")).close(),r&&(o.fill=r)):t.open("path",this.attr(e,o,n.foreground,"bgfore")).close()}t.close(),a&&t.close()};return n.nested?e.items&&e.items.length&&o(e.items[0]):kg(e,o),t.close()},href(t){const e=t.href;let n;if(e){if(n=this._hrefs&&this._hrefs[e])return n;this.sanitizeURL(e).then((t=>{t["xlink:href"]=t.href,t.href=null,(this._hrefs||(this._hrefs={}))[e]=t}))}return null},attr(t,e,n,i){const r={},o=(t,e,n,i)=>{r[i||t]=e};return Array.isArray(n)?n.forEach((t=>t(o,e,this))):n(o,e,this),i&&function(t,e,n,i,r){let o;if(null==e)return t;if("bgrect"===i&&!1===n.interactive&&(t["pointer-events"]="none"),"bgfore"===i&&(!1===n.interactive&&(t["pointer-events"]="none"),t.display="none",null!==e.fill))return t;"image"===i&&!1===e.smooth&&(o=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),"text"===i&&(t["font-family"]=by(e),t["font-size"]=my(e)+"px",t["font-style"]=e.fontStyle,t["font-variant"]=e.fontVariant,t["font-weight"]=e.fontWeight);for(const n in jv){let i=e[n];const o=jv[n];("transparent"!==i||"fill"!==o&&"stroke"!==o)&&null!=i&&(Op(i)&&(i=zp(i,r.gradient,"")),t[o]=i)}for(const t in $v){const n=e[t];null!=n&&(o=o||[],o.push(`${$v[t]}: ${n};`))}o&&(t.style=o.join(" "))}(r,e,t,i,this._defs),r},defs(t){const e=this._defs.gradient,n=this._defs.clipping;if(0!==Object.keys(e).length+Object.keys(n).length){t.open("defs");for(const n in e){const i=e[n],r=i.stops;"radial"===i.gradient?(t.open("pattern",{id:Np+n,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),t.open("rect",{width:"1",height:"1",fill:"url(#"+n+")"}).close(),t.close(),t.open("radialGradient",{id:n,fx:i.x1,fy:i.y1,fr:i.r1,cx:i.x2,cy:i.y2,r:i.r2})):t.open("linearGradient",{id:n,x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2});for(let e=0;e1?(sx[t]=e,this):sx[t]}function ux(t,e,n){const i=[],r=(new Om).union(e),o=t.marktype;return o?cx(t,r,n,i):"group"===o?fx(t,r,n,i):s("Intersect scene must be mark node or group item.")}function cx(t,e,n,i){if(function(t,e,n){return t.bounds&&e.intersects(t.bounds)&&("group"===t.marktype||!1!==t.interactive&&(!n||n(t)))}(t,e,n)){const r=t.items,o=t.marktype,a=r.length;let s=0;if("group"===o)for(;s=0;i--)if(r[i]!=o[i])return!1;for(i=r.length-1;i>=0;i--)if(!gx(t[n=r[i]],e[n],n))return!1;return typeof t==typeof e}(t,e):t==e)}function yx(t,e){return gx(Ip(t),Ip(e))}const vx="top",xx="left",bx="right",_x="bottom",wx="top-left",kx="top-right",Ax="bottom-left",Dx="bottom-right",Sx="start",Mx="middle",Ex="end",Cx="x",Fx="y",Nx="group",Ox="axis",zx="title",Tx="legend",Px="row-header",Rx="row-footer",Bx="row-title",jx="column-header",$x="column-footer",Lx="column-title",Ux="symbol",qx="fit-x",Ix="fit-y",Wx="none",Hx="all",Vx="each",Gx="flush",Yx="column",Xx="row";function Jx(t){qa.call(this,null,t)}function Qx(t,e,n){return e(t.bounds.clear(),t,n)}ht(Jx,qa,{transform(t,e){const n=e.dataflow,i=t.mark,r=i.marktype,o=Cy[r],a=o.bound;let s,l=i.bounds;if(o.nested)i.items.length&&n.dirty(i.items[0]),l=Qx(i,a),i.items.forEach((t=>{t.bounds.clear().union(l)}));else if(r===Nx||t.modified())switch(e.visit(e.MOD,(t=>n.dirty(t))),l.clear(),i.items.forEach((t=>l.union(Qx(t,a)))),i.role){case Ox:case Tx:case zx:e.reflow()}else s=e.changed(e.REM),e.visit(e.ADD,(t=>{l.union(Qx(t,a))})),e.visit(e.MOD,(t=>{s=s||l.alignsWith(t.bounds),n.dirty(t),l.union(Qx(t,a))})),s&&(l.clear(),i.items.forEach((t=>l.union(t.bounds))));return px(i),e.modifies("bounds")}});const Zx=":vega_identifier:";function Kx(t){qa.call(this,0,t)}function tb(t){qa.call(this,null,t)}function eb(t){qa.call(this,null,t)}Kx.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},ht(Kx,qa,{transform(t,e){const n=(r=e.dataflow)._signals[Zx]||(r._signals[Zx]=r.add(0)),i=t.as;var r;let o=n.value;return e.visit(e.ADD,(t=>t[i]=t[i]||++o)),n.set(this.value=o),e}}),ht(tb,qa,{transform(t,e){let n=this.value;n||(n=e.dataflow.scenegraph().mark(t.markdef,function(t){const e=t.groups,n=t.parent;return e&&1===e.size?e.get(Object.keys(e.object)[0]):e&&n?e.lookup(n):null}(t),t.index),n.group.context=t.context,t.context.group||(t.context.group=n.group),n.source=this.source,n.clip=t.clip,n.interactive=t.interactive,this.value=n);const i=n.marktype===Nx?Tm:zm;return e.visit(e.ADD,(t=>i.call(t,n))),(t.modified("clip")||t.modified("interactive"))&&(n.clip=t.clip,n.interactive=!!t.interactive,n.zdirty=!0,e.reflow()),n.items=e.source,e}});const nb={parity:t=>t.filter(((t,e)=>e%2?t.opacity=0:1)),greedy:(t,e)=>{let n;return t.filter(((t,i)=>i&&ib(n.bounds,t.bounds,e)?t.opacity=0:(n=t,1)))}},ib=(t,e,n)=>n>Math.max(e.x1-t.x2,t.x1-e.x2,e.y1-t.y2,t.y1-e.y2),rb=(t,e)=>{for(var n,i=1,r=t.length,o=t[0].bounds;i{const e=t.bounds;return e.width()>1&&e.height()>1},ab=t=>(t.forEach((t=>t.opacity=1)),t),sb=(t,e)=>t.reflow(e.modified()).modifies("opacity");function lb(t){qa.call(this,null,t)}ht(eb,qa,{transform(t,e){const n=nb[t.method]||nb.parity,i=t.separation||0;let r,o,a=e.materialize(e.SOURCE).source;if(!a||!a.length)return;if(!t.method)return t.modified("method")&&(ab(a),e=sb(e,t)),e;if(a=a.filter(ob),!a.length)return;if(t.sort&&(a=a.slice().sort(t.sort)),r=ab(a),e=sb(e,t),r.length>=3&&rb(r,i)){do{r=n(r,i)}while(r.length>=3&&rb(r,i));r.length<3&&!C(a).opacity&&(r.length>1&&(C(r).opacity=0),C(a).opacity=1)}t.boundScale&&t.boundTolerance>=0&&(o=((t,e,n)=>{var i=t.range(),r=new Om;return e===vx||e===_x?r.set(i[0],-1/0,i[1],1/0):r.set(-1/0,i[0],1/0,i[1]),r.expand(n||1),t=>r.encloses(t.bounds)})(t.boundScale,t.boundOrient,+t.boundTolerance),a.forEach((t=>{o(t)||(t.opacity=0)})));const s=r[0].mark.bounds.clear();return a.forEach((t=>{t.opacity&&s.union(t.bounds)})),e}}),ht(lb,qa,{transform(t,e){const n=e.dataflow;if(e.visit(e.ALL,(t=>n.dirty(t))),e.fields&&e.fields.zindex){const t=e.source&&e.source[0];t&&(t.mark.zdirty=!0)}}});const ub=new Om;function cb(t,e,n){return t[e]===n?0:(t[e]=n,1)}function fb(t){var e=t.items[0].orient;return e===xx||e===bx}function db(t,e,n,i){var r,o,a=e.items[0],s=a.datum,l=null!=a.translate?a.translate:.5,u=a.orient,c=function(t){let e=+t.grid;return[t.ticks?e++:-1,t.labels?e++:-1,e+ +t.domain]}(s),f=a.range,d=a.offset,h=a.position,p=a.minExtent,m=a.maxExtent,g=s.title&&a.items[c[2]].items[0],y=a.titlePadding,v=a.bounds,x=g&&vy(g),b=0,_=0;switch(ub.clear().union(v),v.clear(),(r=c[0])>-1&&v.union(a.items[r].bounds),(r=c[1])>-1&&v.union(a.items[r].bounds),u){case vx:b=h||0,_=-d,o=Math.max(p,Math.min(m,-v.y1)),v.add(0,-o).add(f,0),g&&hb(t,g,o,y,x,0,-1,v);break;case xx:b=-d,_=h||0,o=Math.max(p,Math.min(m,-v.x1)),v.add(-o,0).add(0,f),g&&hb(t,g,o,y,x,1,-1,v);break;case bx:b=n+d,_=h||0,o=Math.max(p,Math.min(m,v.x2)),v.add(0,0).add(o,f),g&&hb(t,g,o,y,x,1,1,v);break;case _x:b=h||0,_=i+d,o=Math.max(p,Math.min(m,v.y2)),v.add(0,0).add(f,o),g&&hb(t,g,o,y,0,0,1,v);break;default:b=a.x,_=a.y}return jm(v.translate(b,_),a),cb(a,"x",b+l)|cb(a,"y",_+l)&&(a.bounds=ub,t.dirty(a),a.bounds=v,t.dirty(a)),a.mark.bounds.clear().union(v)}function hb(t,e,n,i,r,o,a,s){const l=e.bounds;if(e.auto){const s=a*(n+r+i);let u=0,c=0;t.dirty(e),o?u=(e.x||0)-(e.x=s):c=(e.y||0)-(e.y=s),e.mark.bounds.clear().union(l.translate(-u,-c)),t.dirty(e)}s.union(l)}const pb=(t,e)=>Math.floor(Math.min(t,e)),mb=(t,e)=>Math.ceil(Math.max(t,e));function gb(t){return(new Om).set(0,0,t.width||0,t.height||0)}function yb(t){const e=t.bounds.clone();return e.empty()?e.set(0,0,0,0):e.translate(-(t.x||0),-(t.y||0))}function vb(t,e,n){const i=A(t)?t[e]:t;return null!=i?i:void 0!==n?n:0}function xb(t){return t<0?Math.ceil(-t):0}function bb(t,e,n){var i,r,o,a,s,l,u,c,f,d,h,p=!n.nodirty,m=n.bounds===Gx?gb:yb,g=ub.set(0,0,0,0),y=vb(n.align,Yx),v=vb(n.align,Xx),x=vb(n.padding,Yx),b=vb(n.padding,Xx),_=n.columns||e.length,w=_<=0?1:Math.ceil(e.length/_),k=e.length,A=Array(k),D=Array(_),S=0,M=Array(k),E=Array(w),C=0,F=Array(k),N=Array(k),O=Array(k);for(r=0;r<_;++r)D[r]=0;for(r=0;r1)for(r=0;r0&&(F[r]+=f/2);if(v&&vb(n.center,Xx)&&1!==_)for(r=0;r0&&(N[r]+=d/2);for(r=0;rr&&(t.warn("Grid headers exceed limit: "+r),e=e.slice(0,r)),A+=o,m=0,y=e.length;m=0&&null==(b=n[g]);g-=d);s?(_=null==h?b.x:Math.round(b.bounds.x1+h*b.bounds.width()),w=A):(_=A,w=null==h?b.y:Math.round(b.bounds.y1+h*b.bounds.height())),v.union(x.bounds.translate(_-(x.x||0),w-(x.y||0))),x.x=_,x.y=w,t.dirty(x),D=a(D,v[u])}return D}function Ab(t,e,n,i,r,o){if(e){t.dirty(e);var a=n,s=n;i?a=Math.round(r.x1+o*r.width()):s=Math.round(r.y1+o*r.height()),e.bounds.translate(a-(e.x||0),s-(e.y||0)),e.mark.bounds.clear().union(e.bounds),e.x=a,e.y=s,t.dirty(e)}}function Db(t,e,n,i,r,o,a){const s=function(t,e){const n=t[e]||{};return(e,i)=>null!=n[e]?n[e]:null!=t[e]?t[e]:i}(n,e),l=function(t,e){let n=-1/0;return t.forEach((t=>{null!=t.offset&&(n=Math.max(n,t.offset))})),n>-1/0?n:e}(t,s("offset",0)),u=s("anchor",Sx),c=u===Ex?1:u===Mx?.5:0,f={align:Vx,bounds:s("bounds",Gx),columns:"vertical"===s("direction")?1:t.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(e){case xx:f.anchor={x:Math.floor(i.x1)-l,column:Ex,y:c*(a||i.height()+2*i.y1),row:u};break;case bx:f.anchor={x:Math.ceil(i.x2)+l,y:c*(a||i.height()+2*i.y1),row:u};break;case vx:f.anchor={y:Math.floor(r.y1)-l,row:Ex,x:c*(o||r.width()+2*r.x1),column:u};break;case _x:f.anchor={y:Math.ceil(r.y2)+l,x:c*(o||r.width()+2*r.x1),column:u};break;case wx:f.anchor={x:l,y:l};break;case kx:f.anchor={x:o-l,y:l,column:Ex};break;case Ax:f.anchor={x:l,y:a-l,row:Ex};break;case Dx:f.anchor={x:o-l,y:a-l,column:Ex,row:Ex}}return f}function Sb(t,e){var n,i,r=e.items[0],o=r.datum,a=r.orient,s=r.bounds,l=r.x,u=r.y;return r._bounds?r._bounds.clear().union(s):r._bounds=s.clone(),s.clear(),function(t,e,n){var i=e.padding,r=i-n.x,o=i-n.y;if(e.datum.title){var a=e.items[1].items[0],s=a.anchor,l=e.titlePadding||0,u=i-a.x,c=i-a.y;switch(a.orient){case xx:r+=Math.ceil(a.bounds.width())+l;break;case bx:case _x:break;default:o+=a.bounds.height()+l}switch((r||o)&&Eb(t,n,r,o),a.orient){case xx:c+=Mb(e,n,a,s,1,1);break;case bx:u+=Mb(e,n,a,Ex,0,0)+l,c+=Mb(e,n,a,s,1,1);break;case _x:u+=Mb(e,n,a,s,0,0),c+=Mb(e,n,a,Ex,-1,0,1)+l;break;default:u+=Mb(e,n,a,s,0,0)}(u||c)&&Eb(t,a,u,c),(u=Math.round(a.bounds.x1-i))<0&&(Eb(t,n,-u,0),Eb(t,a,-u,0))}else(r||o)&&Eb(t,n,r,o)}(t,r,r.items[0].items[0]),s=function(t,e){return t.items.forEach((t=>e.union(t.bounds))),e.x1=t.padding,e.y1=t.padding,e}(r,s),n=2*r.padding,i=2*r.padding,s.empty()||(n=Math.ceil(s.width()+n),i=Math.ceil(s.height()+i)),o.type===Ux&&function(t){const e=t.reduce(((t,e)=>(t[e.column]=Math.max(e.bounds.x2-e.x,t[e.column]||0),t)),{});t.forEach((t=>{t.width=e[t.column],t.height=t.bounds.y2-t.y}))}(r.items[0].items[0].items[0].items),a!==Wx&&(r.x=l=0,r.y=u=0),r.width=n,r.height=i,jm(s.set(l,u,l+n,u+i),r),r.mark.bounds.clear().union(s),r}function Mb(t,e,n,i,r,o,a){const s="symbol"!==t.datum.type,l=n.datum.vgrad,u=(!s||!o&&l||a?e:e.items[0]).bounds[r?"y2":"x2"]-t.padding,c=l&&o?u:0,f=l&&o?0:u,d=r<=0?0:vy(n);return Math.round(i===Sx?c:i===Ex?f-d:.5*(u-d))}function Eb(t,e,n,i){e.x+=n,e.y+=i,e.bounds.translate(n,i),e.mark.bounds.translate(n,i),t.dirty(e)}function Cb(t){qa.call(this,null,t)}ht(Cb,qa,{transform(t,e){const n=e.dataflow;return t.mark.items.forEach((e=>{t.layout&&function(t,e,n){var i,r,o,a,s,l,u,c=function(t){var e,n,i=t.items,r=i.length,o=0;const a={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;o{(o=t.orient||bx)!==Wx&&(e[o]||(e[o]=[])).push(t)}));for(const i in e){const r=e[i];bb(t,r,Db(r,i,n.legends,d,h,u,c))}p.forEach((e=>{const i=e.bounds;if(i.equals(e._bounds)||(e.bounds=e._bounds,t.dirty(e),e.bounds=i,t.dirty(e)),!n.autosize||"fit"!==n.autosize.type&&n.autosize.type!==qx&&n.autosize.type!==Ix)f.union(i);else switch(e.orient){case xx:case bx:f.add(i.x1,0).add(i.x2,0);break;case vx:case _x:f.add(0,i.y1).add(0,i.y2)}}))}f.union(d).union(h),i&&f.union(function(t,e,n,i,r){var o,a=e.items[0],s=a.frame,l=a.orient,u=a.anchor,c=a.offset,f=a.padding,d=a.items[0].items[0],h=a.items[1]&&a.items[1].items[0],p=l===xx||l===bx?i:n,m=0,g=0,y=0,v=0,x=0;if(s!==Nx?l===xx?(m=r.y2,p=r.y1):l===bx?(m=r.y1,p=r.y2):(m=r.x1,p=r.x2):l===xx&&(m=i,p=0),o=u===Sx?m:u===Ex?p:(m+p)/2,h&&h.text){switch(l){case vx:case _x:x=d.bounds.height()+f;break;case xx:v=d.bounds.width()+f;break;case bx:v=-d.bounds.width()-f}ub.clear().union(h.bounds),ub.translate(v-(h.x||0),x-(h.y||0)),cb(h,"x",v)|cb(h,"y",x)&&(t.dirty(h),h.bounds.clear().union(ub),h.mark.bounds.clear().union(ub),t.dirty(h)),ub.clear().union(h.bounds)}else ub.clear();switch(ub.union(d.bounds),l){case vx:g=o,y=r.y1-ub.height()-c;break;case xx:g=r.x1-ub.width()-c,y=o;break;case bx:g=r.x2+ub.width()+c,y=o;break;case _x:g=o,y=r.y2+c;break;default:g=a.x,y=a.y}return cb(a,"x",g)|cb(a,"y",y)&&(ub.translate(g,y),t.dirty(a),a.bounds.clear().union(ub),e.bounds.clear().union(ub),t.dirty(a)),a.bounds}(t,i,u,c,f)),e.clip&&f.set(0,0,e.width||0,e.height||0),function(t,e,n,i){const r=i.autosize||{},o=r.type;if(t._autosize<1||!o)return;let a=t._width,s=t._height,l=Math.max(0,e.width||0),u=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,e.height||0),f=Math.max(0,Math.ceil(-n.y1));const d=Math.max(0,Math.ceil(n.x2-l)),h=Math.max(0,Math.ceil(n.y2-c));if("padding"===r.contains){const e=t.padding();a-=e.left+e.right,s-=e.top+e.bottom}o===Wx?(u=0,f=0,l=a,c=s):"fit"===o?(l=Math.max(0,a-u-d),c=Math.max(0,s-f-h)):o===qx?(l=Math.max(0,a-u-d),s=c+f+h):o===Ix?(a=l+u+d,c=Math.max(0,s-f-h)):"pad"===o&&(a=l+u+d,s=c+f+h),t._resizeView(a,s,l,c,[u,f],r.resize)}(t,e,f,n)}(n,e,t)})),function(t){return t&&"legend-entry"!==t.mark.role}(t.mark.group)?e.reflow():e}});var Fb=Object.freeze({__proto__:null,bound:Jx,identifier:Kx,mark:tb,overlap:eb,render:lb,viewlayout:Cb});function Nb(t){qa.call(this,null,t)}function Ob(t){qa.call(this,null,t)}function zb(){return da({})}function Tb(t){qa.call(this,null,t)}function Pb(t){qa.call(this,[],t)}ht(Nb,qa,{transform(t,e){if(this.value&&!t.modified())return e.StopPropagation;var n=e.dataflow.locale(),i=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=this.value,o=t.scale,a=pp(o,null==t.count?t.values?t.values.length:10:t.count,t.minstep),s=t.format||yp(n,o,a,t.formatSpecifier,t.formatType,!!t.values),l=t.values?mp(o,t.values,a):gp(o,a);return r&&(i.rem=r),r=l.map(((t,e)=>da({index:e/(l.length-1||1),value:t,label:s(t)}))),t.extra&&r.length&&r.push(da({index:-1,extra:{value:r[0].value},label:""})),i.source=r,i.add=r,this.value=r,i}}),ht(Ob,qa,{transform(t,e){var n=e.dataflow,i=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=t.item||zb,o=t.key||ca,a=this.value;return k(i.encode)&&(i.encode=null),a&&(t.modified("key")||e.modified(o))&&s("DataJoin does not support modified key function or fields."),a||(e=e.addAll(),this.value=a=function(t){const e=ft().test((t=>t.exit));return e.lookup=n=>e.get(t(n)),e}(o)),e.visit(e.ADD,(t=>{const e=o(t);let n=a.get(e);n?n.exit?(a.empty--,i.add.push(n)):i.mod.push(n):(n=r(t),a.set(e,n),i.add.push(n)),n.datum=t,n.exit=!1})),e.visit(e.MOD,(t=>{const e=o(t),n=a.get(e);n&&(n.datum=t,i.mod.push(n))})),e.visit(e.REM,(t=>{const e=o(t),n=a.get(e);t!==n.datum||n.exit||(i.rem.push(n),n.exit=!0,++a.empty)})),e.changed(e.ADD_MOD)&&i.modifies("datum"),(e.clean()||t.clean&&a.empty>n.cleanThreshold)&&n.runAfter(a.clean),i}}),ht(Tb,qa,{transform(t,e){var n=e.fork(e.ADD_REM),i=t.mod||!1,r=t.encoders,o=e.encode;if(k(o)){if(!n.changed()&&!o.every((t=>r[t])))return e.StopPropagation;o=o[0],n.encode=null}var a="enter"===o,s=r.update||m,l=r.enter||m,u=r.exit||m,c=(o&&!a?r[o]:s)||m;if(e.changed(e.ADD)&&(e.visit(e.ADD,(e=>{l(e,t),s(e,t)})),n.modifies(l.output),n.modifies(s.output),c!==m&&c!==s&&(e.visit(e.ADD,(e=>{c(e,t)})),n.modifies(c.output))),e.changed(e.REM)&&u!==m&&(e.visit(e.REM,(e=>{u(e,t)})),n.modifies(u.output)),a||c!==m){const r=e.MOD|(t.modified()?e.REFLOW:0);a?(e.visit(r,(e=>{const r=l(e,t)||i;(c(e,t)||r)&&n.mod.push(e)})),n.mod.length&&n.modifies(l.output)):e.visit(r,(e=>{(c(e,t)||i)&&n.mod.push(e)})),n.mod.length&&n.modifies(c.output)}return n.changed()?n:e.StopPropagation}}),ht(Pb,qa,{transform(t,e){if(null!=this.value&&!t.modified())return e.StopPropagation;var n,i,r,o,a,s=e.dataflow.locale(),l=e.fork(e.NO_SOURCE|e.NO_FIELDS),u=this.value,c=t.type||up,f=t.scale,d=+t.limit,h=pp(f,null==t.count?5:t.count,t.minstep),p=!!t.values||c===up,m=t.format||kp(s,f,h,c,t.formatSpecifier,t.formatType,p),g=t.values||_p(f,h);return u&&(l.rem=u),c===up?(d&&g.length>d?(e.dataflow.warn("Symbol legend count exceeds limit, filtering items."),u=g.slice(0,d-1),a=!0):u=g,J(r=t.size)?(t.values||0!==f(u[0])||(u=u.slice(1)),o=u.reduce(((e,n)=>Math.max(e,r(n,t))),0)):r=it(o=r||8),u=u.map(((e,n)=>da({index:n,label:m(e,n,u),value:e,offset:o,size:r(e,t)}))),a&&(a=g[u.length],u.push(da({index:u.length,label:`…${g.length-u.length} entries`,value:a,offset:o,size:r(a,t)})))):"gradient"===c?(n=f.domain(),i=ip(f,n[0],C(n)),g.length<3&&!t.values&&n[0]!==C(n)&&(g=[n[0],C(n)]),u=g.map(((t,e)=>da({index:e,label:m(t,e,g),value:t,perc:i(t)})))):(r=g.length-1,i=function(t){const e=t.domain(),n=e.length-1;let i=+e[0],r=+C(e),o=r-i;if(t.type===Mh){const t=n?o/n:.1;i-=t,r+=t,o=r-i}return t=>(t-i)/o}(f),u=g.map(((t,e)=>da({index:e,label:m(t,e,g),value:t,perc:e?i(t):0,perc2:e===r?1:i(g[e+1])})))),l.source=u,l.add=u,this.value=u,l}});const Rb=t=>t.source.x,Bb=t=>t.source.y,jb=t=>t.target.x,$b=t=>t.target.y;function Lb(t){qa.call(this,{},t)}Lb.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},ht(Lb,qa,{transform(t,e){var n=t.sourceX||Rb,i=t.sourceY||Bb,r=t.targetX||jb,o=t.targetY||$b,a=t.as||"path",l=t.orient||"vertical",u=t.shape||"line",c=Wb.get(u+"-"+l)||Wb.get(u);return c||s("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),e.visit(e.SOURCE,(t=>{t[a]=c(n(t),i(t),r(t),o(t))})),e.reflow(t.modified()).modifies(a)}});const Ub=(t,e,n,i)=>"M"+t+","+e+"L"+n+","+i,qb=(t,e,n,i)=>{var r=n-t,o=i-e,a=Math.sqrt(r*r+o*o)/2;return"M"+t+","+e+"A"+a+","+a+" "+180*Math.atan2(o,r)/Math.PI+" 0 1 "+n+","+i},Ib=(t,e,n,i)=>{const r=n-t,o=i-e,a=.2*(r+o),s=.2*(o-r);return"M"+t+","+e+"C"+(t+a)+","+(e+s)+" "+(n+s)+","+(i-a)+" "+n+","+i},Wb=ft({line:Ub,"line-radial":(t,e,n,i)=>Ub(e*Math.cos(t),e*Math.sin(t),i*Math.cos(n),i*Math.sin(n)),arc:qb,"arc-radial":(t,e,n,i)=>qb(e*Math.cos(t),e*Math.sin(t),i*Math.cos(n),i*Math.sin(n)),curve:Ib,"curve-radial":(t,e,n,i)=>Ib(e*Math.cos(t),e*Math.sin(t),i*Math.cos(n),i*Math.sin(n)),"orthogonal-horizontal":(t,e,n,i)=>"M"+t+","+e+"V"+i+"H"+n,"orthogonal-vertical":(t,e,n,i)=>"M"+t+","+e+"H"+n+"V"+i,"orthogonal-radial":(t,e,n,i)=>{const r=Math.cos(t),o=Math.sin(t),a=Math.cos(n),s=Math.sin(n);return"M"+e*r+","+e*o+"A"+e+","+e+" 0 0,"+((Math.abs(n-t)>Math.PI?n<=t:n>t)?1:0)+" "+e*a+","+e*s+"L"+i*a+","+i*s},"diagonal-horizontal":(t,e,n,i)=>{const r=(t+n)/2;return"M"+t+","+e+"C"+r+","+e+" "+r+","+i+" "+n+","+i},"diagonal-vertical":(t,e,n,i)=>{const r=(e+i)/2;return"M"+t+","+e+"C"+t+","+r+" "+n+","+r+" "+n+","+i},"diagonal-radial":(t,e,n,i)=>{const r=Math.cos(t),o=Math.sin(t),a=Math.cos(n),s=Math.sin(n),l=(e+i)/2;return"M"+e*r+","+e*o+"C"+l*r+","+l*o+" "+l*a+","+l*s+" "+i*a+","+i*s}});function Hb(t){qa.call(this,null,t)}Hb.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},ht(Hb,qa,{transform(t,e){var n,i,r,o=t.as||["startAngle","endAngle"],a=o[0],s=o[1],l=t.field||h,u=t.startAngle||0,c=null!=t.endAngle?t.endAngle:2*Math.PI,f=e.source,d=f.map(l),p=d.length,m=u,g=(c-u)/Ce(d),y=Ee(p);for(t.sort&&y.sort(((t,e)=>d[t]-d[e])),n=0;nt+(e<0?-1:e>0?1:0)),0))!==e.length&&n.warn("Log scale domain includes zero: "+Ct(e)),e}function Jb(t,e,n){return J(t)&&(e||n)?tp(t,Qb(e||[0,1],n)):t}function Qb(t,e){return e?t.slice().reverse():t}function Zb(t){qa.call(this,null,t)}ht(Yb,qa,{transform(t,e){var n=e.dataflow,i=this.value,r=function(t){var e,n=t.type,i="";return n===kh?kh+"-"+gh:(function(t){const e=t.type;return Gh(e)&&e!==_h&&e!==wh&&(t.scheme||t.range&&t.range.length&&t.range.every(bt))}(t)&&(i=2===(e=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(null!=t.domainMid):0)?kh+"-":3===e?Ah+"-":""),(i+n||gh).toLowerCase())}(t);for(r in i&&r===i.type||(this.value=i=Wh(r)()),t)if(!Gb[r]){if("padding"===r&&Vb(i.type))continue;J(i[r])?i[r](t[r]):n.warn("Unsupported scale property: "+r)}return function(t,e,n){var i=t.type,r=e.round||!1,o=e.range;if(null!=e.rangeStep)o=function(t,e,n){t!==Fh&&t!==Ch&&s("Only band and point scales support rangeStep.");var i=(null!=e.paddingOuter?e.paddingOuter:e.padding)||0,r=t===Ch?1:(null!=e.paddingInner?e.paddingInner:e.padding)||0;return[0,e.rangeStep*mh(n,r,i)]}(i,e,n);else if(e.scheme&&(o=function(t,e,n){var i,r=e.schemeExtent;return k(e.scheme)?i=ep(e.scheme,e.interpolate,e.interpolateGamma):(i=lp(e.scheme.toLowerCase()))||s(`Unrecognized scheme name: ${e.scheme}`),n=t===Mh?n+1:t===Nh?n-1:t===Dh||t===Sh?+e.schemeCount||5:n,Qh(t)?Jb(i,r,e.reverse):J(i)?np(Jb(i,r),n):t===Eh?i:i.slice(0,n)}(i,e,n),J(o))){if(t.interpolator)return t.interpolator(o);s(`Scale type ${i} does not support interpolating color schemes.`)}if(o&&Qh(i))return t.interpolator(ep(Qb(o,e.reverse),e.interpolate,e.interpolateGamma));o&&e.interpolate&&t.interpolate?t.interpolate(rp(e.interpolate,e.interpolateGamma)):J(t.round)?t.round(r):J(t.rangeRound)&&t.interpolate(r?fd:cd),o&&t.range(Qb(o,e.reverse))}(i,t,function(t,e,n){let i=e.bins;if(i&&!k(i)){const e=t.domain(),n=e[0],r=C(e),o=i.step;let a=null==i.start?n:i.start,l=null==i.stop?r:i.stop;o||s("Scale bins parameter missing step property."),ar&&(l=o*Math.floor(r/o)),i=Ee(a,l+o/2,o)}return i?t.bins=i:t.bins&&delete t.bins,t.type===Nh&&(i?e.domain||e.domainRaw||(t.domain(i),n=i.length):t.bins=t.domain()),n}(i,t,function(t,e,n){const i=function(t,e,n){return e?(t.domain(Xb(t.type,e,n)),e.length):-1}(t,e.domainRaw,n);if(i>-1)return i;var r,o,a=e.domain,s=t.type,l=e.zero||void 0===e.zero&&function(t){const e=t.type;return!t.bins&&(e===gh||e===vh||e===xh)}(t);if(!a)return 0;if(Vb(s)&&e.padding&&a[0]!==C(a)&&(a=function(t,e,n,i,r,o){var a=Math.abs(C(n)-n[0]),s=a/(a-2*i),l=t===yh?I(e,null,s):t===xh?W(e,null,s,.5):t===vh?W(e,null,s,r||1):t===bh?H(e,null,s,o||1):q(e,null,s);return(e=e.slice())[0]=l[0],e[e.length-1]=l[1],e}(s,a,e.range,e.padding,e.exponent,e.constant)),(l||null!=e.domainMin||null!=e.domainMax||null!=e.domainMid)&&(r=(a=a.slice()).length-1||1,l&&(a[0]>0&&(a[0]=0),a[r]<0&&(a[r]=0)),null!=e.domainMin&&(a[0]=e.domainMin),null!=e.domainMax&&(a[r]=e.domainMax),null!=e.domainMid)){const t=(o=e.domainMid)>a[r]?r+1:ot(l);if(null==e)h.push(t.slice());else for(r={},o=0,a=t.length;od&&(d=f),n&&c.sort(n)}return h.max=d,h}(e.source,t.groupby,u,c),i=0,r=n.length,o=n.max;i0?1:t<0?-1:0},M_=Math.sqrt,E_=Math.tan;function C_(t){return t>1?0:t<-1?c_:Math.acos(t)}function F_(t){return t>1?f_:t<-1?-f_:Math.asin(t)}function N_(){}function O_(t,e){t&&T_.hasOwnProperty(t.type)&&T_[t.type](t,e)}var z_={Feature:function(t,e){O_(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,r=n.length;++i=0?1:-1,r=i*n,o=x_(e=(e*=m_)/2+d_),a=D_(e),s=q_*a,l=U_*o+s*x_(r),u=s*i*D_(r);tw.add(v_(u,l)),L_=t,U_=o,q_=a}function sw(t){return[v_(t[1],t[0]),F_(t[2])]}function lw(t){var e=t[0],n=t[1],i=x_(n);return[i*x_(e),i*D_(e),D_(n)]}function uw(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function cw(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function fw(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function dw(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function hw(t){var e=M_(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var pw,mw,gw,yw,vw,xw,bw,_w,ww,kw,Aw,Dw,Sw,Mw,Ew,Cw,Fw={point:Nw,lineStart:zw,lineEnd:Tw,polygonStart:function(){Fw.point=Pw,Fw.lineStart=Rw,Fw.lineEnd=Bw,Q_=new Adder,nw.polygonStart()},polygonEnd:function(){nw.polygonEnd(),Fw.point=Nw,Fw.lineStart=zw,Fw.lineEnd=Tw,tw<0?(I_=-(H_=180),W_=-(V_=90)):Q_>l_?V_=90:Q_<-l_&&(W_=-90),K_[0]=I_,K_[1]=H_},sphere:function(){I_=-(H_=180),W_=-(V_=90)}};function Nw(t,e){Z_.push(K_=[I_=t,H_=t]),eV_&&(V_=e)}function Ow(t,e){var n=lw([t*m_,e*m_]);if(J_){var i=cw(J_,n),r=cw([i[1],-i[0],0],i);hw(r),r=sw(r);var o,a=t-G_,s=a>0?1:-1,l=r[0]*p_*s,u=g_(a)>180;u^(s*G_V_&&(V_=o):u^(s*G_<(l=(l+360)%360-180)&&lV_&&(V_=e)),u?tjw(I_,H_)&&(H_=t):jw(t,H_)>jw(I_,H_)&&(I_=t):H_>=I_?(tH_&&(H_=t)):t>G_?jw(I_,t)>jw(I_,H_)&&(H_=t):jw(t,H_)>jw(I_,H_)&&(I_=t)}else Z_.push(K_=[I_=t,H_=t]);eV_&&(V_=e),J_=n,G_=t}function zw(){Fw.point=Ow}function Tw(){K_[0]=I_,K_[1]=H_,Fw.point=Nw,J_=null}function Pw(t,e){if(J_){var n=t-G_;Q_.add(g_(n)>180?n+(n>0?360:-360):n)}else Y_=t,X_=e;nw.point(t,e),Ow(t,e)}function Rw(){nw.lineStart()}function Bw(){Pw(Y_,X_),nw.lineEnd(),g_(Q_)>l_&&(I_=-(H_=180)),K_[0]=I_,K_[1]=H_,J_=null}function jw(t,e){return(e-=t)<0?e+360:e}function $w(t,e){return t[0]-e[0]}function Lw(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:ec_&&(t-=Math.round(t/h_)*h_),[t,e]}function tk(t,e,n){return(t%=h_)?e||n?Zw(nk(t),ik(e,n)):nk(t):e||n?ik(e,n):Kw}function ek(t){return function(e,n){return g_(e+=t)>c_&&(e-=Math.round(e/h_)*h_),[e,n]}}function nk(t){var e=ek(t);return e.invert=ek(-t),e}function ik(t,e){var n=x_(t),i=D_(t),r=x_(e),o=D_(e);function a(t,e){var a=x_(e),s=x_(t)*a,l=D_(t)*a,u=D_(e),c=u*n+s*i;return[v_(l*r-c*o,s*n-u*i),F_(c*r+l*o)]}return a.invert=function(t,e){var a=x_(e),s=x_(t)*a,l=D_(t)*a,u=D_(e),c=u*r-l*o;return[v_(l*r+u*o,s*n+c*i),F_(c*n-s*i)]},a}function rk(t,e){(e=lw(e))[0]-=t,hw(e);var n=C_(-e[1]);return((-e[2]<0?-n:n)+h_-l_)%h_}function ok(){var t,e=[];return{point:function(e,n,i){t.push([e,n,i])},lineStart:function(){e.push(t=[])},lineEnd:N_,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}}function ak(t,e){return g_(t[0]-e[0])=0;--o)r.point((c=u[o])[0],c[1]);else i(d.x,d.p.x,-1,r);d=d.p}u=(d=d.o).z,h=!h}while(!d.v);r.lineEnd()}}}function uk(t){if(e=t.length){for(var e,n,i=0,r=t[0];++i=0?1:-1,S=D*A,M=S>c_,E=g*w;if(l.add(v_(E*D*D_(S),y*k+E*x_(S))),a+=M?A+D*h_:A,M^p>=n^b>=n){var C=cw(lw(h),lw(x));hw(C);var F=cw(o,C);hw(F);var N=(M^A>=0?-1:1)*F_(F[2]);(i>N||i===N&&(C[0]||C[1]))&&(s+=M^A>=0?1:-1)}}return(a<-l_||a0){for(f||(r.polygonStart(),f=!0),r.lineStart(),t=0;t1&&2&l&&d.push(d.pop().concat(d.shift())),a.push(d.filter(dk))}return d}}function dk(t){return t.length>1}function hk(t,e){return((t=t.x)[0]<0?t[1]-f_-l_:f_-t[1])-((e=e.x)[0]<0?e[1]-f_-l_:f_-e[1])}Kw.invert=Kw;var pk=fk((function(){return!0}),(function(t){var e,n=NaN,i=NaN,r=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(o,a){var s=o>0?c_:-c_,l=g_(o-n);g_(l-c_)0?f_:-f_),t.point(r,i),t.lineEnd(),t.lineStart(),t.point(s,i),t.point(o,i),e=0):r!==s&&l>=c_&&(g_(n-r)l_?y_((D_(e)*(o=x_(i))*D_(n)-D_(i)*(r=x_(e))*D_(t))/(r*o*a)):(e+i)/2}(n,i,o,a),t.point(r,i),t.lineEnd(),t.lineStart(),t.point(s,i),e=0),t.point(n=o,i=a),r=s},lineEnd:function(){t.lineEnd(),n=i=NaN},clean:function(){return 2-e}}}),(function(t,e,n,i){var r;if(null==t)r=n*f_,i.point(-c_,r),i.point(0,r),i.point(c_,r),i.point(c_,0),i.point(c_,-r),i.point(0,-r),i.point(-c_,-r),i.point(-c_,0),i.point(-c_,r);else if(g_(t[0]-e[0])>l_){var o=t[0]0)do{u.point(0===c||3===c?t:n,c>1?i:e)}while((c=(c+s+4)%4)!==f);else u.point(o[0],o[1])}function a(i,r){return g_(i[0]-t)0?0:3:g_(i[0]-n)0?2:1:g_(i[1]-e)0?1:0:r>0?3:2}function s(t,e){return l(t.x,e.x)}function l(t,e){var n=a(t,1),i=a(e,1);return n!==i?n-i:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(a){var l,u,c,f,d,h,p,m,g,y,v,x=a,b=ok(),_={point:w,lineStart:function(){_.point=k,u&&u.push(c=[]),y=!0,g=!1,p=m=NaN},lineEnd:function(){l&&(k(f,d),h&&g&&b.rejoin(),l.push(b.result())),_.point=w,g&&x.lineEnd()},polygonStart:function(){x=b,l=[],u=[],v=!0},polygonEnd:function(){var e=function(){for(var e=0,n=0,r=u.length;ni&&(d-o)*(i-a)>(h-a)*(t-o)&&++e:h<=i&&(d-o)*(i-a)<(h-a)*(t-o)&&--e;return e}(),n=v&&e,r=(l=Me(l)).length;(n||r)&&(a.polygonStart(),n&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),r&&lk(l,s,e,o,a),a.polygonEnd()),x=a,l=u=c=null}};function w(t,e){r(t,e)&&x.point(t,e)}function k(o,a){var s=r(o,a);if(u&&c.push([o,a]),y)f=o,d=a,h=s,y=!1,s&&(x.lineStart(),x.point(o,a));else if(s&&g)x.point(o,a);else{var l=[p=Math.max(gk,Math.min(mk,p)),m=Math.max(gk,Math.min(mk,m))],b=[o=Math.max(gk,Math.min(mk,o)),a=Math.max(gk,Math.min(mk,a))];!function(t,e,n,i,r,o){var a,s=t[0],l=t[1],u=0,c=1,f=e[0]-s,d=e[1]-l;if(a=n-s,f||!(a>0)){if(a/=f,f<0){if(a0){if(a>c)return;a>u&&(u=a)}if(a=r-s,f||!(a<0)){if(a/=f,f<0){if(a>c)return;a>u&&(u=a)}else if(f>0){if(a0)){if(a/=d,d<0){if(a0){if(a>c)return;a>u&&(u=a)}if(a=o-l,d||!(a<0)){if(a/=d,d<0){if(a>c)return;a>u&&(u=a)}else if(d>0){if(a0&&(t[0]=s+u*f,t[1]=l+u*d),c<1&&(e[0]=s+c*f,e[1]=l+c*d),!0}}}}}(l,b,t,e,n,i)?s&&(x.lineStart(),x.point(o,a),v=!1):(g||(x.lineStart(),x.point(l[0],l[1])),x.point(b[0],b[1]),s||x.lineEnd(),v=!1)}p=o,m=a,g=s}return _}}function vk(t,e,n){var i=Ee(t,e-l_,n).concat(e);return function(t){return i.map((function(e){return[t,e]}))}}function xk(t,e,n){var i=Ee(t,e-l_,n).concat(e);return function(t){return i.map((function(e){return[e,t]}))}}var bk,_k,wk,kk,Ak=t=>t,Dk=new Adder,Sk=new Adder,Mk={point:N_,lineStart:N_,lineEnd:N_,polygonStart:function(){Mk.lineStart=Ek,Mk.lineEnd=Nk},polygonEnd:function(){Mk.lineStart=Mk.lineEnd=Mk.point=N_,Dk.add(g_(Sk)),Sk=new Adder},result:function(){var t=Dk/2;return Dk=new Adder,t}};function Ek(){Mk.point=Ck}function Ck(t,e){Mk.point=Fk,bk=wk=t,_k=kk=e}function Fk(t,e){Sk.add(kk*t-wk*e),wk=t,kk=e}function Nk(){Fk(bk,_k)}var Ok,zk,Tk,Pk,Rk=Mk,Bk=1/0,jk=Bk,$k=-Bk,Lk=$k,Uk={point:function(t,e){t$k&&($k=t),eLk&&(Lk=e)},lineStart:N_,lineEnd:N_,polygonStart:N_,polygonEnd:N_,result:function(){var t=[[Bk,jk],[$k,Lk]];return $k=Lk=-(jk=Bk=1/0),t}},qk=Uk,Ik=0,Wk=0,Hk=0,Vk=0,Gk=0,Yk=0,Xk=0,Jk=0,Qk=0,Zk={point:Kk,lineStart:tA,lineEnd:iA,polygonStart:function(){Zk.lineStart=rA,Zk.lineEnd=oA},polygonEnd:function(){Zk.point=Kk,Zk.lineStart=tA,Zk.lineEnd=iA},result:function(){var t=Qk?[Xk/Qk,Jk/Qk]:Yk?[Vk/Yk,Gk/Yk]:Hk?[Ik/Hk,Wk/Hk]:[NaN,NaN];return Ik=Wk=Hk=Vk=Gk=Yk=Xk=Jk=Qk=0,t}};function Kk(t,e){Ik+=t,Wk+=e,++Hk}function tA(){Zk.point=eA}function eA(t,e){Zk.point=nA,Kk(Tk=t,Pk=e)}function nA(t,e){var n=t-Tk,i=e-Pk,r=M_(n*n+i*i);Vk+=r*(Tk+t)/2,Gk+=r*(Pk+e)/2,Yk+=r,Kk(Tk=t,Pk=e)}function iA(){Zk.point=Kk}function rA(){Zk.point=aA}function oA(){sA(Ok,zk)}function aA(t,e){Zk.point=sA,Kk(Ok=Tk=t,zk=Pk=e)}function sA(t,e){var n=t-Tk,i=e-Pk,r=M_(n*n+i*i);Vk+=r*(Tk+t)/2,Gk+=r*(Pk+e)/2,Yk+=r,Xk+=(r=Pk*t-Tk*e)*(Tk+t),Jk+=r*(Pk+e),Qk+=3*r,Kk(Tk=t,Pk=e)}var lA=Zk;function uA(t){this._context=t}uA.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,h_)}},result:N_};var cA,fA,dA,hA,pA,mA=new Adder,gA={point:N_,lineStart:function(){gA.point=yA},lineEnd:function(){cA&&vA(fA,dA),gA.point=N_},polygonStart:function(){cA=!0},polygonEnd:function(){cA=null},result:function(){var t=+mA;return mA=new Adder,t}};function yA(t,e){gA.point=vA,fA=hA=t,dA=pA=e}function vA(t,e){hA-=t,pA-=e,mA.add(M_(hA*hA+pA*pA)),hA=t,pA=e}var xA=gA;let bA,_A,wA,kA;class PathString{constructor(t){this._append=null==t?AA:function(t){const e=Math.floor(t);if(!(e>=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return AA;if(e!==bA){const t=10**e;bA=e,_A=function(e){let n=1;this._+=e[0];for(const i=e.length;n=0))throw new RangeError(`invalid digits: ${t}`);r=e}return null===e&&(i=new PathString(r)),a},a.projection(t).digits(r).context(e)}function SA(t){return function(e){var n=new MA;for(var i in t)n[i]=t[i];return n.stream=e,n}}function MA(){}function EA(t,e,n){var i=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=i&&t.clipExtent(null),B_(n,t.stream(qk)),e(qk.result()),null!=i&&t.clipExtent(i),t}function CA(t,e,n){return EA(t,(function(n){var i=e[1][0]-e[0][0],r=e[1][1]-e[0][1],o=Math.min(i/(n[1][0]-n[0][0]),r/(n[1][1]-n[0][1])),a=+e[0][0]+(i-o*(n[1][0]+n[0][0]))/2,s=+e[0][1]+(r-o*(n[1][1]+n[0][1]))/2;t.scale(150*o).translate([a,s])}),n)}function FA(t,e,n){return CA(t,[[0,0],e],n)}function NA(t,e,n){return EA(t,(function(n){var i=+e,r=i/(n[1][0]-n[0][0]),o=(i-r*(n[1][0]+n[0][0]))/2,a=-r*n[0][1];t.scale(150*r).translate([o,a])}),n)}function OA(t,e,n){return EA(t,(function(n){var i=+e,r=i/(n[1][1]-n[0][1]),o=-r*n[0][0],a=(i-r*(n[1][1]+n[0][1]))/2;t.scale(150*r).translate([o,a])}),n)}MA.prototype={constructor:MA,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var zA=16,TA=x_(30*m_);function PA(t,e){return+e?function(t,e){function n(i,r,o,a,s,l,u,c,f,d,h,p,m,g){var y=u-i,v=c-r,x=y*y+v*v;if(x>4*e&&m--){var b=a+d,_=s+h,w=l+p,k=M_(b*b+_*_+w*w),A=F_(w/=k),D=g_(g_(w)-1)e||g_((y*C+v*F)/x-.5)>.3||a*d+s*h+l*p0,r=g_(e)>l_;function o(t,n){return x_(t)*x_(n)>e}function a(t,n,i){var r=[1,0,0],o=cw(lw(t),lw(n)),a=uw(o,o),s=o[0],l=a-s*s;if(!l)return!i&&t;var u=e*a/l,c=-e*s/l,f=cw(r,o),d=dw(r,u);fw(d,dw(o,c));var h=f,p=uw(d,h),m=uw(h,h),g=p*p-m*(uw(d,d)-1);if(!(g<0)){var y=M_(g),v=dw(h,(-p-y)/m);if(fw(v,d),v=sw(v),!i)return v;var x,b=t[0],_=n[0],w=t[1],k=n[1];_0^v[1]<(g_(v[0]-b)c_^(b<=v[0]&&v[0]<=_)){var S=dw(h,(-p+y)/m);return fw(S,d),[v,sw(S)]}}}function s(e,n){var r=i?t:c_-t,o=0;return e<-r?o|=1:e>r&&(o|=2),n<-r?o|=4:n>r&&(o|=8),o}return fk(o,(function(t){var e,n,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(f,d){var h,p=[f,d],m=o(f,d),g=i?m?0:s(f,d):m?s(f+(f<0?c_:-c_),d):0;if(!e&&(u=l=m)&&t.lineStart(),m!==l&&(!(h=a(e,p))||ak(e,h)||ak(p,h))&&(p[2]=1),m!==l)c=0,m?(t.lineStart(),h=a(p,e),t.point(h[0],h[1])):(h=a(e,p),t.point(h[0],h[1],2),t.lineEnd()),e=h;else if(r&&e&&i^m){var y;g&n||!(y=a(p,e,!0))||(c=0,i?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1],3)))}!m||e&&ak(e,p)||t.point(p[0],p[1]),e=p,l=m,n=g},lineEnd:function(){l&&t.lineEnd(),e=null},clean:function(){return c|(u&&l)<<1}}}),(function(e,i,r,o){!function(t,e,n,i,r,o){if(n){var a=x_(e),s=D_(e),l=i*n;null==r?(r=e+i*h_,o=e-l/2):(r=rk(a,r),o=rk(a,o),(i>0?ro)&&(r+=i*h_));for(var u,c=r;i>0?c>o:c2?t[2]%360*m_:0,C()):[g*p_,y*p_,v*p_]},M.angle=function(t){return arguments.length?(x=t%360*m_,C()):x*p_},M.reflectX=function(t){return arguments.length?(b=t?-1:1,C()):b<0},M.reflectY=function(t){return arguments.length?(_=t?-1:1,C()):_<0},M.precision=function(t){return arguments.length?(a=PA(s,S=t*t),F()):M_(S)},M.fitExtent=function(t,e){return CA(M,t,e)},M.fitSize=function(t,e){return FA(M,t,e)},M.fitWidth=function(t,e){return NA(M,t,e)},M.fitHeight=function(t,e){return OA(M,t,e)},function(){return e=t.apply(this,arguments),M.invert=e.invert&&E,C()}}function LA(t){var e=0,n=c_/3,i=$A(t),r=i(e,n);return r.parallels=function(t){return arguments.length?i(e=t[0]*m_,n=t[1]*m_):[e*p_,n*p_]},r}function UA(t,e){var n=D_(t),i=(n+D_(e))/2;if(g_(i)2?t[2]*m_:0),e.invert=function(e){return(e=t.invert(e[0]*m_,e[1]*m_))[0]*=p_,e[1]*=p_,e},e}(r.rotate()).invert([0,0]));return l(null==u?[[s[0]-o,s[1]-o],[s[0]+o,s[1]+o]]:t===YA?[[Math.max(s[0]-o,u),e],[Math.min(s[0]+o,n),i]]:[[u,Math.max(s[1]-o,e)],[n,Math.min(s[1]+o,i)]])}return r.scale=function(t){return arguments.length?(a(t),c()):a()},r.translate=function(t){return arguments.length?(s(t),c()):s()},r.center=function(t){return arguments.length?(o(t),c()):o()},r.clipExtent=function(t){return arguments.length?(null==t?u=e=n=i=null:(u=+t[0][0],e=+t[0][1],n=+t[1][0],i=+t[1][1]),c()):null==u?null:[[u,e],[n,i]]},c()}function JA(t){return E_((f_+t)/2)}function QA(t,e){var n=x_(t),i=t===e?D_(t):k_(n/x_(e))/k_(JA(e)/JA(t)),r=n*A_(JA(t),i)/i;if(!i)return YA;function o(t,e){r>0?e<-f_+l_&&(e=-f_+l_):e>f_-l_&&(e=f_-l_);var n=r/A_(JA(e),i);return[n*D_(i*t),r-n*x_(i*t)]}return o.invert=function(t,e){var n=r-e,o=S_(i)*M_(t*t+n*n),a=v_(t,g_(n))*S_(n);return n*i<0&&(a-=c_*S_(t)*S_(n)),[a/i,2*y_(A_(r/o,1/i))-f_]},o}function ZA(t,e){return[t,e]}function KA(t,e){var n=x_(t),i=t===e?D_(t):(n-x_(e))/(e-t),r=n/i+t;if(g_(i)l_&&--r>0);return[t/(.8707+(o=i*i)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),i]},lD.invert=HA(F_),uD.invert=HA((function(t){return 2*y_(t)})),cD.invert=function(t,e){return[-e,2*y_(__(t))-f_]};var fD=Math.abs,dD=Math.cos,hD=Math.sin,pD=1e-6,mD=Math.PI,gD=mD/2,yD=Math.sqrt(2);function vD(t){return t>1?gD:t<-1?-gD:Math.asin(t)}function xD(t,e){var n,i=t*hD(e),r=30;do{e-=n=(e+hD(e)-i)/(1+dD(e))}while(fD(n)>pD&&--r>0);return e/2}var bD=function(t,e,n){function i(i,r){return[t*i*dD(r=xD(n,r)),e*hD(r)]}return i.invert=function(i,r){return r=vD(r/e),[i/(t*dD(r)),vD((2*r+hD(2*r))/n)]},i}(yD/gD,yD,mD);const _D=DA(),wD=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function kD(t,e){if(!t||"string"!=typeof t)throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(DD[t]=function(t,e){return function n(){const i=e();return i.type=t,i.path=DA().projection(i),i.copy=i.copy||function(){const t=n();return wD.forEach((e=>{i[e]&&t[e](i[e]())})),t.path.pointRadius(i.path.pointRadius()),t},Ih(i)}}(t,e),this):DD[t]||null}function AD(t){return t&&t.path||_D}const DD={albers:IA,albersusa:function(){var t,e,n,i,r,o,a=IA(),s=qA().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=qA().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(t,e){o=[t,e]}};function c(t){var e=t[0],a=t[1];return o=null,n.point(e,a),o||(i.point(e,a),o)||(r.point(e,a),o)}function f(){return t=e=null,c}return c.invert=function(t){var e=a.scale(),n=a.translate(),i=(t[0]-n[0])/e,r=(t[1]-n[1])/e;return(r>=.12&&r<.234&&i>=-.425&&i<-.214?s:r>=.166&&r<.234&&i>=-.214&&i<-.115?l:a).invert(t)},c.stream=function(n){return t&&e===n?t:(i=[a.stream(e=n),s.stream(n),l.stream(n)],r=i.length,t={point:function(t,e){for(var n=-1;++n2?t[2]+90:90]):[(t=n())[0],t[1],t[2]-90]},n([0,0,90]).scale(159.155)}};for(const t in DD)kD(t,DD[t]);function SD(){}const MD=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function ED(){var t=1,e=1,n=a;function i(t,e){return e.map((e=>r(t,e)))}function r(i,r){var a=[],s=[];return function(n,i,r){var a,s,l,u,c,f,d=new Array,h=new Array;for(a=s=-1,u=n[0]>=i,MD[u<<1].forEach(p);++a=i,MD[l|u<<1].forEach(p);for(MD[u<<0].forEach(p);++s=i,c=n[s*t]>=i,MD[u<<1|c<<2].forEach(p);++a=i,f=c,c=n[s*t+a+1]>=i,MD[l|u<<1|c<<2|f<<3].forEach(p);MD[u|c<<3].forEach(p)}for(a=-1,c=n[s*t]>=i,MD[c<<2].forEach(p);++a=i,MD[c<<2|f<<3].forEach(p);function p(t){var e,n,i=[t[0][0]+a,t[0][1]+s],l=[t[1][0]+a,t[1][1]+s],u=o(i),c=o(l);(e=h[u])?(n=d[c])?(delete h[e.end],delete d[n.start],e===n?(e.ring.push(l),r(e.ring)):d[e.start]=h[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[e.end],e.ring.push(l),h[e.end=c]=e):(e=d[c])?(n=h[u])?(delete d[e.start],delete h[n.end],e===n?(e.ring.push(l),r(e.ring)):d[n.start]=h[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[e.start],e.ring.unshift(i),d[e.start=u]=e):d[u]=h[c]={start:u,end:c,ring:[i,l]}}MD[c<<3].forEach(p)}(i,r,(t=>{n(t,i,r),function(t){for(var e=0,n=t.length,i=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e0?a.push([t]):s.push(t)})),s.forEach((t=>{for(var e,n=0,i=a.length;n{var o,a=n[0],s=n[1],l=0|a,u=0|s,c=i[u*t+l];a>0&&a0&&s=0&&o>=0||s("invalid size"),t=r,e=o,i},i.smooth=function(t){return arguments.length?(n=t?a:SD,i):n===a},i}function CD(t,e){for(var n,i=-1,r=e.length;++ii!=h>i&&n<(d-u)*(i-c)/(h-c)+u&&(r=-r)}return r}function ND(t,e,n){var i,r,o,a;return function(t,e,n){return(e[0]-t[0])*(n[1]-t[1])==(n[0]-t[0])*(e[1]-t[1])}(t,e,n)&&(r=t[i=+(t[0]===e[0])],o=n[i],a=e[i],r<=o&&o<=a||a<=o&&o<=r)}function OD(t,e,n){return function(i){var r=at(i),o=n?Math.min(r[0],0):r[0],a=r[1],s=a-o,l=e?xe(o,a,t):s/(t+1);return Ee(o+l,a,l)}}function zD(t){qa.call(this,null,t)}function TD(t,e,n,i,r){const o=t.x1||0,a=t.y1||0,s=e*n<0;function l(t){t.forEach(u)}function u(t){s&&t.reverse(),t.forEach(c)}function c(t){t[0]=(t[0]-o)*e+i,t[1]=(t[1]-a)*n+r}return function(t){return t.coordinates.forEach(l),t}}function PD(t,e,n){const i=t>=0?t:Xa(e,n);return Math.round((Math.sqrt(4*i*i+1)-1)/2)}function RD(t){return J(t)?t:it(+t)}function BD(){var t=t=>t[0],e=t=>t[1],n=h,i=[-1,-1],r=960,o=500,a=2;function l(s,l){const u=PD(i[0],s,t)>>a,c=PD(i[1],s,e)>>a,f=u?u+2:0,d=c?c+2:0,h=2*f+(r>>a),p=2*d+(o>>a),m=new Float32Array(h*p),g=new Float32Array(h*p);let y=m;s.forEach((i=>{const r=f+(+t(i)>>a),o=d+(+e(i)>>a);r>=0&&r=0&&o0&&c>0?(jD(h,p,m,g,u),$D(h,p,g,m,c),jD(h,p,m,g,u),$D(h,p,g,m,c),jD(h,p,m,g,u),$D(h,p,g,m,c)):u>0?(jD(h,p,m,g,u),jD(h,p,g,m,u),jD(h,p,m,g,u),y=g):c>0&&($D(h,p,m,g,c),$D(h,p,g,m,c),$D(h,p,m,g,c),y=g);const v=l?Math.pow(2,-2*a):1/Ce(y);for(let t=0,e=h*p;t>a),y2:d+(o>>a)}}return l.x=function(e){return arguments.length?(t=RD(e),l):t},l.y=function(t){return arguments.length?(e=RD(t),l):e},l.weight=function(t){return arguments.length?(n=RD(t),l):n},l.size=function(t){if(!arguments.length)return[r,o];var e=+t[0],n=+t[1];return e>=0&&n>=0||s("invalid size"),r=e,o=n,l},l.cellSize=function(t){return arguments.length?((t=+t)>=1||s("invalid cell size"),a=Math.floor(Math.log(t)/Math.LN2),l):1<=r&&(e>=o&&(s-=n[e-o+a*t]),i[e-r+a*t]=s/Math.min(e+1,t-1+o-e,o))}function $D(t,e,n,i,r){const o=1+(r<<1);for(let a=0;a=r&&(s>=o&&(l-=n[a+(s-o)*t]),i[a+(s-r)*t]=l/Math.min(s+1,e-1+o-s,o))}function LD(t){qa.call(this,null,t)}zD.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},ht(zD,qa,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=e.materialize(e.SOURCE).source,r=t.field||f,o=ED().smooth(!1!==t.smooth),a=t.thresholds||function(t,e,n){const i=OD(n.levels||10,n.nice,!1!==n.zero);return"shared"!==n.resolve?i:i(t.map((t=>be(e(t).values))))}(i,r,t),s=null===t.as?null:t.as||"contour",l=[];return i.forEach((e=>{const n=r(e),i=o.size([n.width,n.height])(n.values,k(a)?a:a(n.values));!function(t,e,n,i){let r=i.scale||e.scale,o=i.translate||e.translate;if(J(r)&&(r=r(n,i)),J(o)&&(o=o(n,i)),(1===r||null==r)&&!o)return;const a=(vt(r)?r:r[0])||1,s=(vt(r)?r:r[1])||1,l=o&&o[0]||0,u=o&&o[1]||0;t.forEach(TD(e,a,s,l,u))}(i,n,e,t),i.forEach((t=>{l.push(pa(e,da(null!=s?{[s]:t}:t)))}))})),this.value&&(n.rem=this.value),this.value=n.source=n.add=l,n}}),LD.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const UD=["x","y","weight","size","cellSize","bandwidth"];function qD(t,e){return UD.forEach((n=>null!=e[n]?t[n](e[n]):0)),t}function ID(t){qa.call(this,null,t)}ht(LD,qa,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var i,r=e.fork(e.NO_SOURCE|e.NO_FIELDS),o=function(t,e){var n,i,r,o,a,s,l=[],u=t=>t(o);if(null==e)l.push(t);else for(n={},i=0,r=t.length;ida(function(t,e){for(let n=0;nl_})).map(l)).concat(Ee(b_(o/h)*h,r,h).filter((function(t){return g_(t%m)>l_})).map(u))}return y.lines=function(){return v().map((function(t){return{type:"LineString",coordinates:t}}))},y.outline=function(){return{type:"Polygon",coordinates:[c(i).concat(f(a).slice(1),c(n).reverse().slice(1),f(s).reverse().slice(1))]}},y.extent=function(t){return arguments.length?y.extentMajor(t).extentMinor(t):y.extentMinor()},y.extentMajor=function(t){return arguments.length?(i=+t[0][0],n=+t[1][0],s=+t[0][1],a=+t[1][1],i>n&&(t=i,i=n,n=t),s>a&&(t=s,s=a,a=t),y.precision(g)):[[i,s],[n,a]]},y.extentMinor=function(n){return arguments.length?(e=+n[0][0],t=+n[1][0],o=+n[0][1],r=+n[1][1],e>t&&(n=e,e=t,t=n),o>r&&(n=o,o=r,r=n),y.precision(g)):[[e,o],[t,r]]},y.step=function(t){return arguments.length?y.stepMajor(t).stepMinor(t):y.stepMinor()},y.stepMajor=function(t){return arguments.length?(p=+t[0],m=+t[1],y):[p,m]},y.stepMinor=function(t){return arguments.length?(d=+t[0],h=+t[1],y):[d,h]},y.precision=function(d){return arguments.length?(g=+d,l=vk(o,r,90),u=xk(e,t,g),c=vk(s,a,90),f=xk(i,n,g),y):g},y.extentMajor([[-180,-90+l_],[180,90-l_]]).extentMinor([[-180,-80-l_],[180,80+l_]])}()}function QD(t){qa.call(this,null,t)}function ZD(t){if(!J(t))return!1;const e=Tt(i(t));return e.$x||e.$y||e.$value||e.$max}function KD(t){qa.call(this,null,t),this.modified(!0)}function tS(t,e,n){J(t[e])&&t[e](n)}VD.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},ht(VD,qa,{transform(t,e){var n,r=this._features,o=this._points,a=t.fields,s=a&&a[0],l=a&&a[1],u=t.geojson||!a&&f,c=e.ADD;n=t.modified()||e.changed(e.REM)||e.modified(i(u))||s&&e.modified(i(s))||l&&e.modified(i(l)),this.value&&!n||(c=e.SOURCE,this._features=r=[],this._points=o=[]),u&&e.visit(c,(t=>r.push(u(t)))),s&&l&&(e.visit(c,(t=>{var e=s(t),n=l(t);null!=e&&null!=n&&(e=+e)===e&&(n=+n)===n&&o.push([e,n])})),r=r.concat({type:WD,geometry:{type:"MultiPoint",coordinates:o}})),this.value={type:HD,features:r}}}),GD.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},ht(GD,qa,{transform(t,e){var n=e.fork(e.ALL),i=this.value,r=t.field||f,o=t.as||"path",a=n.SOURCE;!i||t.modified()?(this.value=i=AD(t.projection),n.materialize().reflow()):a=r===f||e.modified(r.fields)?n.ADD_MOD:n.ADD;const s=function(t,e){const n=t.pointRadius();return t.context(null),null!=e&&t.pointRadius(e),n}(i,t.pointRadius);return n.visit(a,(t=>t[o]=i(r(t)))),i.pointRadius(s),n.modifies(o)}}),YD.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},ht(YD,qa,{transform(t,e){var n,i=t.projection,r=t.fields[0],o=t.fields[1],a=t.as||["x","y"],s=a[0],l=a[1];function u(t){const e=i([r(t),o(t)]);e?(t[s]=e[0],t[l]=e[1]):(t[s]=void 0,t[l]=void 0)}return t.modified()?e=e.materialize().reflow(!0).visit(e.SOURCE,u):(n=e.modified(r.fields)||e.modified(o.fields),e.visit(n?e.ADD_MOD:e.ADD,u)),e.modifies(a)}}),XD.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},ht(XD,qa,{transform(t,e){var n=e.fork(e.ALL),i=this.value,r=t.as||"shape",o=n.ADD;return i&&!t.modified()||(this.value=i=function(t,e,n){const i=null==n?n=>t(e(n)):i=>{var r=t.pointRadius(),o=t.pointRadius(n)(e(i));return t.pointRadius(r),o};return i.context=e=>(t.context(e),i),i}(AD(t.projection),t.field||u("datum"),t.pointRadius),n.materialize().reflow(),o=n.SOURCE),n.visit(o,(t=>t[r]=i)),n.modifies(r)}}),JD.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},ht(JD,qa,{transform(t,e){var n,i=this.value,r=this.generator;if(!i.length||t.modified())for(const e in t)J(r[e])&&r[e](t[e]);return n=r(),i.length?e.mod.push(ma(i[0],n)):e.add.push(da(n)),i[0]=n,e}}),QD.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},ht(QD,qa,{transform(t,e){if(!e.changed()&&!t.modified())return e.StopPropagation;var n=e.materialize(e.SOURCE).source,i="shared"===t.resolve,r=t.field||f,o=function(t,e){let n;return J(t)?(n=n=>t(n,e),n.dep=ZD(t)):t?n=it(t):(n=t=>t.$value/t.$max||0,n.dep=!0),n}(t.opacity,t),a=function(t,e){let n;return J(t)?(n=n=>tf(t(n,e)),n.dep=ZD(t)):n=it(tf(t||"#888")),n}(t.color,t),s=t.as||"image",l={$x:0,$y:0,$value:0,$max:i?be(n.map((t=>be(r(t).values)))):0};return n.forEach((t=>{const e=r(t),n=ot({},t,l);i||(n.$max=be(e.values||[])),t[s]=function(t,e,n,i){const r=t.width,o=t.height,a=t.x1||0,s=t.y1||0,l=t.x2||r,u=t.y2||o,c=t.values,f=c?t=>c[t]:d,h=Sc(l-a,u-s),p=h.getContext("2d"),m=p.getImageData(0,0,l-a,u-s),g=m.data;for(let t=s,o=0;t{null!=t[e]&&tS(n,e,t[e])}))):wD.forEach((e=>{t.modified(e)&&tS(n,e,t[e])})),null!=t.pointRadius&&n.path.pointRadius(t.pointRadius),t.fit&&function(t,e){const n=function(t){return 1===(t=Y(t)).length?t[0]:{type:HD,features:t.reduce(((t,e)=>t.concat(function(t){return t.type===HD?t.features:Y(t).filter((t=>null!=t)).map((t=>t.type===WD?t:{type:WD,geometry:t}))}(e))),[])}}(e.fit);e.extent?t.fitExtent(e.extent,n):e.size&&t.fitSize(e.size,n)}(n,t),e.fork(e.NO_SOURCE|e.NO_FIELDS)}});var eS=Object.freeze({__proto__:null,contour:ID,geojson:VD,geopath:GD,geopoint:YD,geoshape:XD,graticule:JD,heatmap:QD,isocontour:zD,kde2d:LD,projection:KD});function nS(t,e,n,i){if(isNaN(e)||isNaN(n))return t;var r,o,a,s,l,u,c,f,d,h=t._root,p={data:i},m=t._x0,g=t._y0,y=t._x1,v=t._y1;if(!h)return t._root=p,t;for(;h.length;)if((u=e>=(o=(m+y)/2))?m=o:y=o,(c=n>=(a=(g+v)/2))?g=a:v=a,r=h,!(h=h[f=c<<1|u]))return r[f]=p,t;if(s=+t._x.call(null,h.data),l=+t._y.call(null,h.data),e===s&&n===l)return p.next=h,r?r[f]=p:t._root=p,t;do{r=r?r[f]=new Array(4):t._root=new Array(4),(u=e>=(o=(m+y)/2))?m=o:y=o,(c=n>=(a=(g+v)/2))?g=a:v=a}while((f=c<<1|u)==(d=(l>=a)<<1|s>=o));return r[d]=h,r[f]=p,t}function iS(t,e,n,i,r){this.node=t,this.x0=e,this.y0=n,this.x1=i,this.y1=r}function rS(t){return t[0]}function oS(t){return t[1]}function aS(t,e,n){var i=new sS(null==e?rS:e,null==n?oS:n,NaN,NaN,NaN,NaN);return null==t?i:i.addAll(t)}function sS(t,e,n,i,r,o){this._x=t,this._y=e,this._x0=n,this._y0=i,this._x1=r,this._y1=o,this._root=void 0}function lS(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var uS=aS.prototype=sS.prototype;function cS(t){return function(){return t}}function fS(t){return 1e-6*(t()-.5)}function dS(t){return t.x+t.vx}function hS(t){return t.y+t.vy}function pS(t){return t.index}function mS(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}uS.copy=function(){var t,e,n=new sS(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root;if(!i)return n;if(!i.length)return n._root=lS(i),n;for(t=[{source:i,target:n._root=new Array(4)}];i=t.pop();)for(var r=0;r<4;++r)(e=i.source[r])&&(e.length?t.push({source:e,target:i.target[r]=new Array(4)}):i.target[r]=lS(e));return n},uS.add=function(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return nS(this.cover(e,n),e,n,t)},uS.addAll=function(t){var e,n,i,r,o=t.length,a=new Array(o),s=new Array(o),l=1/0,u=1/0,c=-1/0,f=-1/0;for(n=0;nc&&(c=i),rf&&(f=r));if(l>c||u>f)return this;for(this.cover(l,u).cover(c,f),n=0;nt||t>=r||i>e||e>=o;)switch(s=(ed||(o=l.y0)>h||(a=l.x1)=y)<<1|t>=g)&&(l=p[p.length-1],p[p.length-1]=p[p.length-1-u],p[p.length-1-u]=l)}else{var v=t-+this._x.call(null,m.data),x=e-+this._y.call(null,m.data),b=v*v+x*x;if(b=(s=(p+g)/2))?p=s:g=s,(c=a>=(l=(m+y)/2))?m=l:y=l,e=h,!(h=h[f=c<<1|u]))return this;if(!h.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(n=e,d=f)}for(;h.data!==t;)if(i=h,!(h=h.next))return this;return(r=h.next)&&delete h.next,i?(r?i.next=r:delete i.next,this):e?(r?e[f]=r:delete e[f],(h=e[0]||e[1]||e[2]||e[3])&&h===(e[3]||e[2]||e[1]||e[0])&&!h.length&&(n?n[d]=h:this._root=h),this):(this._root=r,this)},uS.removeAll=function(t){for(var e=0,n=t.length;e{}};function yS(){for(var t,e=0,n=arguments.length,i={};e=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!i.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),a=-1,s=o.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a0)for(var n,i,r=new Array(n),o=0;o=0&&e._call.call(void 0,t),e=e._next;--kS}()}finally{kS=0,function(){for(var t,e,n=_S,i=1/0;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:_S=e);wS=t,jS(i)}(),ES=0}}function BS(){var t=FS.now(),e=t-MS;e>SS&&(CS-=e,MS=t)}function jS(t){kS||(AS&&(AS=clearTimeout(AS)),t-ES>24?(t<1/0&&(AS=setTimeout(RS,t-FS.now()-CS)),DS&&(DS=clearInterval(DS))):(DS||(MS=FS.now(),DS=setInterval(BS,SS)),kS=1,NS(RS)))}TS.prototype=PS.prototype={constructor:TS,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?OS():+n)+(null==e?0:+e),this._next||wS===this||(wS?wS._next=this:_S=this,wS=this),this._call=t,this._time=n,jS()},stop:function(){this._call&&(this._call=null,this._time=1/0,jS())}};const $S=1664525,LS=1013904223,US=4294967296;function qS(t){return t.x}function IS(t){return t.y}var WS=10,HS=Math.PI*(3-Math.sqrt(5));const VS={center:function(t,e){var n,i=1;function r(){var r,o,a=n.length,s=0,l=0;for(r=0;ru+p||oc+p||al.index){var m=u-s.x-s.vx,g=c-s.y-s.vy,y=m*m+g*g;yt.r&&(t.r=t[e].r)}function l(){if(e){var i,r,o=e.length;for(n=new Array(o),i=0;i=s)){(t.data!==e||t.next)&&(0===f&&(p+=(f=fS(n))*f),0===d&&(p+=(d=fS(n))*d),p[s(t,e,i),t])));for(a=0,r=new Array(u);ae(t,n):e)}QS.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30,expr:!0},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:JS}]},ht(QS,qa,{transform(t,e){var n,i,r=this.value,o=e.changed(e.ADD_REM),a=t.modified(YS),s=t.iterations||300;if(r?(o&&(e.modifies("index"),r.nodes(e.source)),(a||e.changed(e.MOD))&&ZS(r,t,0,e)):(this.value=r=function(t,e){const n=function(t){var e,n=1,i=.001,r=1-Math.pow(i,1/300),o=0,a=.6,s=new Map,l=PS(f),u=yS("tick","end"),c=function(){let t=1;return()=>(t=($S*t+LS)%US)/US}();function f(){d(),u.call("tick",e),n1?(null==n?s.delete(t):s.set(t,p(n)),e):s.get(t)},find:function(e,n,i){var r,o,a,s,l,u=0,c=t.length;for(null==i?i=1/0:i*=i,u=0;u1?(u.on(t,n),e):u.on(t)}}}(t),i=n.stop,r=n.restart;let o=!1;return n.stopped=()=>o,n.restart=()=>(o=!1,r()),n.stop=()=>(o=!0,i()),ZS(n,e,!0).on("end",(()=>o=!0))}(e.source,t),r.on("tick",(n=e.dataflow,i=this,()=>n.touch(i).run())),t.static||(o=!0,r.tick()),e.modifies("index")),a||o||t.modified(XS)||e.changed()&&t.restart)if(r.alpha(Math.max(r.alpha(),t.alpha||1)).alphaDecay(1-Math.pow(r.alphaMin(),1/s)),t.static)for(r.stop();--s>=0;)r.tick();else if(r.stopped()&&r.restart(),!o)return e.StopPropagation;return this.finish(t,e)},finish(t,e){const n=e.dataflow;for(let t,e=this._argops,s=0,l=e.length;s=0;)e+=n[i].value;else e=1;t.value=e}function sM(t,e){t instanceof Map?(t=[void 0,t],void 0===e&&(e=uM)):void 0===e&&(e=lM);for(var n,i,r,o,a,s=new dM(t),l=[s];n=l.pop();)if((r=e(n.data))&&(a=(r=Array.from(r)).length))for(n.children=r,o=a-1;o>=0;--o)l.push(i=r[o]=new dM(r[o])),i.parent=n,i.depth=n.depth+1;return s.eachBefore(fM)}function lM(t){return t.children}function uM(t){return Array.isArray(t)?t[1]:null}function cM(t){void 0!==t.data.value&&(t.value=t.data.value),t.data=t.data.data}function fM(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function dM(t){this.data=t,this.depth=this.height=0,this.parent=null}function hM(t){return null==t?null:pM(t)}function pM(t){if("function"!=typeof t)throw new Error;return t}function mM(){return 0}function gM(t){return function(){return t}}dM.prototype=sM.prototype={constructor:dM,count:function(){return this.eachAfter(aM)},each:function(t,e){let n=-1;for(const i of this)t.call(e,i,++n,this);return this},eachAfter:function(t,e){for(var n,i,r,o=this,a=[o],s=[],l=-1;o=a.pop();)if(s.push(o),n=o.children)for(i=0,r=n.length;i=0;--i)o.push(n[i]);return this},find:function(t,e){let n=-1;for(const i of this)if(t.call(e,i,++n,this))return i},sum:function(t){return this.eachAfter((function(e){for(var n=+t(e.data)||0,i=e.children,r=i&&i.length;--r>=0;)n+=i[r].value;e.value=n}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,n=function(t,e){if(t===e)return t;var n=t.ancestors(),i=e.ancestors(),r=null;for(t=n.pop(),e=i.pop();t===e;)r=t,t=n.pop(),e=i.pop();return r}(e,t),i=[e];e!==n;)e=e.parent,i.push(e);for(var r=i.length;t!==n;)i.splice(r,0,t),t=t.parent;return i},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){return Array.from(this)},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(n){n!==t&&e.push({source:n.parent,target:n})})),e},copy:function(){return sM(this).eachBefore(cM)},[Symbol.iterator]:function*(){var t,e,n,i,r=this,o=[r];do{for(t=o.reverse(),o=[];r=t.pop();)if(yield r,e=r.children)for(n=0,i=e.length;n0&&n*n>i*i+r*r}function kM(t,e){for(var n=0;n1e-6?(M+Math.sqrt(M*M-4*S*E))/(2*S):E/M);return{x:i+w+k*C,y:r+A+D*C,r:C}}function MM(t,e,n){var i,r,o,a,s=t.x-e.x,l=t.y-e.y,u=s*s+l*l;u?(r=e.r+n.r,r*=r,a=t.r+n.r,r>(a*=a)?(i=(u+a-r)/(2*u),o=Math.sqrt(Math.max(0,a/u-i*i)),n.x=t.x-i*s-o*l,n.y=t.y-i*l+o*s):(i=(u+r-a)/(2*u),o=Math.sqrt(Math.max(0,r/u-i*i)),n.x=e.x+i*s-o*l,n.y=e.y+i*l+o*s)):(n.x=e.x+n.r,n.y=e.y)}function EM(t,e){var n=t.r+e.r-1e-6,i=e.x-t.x,r=e.y-t.y;return n>0&&n*n>i*i+r*r}function CM(t){var e=t._,n=t.next._,i=e.r+n.r,r=(e.x*n.r+n.x*e.r)/i,o=(e.y*n.r+n.y*e.r)/i;return r*r+o*o}function FM(t){this._=t,this.next=null,this.previous=null}function NM(t){return Math.sqrt(t.value)}function OM(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function zM(t,e,n){return function(i){if(r=i.children){var r,o,a,s=r.length,l=t(i)*e||0;if(l)for(o=0;o1))return n.r;if(i=t[1],n.x=-i.r,i.x=n.r,i.y=0,!(o>2))return n.r+i.r;MM(i,n,r=t[2]),n=new FM(n),i=new FM(i),r=new FM(r),n.next=r.previous=i,i.next=n.previous=r,r.next=i.previous=n;t:for(l=3;lfunction(t){let e=(t=`${t}`).length;return WM(t,e-1)&&!WM(t,e-2)&&(t=t.slice(0,-1)),"/"===t[0]?t:`/${t}`}(t(e,n,i)))),n=e.map(IM),r=new Set(e).add("");for(const t of n)r.has(t)||(r.add(t),e.push(t),n.push(IM(t)),d.push($M));h=(t,n)=>e[n],p=(t,e)=>n[e]}for(a=0,r=d.length;a=0&&(u=d[t]).data===$M;--t)u.data=null}if(s.parent=BM,s.eachBefore((function(t){t.depth=t.parent.depth+1,--r})).eachBefore(fM),s.parent=null,r>0)throw new Error("cycle");return s}return i.id=function(t){return arguments.length?(e=hM(t),i):e},i.parentId=function(t){return arguments.length?(n=hM(t),i):n},i.path=function(e){return arguments.length?(t=hM(e),i):t},i}function IM(t){let e=t.length;if(e<2)return"";for(;--e>1&&!WM(t,e););return t.slice(0,e)}function WM(t,e){if("/"===t[e]){let n=0;for(;e>0&&"\\"===t[--e];)++n;if(0==(1&n))return!0}return!1}function HM(t,e){return t.parent===e.parent?1:2}function VM(t){var e=t.children;return e?e[0]:t.t}function GM(t){var e=t.children;return e?e[e.length-1]:t.t}function YM(t,e,n){var i=n/(e.i-t.i);e.c-=i,e.s+=n,t.c+=i,e.z+=n,e.m+=n}function XM(t,e,n){return t.a.parent===e.parent?t.a:n}function JM(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}function QM(t,e,n,i,r){for(var o,a=t.children,s=-1,l=a.length,u=t.value&&(r-n)/t.value;++sd&&(d=s),g=c*c*m,(h=Math.max(d/g,g/f))>p){c-=s;break}p=h}y.push(a={value:c,dice:l1?e:1)},n}(ZM),eE=function t(e){function n(t,n,i,r,o){if((a=t._squarify)&&a.ratio===e)for(var a,s,l,u,c,f=-1,d=a.length,h=t.value;++f1?e:1)},n}(ZM);function nE(t,e,n){const i={};return t.each((t=>{const r=t.data;n(r)&&(i[e(r)]=t)})),t.lookup=i,t}function iE(t){qa.call(this,null,t)}iE.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const rE=t=>t.values;function oE(){const t=[],e={entries:t=>i(n(t,0),0),key:n=>(t.push(n),e)};function n(e,i){if(i>=t.length)return e;const r=e.length,o=t[i++],a={},s={};let l,u,c,f=-1;for(;++ft.length)return e;const r=[];for(const t in e)r.push({key:t,values:i(e[t],n)});return r}return e}function aE(t){qa.call(this,null,t)}ht(iE,qa,{transform(t,e){e.source||s("Nest transform requires an upstream data source.");var n=t.generate,i=t.modified(),r=e.clone(),o=this.value;return(!o||i||e.changed())&&(o&&o.each((t=>{t.children&&ua(t.data)&&r.rem.push(t.data)})),this.value=o=sM({values:Y(t.keys).reduce(((t,e)=>(t.key(e),t)),oE()).entries(r.source)},rE),n&&o.each((t=>{t.children&&(t=da(t.data),r.add.push(t),r.source.push(t))})),nE(o,ca,ca)),r.source.root=o,r}});const sE=(t,e)=>t.parent===e.parent?1:2;ht(aE,qa,{transform(t,e){e.source&&e.source.root||s(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(t.method),i=this.fields,r=e.source.root,o=t.as||i;t.field?r.sum(t.field):r.count(),t.sort&&r.sort(ga(t.sort,(t=>t.data))),function(t,e,n){for(let i,r=0,o=e.length;rfunction(t,e,n){const i=t.data,r=e.length-1;for(let o=0;o(t=(yM*t+vM)%xM)/xM}();return r.x=e/2,r.y=n/2,t?r.eachBefore(OM(t)).eachAfter(zM(i,.5,o)).eachBefore(TM(1)):r.eachBefore(OM(NM)).eachAfter(zM(mM,1,o)).eachAfter(zM(i,r.r/Math.min(e,n),o)).eachBefore(TM(Math.min(e,n)/(2*r.r))),r}return r.radius=function(e){return arguments.length?(t=hM(e),r):t},r.size=function(t){return arguments.length?(e=+t[0],n=+t[1],r):[e,n]},r.padding=function(t){return arguments.length?(i="function"==typeof t?t:gM(+t),r):i},r},params:["radius","size","padding"],fields:lE});const cE=["x0","y0","x1","y1","depth","children"];function fE(t){aE.call(this,t)}function dE(t){qa.call(this,null,t)}fE.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:cE.length,default:cE}]},ht(fE,aE,{layout:function(){var t=1,e=1,n=0,i=!1;function r(r){var o=r.height+1;return r.x0=r.y0=n,r.x1=t,r.y1=e/o,r.eachBefore(function(t,e){return function(i){i.children&&RM(i,i.x0,t*(i.depth+1)/e,i.x1,t*(i.depth+2)/e);var r=i.x0,o=i.y0,a=i.x1-n,s=i.y1-n;a=0;--r)s.push(n=e.children[r]=new JM(i[r],r)),n.parent=e;return(a.parent=new JM(null,0)).children=[a],a}(r);if(l.eachAfter(o),l.parent.m=-l.z,l.eachBefore(a),i)r.eachBefore(s);else{var u=r,c=r,f=r;r.eachBefore((function(t){t.xc.x&&(c=t),t.depth>f.depth&&(f=t)}));var d=u===c?1:t(u,c)/2,h=d-u.x,p=e/(c.x+d+h),m=n/(f.depth||1);r.eachBefore((function(t){t.x=(t.x+h)*p,t.y=t.depth*m}))}return r}function o(e){var n=e.children,i=e.parent.children,r=e.i?i[e.i-1]:null;if(n){!function(t){for(var e,n=0,i=0,r=t.children,o=r.length;--o>=0;)(e=r[o]).z+=n,e.m+=n,n+=e.s+(i+=e.c)}(e);var o=(n[0].z+n[n.length-1].z)/2;r?(e.z=r.z+t(e._,r._),e.m=e.z-o):e.z=o}else r&&(e.z=r.z+t(e._,r._));e.parent.A=function(e,n,i){if(n){for(var r,o=e,a=e,s=n,l=o.parent.children[0],u=o.m,c=a.m,f=s.m,d=l.m;s=GM(s),o=VM(o),s&&o;)l=VM(l),(a=GM(a)).a=e,(r=s.z+f-o.z-u+t(s._,o._))>0&&(YM(XM(s,e,i),e,r),u+=r,c+=r),f+=s.m,u+=o.m,d+=l.m,c+=a.m;s&&!GM(a)&&(a.t=s,a.m+=f-c),o&&!VM(l)&&(l.t=o,l.m+=u-d,i=e)}return i}(e,r,e.parent.A||i[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*n}return r.separation=function(e){return arguments.length?(t=e,r):t},r.size=function(t){return arguments.length?(i=!1,e=+t[0],n=+t[1],r):i?null:[e,n]},r.nodeSize=function(t){return arguments.length?(i=!0,e=+t[0],n=+t[1],r):i?[e,n]:null},r},cluster:function(){var t=iM,e=1,n=1,i=!1;function r(r){var o,a=0;r.eachAfter((function(e){var n=e.children;n?(e.x=function(t){return t.reduce(rM,0)/t.length}(n),e.y=function(t){return 1+t.reduce(oM,0)}(n)):(e.x=o?a+=t(e,o):0,e.y=0,o=e)}));var s=function(t){for(var e;e=t.children;)t=e[0];return t}(r),l=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(r),u=s.x-t(s,l)/2,c=l.x+t(l,s)/2;return r.eachAfter(i?function(t){t.x=(t.x-r.x)*e,t.y=(r.y-t.y)*n}:function(t){t.x=(t.x-u)/(c-u)*e,t.y=(1-(r.y?t.y/r.y:1))*n})}return r.separation=function(e){return arguments.length?(t=e,r):t},r.size=function(t){return arguments.length?(i=!1,e=+t[0],n=+t[1],r):i?null:[e,n]},r.nodeSize=function(t){return arguments.length?(i=!0,e=+t[0],n=+t[1],r):i?[e,n]:null},r}},pE=["x","y","depth","children"];function mE(t){aE.call(this,t)}function gE(t){qa.call(this,[],t)}mE.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:pE.length,default:pE}]},ht(mE,aE,{layout(t){const e=t||"tidy";if(ut(hE,e))return hE[e]();s("Unrecognized Tree layout method: "+e)},params:["size","nodeSize"],fields:pE}),gE.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},ht(gE,qa,{transform(t,e){const n=this.value,i=e.source&&e.source.root,r=e.fork(e.NO_SOURCE),o={};return i||s("TreeLinks transform requires a tree data source."),e.changed(e.ADD_REM)?(r.rem=n,e.visit(e.SOURCE,(t=>o[ca(t)]=1)),i.each((t=>{const e=t.data,n=t.parent&&t.parent.data;n&&o[ca(e)]&&o[ca(n)]&&r.add.push(da({source:n,target:e}))})),this.value=r.add):e.changed(e.MOD)&&(e.visit(e.MOD,(t=>o[ca(t)]=1)),n.forEach((t=>{(o[ca(t.source)]||o[ca(t.target)])&&r.mod.push(t)}))),r}});const yE={binary:function(t,e,n,i,r){var o,a,s=t.children,l=s.length,u=new Array(l+1);for(u[0]=a=o=0;o=n-1){var c=s[e];return c.x0=r,c.y0=o,c.x1=a,void(c.y1=l)}for(var f=u[e],d=i/2+f,h=e+1,p=n-1;h>>1;u[m]l-o){var v=i?(r*y+a*g)/i:a;t(e,h,g,r,o,v,l),t(h,n,y,v,o,a,l)}else{var x=i?(o*y+l*g)/i:l;t(e,h,g,r,o,a,x),t(h,n,y,r,x,a,l)}}(0,l,t.value,e,n,i,r)},dice:RM,slice:QM,slicedice:function(t,e,n,i,r){(1&t.depth?QM:RM)(t,e,n,i,r)},squarify:tE,resquarify:eE},vE=["x0","y0","x1","y1","depth","children"];function xE(t){aE.call(this,t)}xE.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:vE.length,default:vE}]},ht(xE,aE,{layout(){const t=function(){var t=tE,e=!1,n=1,i=1,r=[0],o=mM,a=mM,s=mM,l=mM,u=mM;function c(t){return t.x0=t.y0=0,t.x1=n,t.y1=i,t.eachBefore(f),r=[0],e&&t.eachBefore(PM),t}function f(e){var n=r[e.depth],i=e.x0+n,c=e.y0+n,f=e.x1-n,d=e.y1-n;f{const n=t.tile();n.ratio&&t.tile(n.ratio(e))},t.method=e=>{ut(yE,e)?t.tile(yE[e]):s("Unrecognized Treemap layout method: "+e)},t},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:vE});var bE=Object.freeze({__proto__:null,nest:iE,pack:uE,partition:fE,stratify:dE,tree:mE,treelinks:gE,treemap:xE});const _E=4278190080;function wE(t,e,n){return new Uint32Array(t.getImageData(0,0,e,n).data.buffer)}function kE(t,e,n){if(!e.length)return;const i=e[0].mark.marktype;"group"===i?e.forEach((e=>{e.items.forEach((e=>kE(t,e.items,n)))})):Cy[i].draw(t,{items:n?e.map(AE):e})}function AE(t){const e=pa(t,{});return e.stroke&&0!==e.strokeOpacity||e.fill&&0!==e.fillOpacity?{...e,strokeOpacity:1,stroke:"#000",fillOpacity:0}:e}const DE=5,SE=31,ME=32,EE=new Uint32Array(ME+1),CE=new Uint32Array(ME+1);CE[0]=0,EE[0]=~CE[0];for(let t=1;t<=ME;++t)CE[t]=CE[t-1]<<1|1,EE[t]=~CE[t];function FE(t,e,n,i,r,o){let a=n/2;return t-a<0||t+a>r||e-(a=i/2)<0||e+a>o}function NE(t,e,n,i,r,o,a,s){const l=r*o/(2*i),u=t(e-l),c=t(e+l),f=t(n-(o/=2)),d=t(n+o);return a.outOfBounds(u,f,c,d)||a.getRange(u,f,c,d)||s&&s.getRange(u,f,c,d)}const OE=[-1,-1,1,1],zE=[-1,1,-1,1],TE=["right","center","left"],PE=["bottom","middle","top"];function RE(t,e,n,i,r,o,a,s,l,u,c,f){return!(r.outOfBounds(t,n,e,i)||(f&&o||r).getRange(t,n,e,i))}const BE={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},jE={naive:function(t,e,n,i){const r=t.width,o=t.height;return function(t){const e=t.datum.datum.items[i].items,n=e.length,a=t.datum.fontSize,s=uy.width(t.datum,t.datum.text);let l,u,c,f,d,h,p,m=0;for(let i=0;i=m&&(m=p,t.x=d,t.y=h);return d=s/2,h=a/2,l=t.x-d,u=t.x+d,c=t.y-h,f=t.y+h,t.align="center",l<0&&u<=r?t.align="left":0<=l&&r=1;)d=(h+p)/2,NE(t,c,f,u,l,d,a,s)?p=d:h=d;if(h>i)return[c,f,h,!0]}}return function(e){const s=e.datum.datum.items[i].items,u=s.length,c=e.datum.fontSize,f=uy.width(e.datum,e.datum.text);let d,h,p,m,g,y,v,x,b,_,w,k,A,D,S,M,E,C=n?c:0,F=!1,N=!1,O=0;for(let i=0;ih&&(E=d,d=h,h=E),p>m&&(E=p,p=m,m=E),b=t(d),w=t(h),_=~~((b+w)/2),k=t(p),D=t(m),A=~~((k+D)/2),v=_;v>=b;--v)for(x=A;x>=k;--x)M=l(v,x,C,f,c),M&&([e.x,e.y,C,F]=M);for(v=_;v<=w;++v)for(x=A;x<=D;++x)M=l(v,x,C,f,c),M&&([e.x,e.y,C,F]=M);F||n||(S=Math.abs(h-d+m-p),g=(d+h)/2,y=(p+m)/2,S>=O&&!FE(g,y,f,c,r,o)&&!NE(t,g,y,c,f,c,a,null)&&(O=S,e.x=g,e.y=y,N=!0))}return!(!F&&!N||(g=f/2,y=c/2,a.setRange(t(e.x-g),t(e.y-y),t(e.x+g),t(e.y+y)),e.align="center",e.baseline="middle",0))}},floodfill:function(t,e,n,i){const r=t.width,o=t.height,a=e[0],s=e[1],l=t.bitmap();return function(e){const u=e.datum.datum.items[i].items,c=u.length,f=e.datum.fontSize,d=uy.width(e.datum,e.datum.text),h=[];let p,m,g,y,v,x,b,_,w,k,A,D,S=n?f:0,M=!1,E=!1,C=0;for(let i=0;i=1;)A=(w+k)/2,NE(t,v,x,f,d,A,a,s)?k=A:w=A;w>S&&(e.x=v,e.y=x,S=w,M=!0)}}M||n||(D=Math.abs(m-p+y-g),v=(p+m)/2,x=(g+y)/2,D>=C&&!FE(v,x,d,f,r,o)&&!NE(t,v,x,f,d,f,a,null)&&(C=D,e.x=v,e.y=x,E=!0))}return!(!M&&!E||(v=d/2,x=f/2,a.setRange(t(e.x-v),t(e.y-x),t(e.x+v),t(e.y+x)),e.align="center",e.baseline="middle",0))}}};function $E(t,e,n,i,r,o,a,s,l,u,c){if(!t.length)return t;const f=Math.max(i.length,r.length),d=function(t,e){const n=new Float64Array(e),i=t.length;for(let e=0;e[t.x,t.x,t.x,t.y,t.y,t.y];return t?"line"===t||"area"===t?t=>r(t.datum):"line"===e?t=>{const e=t.datum.items[i].items;return r(e.length?e["start"===n?0:e.length-1]:{x:NaN,y:NaN})}:t=>{const e=t.datum.bounds;return[e.x1,(e.x1+e.x2)/2,e.x2,e.y1,(e.y1+e.y2)/2,e.y2]}:r}(p,m,s,l),v=null===u||u===1/0,x=g&&"naive"===c;var b;let _=-1,w=-1;const k=t.map((t=>{const e=v?uy.width(t,t.text):void 0;return _=Math.max(_,e),w=Math.max(w,t.fontSize),{datum:t,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(t),textWidth:e}}));u=null===u||u===1/0?Math.max(_,w)+Math.max(...i):u;const A=function(t,e,n){const i=Math.max(1,Math.sqrt(t*e/1e6)),r=~~((t+2*n+i)/i),o=~~((e+2*n+i)/i),a=t=>~~((t+n)/i);return a.invert=t=>t*i-n,a.bitmap=()=>function(t,e){const n=new Uint32Array(~~((t*e+ME)/ME));function i(t,e){n[t]|=e}function r(t,e){n[t]&=e}return{array:n,get:(e,i)=>{const r=i*t+e;return n[r>>>DE]&1<<(r&SE)},set:(e,n)=>{const r=n*t+e;i(r>>>DE,1<<(r&SE))},clear:(e,n)=>{const i=n*t+e;r(i>>>DE,~(1<<(i&SE)))},getRange:(e,i,r,o)=>{let a,s,l,u,c=o;for(;c>=i;--c)if(a=c*t+e,s=c*t+r,l=a>>>DE,u=s>>>DE,l===u){if(n[l]&EE[a&SE]&CE[1+(s&SE)])return!0}else{if(n[l]&EE[a&SE])return!0;if(n[u]&CE[1+(s&SE)])return!0;for(let t=l+1;t{let a,s,l,u,c;for(;n<=o;++n)if(a=n*t+e,s=n*t+r,l=a>>>DE,u=s>>>DE,l===u)i(l,EE[a&SE]&CE[1+(s&SE)]);else for(i(l,EE[a&SE]),i(u,CE[1+(s&SE)]),c=l+1;c{let a,s,l,u,c;for(;n<=o;++n)if(a=n*t+e,s=n*t+i,l=a>>>DE,u=s>>>DE,l===u)r(l,CE[a&SE]|EE[1+(s&SE)]);else for(r(l,CE[a&SE]),r(u,EE[1+(s&SE)]),c=l+1;cn<0||i<0||o>=e||r>=t}}(r,o),a.ratio=i,a.padding=n,a.width=t,a.height=e,a}(e[0],e[1],u);let D;if(!x){n&&k.sort(((t,e)=>n(t.datum,e.datum)));let e=!1;for(let t=0;tt.datum));D=o.length||i?function(t,e,n,i,r){const o=t.width,a=t.height,s=i||r,l=Sc(o,a).getContext("2d"),u=Sc(o,a).getContext("2d"),c=s&&Sc(o,a).getContext("2d");n.forEach((t=>kE(l,t,!1))),kE(u,e,!1),s&&kE(c,e,!0);const f=wE(l,o,a),d=wE(u,o,a),h=s&&wE(c,o,a),p=t.bitmap(),m=s&&t.bitmap();let g,y,v,x,b,_,w,k;for(y=0;yn.set(t(e.boundary[0]),t(e.boundary[3])))),[n,void 0]}(A,a&&k)}const S=g?jE[c](A,D,a,l):function(t,e,n,i){const r=t.width,o=t.height,a=e[0],s=e[1],l=i.length;return function(e){const u=e.boundary,c=e.datum.fontSize;if(u[2]<0||u[5]<0||u[0]>r||u[3]>o)return!1;let f,d,h,p,m,g,y,v,x,b,_,w,k,A,D,S=e.textWidth??0;for(let r=0;r>>2&3)-1,h=0===f&&0===d||i[r]<0,p=f&&d?Math.SQRT1_2:1,m=i[r]<0?-1:1,g=u[1+f]+i[r]*f*p,_=u[4+d]+m*c*d/2+i[r]*d*p,v=_-c/2,x=_+c/2,w=t(g),A=t(v),D=t(x),!S){if(!RE(w,w,A,D,a,s,0,0,0,0,0,h))continue;S=uy.width(e.datum,e.datum.text)}if(b=g+m*S*f/2,g=b-S/2,y=b+S/2,w=t(g),k=t(y),RE(w,k,A,D,a,s,0,0,0,0,0,h))return e.x=f?f*m<0?y:g:b,e.y=d?d*m<0?x:v:_,e.align=TE[f*m+1],e.baseline=PE[d*m+1],a.setRange(w,A,k,D),!0}return!1}}(A,D,h,d);return k.forEach((t=>t.opacity=+S(t))),k}const LE=["x","y","opacity","align","baseline"],UE=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function qE(t){qa.call(this,null,t)}qE.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:UE},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:LE.length,default:LE}]},ht(qE,qa,{transform(t,e){const n=t.modified();if(!(n||e.changed(e.ADD_REM)||function(n){const i=t.sort;return J(i)&&e.modified(i.fields)}()))return;t.size&&2===t.size.length||s("Size parameter should be specified as a [width, height] array.");const i=t.as||LE;return $E(e.materialize(e.SOURCE).source||[],t.size,t.sort,Y(null==t.offset?1:t.offset),Y(t.anchor||UE),t.avoidMarks||[],!1!==t.avoidBaseMark,t.lineAnchor||"end",t.markIndex||0,void 0===t.padding?0:t.padding,t.method||"naive").forEach((t=>{const e=t.datum;e[i[0]]=t.x,e[i[1]]=t.y,e[i[2]]=t.opacity,e[i[3]]=t.align,e[i[4]]=t.baseline})),e.reflow(n).modifies(i)}});var IE=Object.freeze({__proto__:null,label:qE});function WE(t,e){var n,i,r,o,a,s,l=[],u=function(t){return t(o)};if(null==e)l.push(t);else for(n={},i=0,r=t.length;i{Os(e,t.x,t.y,t.bandwidth||.3).forEach((t=>{const n={};for(let t=0;t"poly"===t?e:"quad"===t?2:1)(a,l),c=t.as||[n(t.x),n(t.y)],f=VE[a],d=[];let h=t.extent;ut(VE,a)||s("Invalid regression method: "+a),null!=h&&"log"===a&&h[0]<=0&&(e.dataflow.warn("Ignoring extent with values <= 0 for log regression."),h=null),r.forEach((n=>{if(n.length<=u)return void e.dataflow.warn("Skipping regression with more parameters than data points.");const i=f(n,t.x,t.y,l);if(t.params)return void d.push(da({keys:n.dims,coef:i.coef,rSquared:i.rSquared}));const r=h||at(n,t.x),s=t=>{const e={};for(let t=0;ts([t,i.predict(t)]))):Rs(i.predict,r,25,200).forEach(s)})),this.value&&(i.rem=this.value),this.value=i.add=i.source=d}return i}});var YE=Object.freeze({__proto__:null,loess:HE,regression:GE});const XE=134217729,JE=33306690738754706e-32;function QE(t,e,n,i,r){let o,a,s,l,u=e[0],c=i[0],f=0,d=0;c>u==c>-u?(o=u,u=e[++f]):(o=c,c=i[++d]);let h=0;if(fu==c>-u?(a=u+o,s=o-(a-u),u=e[++f]):(a=c+o,s=o-(a-c),c=i[++d]),o=a,0!==s&&(r[h++]=s);fu==c>-u?(a=o+u,l=a-o,s=o-(a-l)+(u-l),u=e[++f]):(a=o+c,l=a-o,s=o-(a-l)+(c-l),c=i[++d]),o=a,0!==s&&(r[h++]=s);for(;f0!=s>0)return l;const u=Math.abs(a+s);return Math.abs(l)>=KE*u?l:-function(t,e,n,i,r,o,a){let s,l,u,c,f,d,h,p,m,g,y,v,x,b,_,w,k,A;const D=t-r,S=n-r,M=e-o,E=i-o;b=D*E,d=XE*D,h=d-(d-D),p=D-h,d=XE*E,m=d-(d-E),g=E-m,_=p*g-(b-h*m-p*m-h*g),w=M*S,d=XE*M,h=d-(d-M),p=M-h,d=XE*S,m=d-(d-S),g=S-m,k=p*g-(w-h*m-p*m-h*g),y=_-k,f=_-y,nC[0]=_-(y+f)+(f-k),v=b+y,f=v-b,x=b-(v-f)+(y-f),y=x-w,f=x-y,nC[1]=x-(y+f)+(f-w),A=v+y,f=A-v,nC[2]=v-(A-f)+(y-f),nC[3]=A;let C=function(t,e){let n=e[0];for(let t=1;t<4;t++)n+=e[t];return n}(0,nC),F=tC*a;if(C>=F||-C>=F)return C;if(f=t-D,s=t-(D+f)+(f-r),f=n-S,u=n-(S+f)+(f-r),f=e-M,l=e-(M+f)+(f-o),f=i-E,c=i-(E+f)+(f-o),0===s&&0===l&&0===u&&0===c)return C;if(F=eC*a+JE*Math.abs(C),C+=D*c+E*s-(M*u+S*l),C>=F||-C>=F)return C;b=s*E,d=XE*s,h=d-(d-s),p=s-h,d=XE*E,m=d-(d-E),g=E-m,_=p*g-(b-h*m-p*m-h*g),w=l*S,d=XE*l,h=d-(d-l),p=l-h,d=XE*S,m=d-(d-S),g=S-m,k=p*g-(w-h*m-p*m-h*g),y=_-k,f=_-y,aC[0]=_-(y+f)+(f-k),v=b+y,f=v-b,x=b-(v-f)+(y-f),y=x-w,f=x-y,aC[1]=x-(y+f)+(f-w),A=v+y,f=A-v,aC[2]=v-(A-f)+(y-f),aC[3]=A;const N=QE(4,nC,4,aC,iC);b=D*c,d=XE*D,h=d-(d-D),p=D-h,d=XE*c,m=d-(d-c),g=c-m,_=p*g-(b-h*m-p*m-h*g),w=M*u,d=XE*M,h=d-(d-M),p=M-h,d=XE*u,m=d-(d-u),g=u-m,k=p*g-(w-h*m-p*m-h*g),y=_-k,f=_-y,aC[0]=_-(y+f)+(f-k),v=b+y,f=v-b,x=b-(v-f)+(y-f),y=x-w,f=x-y,aC[1]=x-(y+f)+(f-w),A=v+y,f=A-v,aC[2]=v-(A-f)+(y-f),aC[3]=A;const O=QE(N,iC,4,aC,rC);b=s*c,d=XE*s,h=d-(d-s),p=s-h,d=XE*c,m=d-(d-c),g=c-m,_=p*g-(b-h*m-p*m-h*g),w=l*u,d=XE*l,h=d-(d-l),p=l-h,d=XE*u,m=d-(d-u),g=u-m,k=p*g-(w-h*m-p*m-h*g),y=_-k,f=_-y,aC[0]=_-(y+f)+(f-k),v=b+y,f=v-b,x=b-(v-f)+(y-f),y=x-w,f=x-y,aC[1]=x-(y+f)+(f-w),A=v+y,f=A-v,aC[2]=v-(A-f)+(y-f),aC[3]=A;const z=QE(O,rC,4,aC,oC);return oC[z-1]}(t,e,n,i,r,o,u)}const lC=Math.pow(2,-52),uC=new Uint32Array(512);class Delaunator{static from(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:mC,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:gC;const i=t.length,r=new Float64Array(2*i);for(let o=0;o>1;if(e>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const n=Math.max(2*e-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(e)),this._hullPrev=new Uint32Array(e),this._hullNext=new Uint32Array(e),this._hullTri=new Uint32Array(e),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(e),this._dists=new Float64Array(e),this.update()}update(){const{coords:t,_hullPrev:e,_hullNext:n,_hullTri:i,_hullHash:r}=this,o=t.length>>1;let a=1/0,s=1/0,l=-1/0,u=-1/0;for(let e=0;el&&(l=n),i>u&&(u=i),this._ids[e]=e}const c=(a+l)/2,f=(s+u)/2;let d,h,p,m=1/0;for(let e=0;e0&&(h=e,m=n)}let v=t[2*h],x=t[2*h+1],b=1/0;for(let e=0;ei&&(e[n++]=r,i=this._dists[r])}return this.hull=e.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(sC(g,y,v,x,_,w)<0){const t=h,e=v,n=x;h=p,v=_,x=w,p=t,_=e,w=n}const k=function(t,e,n,i,r,o){const a=n-t,s=i-e,l=r-t,u=o-e,c=a*a+s*s,f=l*l+u*u,d=.5/(a*u-s*l);return{x:t+(u*c-s*f)*d,y:e+(a*f-l*c)*d}}(g,y,v,x,_,w);this._cx=k.x,this._cy=k.y;for(let e=0;e0&&Math.abs(u-o)<=lC&&Math.abs(c-a)<=lC)continue;if(o=u,a=c,l===d||l===h||l===p)continue;let f=0;for(let t=0,e=this._hashKey(u,c);t=0;)if(g=m,g===f){g=-1;break}if(-1===g)continue;let y=this._addTriangle(g,l,n[g],-1,-1,i[g]);i[l]=this._legalize(y+2),i[g]=y,A++;let v=n[g];for(;m=n[v],sC(u,c,t[2*v],t[2*v+1],t[2*m],t[2*m+1])<0;)y=this._addTriangle(v,l,m,i[l],-1,i[v]),i[l]=this._legalize(y+2),n[v]=v,A--,v=m;if(g===f)for(;m=e[g],sC(u,c,t[2*m],t[2*m+1],t[2*g],t[2*g+1])<0;)y=this._addTriangle(m,l,g,-1,i[g],i[m]),this._legalize(y+2),i[m]=y,n[g]=g,A--,g=m;this._hullStart=e[l]=g,n[g]=e[v]=l,n[l]=v,r[this._hashKey(u,c)]=l,r[this._hashKey(t[2*g],t[2*g+1])]=g}this.hull=new Uint32Array(A);for(let t=0,e=this._hullStart;t0?3-n:1+n)/4}(t-this._cx,e-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:e,_halfedges:n,coords:i}=this;let r=0,o=0;for(;;){const a=n[t],s=t-t%3;if(o=s+(t+2)%3,-1===a){if(0===r)break;t=uC[--r];continue}const l=a-a%3,u=s+(t+1)%3,c=l+(a+2)%3,f=e[o],d=e[t],h=e[u],p=e[c];if(fC(i[2*f],i[2*f+1],i[2*d],i[2*d+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1])){e[t]=p,e[a]=f;const i=n[c];if(-1===i){let e=this._hullStart;do{if(this._hullTri[e]===c){this._hullTri[e]=t;break}e=this._hullPrev[e]}while(e!==this._hullStart)}this._link(t,i),this._link(a,n[o]),this._link(o,c);const s=l+(a+1)%3;r=n&&e[t[a]]>o;)t[a+1]=t[a--];t[a+1]=i}else{let r=n+1,o=i;pC(t,n+i>>1,r),e[t[n]]>e[t[i]]&&pC(t,n,i),e[t[r]]>e[t[i]]&&pC(t,r,i),e[t[n]]>e[t[r]]&&pC(t,n,r);const a=t[r],s=e[a];for(;;){do{r++}while(e[t[r]]s);if(o=o-n?(hC(t,e,r,i),hC(t,e,n,o-1)):(hC(t,e,n,o-1),hC(t,e,r,i))}}function pC(t,e,n){const i=t[e];t[e]=t[n],t[n]=i}function mC(t){return t[0]}function gC(t){return t[1]}const yC=1e-6;class Path{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,e){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,e){this._+=`L${this._x1=+t},${this._y1=+e}`}arc(t,e,n){const i=(t=+t)+(n=+n),r=e=+e;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${i},${r}`:(Math.abs(this._x1-i)>yC||Math.abs(this._y1-r)>yC)&&(this._+="L"+i+","+r),n&&(this._+=`A${n},${n},0,1,1,${t-n},${e}A${n},${n},0,1,1,${this._x1=i},${this._y1=r}`)}rect(t,e,n,i){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${+n}v${+i}h${-n}Z`}value(){return this._||null}}class Polygon{constructor(){this._=[]}moveTo(t,e){this._.push([t,e])}closePath(){this._.push(this._[0].slice())}lineTo(t,e){this._.push([t,e])}value(){return this._.length?this._:null}}const vC=2*Math.PI,xC=Math.pow;function bC(t){return t[0]}function _C(t){return t[1]}function wC(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}class Delaunay{static from(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:bC,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_C,i=arguments.length>3?arguments[3]:void 0;return new Delaunay("length"in t?function(t,e,n,i){const r=t.length,o=new Float64Array(2*r);for(let a=0;a2&&function(t){const{triangles:e,coords:n}=t;for(let t=0;t1e-10)return!1}return!0}(t)){this.collinear=Int32Array.from({length:e.length/2},((t,e)=>e)).sort(((t,n)=>e[2*t]-e[2*n]||e[2*t+1]-e[2*n+1]));const t=this.collinear[0],n=this.collinear[this.collinear.length-1],i=[e[2*t],e[2*t+1],e[2*n],e[2*n+1]],r=1e-8*Math.hypot(i[3]-i[1],i[2]-i[0]);for(let t=0,n=e.length/2;t0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],o[i[0]]=1,2===i.length&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(t){return new class Voronoi{constructor(t){let[e,n,i,r]=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,960,500];if(!((i=+i)>=(e=+e)&&(r=+r)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=i,this.xmin=e,this.ymax=r,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:e,triangles:n},vectors:i}=this,r=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let e,i,o=0,a=0,s=n.length;o1;)r-=2;for(let t=2;t4)for(let t=0;t0){if(e>=this.ymax)return null;(r=(this.ymax-e)/i)0){if(t>=this.xmax)return null;(r=(this.xmax-t)/n)this.xmax?2:0)|(ethis.ymax?8:0)}}(this,t)}*neighbors(t){const{inedges:e,hull:n,_hullIndex:i,halfedges:r,triangles:o,collinear:a}=this;if(a){const e=a.indexOf(t);return e>0&&(yield a[e-1]),void(e2&&void 0!==arguments[2]?arguments[2]:0;if((t=+t)!=t||(e=+e)!=e)return-1;const i=n;let r;for(;(r=this._step(n,t,e))>=0&&r!==n&&r!==i;)n=r;return r}_step(t,e,n){const{inedges:i,hull:r,_hullIndex:o,halfedges:a,triangles:s,points:l}=this;if(-1===i[t]||!l.length)return(t+1)%(l.length>>1);let u=t,c=xC(e-l[2*t],2)+xC(n-l[2*t+1],2);const f=i[t];let d=f;do{let i=s[d];const f=xC(e-l[2*i],2)+xC(n-l[2*i+1],2);if(f>5<<5,l=~~Math.max(Math.abs(v+x),Math.abs(v-x))}else a=a+31>>5<<5;if(l>h&&(h=l),f+a>=EC<<5&&(f=0,d+=h,h=0),d+l>=CC)break;r.translate((f+(a>>1))/o,(d+(l>>1))/o),e.rotate&&r.rotate(e.rotate*MC),r.fillText(e.text,0,0),e.padding&&(r.lineWidth=2*e.padding,r.strokeText(e.text,0,0)),r.restore(),e.width=a,e.height=l,e.xoff=f,e.yoff=d,e.x1=a>>1,e.y1=l>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,f+=a}for(var _=r.getImageData(0,0,(EC<<5)/o,CC/o).data,w=[];--i>=0;)if((e=n[i]).hasText){for(s=(a=e.width)>>5,l=e.y1-e.y0,u=0;u>5),S=_[(d+c)*(EC<<5)+(f+u)<<2]?1<<31-u%32:0;w[D]|=S,k|=S}k?A=c:(e.y0++,l--,c--,d++)}e.y1=e.y0+A,e.sprite=w.slice(0,(e.y1-e.y0)*s)}}}function NC(t,e,n){n>>=5;for(var i,r=t.sprite,o=t.width>>5,a=t.x-(o<<4),s=127&a,l=32-s,u=t.y1-t.y0,c=(t.y+t.y0)*n+(a>>5),f=0;f>>s:0))&e[c+d])return!0;c+=n}return!1}function OC(t,e){var n=t[0],i=t[1];e.x+e.x0i.x&&(i.x=e.x+e.x1),e.y+e.y1>i.y&&(i.y=e.y+e.y1)}function zC(t,e){return t.x+t.x1>e[0].x&&t.x+t.x0e[0].y&&t.y+t.y0=f));)if(e.x=a+r,e.y=u+o,!(e.x+e.x0<0||e.y+e.y0<0||e.x+e.x1>s[0]||e.y+e.y1>s[1])&&(!n||!NC(e,t,s[0]))&&(!n||zC(e,n))){for(var m,g=e.sprite,y=e.width>>5,v=s[0]>>5,x=e.x-(y<<4),b=127&x,_=32-b,w=e.y1-e.y0,k=(e.y+e.y0)*v+(x>>5),A=0;A>>b:0);k+=v}return e.sprite=null,!0}return!1}return f.layout=function(){for(var l=function(t){t.width=t.height=1;var e=Math.sqrt(t.getContext("2d").getImageData(0,0,1,1).data.length>>2);t.width=(EC<<5)/e,t.height=CC/e;var n=t.getContext("2d");return n.fillStyle=n.strokeStyle="red",n.textAlign="center",{context:n,ratio:e}}(Sc()),f=function(t){for(var e=[],n=-1;++n>5)*s[1]),h=null,p=u.length,m=-1,g=[],y=u.map((s=>({text:t(s),font:e(s),style:i(s),weight:r(s),rotate:o(s),size:~~(n(s)+1e-14),padding:a(s),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:s}))).sort(((t,e)=>e.size-t.size));++m>1,v.y=s[1]*(c()+.5)>>1,FC(l,v,y,m),v.hasText&&d(f,v,h)&&(g.push(v),h?OC(h,v):h=[{x:v.x+v.x0,y:v.y+v.y0},{x:v.x+v.x1,y:v.y+v.y1}],v.x-=s[0]>>1,v.y-=s[1]>>1)}return g},f.words=function(t){return arguments.length?(u=t,f):u},f.size=function(t){return arguments.length?(s=[+t[0],+t[1]],f):s},f.font=function(t){return arguments.length?(e=PC(t),f):e},f.fontStyle=function(t){return arguments.length?(i=PC(t),f):i},f.fontWeight=function(t){return arguments.length?(r=PC(t),f):r},f.rotate=function(t){return arguments.length?(o=PC(t),f):o},f.text=function(e){return arguments.length?(t=PC(e),f):t},f.spiral=function(t){return arguments.length?(l=RC[t]||t,f):l},f.fontSize=function(t){return arguments.length?(n=PC(t),f):n},f.padding=function(t){return arguments.length?(a=PC(t),f):a},f.random=function(t){return arguments.length?(c=t,f):c},f}(),t)}$C.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:BC}]},ht($C,qa,{transform(e,n){!e.size||e.size[0]&&e.size[1]||s("Wordcloud size dimensions must be non-zero.");const i=e.modified();if(!(i||n.changed(n.ADD_REM)||jC.some((function(t){const i=e[t];return J(i)&&n.modified(i.fields)}))))return;const r=n.materialize(n.SOURCE).source,o=this.value,a=e.as||BC;let l,u=e.fontSize||14;if(J(u)?l=e.fontSizeRange:u=it(u),l){const t=u,e=Wh("sqrt")().domain(at(r,t)).range(l);u=n=>e(t(n))}r.forEach((t=>{t[a[0]]=NaN,t[a[1]]=NaN,t[a[3]]=0}));const c=o.words(r).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(u).random(t.random).layout(),f=o.size(),d=f[0]>>1,h=f[1]>>1,p=c.length;for(let t,e,n=0;nnew Uint8Array(t),qC=t=>new Uint16Array(t),IC=t=>new Uint32Array(t);function WC(t,e,n){const i=(e<257?UC:e<65537?qC:IC)(t);return n&&i.set(n),i}function HC(t,e,n){const i=1<{const i=t[e],r=t[n];return ir?1:0})),function(t,e){return Array.from(e,(e=>t[e]))}(t,e)}(d,l),a)u=e,c=t,e=Array(a+s),t=IC(a+s),function(t,e,n,i,r,o,a,s,l){let u,c=0,f=0;for(u=0;c0)for(f=0;ft,size:()=>n}}function GC(t){qa.call(this,function(){let t=8,e=[],n=IC(0),i=WC(0,t),r=WC(0,t);return{data:()=>e,seen:()=>n=function(t,e,n){return t.length>=e?t:((n=n||new t.constructor(e)).set(t),n)}(n,e.length),add(t){for(let n,i=0,r=e.length,o=t.length;ie.length,curr:()=>i,prev:()=>r,reset:t=>r[t]=i[t],all:()=>t<257?255:t<65537?65535:4294967295,set(t,e){i[t]|=e},clear(t,e){i[t]&=~e},resize(e,n){(e>i.length||n>t)&&(t=Math.max(n,t),i=WC(e,t,i),r=WC(e,t))}}}(),t),this._indices=null,this._dims=null}function YC(t){qa.call(this,null,t)}GC.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},ht(GC,qa,{transform(t,e){return this._dims?t.modified("fields")||t.fields.some((t=>e.modified(t.fields)))?this.reinit(t,e):this.eval(t,e):this.init(t,e)},init(t,e){const n=t.fields,i=t.query,r=this._indices={},o=this._dims=[],a=i.length;let s,l,u=0;for(;u{const t=r.remove(e,n);for(const e in i)i[e].reindex(t)}))},update(t,e,n){const i=this._dims,r=t.query,o=e.stamp,a=i.length;let s,l,u=0;for(n.filters=0,l=0;lh)for(g=h,y=Math.min(f,p);gp)for(g=Math.max(f,p),y=d;gc)for(h=c,p=Math.min(l,f);hf)for(h=Math.max(l,f),p=u;hs[t]&n?null:a[t];return o.filter(o.MOD,u),r&r-1?(o.filter(o.ADD,(t=>{const e=s[t]&n;return!e&&e^l[t]&n?a[t]:null})),o.filter(o.REM,(t=>{const e=s[t]&n;return!e||e^e^l[t]&n?null:a[t]}))):(o.filter(o.ADD,u),o.filter(o.REM,(t=>(s[t]&n)===r?a[t]:null))),o.filter(o.SOURCE,(t=>u(t._index)))}});var XC=Object.freeze({__proto__:null,crossfilter:GC,resolvefilter:YC});const JC="Literal",QC="CallExpression";function ZC(t){this.type=t}var KC,tF,eF,nF,iF;ZC.prototype.visit=function(t){let e,n,i;if(t(this))return 1;for(e=function(t){switch(t.type){case"ArrayExpression":return t.elements;case"BinaryExpression":case"LogicalExpression":return[t.left,t.right];case QC:return[t.callee].concat(t.arguments);case"ConditionalExpression":return[t.test,t.consequent,t.alternate];case"MemberExpression":return[t.object,t.property];case"ObjectExpression":return t.properties;case"Property":return[t.key,t.value];case"UnaryExpression":return[t.argument];default:return[]}}(this),n=0,i=e.length;n",KC[aF]="Identifier",KC[sF]="Keyword",KC[lF]="Null",KC[uF]="Numeric",KC[cF]="Punctuator",KC[fF]="String",KC[9]="RegularExpression";var dF="ArrayExpression",hF="BinaryExpression",pF="CallExpression",mF="ConditionalExpression",gF="Identifier",yF="Literal",vF="LogicalExpression",xF="MemberExpression",bF="ObjectExpression",_F="Property",wF="UnaryExpression",kF="Unexpected token %0",AF="Unexpected number",DF="Unexpected string",SF="Unexpected identifier",MF="Unexpected reserved word",EF="Unexpected end of input",CF="Invalid regular expression",FF="Invalid regular expression: missing /",NF="Octal literals are not allowed in strict mode.",OF="Duplicate data property in object literal not allowed in strict mode",zF="ILLEGAL",TF="Disabled.",PF=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]"),RF=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 BF(t,e){if(!t)throw new Error("ASSERT: "+e)}function jF(t){return t>=48&&t<=57}function $F(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function LF(t){return"01234567".indexOf(t)>=0}function UF(t){return 32===t||9===t||11===t||12===t||160===t||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function qF(t){return 10===t||13===t||8232===t||8233===t}function IF(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||92===t||t>=128&&PF.test(String.fromCharCode(t))}function WF(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||92===t||t>=128&&RF.test(String.fromCharCode(t))}const HF={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 VF(){for(;eF1114111||"}"!==t)&&sN({},kF,zF),e<=65535?String.fromCharCode(e):(n=55296+(e-65536>>10),i=56320+(e-65536&1023),String.fromCharCode(n,i))}function XF(){var t,e;for(t=tF.charCodeAt(eF++),e=String.fromCharCode(t),92===t&&(117!==tF.charCodeAt(eF)&&sN({},kF,zF),++eF,(t=GF("u"))&&"\\"!==t&&IF(t.charCodeAt(0))||sN({},kF,zF),e=t);eF>>="===(i=tF.substr(eF,4))?{type:cF,value:i,start:r,end:eF+=4}:">>>"===(n=i.substr(0,3))||"<<="===n||">>="===n?{type:cF,value:n,start:r,end:eF+=3}:a===(e=n.substr(0,2))[1]&&"+-<>&|".indexOf(a)>=0||"=>"===e?{type:cF,value:e,start:r,end:eF+=2}:("//"===e&&sN({},kF,zF),"<>=!+-*%&|^/".indexOf(a)>=0?(++eF,{type:cF,value:a,start:r,end:eF}):void sN({},kF,zF))}function QF(){var t,e,n;if(BF(jF((n=tF[eF]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),e=eF,t="","."!==n){if(t=tF[eF++],n=tF[eF],"0"===t){if("x"===n||"X"===n)return++eF,function(t){let e="";for(;eF=nF)return{type:oF,start:eF,end:eF};const t=tF.charCodeAt(eF);return IF(t)?function(){var t,e;return t=eF,e=92===tF.charCodeAt(eF)?XF():function(){var t,e;for(t=eF++;eF=0&&eF(BF(e=0&&sN({},CF,n),{value:n,literal:e}}(),i=function(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,((t,e)=>{if(parseInt(e,16)<=1114111)return"x";sN({},CF)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(t){sN({},CF)}try{return new RegExp(t,e)}catch(t){return null}}(e.value,n.value),{literal:e.literal+n.literal,value:i,regex:{pattern:e.value,flags:n.value},start:t,end:eF}}()),tN()):lN(KF())}return n}function gN(){const t=[];if(uN("("),!cN(")"))for(;eF":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11}return e}function wN(){var t,e;return t=function(){var t,e,n,i,r,o,a,s,l,u;if(t=iF,l=bN(),0===(r=_N(i=iF)))return l;for(i.prec=r,KF(),e=[t,iF],o=[l,i,a=bN()];(r=_N(iF))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,l=o.pop(),e.pop(),n=eN(s,l,a),o.push(n);(i=KF()).prec=r,o.push(i),e.push(iF),n=bN(),o.push(n)}for(n=o[u=o.length-1],e.pop();u>1;)e.pop(),n=eN(o[u-1].value,o[u-2],n),u-=2;return n}(),cN("?")&&(KF(),e=wN(),uN(":"),t=function(t,e,n){const i=new ZC(mF);return i.test=t,i.consequent=e,i.alternate=n,i}(t,e,wN())),t}function kN(){const t=wN();if(cN(","))throw new Error(TF);return t}function AN(t){eF=0,nF=(tF=t).length,iF=null,tN();const e=kN();if(iF.type!==oF)throw new Error("Unexpect token after expression.");return e}var DN={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function SN(t){function e(e,n,i){return r=>function(e,n,i,r){let o=t(n[0]);return i&&(o=i+"("+o+")",0===i.lastIndexOf("new ",0)&&(o="("+o+")")),o+"."+e+(r<0?"":0===r?"()":"("+n.slice(1).map(t).join(",")+")")}(e,r,n,i)}const n="new Date",i="String",r="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(e){e.length<3&&s("Missing arguments to clamp function."),e.length>3&&s("Too many arguments to clamp function.");const n=e.map(t);return"Math.max("+n[1]+", Math.min("+n[2]+","+n[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:n,date:e("getDate",n,0),day:e("getDay",n,0),year:e("getFullYear",n,0),month:e("getMonth",n,0),hours:e("getHours",n,0),minutes:e("getMinutes",n,0),seconds:e("getSeconds",n,0),milliseconds:e("getMilliseconds",n,0),time:e("getTime",n,0),timezoneoffset:e("getTimezoneOffset",n,0),utcdate:e("getUTCDate",n,0),utcday:e("getUTCDay",n,0),utcyear:e("getUTCFullYear",n,0),utcmonth:e("getUTCMonth",n,0),utchours:e("getUTCHours",n,0),utcminutes:e("getUTCMinutes",n,0),utcseconds:e("getUTCSeconds",n,0),utcmilliseconds:e("getUTCMilliseconds",n,0),length:e("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:e("toUpperCase",i,0),lower:e("toLowerCase",i,0),substring:e("substring",i),split:e("split",i),trim:e("trim",i,0),regexp:r,test:e("test",r),if:function(e){e.length<3&&s("Missing arguments to if function."),e.length>3&&s("Too many arguments to if function.");const n=e.map(t);return"("+n[0]+"?"+n[1]+":"+n[2]+")"}}}function MN(t){const e=(t=t||{}).allowed?Tt(t.allowed):{},n=t.forbidden?Tt(t.forbidden):{},i=t.constants||DN,r=(t.functions||SN)(d),o=t.globalvar,a=t.fieldvar,l=J(o)?o:t=>`${o}["${t}"]`;let u={},c={},f=0;function d(t){if(bt(t))return t;const e=h[t.type];return null==e&&s("Unsupported type: "+t.type),e(t)}const h={Literal:t=>t.raw,Identifier:t=>{const r=t.name;return f>0?r:ut(n,r)?s("Illegal identifier: "+r):ut(i,r)?i[r]:ut(e,r)?r:(u[r]=1,l(r))},MemberExpression:t=>{const e=!t.computed,n=d(t.object);e&&(f+=1);const i=d(t.property);return n===a&&(c[function(t){const e=t&&t.length-1;return e&&('"'===t[0]&&'"'===t[e]||"'"===t[0]&&"'"===t[e])?t.slice(1,-1):t}(i)]=1),e&&(f-=1),n+(e?"."+i:"["+i+"]")},CallExpression:t=>{"Identifier"!==t.callee.type&&s("Illegal callee type: "+t.callee.type);const e=t.callee.name,n=t.arguments,i=ut(r,e)&&r[e];return i||s("Unrecognized function: "+e),J(i)?i(n):i+"("+n.map(d).join(",")+")"},ArrayExpression:t=>"["+t.elements.map(d).join(",")+"]",BinaryExpression:t=>"("+d(t.left)+" "+t.operator+" "+d(t.right)+")",UnaryExpression:t=>"("+t.operator+d(t.argument)+")",ConditionalExpression:t=>"("+d(t.test)+"?"+d(t.consequent)+":"+d(t.alternate)+")",LogicalExpression:t=>"("+d(t.left)+t.operator+d(t.right)+")",ObjectExpression:t=>"{"+t.properties.map(d).join(",")+"}",Property:t=>{f+=1;const e=d(t.key);return f-=1,e+":"+d(t.value)}};function p(t){const e={code:d(t),globals:Object.keys(u),fields:Object.keys(c)};return u={},c={},e}return p.functions=r,p.constants=i,p}const EN="intersect",CN="union",FN="_vgsid_",NN=u(FN),ON="E",zN="R",TN="R-E",PN="R-LE",RN="R-RE",BN="index:unit";function jN(t,e){for(var n,i,r=e.fields,o=e.values,a=r.length,s=0;s1?e-1:0),i=1;ie.indexOf(t)>=0)):e},R_union:function(t,e){var n=F(e[0]),i=F(e[1]);return n>i&&(n=e[1],i=e[0]),t.length?(t[0]>n&&(t[0]=n),t[1]i&&(n=e[1],i=e[0]),t.length?ii&&(t[1]=i),t):[n,i]}};const IN=":",WN="@";function HN(t,e,n,i){e[0].type!==JC&&s("First argument to selection functions must be a string literal.");const r=e[0].value,o=e.length>=2&&C(e).value,a="unit",l=WN+a,u=IN+r;o!==EN||ut(i,l)||(i[l]=n.getData(r).indataRef(n,a)),ut(i,u)||(i[u]=n.getData(r).tuplesRef())}function VN(t){const e=this.context.data[t];return e?e.values.value:[]}const GN=t=>function(e,n){return this.context.dataflow.locale()[t](n)(e)},YN=GN("format"),XN=GN("timeFormat"),JN=GN("utcFormat"),QN=GN("timeParse"),ZN=GN("utcParse"),KN=new Date(2e3,0,1);function tO(t,e,n){return Number.isInteger(t)&&Number.isInteger(e)?(KN.setYear(2e3),KN.setMonth(t),KN.setDate(e),XN.call(this,KN,n)):""}const eO=":",nO="%",iO="$";function rO(t,e,n,i){e[0].type!==JC&&s("First argument to data functions must be a string literal.");const r=e[0].value,o=eO+r;if(!ut(o,i))try{i[o]=n.getData(r).tuplesRef()}catch(t){}}function oO(t,e,n,i){if(e[0].type===JC)aO(n,i,e[0].value);else for(t in n.scales)aO(n,i,t)}function aO(t,e,n){const i=nO+n;if(!ut(e,i))try{e[i]=t.scaleRef(n)}catch(t){}}function sO(t,e){if(J(t))return t;if(bt(t)){const i=e.scales[t];return i&&((n=i.value)&&!0===n[qh])?i.value:void 0}var n}function lO(t,e){return function(n,i,r){if(n){const e=sO(n,(r||this).context);return e&&e.path[t](i)}return e(i)}}const uO=lO("area",(function(t){return ew=new Adder,B_(t,nw),2*ew})),cO=lO("bounds",(function(t){var e,n,i,r,o,a,s;if(V_=H_=-(I_=W_=1/0),Z_=[],B_(t,Fw),n=Z_.length){for(Z_.sort($w),e=1,o=[i=Z_[0]];ejw(i[0],i[1])&&(i[1]=r[1]),jw(r[0],i[1])>jw(i[0],i[1])&&(i[0]=r[0])):o.push(i=r);for(a=-1/0,e=0,i=o[n=o.length-1];e<=n;i=r,++e)r=o[e],(s=jw(i[1],r[0]))>a&&(a=s,I_=r[0],H_=i[1])}return Z_=K_=null,I_===1/0||W_===1/0?[[NaN,NaN],[NaN,NaN]]:[[I_,W_],[H_,V_]]})),fO=lO("centroid",(function(t){pw=mw=gw=yw=vw=xw=bw=_w=0,ww=new Adder,kw=new Adder,Aw=new Adder,B_(t,Uw);var e=+ww,n=+kw,i=+Aw,r=w_(e,n,i);return rgO(t,e)}const vO={};function xO(t){return k(t)||ArrayBuffer.isView(t)?t:null}function bO(t){return xO(t)||(bt(t)?t:null)}const _O=t=>t.data;function wO(t,e){const n=VN.call(e,t);return n.root&&n.root.lookup||{}}const kO=()=>"undefined"!=typeof window&&window||null;function AO(t,e,n){if(!t)return[];const[i,r]=t,o=(new Om).set(i[0],i[1],r[0],r[1]);return ux(n||this.context.dataflow.scenegraph().root,o,function(t){let e=null;if(t){const n=Y(t.marktype),i=Y(t.markname);e=t=>(!n.length||n.some((e=>t.marktype===e)))&&(!i.length||i.some((e=>t.name===e)))}return e}(e))}const DO={random:()=>t.random(),cumulativeNormal:rs,cumulativeLogNormal:cs,cumulativeUniform:gs,densityNormal:is,densityLogNormal:us,densityUniform:ms,quantileNormal:os,quantileLogNormal:fs,quantileUniform:ys,sampleNormal:ns,sampleLogNormal:ls,sampleUniform:ps,isArray:k,isBoolean:mt,isDate:gt,isDefined:t=>void 0!==t,isNumber:vt,isObject:A,isRegExp:xt,isString:bt,isTuple:ua,isValid:t=>null!=t&&t==t,toBoolean:Ft,toDate:t=>Ot(t),toNumber:F,toString:zt,indexof:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i1?e-1:0),i=1;i1?e-1:0),i=1;i1?e-1:0),i=1;iat(t),inScope:function(t){const e=this.context.group;let n=!1;if(e)for(;t;){if(t===e){n=!0;break}t=t.mark.group}return n},intersect:AO,clampRange:X,pinchDistance:function(t){const e=t.touches,n=e[0].clientX-e[1].clientX,i=e[0].clientY-e[1].clientY;return Math.sqrt(n*n+i*i)},pinchAngle:function(t){const e=t.touches;return Math.atan2(e[0].clientY-e[1].clientY,e[0].clientX-e[1].clientX)},screen:function(){const t=kO();return t?t.screen:{}},containerSize:function(){const t=this.context.dataflow,e=t.container&&t.container();return e?[e.clientWidth,e.clientHeight]:[void 0,void 0]},windowSize:function(){const t=kO();return t?[t.innerWidth,t.innerHeight]:[void 0,void 0]},bandspace:function(t,e,n){return mh(t||0,e||0,n||0)},setdata:function(t,e){const n=this.context.dataflow,i=this.context.data[t].input;return n.pulse(i,n.changeset().remove(p).insert(e)),1},pathShape:function(t){let e=null;return function(n){return n?em(n,e=e||Ip(t)):t}},panLinear:B,panLog:j,panPow:$,panSymlog:L,zoomLinear:q,zoomLog:I,zoomPow:W,zoomSymlog:H,encode:function(t,e,n){if(t){const n=this.context.dataflow,i=t.mark.source;n.pulse(i,n.changeset().encode(t,e))}return void 0!==n?n:t},modify:function(t,e,n,i,r,o){const a=this.context.dataflow,s=this.context.data[t],l=s.input,u=a.stamp();let c,f,d=s.changes;if(!1===a._trigger||!(l.value.length||e||i))return 0;if((!d||d.stamp{s.modified=!0,a.pulse(l,d).run()}),!0,1)),n&&(c=!0===n?p:k(n)||ua(n)?n:yO(n),d.remove(c)),e&&d.insert(e),i&&(c=yO(i),l.value.some(c)?d.remove(c):d.insert(i)),r)for(f in o)d.modify(r,f,o[f]);return 1},lassoAppend:function(t,e,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5;const r=(t=Y(t))[t.length-1];return void 0===r||Math.sqrt((r[0]-e)**2+(r[1]-n)**2)>i?[...t,[e,n]]:t},lassoPath:function(t){return Y(t).reduce(((e,n,i)=>{let[r,o]=n;return e+(0==i?`M ${r},${o} `:i===t.length-1?" Z":`L ${r},${o} `)}),"")},intersectLasso:function(t,e,n){const{x:i,y:r,mark:o}=n,a=(new Om).set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[t,n]of e)ta.x2&&(a.x2=t),na.y2&&(a.y2=n);return a.translate(i,r),AO([[a.x1,a.y1],[a.x2,a.y2]],t,o).filter((t=>function(t,e,n){let i=0;for(let r=0,o=n.length-1;re!=s>e&&t<(a-l)*(e-u)/(s-u)+l&&i++}return 1&i}(t.x,t.y,e)))}},SO=["view","item","group","xy","x","y"],MO="this.",EO={},CO={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>`_[${Ct(iO+t)}]`,functions:function(t){const e=SN(t);SO.forEach((t=>e[t]="event.vega."+t));for(const t in DO)e[t]=MO+t;return ot(e,function(t,e,n){e.__bandwidth=t=>t&&t.bandwidth?t.bandwidth():0,n._bandwidth=oO,n._range=oO,n._scale=oO;const i=e=>"_["+(e.type===JC?Ct(nO+e.value):Ct(nO)+"+"+t(e))+"]";return{_bandwidth:t=>`this.__bandwidth(${i(t[0])})`,_range:t=>`${i(t[0])}.range()`,_scale:e=>`${i(e[0])}(${t(e[1])})`}}(t,DO,EO)),e},constants:DN,visitors:EO},FO=MN(CO);function NO(t,e,n){return 1===arguments.length?DO[t]:(DO[t]=e,n&&(EO[t]=n),FO&&(FO.functions[t]=MO+t),this)}function OO(t,e){const n={};let i;try{i=AN(t=bt(t)?t:Ct(t)+"")}catch(e){s("Expression parse error: "+t)}i.visit((t=>{if(t.type!==QC)return;const i=t.callee.name,r=CO.visitors[i];r&&r(i,t.arguments,e,n)}));const r=FO(i);return r.globals.forEach((t=>{const i=iO+t;!ut(n,i)&&e.getSignal(t)&&(n[i]=e.signalRef(t))})),{$expr:ot({code:r.code},e.options.ast?{ast:i}:null),$fields:r.fields,$params:n}}NO("bandwidth",(function(t,e){const n=sO(t,(e||this).context);return n&&n.bandwidth?n.bandwidth():0}),oO),NO("copy",(function(t,e){const n=sO(t,(e||this).context);return n?n.copy():void 0}),oO),NO("domain",(function(t,e){const n=sO(t,(e||this).context);return n?n.domain():[]}),oO),NO("range",(function(t,e){const n=sO(t,(e||this).context);return n&&n.range?n.range():[]}),oO),NO("invert",(function(t,e,n){const i=sO(t,(n||this).context);return i?k(e)?(i.invertRange||i.invert)(e):(i.invert||i.invertExtent)(e):void 0}),oO),NO("scale",(function(t,e,n){const i=sO(t,(n||this).context);return i?i(e):void 0}),oO),NO("gradient",(function(t,e,n,i,r){t=sO(t,(r||this).context);const o=Pp(e,n);let a=t.domain(),s=a[0],l=C(a),u=f;return l-s?u=ip(t,s,l):t=(t.interpolator?Wh("sequential")().interpolator(t.interpolator()):Wh("linear")().interpolate(t.interpolate()).range(t.range())).domain([s=0,l=1]),t.ticks&&(a=t.ticks(+i||15),s!==a[0]&&a.unshift(s),l!==C(a)&&a.push(l)),a.forEach((e=>o.stop(u(e),t(e)))),o}),oO),NO("geoArea",uO,oO),NO("geoBounds",cO,oO),NO("geoCentroid",fO,oO),NO("geoShape",(function(t,e,n){const i=sO(t,(n||this).context);return function(t){return i?i.path.context(t)(e):""}}),oO),NO("indata",(function(t,e,n){const i=this.context.data[t]["index:"+e],r=i?i.value.get(n):void 0;return r?r.count:r}),(function(t,e,n,i){e[0].type!==JC&&s("First argument to indata must be a string literal."),e[1].type!==JC&&s("Second argument to indata must be a string literal.");const r=e[0].value,o=e[1].value,a="@"+o;ut(a,i)||(i[a]=n.getData(r).indataRef(n,o))})),NO("data",VN,rO),NO("treePath",(function(t,e,n){const i=wO(t,this),r=i[e],o=i[n];return r&&o?r.path(o).map(_O):void 0}),rO),NO("treeAncestors",(function(t,e){const n=wO(t,this)[e];return n?n.ancestors().map(_O):void 0}),rO),NO("vlSelectionTest",(function(t,e,n){for(var i,r,o,a,s,l=this.context.data[t],u=l?l.values.value:[],c=l?l[BN]&&l[BN].value:void 0,f=n===EN,d=u.length,h=0;h(t[o[n].field]=e,t)),{}))}else l=FN,u=NN(r),(f=(c=v[l]||(v[l]={}))[s]||(c[s]=[])).push(u),n&&(f=x[s]||(x[s]=[])).push({[FN]:u});return e=e||CN,v[FN]?v[FN]=qN[`${FN}_${e}`](...Object.values(v[FN])):Object.keys(v).forEach((t=>{v[t]=Object.keys(v[t]).map((e=>v[t][e])).reduce(((n,i)=>void 0===n?i:qN[`${b[t]}_${e}`](n,i)))})),y=Object.keys(x),n&&y.length&&(v[i?"vlPoint":"vlMulti"]=e===CN?{or:y.reduce(((t,e)=>(t.push(...x[e]),t)),[])}:{and:y.map((t=>({or:x[t]})))}),v}),HN),NO("vlSelectionTuples",(function(t,e){return t.map((t=>ot(e.fields?{values:e.fields.map((e=>(e.getter||(e.getter=u(e.field)))(t.datum)))}:{[FN]:NN(t.datum)},e)))}));const zO=Tt(["rule"]),TO=Tt(["group","image","rect"]);function PO(t){return(t+"").toLowerCase()}function RO(t,e,n){n.endsWith(";")||(n="return("+n+");");const i=Function(...e.concat(n));return t&&t.functions?i.bind(t.functions):i}var BO={operator:(t,e)=>RO(t,["_"],e.code),parameter:(t,e)=>RO(t,["datum","_"],e.code),event:(t,e)=>RO(t,["event"],e.code),handler:(t,e)=>RO(t,["_","event"],`var datum=event.item&&event.item.datum;return ${e.code};`),encode:(t,e)=>{const{marktype:n,channels:i}=e;let r="var o=item,datum=o.datum,m=0,$;";for(const t in i){const e="o["+Ct(t)+"]";r+=`$=${i[t].code};if(${e}!==$)${e}=$,m=1;`}return r+=function(t,e){let n="";return zO[e]||(t.x2&&(t.x?(TO[e]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),t.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),t.y2&&(t.y?(TO[e]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),t.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}(i,n),r+="return m;",RO(t,["item","_"],r)},codegen:{get(t){const e=`[${t.map(Ct).join("][")}]`,n=Function("_",`return _${e};`);return n.path=e,n},comparator(t,e){let n;const i=Function("a","b","var u, v; return "+t.map(((t,i)=>{const r=e[i];let o,a;return t.path?(o=`a${t.path}`,a=`b${t.path}`):((n=n||{})["f"+i]=t,o=`this.f${i}(a)`,a=`this.f${i}(b)`),function(t,e,n,i){return`((u = ${t}) < (v = ${e}) || u == null) && v != null ? ${n}\n : (u > v || v == null) && u != null ? ${i}\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}\n : v !== v && u === u ? ${i} : `}(o,a,-r,r)})).join("")+"0;");return n?i.bind(n):i}}};function jO(t,e,n){if(!t||!A(t))return t;for(let i,r=0,o=$O.length;rt&&t.$tupleid?ca:t));return e.fn[n]||(e.fn[n]=Z(i,t.$order,e.expr.codegen))}},{key:"$context",parse:function(t,e){return e}},{key:"$subflow",parse:function(t,e){const n=t.$subflow;return function(t,i,r){const o=e.fork().parse(n),a=o.get(n.operators[0].id),s=o.signals.parent;return s&&s.set(r),a.detachSubflow=()=>e.detach(o),a}}},{key:"$tupleid",parse:function(){return ca}}];const LO={skip:!0};function UO(t,e,n,i){return new qO(t,e,n,i)}function qO(t,e,n,i){this.dataflow=t,this.transforms=e,this.events=t.events.bind(t),this.expr=i||BO,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function IO(t){this.dataflow=t.dataflow,this.transforms=t.transforms,this.events=t.events,this.expr=t.expr,this.signals=Object.create(t.signals),this.scales=Object.create(t.scales),this.nodes=Object.create(t.nodes),this.data=Object.create(t.data),this.fn=Object.create(t.fn),t.functions&&(this.functions=Object.create(t.functions),this.functions.context=this)}function WO(t,e){t&&(null==e?t.removeAttribute("aria-label"):t.setAttribute("aria-label",e))}qO.prototype=IO.prototype={fork(){const t=new IO(this);return(this.subcontext||(this.subcontext=[])).push(t),t},detach(t){this.subcontext=this.subcontext.filter((e=>e!==t));const e=Object.keys(t.nodes);for(const n of e)t.nodes[n]._targets=null;for(const n of e)t.nodes[n].detach();t.nodes=null},get(t){return this.nodes[t]},set(t,e){return this.nodes[t]=e},add(t,e){const n=this,i=n.dataflow,r=t.value;if(n.set(t.id,e),"collect"===PO(t.type)&&r&&(r.$ingest?i.ingest(e,r.$ingest,r.$format):r.$request?i.preload(e,r.$request,r.$format):i.pulse(e,i.changeset().insert(r))),t.root&&(n.root=e),t.parent){let r=n.get(t.parent.$ref);r?(i.connect(r,[e]),e.targets().add(r)):(n.unresolved=n.unresolved||[]).push((()=>{r=n.get(t.parent.$ref),i.connect(r,[e]),e.targets().add(r)}))}if(t.signal&&(n.signals[t.signal]=e),t.scale&&(n.scales[t.scale]=e),t.data)for(const i in t.data){const r=n.data[i]||(n.data[i]={});t.data[i].forEach((t=>r[t]=e))}},resolve(){return(this.unresolved||[]).forEach((t=>t())),delete this.unresolved,this},operator(t,e){this.add(t,this.dataflow.add(t.value,e))},transform(t,e){this.add(t,this.dataflow.add(this.transforms[PO(e)]))},stream(t,e){this.set(t.id,e)},update(t,e,n,i,r){this.dataflow.on(e,n,i,r,t.options)},operatorExpression(t){return this.expr.operator(this,t)},parameterExpression(t){return this.expr.parameter(this,t)},eventExpression(t){return this.expr.event(this,t)},handlerExpression(t){return this.expr.handler(this,t)},encodeExpression(t){return this.expr.encode(this,t)},parse:function(t){const e=this,n=t.operators||[];return t.background&&(e.background=t.background),t.eventConfig&&(e.eventConfig=t.eventConfig),t.locale&&(e.locale=t.locale),n.forEach((t=>e.parseOperator(t))),n.forEach((t=>e.parseOperatorParameters(t))),(t.streams||[]).forEach((t=>e.parseStream(t))),(t.updates||[]).forEach((t=>e.parseUpdate(t))),e.resolve()},parseOperator:function(t){const e=this;"operator"!==PO(t.type)&&t.type?e.transform(t,t.type):e.operator(t,t.update?e.operatorExpression(t.update):null)},parseOperatorParameters:function(t){const e=this;if(t.params){const n=e.get(t.id);n||s("Invalid operator id: "+t.id),e.dataflow.connect(n,n.parameters(e.parseParameters(t.params),t.react,t.initonly))}},parseParameters:function(t,e){e=e||{};const n=this;for(const i in t){const r=t[i];e[i]=k(r)?r.map((t=>jO(t,n,e))):jO(r,n,e)}return e},parseStream:function(t){var e,n=this,i=null!=t.filter?n.eventExpression(t.filter):void 0,r=null!=t.stream?n.get(t.stream):void 0;t.source?r=n.events(t.source,t.type,i):t.merge&&(r=(e=t.merge.map((t=>n.get(t))))[0].merge.apply(e[0],e.slice(1))),t.between&&(e=t.between.map((t=>n.get(t))),r=r.between(e[0],e[1])),t.filter&&(r=r.filter(i)),null!=t.throttle&&(r=r.throttle(+t.throttle)),null!=t.debounce&&(r=r.debounce(+t.debounce)),null==r&&s("Invalid stream definition: "+JSON.stringify(t)),t.consume&&r.consume(!0),n.stream(t,r)},parseUpdate:function(t){var e,n=this,i=A(i=t.source)?i.$ref:i,r=n.get(i),o=t.update,a=void 0;r||s("Source not defined: "+t.source),e=t.target&&t.target.$expr?n.eventExpression(t.target.$expr):n.get(t.target),o&&o.$expr&&(o.$params&&(a=n.parseParameters(o.$params)),o=n.handlerExpression(o.$expr)),n.update(t,r,e,o,a)},getState:function(t){var e=this,n={};if(t.signals){var i=n.signals={};Object.keys(e.signals).forEach((n=>{const r=e.signals[n];t.signals(n,r)&&(i[n]=r.value)}))}if(t.data){var r=n.data={};Object.keys(e.data).forEach((n=>{const i=e.data[n];t.data(n,i)&&(r[n]=i.input.value)}))}return e.subcontext&&!1!==t.recurse&&(n.subcontext=e.subcontext.map((e=>e.getState(t)))),n},setState:function(t){var e=this,n=e.dataflow,i=t.data,r=t.signals;Object.keys(r||{}).forEach((t=>{n.update(e.signals[t],r[t],LO)})),Object.keys(i||{}).forEach((t=>{n.pulse(e.data[t].input,n.changeset().remove(p).insert(i[t]))})),(t.subcontext||[]).forEach(((t,n)=>{const i=e.subcontext[n];i&&i.setState(t)}))}};const HO="default";function VO(t,e){const n=t.globalCursor()?"undefined"!=typeof document&&document.body:t.container();if(n)return null==e?n.style.removeProperty("cursor"):n.style.cursor=e}function GO(t,e){var n=t._runtime.data;return ut(n,e)||s("Unrecognized data set: "+e),n[e]}function YO(t,e){ya(e)||s("Second argument to changes must be a changeset.");const n=GO(this,t);return n.modified=!0,this.pulse(n.input,e)}function XO(t){var e=t.padding();return Math.max(0,t._viewWidth+e.left+e.right)}function JO(t){var e=t.padding();return Math.max(0,t._viewHeight+e.top+e.bottom)}function QO(t){var e=t.padding(),n=t._origin;return[e.left+n[0],e.top+n[1]]}const ZO="view",KO={trap:!1};function tz(t,e,n,i){t._eventListeners.push({type:n,sources:Y(e),handler:i})}function ez(t,e,n){const i=t._eventConfig&&t._eventConfig[e];return!(!1===i||A(i)&&!i[n])||(t.warn(`Blocked ${e} ${n} event listener.`),!1)}function nz(t){return t.item}function iz(t){return t.item.mark.source}function rz(t){return function(e,n){return n.vega.view().changeset().encode(n.item,t)}}function oz(t,e,n){const i=document.createElement(t);for(const t in e)i.setAttribute(t,e[t]);return null!=n&&(i.textContent=n),i}const az="vega-bind",sz="vega-bind-name",lz="vega-bind-radio";function uz(t,e,n,i){const r=n.event||"input",o=()=>t.update(e.value);i.signal(n.signal,e.value),e.addEventListener(r,o),tz(i,e,r,o),t.set=t=>{e.value=t,e.dispatchEvent(function(t){return"undefined"!=typeof Event?new Event(t):{type:t}}(r))}}function cz(t,e,n,i){const r=i.signal(n.signal),o=oz("div",{class:az}),a="radio"===n.input?o:o.appendChild(oz("label"));a.appendChild(oz("span",{class:sz},n.name||n.signal)),e.appendChild(o);let s=fz;switch(n.input){case"checkbox":s=dz;break;case"select":s=hz;break;case"radio":s=pz;break;case"range":s=mz}s(t,a,n,r)}function fz(t,e,n,i){const r=oz("input");for(const t in n)"signal"!==t&&"element"!==t&&r.setAttribute("input"===t?"type":t,n[t]);r.setAttribute("name",n.signal),r.value=i,e.appendChild(r),r.addEventListener("input",(()=>t.update(r.value))),t.elements=[r],t.set=t=>r.value=t}function dz(t,e,n,i){const r={type:"checkbox",name:n.signal};i&&(r.checked=!0);const o=oz("input",r);e.appendChild(o),o.addEventListener("change",(()=>t.update(o.checked))),t.elements=[o],t.set=t=>o.checked=!!t||null}function hz(t,e,n,i){const r=oz("select",{name:n.signal}),o=n.labels||[];n.options.forEach(((t,e)=>{const n={value:t};gz(t,i)&&(n.selected=!0),r.appendChild(oz("option",n,(o[e]||t)+""))})),e.appendChild(r),r.addEventListener("change",(()=>{t.update(n.options[r.selectedIndex])})),t.elements=[r],t.set=t=>{for(let e=0,i=n.options.length;e{const s={type:"radio",name:n.signal,value:e};gz(e,i)&&(s.checked=!0);const l=oz("input",s);l.addEventListener("change",(()=>t.update(e)));const u=oz("label",{},(o[a]||e)+"");return u.prepend(l),r.appendChild(u),l})),t.set=e=>{const n=t.elements,i=n.length;for(let t=0;t{l.textContent=s.value,t.update(+s.value)};s.addEventListener("input",u),s.addEventListener("change",u),t.elements=[s],t.set=t=>{s.value=t,l.textContent=t}}function gz(t,e){return t===e||t+""==e+""}function yz(t,e,n,i,r,o){return(e=e||new i(t.loader())).initialize(n,XO(t),JO(t),QO(t),r,o).background(t.background())}function vz(t,e){return e?function(){try{e.apply(this,arguments)}catch(e){t.error(e)}}:null}function xz(t,e,n){if("string"==typeof e){if("undefined"==typeof document)return t.error("DOM document instance not found."),null;if(!(e=document.querySelector(e)))return t.error("Signal bind element not found: "+e),null}if(e&&n)try{e.textContent=""}catch(n){e=null,t.error(n)}return e}const bz=t=>+t||0,_z=t=>({top:t,bottom:t,left:t,right:t});function wz(t){return A(t)?{top:bz(t.top),bottom:bz(t.bottom),left:bz(t.left),right:bz(t.right)}:_z(bz(t))}async function kz(t,e,n,i){const r=lx(e),o=r&&r.headless;return o||s("Unrecognized renderer type: "+e),await t.runAsync(),yz(t,null,null,o,n,i).renderAsync(t._scenegraph.root)}var Az="width",Dz="height",Sz="padding",Mz={skip:!0};function Ez(t,e){var n=t.autosize(),i=t.padding();return e-(n&&n.contains===Sz?i.left+i.right:0)}function Cz(t,e){var n=t.autosize(),i=t.padding();return e-(n&&n.contains===Sz?i.top+i.bottom:0)}function Fz(t,e){return e.modified&&k(e.input.value)&&t.indexOf("_:vega:_")}function Nz(t,e){return!("parent"===t||e instanceof Ia.proxy)}function Oz(t,e,n,i){const r=t.element();r&&r.setAttribute("title",function(t){return null==t?"":k(t)?zz(t):A(t)&&!gt(t)?(e=t,Object.keys(e).map((t=>{const n=e[t];return t+": "+(k(n)?zz(n):Tz(n))})).join("\n")):t+"";var e}(i))}function zz(t){return"["+t.map(Tz).join(", ")+"]"}function Tz(t){return k(t)?"[…]":A(t)&&!gt(t)?"{…}":t}function Pz(t,e){const n=this;if(e=e||{},La.call(n),e.loader&&n.loader(e.loader),e.logger&&n.logger(e.logger),null!=e.logLevel&&n.logLevel(e.logLevel),e.locale||t.locale){const i=ot({},t.locale,e.locale);n.locale(Fo(i.number,i.time))}n._el=null,n._elBind=null,n._renderType=e.renderer||ax.Canvas,n._scenegraph=new By;const i=n._scenegraph.root;n._renderer=null,n._tooltip=e.tooltip||Oz,n._redraw=!0,n._handler=(new uv).scene(i),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=function(t){const e=ot({defaults:{}},t),n=(t,e)=>{e.forEach((e=>{k(t[e])&&(t[e]=Tt(t[e]))}))};return n(e.defaults,["prevent","allow"]),n(e,["view","window","selector"]),e}(t.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const r=function(t,e,n){return UO(t,Ia,DO,n).parse(e)}(n,t,e.expr);n._runtime=r,n._signals=r.signals,n._bind=(t.bindings||[]).map((t=>({state:null,param:ot({},t)}))),r.root&&r.root.set(i),i.source=r.data.root.input,n.pulse(r.data.root.input,n.changeset().insert(i.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=Ez(n,n._width),n._viewHeight=Cz(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,function(t){var e=t._signals,n=e[Az],i=e[Dz],r=e[Sz];function o(){t._autosize=t._resize=1}t._resizeWidth=t.add(null,(e=>{t._width=e.size,t._viewWidth=Ez(t,e.size),o()}),{size:n}),t._resizeHeight=t.add(null,(e=>{t._height=e.size,t._viewHeight=Cz(t,e.size),o()}),{size:i});const a=t.add(null,o,{pad:r});t._resizeWidth.rank=n.rank+1,t._resizeHeight.rank=i.rank+1,a.rank=r.rank+1}(n),function(t){t.add(null,(e=>(t._background=e.bg,t._resize=1,e.bg)),{bg:t._signals.background})}(n),function(t){const e=t._signals.cursor||(t._signals.cursor=t.add({user:HO,item:null}));t.on(t.events("view","mousemove"),e,((t,n)=>{const i=e.value,r=i?bt(i)?i:i.user:HO,o=n.item&&n.item.cursor||null;return i&&r===i.user&&o==i.item?i:{user:r,item:o}})),t.add(null,(function(e){let n=e.cursor,i=this.value;return bt(n)||(i=n.item,n=n.user),VO(t,n&&n!==HO?n:i||n),i}),{cursor:e})}(n),n.description(t.description),e.hover&&n.hover(),e.container&&n.initialize(e.container,e.bind)}function Rz(t,e){return ut(t._signals,e)?t._signals[e]:s("Unrecognized signal name: "+Ct(e))}function Bz(t,e){const n=(t._targets||[]).filter((t=>t._update&&t._update.handler===e));return n.length?n[0]:null}function jz(t,e,n,i){let r=Bz(n,i);return r||(r=vz(t,(()=>i(e,n.value))),r.handler=i,t.on(n,null,r)),t}function $z(t,e,n){const i=Bz(e,n);return i&&e._targets.remove(i),t}ht(Pz,La,{async evaluate(t,e,n){if(await La.prototype.evaluate.call(this,t,e),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,r=QO(i=this),o=XO(i),a=JO(i),i._renderer.background(i.background()),i._renderer.resize(o,a,r),i._handler.origin(r),i._resizeListeners.forEach((t=>{try{t(o,a)}catch(t){i.error(t)}}))),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(t){this.error(t)}var i,r,o,a;return n&&aa(this,n),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const e=null!=t?t+"":null;return e!==this._desc&&WO(this._el,this._desc=e),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(t,e,n){const i=Rz(this,t);return 1===arguments.length?i.value:this.update(i,e,n)},width(t){return arguments.length?this.signal("width",t):this.signal("width")},height(t){return arguments.length?this.signal("height",t):this.signal("height")},padding(t){return arguments.length?this.signal("padding",wz(t)):wz(this.signal("padding"))},autosize(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},background(t){return arguments.length?this.signal("background",t):this.signal("background")},renderer(t){return arguments.length?(lx(t)||s("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},tooltip(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},loader(t){return arguments.length?(t!==this._loader&&(La.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(Rz(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(t,e,n,i,r,o){this.runAfter((a=>{let s=0;a._autosize=0,a.width()!==n&&(s=1,a.signal(Az,n,Mz),a._resizeWidth.skip(!0)),a.height()!==i&&(s=1,a.signal(Dz,i,Mz),a._resizeHeight.skip(!0)),a._viewWidth!==t&&(a._resize=1,a._viewWidth=t),a._viewHeight!==e&&(a._resize=1,a._viewHeight=e),a._origin[0]===r[0]&&a._origin[1]===r[1]||(a._resize=1,a._origin=r),s&&a.run("enter"),o&&a.runAfter((t=>t.resize()))}),!1,1)},addEventListener(t,e,n){let i=e;return n&&!1===n.trap||(i=vz(this,e),i.raw=e),this._handler.on(t,i),this},removeEventListener(t,e){for(var n,i,r=this._handler.handlers(t),o=r.length;--o>=0;)if(i=r[o].type,n=r[o].handler,t===i&&(e===n||e===n.raw)){this._handler.off(i,n);break}return this},addResizeListener(t){const e=this._resizeListeners;return e.indexOf(t)<0&&e.push(t),this},removeResizeListener(t){var e=this._resizeListeners,n=e.indexOf(t);return n>=0&&e.splice(n,1),this},addSignalListener(t,e){return jz(this,t,Rz(this,t),e)},removeSignalListener(t,e){return $z(this,Rz(this,t),e)},addDataListener(t,e){return jz(this,t,GO(this,t).values,e)},removeDataListener(t,e){return $z(this,GO(this,t).values,e)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const e=VO(this,null);this._globalCursor=!!t,e&&VO(this,e)}return this}return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:function(t,e){this._timers.push(function(t,e,n){var i=new TS,r=e;return null==e?(i.restart(t,e,n),i):(i._restart=i.restart,i.restart=function(t,e,n){e=+e,n=null==n?OS():+n,i._restart((function o(a){a+=r,i._restart(o,r+=e,n),t(a)}),e,n)},i.restart(t,e,n),i)}((function(e){t({timestamp:Date.now(),elapsed:e})}),e))},events:function(t,e,n){var i,r=this,o=new Sa(n),a=function(n,i){r.runAsync(null,(()=>{t===ZO&&function(t,e){var n=t._eventConfig.defaults,i=n.prevent,r=n.allow;return!1!==i&&!0!==r&&(!0===i||!1===r||(i?i[e]:r?!r[e]:t.preventDefault()))}(r,e)&&n.preventDefault(),o.receive(function(t,e,n){var i,r,o=t._renderer,a=o&&o.canvas();return a&&(r=QO(t),(i=Wy(e.changedTouches?e.changedTouches[0]:e,a))[0]-=r[0],i[1]-=r[1]),e.dataflow=t,e.item=n,e.vega=function(t,e,n){const i=e?"group"===e.mark.marktype?e:e.mark.group:null;function r(t){var n,r=i;if(t)for(n=e;n;n=n.mark.group)if(n.mark.name===t){r=n;break}return r&&r.mark&&r.mark.interactive?r:{}}function o(t){if(!t)return n;bt(t)&&(t=r(t));const e=n.slice();for(;t;)e[0]-=t.x||0,e[1]-=t.y||0,t=t.mark&&t.mark.group;return e}return{view:it(t),item:it(e||{}),group:r,xy:o,x:t=>o(t)[0],y:t=>o(t)[1]}}(t,n,i),e}(r,n,i))}))};if("timer"===t)ez(r,"timer",e)&&r.timer(a,e);else if(t===ZO)ez(r,"view",e)&&r.addEventListener(e,a,KO);else if("window"===t?ez(r,"window",e)&&"undefined"!=typeof window&&(i=[window]):"undefined"!=typeof document&&ez(r,"selector",e)&&(i=Array.from(document.querySelectorAll(t))),i){for(var s=0,l=i.length;s=0;)r[t].stop();for(t=o.length;--t>=0;)for(e=(n=o[t]).sources.length;--e>=0;)n.sources[e].removeEventListener(n.type,n.handler);return i&&i.call(this,this._handler,null,null,null),this},hover:function(t,e){return e=[e||"update",(t=[t||"hover"])[0]],this.on(this.events("view","mouseover",nz),iz,rz(t)),this.on(this.events("view","mouseout",nz),iz,rz(e)),this},data:function(t,e){return arguments.length<2?GO(this,t).values.value:YO.call(this,t,va().remove(p).insert(e))},change:YO,insert:function(t,e){return YO.call(this,t,va().insert(e))},remove:function(t,e){return YO.call(this,t,va().remove(e))},scale:function(t){var e=this._runtime.scales;return ut(e,t)||s("Unrecognized scale or projection: "+t),e[t].value},initialize:function(t,e){const n=this,i=n._renderType,r=n._eventConfig.bind,o=lx(i);t=n._el=t?xz(n,t,!0):null,function(t){const e=t.container();e&&(e.setAttribute("role","graphics-document"),e.setAttribute("aria-roleDescription","visualization"),WO(e,t.description()))}(n),o||n.error("Unrecognized renderer type: "+i);const a=o.handler||uv,s=t?o.renderer:o.headless;return n._renderer=s?yz(n,n._renderer,t,s):null,n._handler=function(t,e,n,i){const r=new i(t.loader(),vz(t,t.tooltip())).scene(t.scenegraph().root).initialize(n,QO(t),t);return e&&e.handlers().forEach((t=>{r.on(t.type,t.handler)})),r}(n,n._handler,t,a),n._redraw=!0,t&&"none"!==r&&(e=e?n._elBind=xz(n,e,!0):t.appendChild(oz("form",{class:"vega-bindings"})),n._bind.forEach((t=>{t.param.element&&"container"!==r&&(t.element=xz(n,t.param.element,!!t.param.input))})),n._bind.forEach((t=>{!function(t,e,n){if(!e)return;const i=n.param;let r=n.state;r||(r=n.state={elements:null,active:!1,set:null,update:e=>{e!=t.signal(i.signal)&&t.runAsync(null,(()=>{r.source=!0,t.signal(i.signal,e)}))}},i.debounce&&(r.update=rt(i.debounce,r.update))),(null==i.input&&i.element?uz:cz)(r,e,i,t),r.active||(t.on(t._signals[i.signal],null,(()=>{r.source?r.source=!1:r.set(t.signal(i.signal))})),r.active=!0)}(n,t.element||e,t)}))),n},toImageURL:async function(t,e){t!==ax.Canvas&&t!==ax.SVG&&t!==ax.PNG&&s("Unrecognized image type: "+t);const n=await kz(this,t,e);return t===ax.SVG?function(t,e){const n=new Blob([t],{type:"image/svg+xml"});return window.URL.createObjectURL(n)}(n.svg()):n.canvas().toDataURL("image/png")},toCanvas:async function(t,e){return(await kz(this,ax.Canvas,t,e)).canvas()},toSVG:async function(t){return(await kz(this,ax.SVG,t)).svg()},getState:function(t){return this._runtime.getState(t||{data:Fz,signals:Nz,recurse:!0})},setState:function(t){return this.runAsync(null,(e=>{e._trigger=!1,e._runtime.setState(t)}),(t=>{t._trigger=!0})),this}});const Lz="view",Uz="[",qz="]",Iz="{",Wz="}",Hz=":",Vz=",",Gz="@",Yz=">",Xz=/[[\]{}]/,Jz={"*":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};let Qz,Zz;function Kz(t,e,n){return Qz=e||Lz,Zz=n||Jz,eT(t.trim()).map(nT)}function tT(t,e,n,i,r){const o=t.length;let a,s=0;for(;e=0?--s:i&&i.indexOf(a)>=0&&++s}return e}function eT(t){const e=[],n=t.length;let i=0,r=0;for(;r' after between selector: "+t;n=n.map(nT);const r=nT(t.slice(1).trim());return r.between?{between:n,stream:r}:(r.between=n,r)}(t):function(t){const e={source:Qz},n=[];let i,r,o=[0,0],a=0,s=0,l=t.length,u=0;if(t[l-1]===Wz){if(u=t.lastIndexOf(Iz),!(u>=0))throw"Unmatched right brace: "+t;try{o=function(t){const e=t.split(Vz);if(!t.length||e.length>2)throw t;return e.map((e=>{const n=+e;if(n!=n)throw t;return n}))}(t.substring(u+1,l-1))}catch(e){throw"Invalid throttle specification: "+t}l=(t=t.slice(0,u).trim()).length,u=0}if(!l)throw t;if(t[0]===Gz&&(a=++u),i=tT(t,u,Hz),i1?(e.type=n[1],a?e.markname=n[0].slice(1):(c=n[0],Zz[c]?e.marktype=n[0]:e.source=n[0])):e.type=n[0],"!"===e.type.slice(-1)&&(e.consume=!0,e.type=e.type.slice(0,-1)),null!=r&&(e.filter=r),o[0]&&(e.throttle=o[0]),o[1]&&(e.debounce=o[1]),e;var c}(t)}function iT(t){return A(t)?t:{type:t||"pad"}}const rT=t=>+t||0,oT=t=>({top:t,bottom:t,left:t,right:t});function aT(t){return A(t)?t.signal?t:{top:rT(t.top),bottom:rT(t.bottom),left:rT(t.left),right:rT(t.right)}:oT(rT(t))}const sT=t=>A(t)&&!k(t)?ot({},t):{value:t};function lT(t,e,n,i){return null!=n?(A(n)&&!k(n)||k(n)&&n.length&&A(n[0])?t.update[e]=n:t[i||"enter"][e]={value:n},1):0}function uT(t,e,n){for(const n in e)lT(t,n,e[n]);for(const e in n)lT(t,e,n[e],"update")}function cT(t,e,n){for(const i in e)n&&ut(n,i)||(t[i]=ot(t[i]||{},e[i]));return t}function fT(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}const dT="mark",hT="frame",pT="scope",mT="axis",gT="axis-domain",yT="axis-grid",vT="axis-label",xT="axis-tick",bT="axis-title",_T="legend",wT="legend-band",kT="legend-entry",AT="legend-gradient",DT="legend-label",ST="legend-symbol",MT="legend-title",ET="title",CT="title-text",FT="title-subtitle";function NT(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}const OT=t=>bt(t)?Ct(t):t.signal?`(${t.signal})`:RT(t);function zT(t){if(null!=t.gradient)return function(t){const e=[t.start,t.stop,t.count].map((t=>null==t?null:Ct(t)));for(;e.length&&null==C(e);)e.pop();return e.unshift(OT(t.gradient)),`gradient(${e.join(",")})`}(t);let e=t.signal?`(${t.signal})`:t.color?function(t){return t.c?TT("hcl",t.h,t.c,t.l):t.h||t.s?TT("hsl",t.h,t.s,t.l):t.l||t.a?TT("lab",t.l,t.a,t.b):t.r||t.g||t.b?TT("rgb",t.r,t.g,t.b):null}(t.color):null!=t.field?RT(t.field):void 0!==t.value?Ct(t.value):void 0;return null!=t.scale&&(e=function(t,e){const n=OT(t.scale);return null!=t.range?e=`lerp(_range(${n}), ${+t.range})`:(void 0!==e&&(e=`_scale(${n}, ${e})`),t.band&&(e=(e?e+"+":"")+`_bandwidth(${n})`+(1==+t.band?"":"*"+PT(t.band)),t.extra&&(e=`(datum.extra ? _scale(${n}, datum.extra.value) : ${e})`)),null==e&&(e="0")),e}(t,e)),void 0===e&&(e=null),null!=t.exponent&&(e=`pow(${e},${PT(t.exponent)})`),null!=t.mult&&(e+=`*${PT(t.mult)}`),null!=t.offset&&(e+=`+${PT(t.offset)}`),t.round&&(e=`round(${e})`),e}const TT=(t,e,n,i)=>`(${t}(${[e,n,i].map(zT).join(",")})+'')`;function PT(t){return A(t)?"("+zT(t)+")":t}function RT(t){return BT(A(t)?t:{datum:t})}function BT(t){let e,n,i;if(t.signal)e="datum",i=t.signal;else if(t.group||t.parent){for(n=Math.max(1,t.level||1),e="item";n-- >0;)e+=".mark.group";t.parent?(i=t.parent,e+=".datum"):i=t.group}else t.datum?(e="datum",i=t.datum):s("Invalid field reference: "+Ct(t));return t.signal||(i=bt(i)?l(i).map(Ct).join("]["):BT(i)),e+"["+i+"]"}function jT(t,e,n,i,r,o){const a={};(o=o||{}).encoders={$encode:a},t=function(t,e,n,i,r){const o={},a={};let s,l,u,c;for(l in l="lineBreak","text"!==e||null==r[l]||fT(l,t)||NT(o,l,r[l]),("legend"==n||String(n).startsWith("axis"))&&(n=null),c=n===hT?r.group:n===dT?ot({},r.mark,r[e]):null,c)u=fT(l,t)||("fill"===l||"stroke"===l)&&(fT("fill",t)||fT("stroke",t)),u||NT(o,l,c[l]);for(l in Y(i).forEach((e=>{const n=r.style&&r.style[e];for(const e in n)fT(e,t)||NT(o,e,n[e])})),t=ot({},t),o)c=o[l],c.signal?(s=s||{})[l]=c:a[l]=c;return t.enter=ot(a,t.enter),s&&(t.update=ot(s,t.update)),t}(t,e,n,i,r.config);for(const n in t)a[n]=$T(t[n],e,o,r);return o}function $T(t,e,n,i){const r={},o={};for(const e in t)null!=t[e]&&(r[e]=LT((a=t[e],k(a)?function(t){let e="";return t.forEach((t=>{const n=zT(t);e+=t.test?`(${t.test})?${n}:`:n})),":"===C(e)&&(e+="null"),e}(a):zT(a)),i,n,o));var a;return{$expr:{marktype:e,channels:r},$fields:Object.keys(o),$output:Object.keys(t)}}function LT(t,e,n,i){const r=OO(t,e);return r.$fields.forEach((t=>i[t]=1)),ot(n,r.$params),r.$expr}const UT="outer",qT=["value","update","init","react","bind"];function IT(t,e){s(t+' for "outer" push: '+Ct(e))}function WT(t,e){const n=t.name;if(t.push===UT)e.signals[n]||IT("No prior signal definition",n),qT.forEach((e=>{void 0!==t[e]&&IT("Invalid property ",e)}));else{const i=e.addSignal(n,t.value);!1===t.react&&(i.react=!1),t.bind&&e.addBinding(n,t.bind)}}function HT(t,e,n,i){this.id=-1,this.type=t,this.value=e,this.params=n,i&&(this.parent=i)}function VT(t,e,n,i){return new HT(t,e,n,i)}function GT(t,e){return VT("operator",t,e)}function YT(t){const e={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(e),e}function XT(t,e){return e?{$field:t,$name:e}:{$field:t}}const JT=XT("key");function QT(t,e){return{$compare:t,$order:e}}const ZT="descending";function KT(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}const tP="scope",eP="view";function nP(t){return t&&t.signal}function iP(t){if(nP(t))return!0;if(A(t))for(const e in t)if(iP(t[e]))return!0;return!1}function rP(t,e){return null!=t?t:e}function oP(t){return t&&t.signal||t}const aP="timer";function sP(t,e){return(t.merge?lP:t.stream?uP:t.type?cP:s("Invalid stream specification: "+Ct(t)))(t,e)}function lP(t,e){const n=fP({merge:t.merge.map((t=>sP(t,e)))},t,e);return e.addStream(n).id}function uP(t,e){const n=fP({stream:sP(t.stream,e)},t,e);return e.addStream(n).id}function cP(t,e){let n;t.type===aP?(n=e.event(aP,t.throttle),t={between:t.between,filter:t.filter}):n=e.event(function(t){return t===tP?eP:t||eP}(t.source),t.type);const i=fP({stream:n},t,e);return 1===Object.keys(i).length?n:e.addStream(i).id}function fP(t,e,n){let i=e.between;return i&&(2!==i.length&&s('Stream "between" parameter must have 2 entries: '+Ct(e)),t.between=[sP(i[0],n),sP(i[1],n)]),i=e.filter?[].concat(e.filter):[],(e.marktype||e.markname||e.markrole)&&i.push(function(t,e,n){const i="event.item";return i+(t&&"*"!==t?"&&"+i+".mark.marktype==='"+t+"'":"")+(n?"&&"+i+".mark.role==='"+n+"'":"")+(e?"&&"+i+".mark.name==='"+e+"'":"")}(e.marktype,e.markname,e.markrole)),e.source===tP&&i.push("inScope(event.item)"),i.length&&(t.filter=OO("("+i.join(")&&(")+")",n).$expr),null!=(i=e.throttle)&&(t.throttle=+i),null!=(i=e.debounce)&&(t.debounce=+i),e.consume&&(t.consume=!0),t}const dP={code:"_.$value",ast:{type:"Identifier",value:"value"}};function hP(t){return{signal:"["+t.map((t=>t.scale?'scale("'+t.scale+'")':t.signal))+"]"}}const pP=t=>(e,n,i)=>VT(t,n,e||void 0,i),mP=pP("aggregate"),gP=pP("axisticks"),yP=pP("bound"),vP=pP("collect"),xP=pP("compare"),bP=pP("datajoin"),_P=pP("encode"),wP=pP("expression"),kP=pP("facet"),AP=pP("field"),DP=pP("key"),SP=pP("legendentries"),MP=pP("load"),EP=pP("mark"),CP=pP("multiextent"),FP=pP("multivalues"),NP=pP("overlap"),OP=pP("params"),zP=pP("prefacet"),TP=pP("projection"),PP=pP("proxy"),RP=pP("relay"),BP=pP("render"),jP=pP("scale"),$P=pP("sieve"),LP=pP("sortitems"),UP=pP("viewlayout"),qP=pP("values");let IP=0;const WP={min:"min",max:"max",count:"sum"};function HP(t,e){const n=e.getScale(t.name).params;let i;for(i in n.domain=XP(t.domain,t,e),null!=t.range&&(n.range=iR(t,e,n)),null!=t.interpolate&&function(t,e){e.interpolate=VP(t.type||t),null!=t.gamma&&(e.interpolateGamma=VP(t.gamma))}(t.interpolate,n),null!=t.nice&&(n.nice=function(t){return A(t)?{interval:VP(t.interval),step:VP(t.step)}:VP(t)}(t.nice)),null!=t.bins&&(n.bins=function(t,e){return t.signal||k(t)?GP(t,e):e.objectProperty(t)}(t.bins,e)),t)ut(n,i)||"name"===i||(n[i]=VP(t[i],e))}function VP(t,e){return A(t)?t.signal?e.signalRef(t.signal):s("Unsupported object: "+Ct(t)):t}function GP(t,e){return t.signal?e.signalRef(t.signal):t.map((t=>VP(t,e)))}function YP(t){s("Can not find data set: "+Ct(t))}function XP(t,e,n){if(t)return t.signal?n.signalRef(t.signal):(k(t)?JP:t.fields?ZP:QP)(t,e,n);null==e.domainMin&&null==e.domainMax||s("No scale domain defined for domainMin/domainMax to override.")}function JP(t,e,n){return t.map((t=>VP(t,n)))}function QP(t,e,n){const i=n.getData(t.data);return i||YP(t.data),Yh(e.type)?i.valuesRef(n,t.field,tR(t.sort,!1)):Zh(e.type)?i.domainRef(n,t.field):i.extentRef(n,t.field)}function ZP(t,e,n){const i=t.data,r=t.fields.reduce(((t,e)=>(e=bt(e)?{data:i,field:e}:k(e)||e.signal?function(t,e){const n="_:vega:_"+IP++,i=vP({});if(k(t))i.value={$ingest:t};else if(t.signal){const r="setdata("+Ct(n)+","+t.signal+")";i.params.input=e.signalRef(r)}return e.addDataPipeline(n,[i,$P({})]),{data:n,field:"data"}}(e,n):e,t.push(e),t)),[]);return(Yh(e.type)?KP:Zh(e.type)?eR:nR)(t,n,r)}function KP(t,e,n){const i=tR(t.sort,!0);let r,o;const a=n.map((t=>{const n=e.getData(t.data);return n||YP(t.data),n.countsRef(e,t.field,i)})),s={groupby:JT,pulse:a};i&&(r=i.op||"count",o=i.field?KT(r,i.field):"count",s.ops=[WP[r]],s.fields=[e.fieldRef(o)],s.as=[o]),r=e.add(mP(s));const l=e.add(vP({pulse:YT(r)}));return o=e.add(qP({field:JT,sort:e.sortRef(i),pulse:YT(l)})),YT(o)}function tR(t,e){return t&&(t.field||t.op?t.field||"count"===t.op?e&&t.field&&t.op&&!WP[t.op]&&s("Multiple domain scales can not be sorted using "+t.op):s("No field provided for sort aggregate op: "+t.op):A(t)?t.field="key":t={field:"key"}),t}function eR(t,e,n){const i=n.map((t=>{const n=e.getData(t.data);return n||YP(t.data),n.domainRef(e,t.field)}));return YT(e.add(FP({values:i})))}function nR(t,e,n){const i=n.map((t=>{const n=e.getData(t.data);return n||YP(t.data),n.extentRef(e,t.field)}));return YT(e.add(CP({extents:i})))}function iR(t,e,n){const i=e.config.range;let r=t.range;if(r.signal)return e.signalRef(r.signal);if(bt(r)){if(i&&ut(i,r))return iR(t=ot({},t,{range:i[r]}),e,n);"width"===r?r=[0,{signal:"width"}]:"height"===r?r=Yh(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:s("Unrecognized scale range value: "+Ct(r))}else{if(r.scheme)return n.scheme=k(r.scheme)?GP(r.scheme,e):VP(r.scheme,e),r.extent&&(n.schemeExtent=GP(r.extent,e)),void(r.count&&(n.schemeCount=VP(r.count,e)));if(r.step)return void(n.rangeStep=VP(r.step,e));if(Yh(t.type)&&!k(r))return XP(r,t,e);k(r)||s("Unsupported range type: "+Ct(r))}return r.map((t=>(k(t)?GP:VP)(t,e)))}function rR(t,e,n){return k(t)?t.map((t=>rR(t,e,n))):A(t)?t.signal?n.signalRef(t.signal):"fit"===e?t:s("Unsupported parameter object: "+Ct(t)):t}const oR="top",aR="left",sR="right",lR="bottom",uR="center",cR="vertical",fR="start",dR="end",hR="index",pR="label",mR="offset",gR="perc",yR="perc2",vR="value",xR="guide-label",bR="guide-title",_R="group-title",wR="group-subtitle",kR="symbol",AR="gradient",DR="discrete",SR="size",MR=[SR,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],ER={name:1,style:1,interactive:1},CR={value:0},FR={value:1},NR="group",OR="rect",zR="rule",TR="symbol",PR="text";function RR(t){return t.type=NR,t.interactive=t.interactive||!1,t}function BR(t,e){const n=(n,i)=>rP(t[n],rP(e[n],i));return n.isVertical=n=>cR===rP(t.direction,e.direction||(n?e.symbolDirection:e.gradientDirection)),n.gradientLength=()=>rP(t.gradientLength,e.gradientLength||e.gradientWidth),n.gradientThickness=()=>rP(t.gradientThickness,e.gradientThickness||e.gradientHeight),n.entryColumns=()=>rP(t.columns,rP(e.columns,+n.isVertical(!0))),n}function jR(t,e){const n=e&&(e.update&&e.update[t]||e.enter&&e.enter[t]);return n&&n.signal?n:n?n.value:null}function $R(t,e,n){return`item.anchor === '${fR}' ? ${t} : item.anchor === '${dR}' ? ${e} : ${n}`}const LR=$R(Ct(aR),Ct(sR),Ct(uR));function UR(t,e){return e?t?A(t)?Object.assign({},t,{offset:UR(t.offset,e)}):{value:t,offset:e}:e:t}function qR(t,e){return e?(t.name=e.name,t.style=e.style||t.style,t.interactive=!!e.interactive,t.encode=cT(t.encode,e,ER)):t.interactive=!1,t}function IR(t,e,n,i){const r=BR(t,n),o=r.isVertical(),a=r.gradientThickness(),s=r.gradientLength();let l,u,c,f,d;o?(u=[0,1],c=[0,0],f=a,d=s):(u=[0,0],c=[1,0],f=s,d=a);const h={enter:l={opacity:CR,x:CR,y:CR,width:sT(f),height:sT(d)},update:ot({},l,{opacity:FR,fill:{gradient:e,start:u,stop:c}}),exit:{opacity:CR}};return uT(h,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),qR({type:OR,role:AT,encode:h},i)}function WR(t,e,n,i,r){const o=BR(t,n),a=o.isVertical(),s=o.gradientThickness(),l=o.gradientLength();let u,c,f,d,h="";a?(u="y",f="y2",c="x",d="width",h="1-"):(u="x",f="x2",c="y",d="height");const p={opacity:CR,fill:{scale:e,field:vR}};p[u]={signal:h+"datum."+gR,mult:l},p[c]=CR,p[f]={signal:h+"datum."+yR,mult:l},p[d]=sT(s);const m={enter:p,update:ot({},p,{opacity:FR}),exit:{opacity:CR}};return uT(m,{stroke:o("gradientStrokeColor"),strokeWidth:o("gradientStrokeWidth")},{opacity:o("gradientOpacity")}),qR({type:OR,role:wT,key:vR,from:r,encode:m},i)}const HR=`datum.${gR}<=0?"${aR}":datum.${gR}>=1?"${sR}":"${uR}"`,VR=`datum.${gR}<=0?"${lR}":datum.${gR}>=1?"${oR}":"middle"`;function GR(t,e,n,i){const r=BR(t,e),o=r.isVertical(),a=sT(r.gradientThickness()),s=r.gradientLength();let l,u,c,f,d=r("labelOverlap"),h="";const p={enter:l={opacity:CR},update:u={opacity:FR,text:{field:pR}},exit:{opacity:CR}};return uT(p,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:rP(t.labelLimit,e.gradientLabelLimit)}),o?(l.align={value:"left"},l.baseline=u.baseline={signal:VR},c="y",f="x",h="1-"):(l.align=u.align={signal:HR},l.baseline={value:"top"},c="x",f="y"),l[c]=u[c]={signal:h+"datum."+gR,mult:s},l[f]=u[f]=a,a.offset=rP(t.labelOffset,e.gradientLabelOffset)||0,d=d?{separation:r("labelSeparation"),method:d,order:"datum."+hR}:void 0,qR({type:PR,role:DT,style:xR,key:vR,from:i,encode:p,overlap:d},n)}function YR(t,e,n,i,r){const o=BR(t,e),a=n.entries,s=!(!a||!a.interactive),l=a?a.name:void 0,u=o("clipHeight"),c=o("symbolOffset"),f={data:"value"},d=`(${r}) ? datum.${mR} : datum.${SR}`,h=u?sT(u):{field:SR},p=`datum.${hR}`,m=`max(1, ${r})`;let g,y,v,x,b;h.mult=.5,g={enter:y={opacity:CR,x:{signal:d,mult:.5,offset:c},y:h},update:v={opacity:FR,x:y.x,y:y.y},exit:{opacity:CR}};let _=null,w=null;t.fill||(_=e.symbolBaseFillColor,w=e.symbolBaseStrokeColor),uT(g,{fill:o("symbolFillColor",_),shape:o("symbolType"),size:o("symbolSize"),stroke:o("symbolStrokeColor",w),strokeDash:o("symbolDash"),strokeDashOffset:o("symbolDashOffset"),strokeWidth:o("symbolStrokeWidth")},{opacity:o("symbolOpacity")}),MR.forEach((e=>{t[e]&&(v[e]=y[e]={scale:t[e],field:vR})}));const k=qR({type:TR,role:ST,key:vR,from:f,clip:!!u||void 0,encode:g},n.symbols),A=sT(c);A.offset=o("labelOffset"),g={enter:y={opacity:CR,x:{signal:d,offset:A},y:h},update:v={opacity:FR,text:{field:pR},x:y.x,y:y.y},exit:{opacity:CR}},uT(g,{align:o("labelAlign"),baseline:o("labelBaseline"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontStyle:o("labelFontStyle"),fontWeight:o("labelFontWeight"),limit:o("labelLimit")});const D=qR({type:PR,role:DT,style:xR,key:vR,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!u},width:CR,height:u?sT(u):CR,opacity:CR},exit:{opacity:CR},update:v={opacity:FR,row:{signal:null},column:{signal:null}}},o.isVertical(!0)?(x=`ceil(item.mark.items.length / ${m})`,v.row.signal=`${p}%${x}`,v.column.signal=`floor(${p} / ${x})`,b={field:["row",p]}):(v.row.signal=`floor(${p} / ${m})`,v.column.signal=`${p} % ${m}`,b={field:p}),v.column.signal=`(${r})?${v.column.signal}:${p}`,RR({role:pT,from:i={facet:{data:i,name:"value",groupby:hR}},encode:cT(g,a,ER),marks:[k,D],name:l,interactive:s,sort:b})}const XR='item.orient === "left"',JR='item.orient === "right"',QR=`(${XR} || ${JR})`,ZR=`datum.vgrad && ${QR}`,KR=$R('"top"','"bottom"','"middle"'),tB=`datum.vgrad && ${JR} ? (${$R('"right"','"left"','"center"')}) : (${QR} && !(datum.vgrad && ${XR})) ? "left" : ${LR}`,eB=`item._anchor || (${QR} ? "middle" : "start")`,nB=`${ZR} ? (${XR} ? -90 : 90) : 0`,iB=`${QR} ? (datum.vgrad ? (${JR} ? "bottom" : "top") : ${KR}) : "top"`;function rB(t,e){let n;return A(t)&&(t.signal?n=t.signal:t.path?n="pathShape("+oB(t.path)+")":t.sphere&&(n="geoShape("+oB(t.sphere)+', {type: "Sphere"})')),n?e.signalRef(n):!!t}function oB(t){return A(t)&&t.signal?t.signal:Ct(t)}function aB(t){const e=t.role||"";return e.indexOf("axis")&&e.indexOf("legend")&&e.indexOf("title")?t.type===NR?pT:e||dT:e}function sB(t){return{marktype:t.type,name:t.name||void 0,role:t.role||aB(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function lB(t,e){return t&&t.signal?e.signalRef(t.signal):!1!==t}function uB(t,e){const n=Wa(t.type);n||s("Unrecognized transform type: "+Ct(t.type));const i=VT(n.type.toLowerCase(),null,cB(n,t,e));return t.signal&&e.addSignal(t.signal,e.proxy(i)),i.metadata=n.metadata||{},i}function cB(t,e,n){const i={},r=t.params.length;for(let o=0;ohB(t,e,n)))):hB(t,i,n)}(t,e,n):"projection"===i?n.projectionRef(e[t.name]):t.array&&!nP(r)?r.map((e=>dB(t,e,n))):dB(t,r,n):void(t.required&&s("Missing required "+Ct(e.type)+" parameter: "+Ct(t.name)))}function dB(t,e,n){const i=t.type;if(nP(e))return yB(i)?s("Expression references can not be signals."):vB(i)?n.fieldRef(e):xB(i)?n.compareRef(e):n.signalRef(e.signal);{const r=t.expr||vB(i);return r&&pB(e)?n.exprRef(e.expr,e.as):r&&mB(e)?XT(e.field,e.as):yB(i)?OO(e,n):gB(i)?YT(n.getData(e).values):vB(i)?XT(e):xB(i)?n.compareRef(e):e}}function hB(t,e,n){const i=t.params.length;let r;for(let n=0;nt&&t.expr,mB=t=>t&&t.field,gB=t=>"data"===t,yB=t=>"expr"===t,vB=t=>"field"===t,xB=t=>"compare"===t;function bB(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:YT(e.getData(t.data).output)}function _B(t,e,n,i,r){this.scope=t,this.input=e,this.output=n,this.values=i,this.aggregate=r,this.index={}}function wB(t){return bt(t)?t:null}function kB(t,e,n){const i=KT(n.op,n.field);let r;if(e.ops){for(let t=0,n=e.as.length;tnull==t?"null":t)).join(",")+"),0)",e);l.update=u.$expr,l.params=u.$params}function SB(t,e){const n=aB(t),i=t.type===NR,r=t.from&&t.from.facet,o=t.overlap;let a,l,u,c,f,d,h,p=t.layout||n===pT||n===hT;const m=n===dT||p||r,g=function(t,e,n){let i,r,o,a,l;return t?(i=t.facet)&&(e||s("Only group marks can be faceted."),null!=i.field?a=l=bB(i,n):(t.data?l=YT(n.getData(t.data).aggregate):(o=uB(ot({type:"aggregate",groupby:Y(i.groupby)},i.aggregate),n),o.params.key=n.keyRef(i.groupby),o.params.pulse=bB(i,n),a=l=YT(n.add(o))),r=n.keyRef(i.groupby,!0))):a=YT(n.add(vP(null,[{}]))),a||(a=bB(t,n)),{key:r,pulse:a,parent:l}}(t.from,i,e);l=e.add(bP({key:g.key||(t.key?XT(t.key):void 0),pulse:g.pulse,clean:!i}));const y=YT(l);l=u=e.add(vP({pulse:y})),l=e.add(EP({markdef:sB(t),interactive:lB(t.interactive,e),clip:rB(t.clip,e),context:{$context:!0},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:YT(l)}));const v=YT(l);l=c=e.add(_P(jT(t.encode,t.type,n,t.style,e,{mod:!1,pulse:v}))),l.params.parent=e.encode(),t.transform&&t.transform.forEach((t=>{const n=uB(t,e),i=n.metadata;(i.generates||i.changes)&&s("Mark transforms should not generate new data."),i.nomod||(c.params.mod=!0),n.params.pulse=YT(l),e.add(l=n)})),t.sort&&(l=e.add(LP({sort:e.compareRef(t.sort),pulse:YT(l)})));const x=YT(l);(r||p)&&(p=e.add(UP({layout:e.objectProperty(t.layout),legends:e.legends,mark:v,pulse:x})),d=YT(p));const b=e.add(yP({mark:v,pulse:d||x}));h=YT(b),i&&(m&&(a=e.operators,a.pop(),p&&a.pop()),e.pushState(x,d||h,y),r?function(t,e,n){const i=t.from.facet,r=i.name,o=bB(i,e);let a;i.name||s("Facet must have a name: "+Ct(i)),i.data||s("Facet must reference a data set: "+Ct(i)),i.field?a=e.add(zP({field:e.fieldRef(i.field),pulse:o})):i.groupby?a=e.add(kP({key:e.keyRef(i.groupby),group:YT(e.proxy(n.parent)),pulse:o})):s("Facet must specify groupby or field: "+Ct(i));const l=e.fork(),u=l.add(vP()),c=l.add($P({pulse:YT(u)}));l.addData(r,new _B(l,u,u,c)),l.addSignal("parent",null),a.params.subflow={$subflow:l.parse(t).toRuntime()}}(t,e,g):m?function(t,e,n){const i=e.add(zP({pulse:n.pulse})),r=e.fork();r.add($P()),r.addSignal("parent",null),i.params.subflow={$subflow:r.parse(t).toRuntime()}}(t,e,g):e.parse(t),e.popState(),m&&(p&&a.push(p),a.push(b))),o&&(h=function(t,e,n){const i=t.method,r=t.bound,o=t.separation,a={separation:nP(o)?n.signalRef(o.signal):o,method:nP(i)?n.signalRef(i.signal):i,pulse:e};if(t.order&&(a.sort=n.compareRef({field:t.order})),r){const t=r.tolerance;a.boundTolerance=nP(t)?n.signalRef(t.signal):+t,a.boundScale=n.scaleRef(r.scale),a.boundOrient=r.orient}return YT(n.add(NP(a)))}(o,h,e));const _=e.add(BP({pulse:h})),w=e.add($P({pulse:YT(_)},void 0,e.parent()));null!=t.name&&(f=t.name,e.addData(f,new _B(e,u,_,w)),t.on&&t.on.forEach((t=>{(t.insert||t.remove||t.toggle)&&s("Marks only support modify triggers."),DB(t,e,f)})))}function MB(t,e,n){const i={enter:{},update:{}};return uT(i,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:t("legendX"),y:t("legendY"),format:e.format,formatType:e.formatType}),i}function EB(t,e,n){return e[t]?`scale("${e[t]}",datum)`:jR(t,n[0].encode)}_B.fromEntries=function(t,e){const n=e.length,i=e[n-1],r=e[n-2];let o=e[0],a=null,s=1;for(o&&"load"===o.type&&(o=e[1]),t.add(e[0]);st===lR||t===oR,TB=(t,e,n)=>nP(t)?UB(t.signal,e,n):t===aR||t===oR?e:n,PB=(t,e,n)=>nP(t)?$B(t.signal,e,n):zB(t)?e:n,RB=(t,e,n)=>nP(t)?LB(t.signal,e,n):zB(t)?n:e,BB=(t,e,n)=>nP(t)?qB(t.signal,e,n):t===oR?{value:e}:{value:n},jB=(t,e,n)=>nP(t)?IB(t.signal,e,n):t===sR?{value:e}:{value:n},$B=(t,e,n)=>WB(`${t} === '${oR}' || ${t} === '${lR}'`,e,n),LB=(t,e,n)=>WB(`${t} !== '${oR}' && ${t} !== '${lR}'`,e,n),UB=(t,e,n)=>VB(`${t} === '${aR}' || ${t} === '${oR}'`,e,n),qB=(t,e,n)=>VB(`${t} === '${oR}'`,e,n),IB=(t,e,n)=>VB(`${t} === '${sR}'`,e,n),WB=(t,e,n)=>(e=null!=e?sT(e):e,n=null!=n?sT(n):n,HB(e)&&HB(n)?{signal:`${t} ? (${e=e?e.signal||Ct(e.value):null}) : (${n=n?n.signal||Ct(n.value):null})`}:[ot({test:t},e)].concat(n||[])),HB=t=>null==t||1===Object.keys(t).length,VB=(t,e,n)=>({signal:`${t} ? (${YB(e)}) : (${YB(n)})`}),GB=(t,e,n,i,r)=>({signal:(null!=i?`${t} === '${aR}' ? (${YB(i)}) : `:"")+(null!=n?`${t} === '${lR}' ? (${YB(n)}) : `:"")+(null!=r?`${t} === '${sR}' ? (${YB(r)}) : `:"")+(null!=e?`${t} === '${oR}' ? (${YB(e)}) : `:"")+"(null)"}),YB=t=>nP(t)?t.signal:null==t?null:Ct(t),XB=(t,e)=>0===e?0:nP(t)?{signal:`(${t.signal}) * ${e}`}:{value:t*e},JB=(t,e)=>{const n=t.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+e.signal}:t};function QB(t,e,n,i){let r;if(e&&ut(e,t))return e[t];if(ut(n,t))return n[t];if(t.startsWith("title")){switch(t){case"titleColor":r="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":r=t[5].toLowerCase()+t.slice(6)}return i[bR][r]}if(t.startsWith("label")){switch(t){case"labelColor":r="fill";break;case"labelFont":case"labelFontSize":r=t[5].toLowerCase()+t.slice(6)}return i[xR][r]}return null}function ZB(t){const e={};for(const n of t)if(n)for(const t in n)e[t]=1;return Object.keys(e)}function KB(t,e){return{scale:t.scale,range:e}}function tj(t,e,n,i,r){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+e+","+n+","+i+","+r+")"}}function ej(t,e){const n=function(t,e){var n,i,r,o=e.config,a=o.style,s=o.axis,l="band"===e.scaleType(t.scale)&&o.axisBand,u=t.orient;if(nP(u)){const t=ZB([o.axisX,o.axisY]),e=ZB([o.axisTop,o.axisBottom,o.axisLeft,o.axisRight]);for(r of(n={},t))n[r]=PB(u,QB(r,o.axisX,s,a),QB(r,o.axisY,s,a));for(r of(i={},e))i[r]=GB(u.signal,QB(r,o.axisTop,s,a),QB(r,o.axisBottom,s,a),QB(r,o.axisLeft,s,a),QB(r,o.axisRight,s,a))}else n=u===oR||u===lR?o.axisX:o.axisY,i=o["axis"+u[0].toUpperCase()+u.slice(1)];return n||i||l?ot({},s,n,i,l):s}(t,e),i=t.encode||{},r=i.axis||{},o=r.name||void 0,a=r.interactive,s=r.style,l=BR(t,n),u=function(t){const e=t("tickBand");let n,i,r=t("tickOffset");return e?e.signal?(n={signal:`(${e.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${e.signal}) === 'extent'`},A(r)||(r={signal:`(${e.signal}) === 'extent' ? 0 : ${r}`})):"extent"===e?(n=1,i=!0,r=0):(n=.5,i=!1):(n=t("bandPosition"),i=t("tickExtra")),{extra:i,band:n,offset:r}}(l),c={scale:t.scale,ticks:!!l("ticks"),labels:!!l("labels"),grid:!!l("grid"),domain:!!l("domain"),title:null!=t.title},f=YT(e.add(vP({},[c]))),d=YT(e.add(gP({scale:e.scaleRef(t.scale),extra:e.property(u.extra),count:e.objectProperty(t.tickCount),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)}))),h=[];let p;return c.grid&&h.push(function(t,e,n,i,r){const o=BR(t,e),a=t.orient,s=t.gridScale,l=TB(a,1,-1),u=function(t,e){if(1===e);else if(A(t)){let n=t=ot({},t);for(;null!=n.mult;){if(!A(n.mult))return n.mult=nP(e)?{signal:`(${n.mult}) * (${e.signal})`}:n.mult*e,t;n=n.mult=ot({},n.mult)}n.mult=e}else t=nP(e)?{signal:`(${e.signal}) * (${t||0})`}:e*(t||0);return t}(t.offset,l);let c,f,d;const h={enter:c={opacity:CR},update:d={opacity:FR},exit:f={opacity:CR}};uT(h,{stroke:o("gridColor"),strokeCap:o("gridCap"),strokeDash:o("gridDash"),strokeDashOffset:o("gridDashOffset"),strokeOpacity:o("gridOpacity"),strokeWidth:o("gridWidth")});const p={scale:t.scale,field:vR,band:r.band,extra:r.extra,offset:r.offset,round:o("tickRound")},m=PB(a,{signal:"height"},{signal:"width"}),g=s?{scale:s,range:0,mult:l,offset:u}:{value:0,offset:u},y=s?{scale:s,range:1,mult:l,offset:u}:ot(m,{mult:l,offset:u});return c.x=d.x=PB(a,p,g),c.y=d.y=RB(a,p,g),c.x2=d.x2=RB(a,y),c.y2=d.y2=PB(a,y),f.x=PB(a,p),f.y=RB(a,p),qR({type:zR,role:yT,key:vR,from:i,encode:h},n)}(t,n,i.grid,d,u)),c.ticks&&(p=l("tickSize"),h.push(function(t,e,n,i,r,o){const a=BR(t,e),s=t.orient,l=TB(s,-1,1);let u,c,f;const d={enter:u={opacity:CR},update:f={opacity:FR},exit:c={opacity:CR}};uT(d,{stroke:a("tickColor"),strokeCap:a("tickCap"),strokeDash:a("tickDash"),strokeDashOffset:a("tickDashOffset"),strokeOpacity:a("tickOpacity"),strokeWidth:a("tickWidth")});const h=sT(r);h.mult=l;const p={scale:t.scale,field:vR,band:o.band,extra:o.extra,offset:o.offset,round:a("tickRound")};return f.y=u.y=PB(s,CR,p),f.y2=u.y2=PB(s,h),c.x=PB(s,p),f.x=u.x=RB(s,CR,p),f.x2=u.x2=RB(s,h),c.y=RB(s,p),qR({type:zR,role:xT,key:vR,from:i,encode:d},n)}(t,n,i.ticks,d,p,u))),c.labels&&(p=c.ticks?p:0,h.push(function(t,e,n,i,r,o){const a=BR(t,e),s=t.orient,l=t.scale,u=TB(s,-1,1),c=oP(a("labelFlush")),f=oP(a("labelFlushOffset")),d=a("labelAlign"),h=a("labelBaseline");let p,m=0===c||!!c;const g=sT(r);g.mult=u,g.offset=sT(a("labelPadding")||0),g.offset.mult=u;const y={scale:l,field:vR,band:.5,offset:UR(o.offset,a("labelOffset"))},v=PB(s,m?tj(l,c,'"left"','"right"','"center"'):{value:"center"},jB(s,"left","right")),x=PB(s,BB(s,"bottom","top"),m?tj(l,c,'"top"','"bottom"','"middle"'):{value:"middle"}),b=tj(l,c,`-(${f})`,f,0);m=m&&f;const _={opacity:CR,x:PB(s,y,g),y:RB(s,y,g)},w={enter:_,update:p={opacity:FR,text:{field:pR},x:_.x,y:_.y,align:v,baseline:x},exit:{opacity:CR,x:_.x,y:_.y}};uT(w,{dx:!d&&m?PB(s,b):null,dy:!h&&m?RB(s,b):null}),uT(w,{angle:a("labelAngle"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontWeight:a("labelFontWeight"),fontStyle:a("labelFontStyle"),limit:a("labelLimit"),lineHeight:a("labelLineHeight")},{align:d,baseline:h});const k=a("labelBound");let A=a("labelOverlap");return A=A||k?{separation:a("labelSeparation"),method:A,order:"datum.index",bound:k?{scale:l,orient:s,tolerance:k}:null}:void 0,p.align!==v&&(p.align=JB(p.align,v)),p.baseline!==x&&(p.baseline=JB(p.baseline,x)),qR({type:PR,role:vT,style:xR,key:vR,from:i,encode:w,overlap:A},n)}(t,n,i.labels,d,p,u))),c.domain&&h.push(function(t,e,n,i){const r=BR(t,e),o=t.orient;let a,s;const l={enter:a={opacity:CR},update:s={opacity:FR},exit:{opacity:CR}};uT(l,{stroke:r("domainColor"),strokeCap:r("domainCap"),strokeDash:r("domainDash"),strokeDashOffset:r("domainDashOffset"),strokeWidth:r("domainWidth"),strokeOpacity:r("domainOpacity")});const u=KB(t,0),c=KB(t,1);return a.x=s.x=PB(o,u,CR),a.x2=s.x2=PB(o,c),a.y=s.y=RB(o,u,CR),a.y2=s.y2=RB(o,c),qR({type:zR,role:gT,from:i,encode:l},n)}(t,n,i.domain,f)),c.title&&h.push(function(t,e,n,i){const r=BR(t,e),o=t.orient,a=TB(o,-1,1);let s,l;const u={enter:s={opacity:CR,anchor:sT(r("titleAnchor",null)),align:{signal:LR}},update:l=ot({},s,{opacity:FR,text:sT(t.title)}),exit:{opacity:CR}},c={signal:`lerp(range("${t.scale}"), ${$R(0,1,.5)})`};return l.x=PB(o,c),l.y=RB(o,c),s.angle=PB(o,CR,XB(a,90)),s.baseline=PB(o,BB(o,lR,oR),{value:lR}),l.angle=s.angle,l.baseline=s.baseline,uT(u,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")}),function(t,e,n,i){const r=(t,e)=>null!=t?(n.update[e]=JB(sT(t),n.update[e]),!1):!fT(e,i),o=r(t("titleX"),"x"),a=r(t("titleY"),"y");n.enter.auto=a===o?sT(a):PB(e,sT(a),sT(o))}(r,o,u,n),u.update.align=JB(u.update.align,s.align),u.update.angle=JB(u.update.angle,s.angle),u.update.baseline=JB(u.update.baseline,s.baseline),qR({type:PR,role:bT,style:bR,from:i,encode:u},n)}(t,n,i.title,f)),SB(RR({role:mT,from:f,encode:cT(nj(l,t),r,ER),marks:h,aria:l("aria"),description:l("description"),zindex:l("zindex"),name:o,interactive:a,style:s}),e)}function nj(t,e){const n={enter:{},update:{}};return uT(n,{orient:t("orient"),offset:t("offset")||0,position:rP(e.position,0),titlePadding:t("titlePadding"),minExtent:t("minExtent"),maxExtent:t("maxExtent"),range:{signal:`abs(span(range("${e.scale}")))`},translate:t("translate"),format:e.format,formatType:e.formatType}),n}function ij(t,e,n){const i=Y(t.signals),r=Y(t.scales);return n||i.forEach((t=>WT(t,e))),Y(t.projections).forEach((t=>function(t,e){const n=e.config.projection||{},i={};for(const n in t)"name"!==n&&(i[n]=rR(t[n],n,e));for(const t in n)null==i[t]&&(i[t]=rR(n[t],t,e));e.addProjection(t.name,i)}(t,e))),r.forEach((t=>function(t,e){const n=t.type||"linear";Hh(n)||s("Unrecognized scale type: "+Ct(n)),e.addScale(t.name,{type:n,domain:void 0})}(t,e))),Y(t.data).forEach((t=>function(t,e){const n=[];t.transform&&t.transform.forEach((t=>{n.push(uB(t,e))})),t.on&&t.on.forEach((n=>{DB(n,e,t.name)})),e.addDataPipeline(t.name,function(t,e,n){const i=[];let r,o,a,s,l,u=null,c=!1,f=!1;for(t.values?nP(t.values)||iP(t.format)?(i.push(OB(e,t)),i.push(u=NB())):i.push(u=NB({$ingest:t.values,$format:t.format})):t.url?iP(t.url)||iP(t.format)?(i.push(OB(e,t)),i.push(u=NB())):i.push(u=NB({$request:t.url,$format:t.format})):t.source&&(u=r=Y(t.source).map((t=>YT(e.getData(t).output))),i.push(null)),o=0,a=n.length;oHP(t,e))),(n||i).forEach((t=>function(t,e){const n=e.getSignal(t.name);let i=t.update;t.init&&(i?s("Signals can not include both init and update expressions."):(i=t.init,n.initonly=!0)),i&&(i=OO(i,e),n.update=i.$expr,n.params=i.$params),t.on&&t.on.forEach((t=>function(t,e,n){const i=t.encode,r={target:n};let o=t.events,a=t.update,l=[];o||s("Signal update missing events specification."),bt(o)&&(o=Kz(o,e.isSubscope()?tP:eP)),o=Y(o).filter((t=>t.signal||t.scale?(l.push(t),0):1)),l.length>1&&(l=[hP(l)]),o.length&&l.push(o.length>1?{merge:o}:o[0]),null!=i&&(a&&s("Signal encode and update are mutually exclusive."),a="encode(item(),"+Ct(i)+")"),r.update=bt(a)?OO(a,e):null!=a.expr?OO(a.expr,e):null!=a.value?a.value:null!=a.signal?{$expr:dP,$params:{$value:e.signalRef(a.signal)}}:s("Invalid signal update specification."),t.force&&(r.options={force:!0}),l.forEach((t=>e.addUpdate(ot(function(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):sP(t,e)}}(t,e),r))))}(t,e,n.id)))}(t,e))),Y(t.axes).forEach((t=>ej(t,e))),Y(t.marks).forEach((t=>SB(t,e))),Y(t.legends).forEach((t=>function(t,e){const n=e.config.legend,i=t.encode||{},r=BR(t,n),o=i.legend||{},a=o.name||void 0,l=o.interactive,u=o.style,c={};let f,d,h,p=0;MR.forEach((e=>t[e]?(c[e]=t[e],p=p||t[e]):0)),p||s("Missing valid scale for legend.");const m=function(t,e){let n=t.type||kR;return t.type||1!==function(t){return MR.reduce(((e,n)=>e+(t[n]?1:0)),0)}(t)||!t.fill&&!t.stroke||(n=Gh(e)?AR:Xh(e)?DR:kR),n!==AR?n:Xh(e)?DR:AR}(t,e.scaleType(p)),g={title:null!=t.title,scales:c,type:m,vgrad:"symbol"!==m&&r.isVertical()},y=YT(e.add(vP(null,[g]))),v=YT(e.add(SP(d={type:m,scale:e.scaleRef(p),count:e.objectProperty(r("tickCount")),limit:e.property(r("symbolLimit")),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)})));return m===AR?(h=[IR(t,p,n,i.gradient),GR(t,n,i.labels,v)],d.count=d.count||e.signalRef(`max(2,2*floor((${oP(r.gradientLength())})/100))`)):m===DR?h=[WR(t,p,n,i.gradient,v),GR(t,n,i.labels,v)]:(f=function(t,e){const n=BR(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}(t,n),h=[YR(t,n,i,v,oP(f.columns))],d.size=function(t,e,n){const i=oP(EB("size",t,n)),r=oP(EB("strokeWidth",t,n)),o=oP(function(t,e,n){return jR("fontSize",t)||function(t,e,n){const i=e.config.style[n];return i&&i.fontSize}(0,e,n)}(n[1].encode,e,xR));return OO(`max(ceil(sqrt(${i})+${r}),${o})`,e)}(t,e,h[0].marks)),h=[RR({role:kT,from:y,encode:{enter:{x:{value:0},y:{value:0}}},marks:h,layout:f,interactive:l})],g.title&&h.push(function(t,e,n,i){const r=BR(t,e),o={enter:{opacity:CR},update:{opacity:FR,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:CR}};return uT(o,{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:eB},angle:{signal:nB},align:{signal:tB},baseline:{signal:iB},text:t.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")}),qR({type:PR,role:MT,style:bR,from:i,encode:o},n)}(t,n,i.title,y)),SB(RR({role:_T,from:y,encode:cT(MB(r,t,n),o,ER),marks:h,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:a,interactive:l,style:u}),e)}(t,e))),t.title&&function(t,e){const n=BR(t=bt(t)?{text:t}:t,e.config.title),i=t.encode||{},r=i.group||{},o=r.name||void 0,a=r.interactive,s=r.style,l=[],u=YT(e.add(vP(null,[{}])));l.push(function(t,e,n,i){const r={value:0},o={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return uT(o,{text:t.text,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("color"),font:e("font"),fontSize:e("fontSize"),fontStyle:e("fontStyle"),fontWeight:e("fontWeight"),lineHeight:e("lineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),qR({type:PR,role:CT,style:_R,from:i,encode:o},n)}(t,n,function(t){const e=t.encode;return e&&e.title||ot({name:t.name,interactive:t.interactive,style:t.style},e)}(t),u)),t.subtitle&&l.push(function(t,e,n,i){const r={value:0},o={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return uT(o,{text:t.subtitle,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("subtitleColor"),font:e("subtitleFont"),fontSize:e("subtitleFontSize"),fontStyle:e("subtitleFontStyle"),fontWeight:e("subtitleFontWeight"),lineHeight:e("subtitleLineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),qR({type:PR,role:FT,style:wR,from:i,encode:o},n)}(t,n,i.subtitle,u)),SB(RR({role:ET,from:u,encode:FB(n,r),marks:l,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:o,interactive:a,style:s}),e)}(t.title,e),e.parseLambdas(),e}const rj=t=>cT({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function oj(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function aj(t,e){this.config=t||{},this.options=e||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function sj(t){this.config=t.config,this.options=t.options,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}function lj(t){return(k(t)?uj:cj)(t)}function uj(t){const e=t.length;let n="[";for(let i=0;i0?",":"")+(A(e)?e.signal||lj(e):Ct(e))}return n+"]"}function cj(t){let e,n,i="{",r=0;for(e in t)n=t[e],i+=(++r>1?",":"")+Ct(e)+":"+(A(n)?n.signal||lj(n):Ct(n));return i+"}"}aj.prototype=sj.prototype={parse(t){return ij(t,this)},fork(){return new sj(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach((e=>{e.$ref=t.id})),t.refs=null),t},proxy(t){const e=t instanceof HT?YT(t):t;return this.add(PP({value:e}))},addStream(t){return this.streams.push(t),t.id=this.id(),t},addUpdate(t){return this.updates.push(t),t},finish(){let t,e;for(t in this.root&&(this.root.root=!0),this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function n(t,e,n){let i,r;t&&(i=t.data||(t.data={}),r=i[e]||(i[e]=[]),r.push(n))}for(t in this.data){e=this.data[t],n(e.input,t,"input"),n(e.output,t,"output"),n(e.values,t,"values");for(const i in e.index)n(e.index[i],t,"index:"+i)}return this},pushState(t,e,n){this._encode.push(YT(this.add($P({pulse:t})))),this._parent.push(e),this._lookup.push(n?YT(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return C(this._parent)},encode(){return C(this._encode)},lookup(){return C(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,e){if(bt(t))return XT(t,e);t.signal||s("Unsupported field reference: "+Ct(t));const n=t.signal;let i=this.field[n];if(!i){const t={name:this.signalRef(n)};e&&(t.as=e),this.field[n]=i=YT(this.add(AP(t)))}return i},compareRef(t){let e=!1;const n=t=>nP(t)?(e=!0,this.signalRef(t.signal)):function(t){return t&&t.expr}(t)?(e=!0,this.exprRef(t.expr)):t,i=Y(t.field).map(n),r=Y(t.order).map(n);return e?YT(this.add(xP({fields:i,orders:r}))):QT(i,r)},keyRef(t,e){let n=!1;const i=this.signals;return t=Y(t).map((t=>nP(t)?(n=!0,YT(i[t.signal])):t)),n?YT(this.add(DP({fields:t,flat:e}))):function(t,e){const n={$key:t};return e&&(n.$flat=!0),n}(t,e)},sortRef(t){if(!t)return t;const e=KT(t.op,t.field),n=t.order||"ascending";return n.signal?YT(this.add(xP({fields:e,orders:this.signalRef(n.signal)}))):QT(e,n)},event(t,e){const n=t+":"+e;if(!this.events[n]){const i=this.id();this.streams.push({id:i,source:t,type:e}),this.events[n]=i}return this.events[n]},hasOwnSignal(t){return ut(this.signals,t)},addSignal(t,e){this.hasOwnSignal(t)&&s("Duplicate signal name: "+Ct(t));const n=e instanceof HT?e:this.add(GT(e));return this.signals[t]=n},getSignal(t){return this.signals[t]||s("Unrecognized signal name: "+Ct(t)),this.signals[t]},signalRef(t){return this.signals[t]?YT(this.signals[t]):(ut(this.lambdas,t)||(this.lambdas[t]=this.add(GT(null))),YT(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let e=0,n=t.length;erP(t[n],e[n]),i=[oj("background",n("background")),oj("autosize",iT(n("autosize"))),oj("padding",aT(n("padding"))),oj("width",n("width")||0),oj("height",n("height")||0)],r=i.reduce(((t,e)=>(t[e.name]=e,t)),{}),o={};return Y(t.signals).forEach((t=>{ut(r,t.name)?t=ot(r[t.name],t):i.push(t),o[t.name]=t})),Y(e.signals).forEach((t=>{ut(o,t.name)||ut(r,t.name)||i.push(t)})),i}(t,n);r.forEach((t=>WT(t,e))),e.description=t.description||n.description,e.eventConfig=n.events,e.legends=e.objectProperty(n.legend&&n.legend.layout),e.locale=n.locale;const o=e.add(vP()),a=e.add(_P(jT(rj(t.encode),NR,hT,t.style,e,{pulse:YT(o)}))),s=e.add(UP({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:i,pulse:YT(a)}));e.operators.pop(),e.pushState(YT(a),YT(s),null),ij(t,e,r),e.operators.push(s);let l=e.add(yP({mark:i,pulse:YT(s)}));return l=e.add(BP({pulse:YT(l)})),l=e.add($P({pulse:YT(l)})),e.addData("root",new _B(e,o,o,l)),e}(t,new aj(e=S(function(){const t="sans-serif",e="#4c78a8",n="#000",i="#888",r="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:e},area:{fill:e},image:null,line:{stroke:e,strokeWidth:2},path:{stroke:e},rect:{fill:e},rule:{stroke:n},shape:{stroke:e},symbol:{fill:e,size:64},text:{fill:n,font:t,fontSize:11},trail:{fill:e,size:2},style:{"guide-label":{fill:n,font:t,fontSize:10},"guide-title":{fill:n,font:t,fontSize:11,fontWeight:"bold"},"group-title":{fill:n,font:t,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:n,font:t,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:r},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:i,grid:!1,gridWidth:1,gridColor:r,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:i,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:r,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:i,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}(),e,t.config),n)).toRuntime()},t.parseExpression=AN,t.parseSelector=Kz,t.path=Ou,t.pathCurves=Bp,t.pathEqual=yx,t.pathParse=Ip,t.pathRectangle=pm,t.pathRender=em,t.pathSymbols=om,t.pathTrail=mm,t.peek=C,t.point=Wy,t.projection=kD,t.quantileLogNormal=fs,t.quantileNormal=os,t.quantileUniform=ys,t.quantiles=Ga,t.quantizeInterpolator=np,t.quarter=V,t.quartiles=Ya,t.randomInteger=function(e,n){let i,r,o;null==n&&(n=e,e=0);const a={min(t){return arguments.length?(i=t||0,o=r-i,a):i},max(t){return arguments.length?(r=t||0,o=r-i,a):r},sample:()=>i+Math.floor(o*t.random()),pdf:t=>t===Math.floor(t)&&t>=i&&t=r?1:(e-i+1)/o},icdf:t=>t>=0&&t<=1?i-1+Math.floor(t*o):NaN};return a.min(e).max(n)},t.randomKDE=ss,t.randomLCG=function(t){return function(){return(t=(1103515245*t+12345)%2147483647)/2147483647}},t.randomLogNormal=ds,t.randomMixture=hs,t.randomNormal=as,t.randomUniform=vs,t.read=ia,t.regressionExp=Ds,t.regressionLinear=ks,t.regressionLoess=Os,t.regressionLog=As,t.regressionPoly=Es,t.regressionPow=Ss,t.regressionQuad=Ms,t.renderModule=lx,t.repeat=St,t.resetDefaultLocale=function(){return _o(),So(),No()},t.resetSVGClipId=Fm,t.resetSVGDefIds=function(){Fm(),Fp=0},t.responseType=na,t.runtimeContext=UO,t.sampleCurve=Rs,t.sampleLogNormal=ls,t.sampleNormal=ns,t.sampleUniform=ps,t.scale=Wh,t.sceneEqual=gx,t.sceneFromJSON=Py,t.scenePickVisit=Ag,t.sceneToJSON=Ty,t.sceneVisit=kg,t.sceneZOrder=wg,t.scheme=lp,t.serializeXML=Rv,t.setRandom=function(e){t.random=e},t.span=Et,t.splitAccessPath=l,t.stringValue=Ct,t.textMetrics=uy,t.timeBin=Ii,t.timeFloor=bi,t.timeFormatLocale=Eo,t.timeInterval=Si,t.timeOffset=Ci,t.timeSequence=Oi,t.timeUnitSpecifier=ei,t.timeUnits=Kn,t.toBoolean=Ft,t.toDate=Ot,t.toNumber=F,t.toSet=Tt,t.toString=zt,t.transform=Ha,t.transforms=Ia,t.truncate=Pt,t.truthy=p,t.tupleid=ca,t.typeParsers=Wo,t.utcFloor=ki,t.utcInterval=Mi,t.utcOffset=Fi,t.utcSequence=zi,t.utcdayofyear=ci,t.utcquarter=G,t.utcweek=fi,t.version="5.24.0",t.visitArray=Rt,t.week=oi,t.writeConfig=M,t.zero=d,t.zoomLinear=q,t.zoomLog=I,t.zoomPow=W,t.zoomSymlog=H},"object"==typeof e&&void 0!==t?i(e):"function"==typeof define&&define.amd?define(["exports"],i):i((n="undefined"!=typeof globalThis?globalThis:n||self).vega={})},659:function(t,e,n){(function(t){!function(e,n){"use strict";var i="5.2.0";Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function t(){var e=isNaN(arguments[0])?1:Number(arguments[0]);return e?Array.prototype.reduce.call(this,(function(n,i){return Array.isArray(i)?n.push.apply(n,t.call(i,e-1)):n.push(i),n}),[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,"flatMap",{configurable:!0,value:function(t){return Array.prototype.map.apply(this,arguments).flat()},writable:!0});var r={exports:{}};!function(e){var n=function(){function e(t,e){return null!=e&&t instanceof e}var n,i,r;try{n=Map}catch(t){n=function(){}}try{i=Set}catch(t){i=function(){}}try{r=Promise}catch(t){r=function(){}}function o(a,l,u,c,f){"object"==typeof l&&(u=l.depth,c=l.prototype,f=l.includeNonEnumerable,l=l.circular);var d=[],h=[],p=void 0!==t;return void 0===l&&(l=!0),void 0===u&&(u=1/0),function a(u,m){if(null===u)return null;if(0===m)return u;var g,y;if("object"!=typeof u)return u;if(e(u,n))g=new n;else if(e(u,i))g=new i;else if(e(u,r))g=new r((function(t,e){u.then((function(e){t(a(e,m-1))}),(function(t){e(a(t,m-1))}))}));else if(o.__isArray(u))g=[];else if(o.__isRegExp(u))g=new RegExp(u.source,s(u)),u.lastIndex&&(g.lastIndex=u.lastIndex);else if(o.__isDate(u))g=new Date(u.getTime());else{if(p&&t.isBuffer(u))return g=t.allocUnsafe?t.allocUnsafe(u.length):new t(u.length),u.copy(g),g;e(u,Error)?g=Object.create(u):void 0===c?(y=Object.getPrototypeOf(u),g=Object.create(y)):(g=Object.create(c),y=c)}if(l){var v=d.indexOf(u);if(-1!=v)return h[v];d.push(u),h.push(g)}for(var x in e(u,n)&&u.forEach((function(t,e){var n=a(e,m-1),i=a(t,m-1);g.set(n,i)})),e(u,i)&&u.forEach((function(t){var e=a(t,m-1);g.add(e)})),u){var b;y&&(b=Object.getOwnPropertyDescriptor(y,x)),b&&null==b.set||(g[x]=a(u[x],m-1))}if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(u);for(x=0;x<_.length;x++){var w=_[x];(!(A=Object.getOwnPropertyDescriptor(u,w))||A.enumerable||f)&&(g[w]=a(u[w],m-1),A.enumerable||Object.defineProperty(g,w,{enumerable:!1}))}}if(f){var k=Object.getOwnPropertyNames(u);for(x=0;xc(t,e)))}:a(t)?{or:t.or.map((t=>c(t,e)))}:e(t)}const f=function t(e,n){if(e===n)return!0;if(e&&n&&"object"==typeof e&&"object"==typeof n){if(e.constructor!==n.constructor)return!1;var i,r,o;if(Array.isArray(e)){if((i=e.length)!=n.length)return!1;for(r=i;0!=r--;)if(!t(e[r],n[r]))return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if((i=(o=Object.keys(e)).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(!t(e[a],n[a]))return!1}return!0}return e!=e&&n!=n},d=r.exports;function h(t){throw new Error(t)}function p(t,e){const i={};for(const r of e)n.hasOwnProperty(t,r)&&(i[r]=t[r]);return i}function m(t,e){const n={...t};for(const t of e)delete n[t];return n}Set.prototype.toJSON=function(){return"Set(".concat([...this].map((t=>o(t))).join(","),")")};const g=o;function y(t){if(n.isNumber(t))return t;const e=n.isString(t)?t:o(t);if(e.length<250)return e;let i=0;for(let t=0;t1?e-1:0),i=1;i0===e?t:"[".concat(t,"]"))),r=t.map(((e,n)=>t.slice(0,n+1).join("")));for(const t of r)e.add(t)}return e}function E(t,e){return void 0===t||void 0===e||S(M(t),M(e))}function C(t){return 0===F(t).length}const F=Object.keys,N=Object.values,O=Object.entries;function z(t){return!0===t||!1===t}function T(t){const e=t.replace(/\W/g,"_");return(t.match(/^\d+/)?"_":"")+e}function P(t,e){return l(t)?"!(".concat(P(t.not,e),")"):s(t)?"(".concat(t.and.map((t=>P(t,e))).join(") && ("),")"):a(t)?"(".concat(t.or.map((t=>P(t,e))).join(") || ("),")"):e(t)}function R(t,e){if(0===e.length)return!0;const n=e.shift();return n in t&&R(t[n],e)&&delete t[n],C(t)}function B(t){return t.charAt(0).toUpperCase()+t.substr(1)}function j(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"datum";const i=n.splitAccessPath(t),r=[];for(let t=1;t<=i.length;t++){const o="[".concat(i.slice(0,t).map(n.stringValue).join("]["),"]");r.push("".concat(e).concat(o))}return r.join(" && ")}function $(t){return"".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"datum","[").concat(n.stringValue(n.splitAccessPath(t).join(".")),"]")}function L(t){return t.replace(/(\[|\]|\.|'|")/g,"\\$1")}function U(t){return"".concat(n.splitAccessPath(t).map(L).join("\\."))}function q(t,e,n){return t.replace(new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function I(t){return"".concat(n.splitAccessPath(t).join("."))}function W(t){return t?n.splitAccessPath(t).length:0}function H(){for(var t=arguments.length,e=new Array(t),n=0;ncn(t[e])?T("_".concat(e,"_").concat(O(t[e]))):T("_".concat(e,"_").concat(t[e])))).join("")}function sn(t){return!0===t||un(t)&&!t.binned}function ln(t){return"binned"===t||un(t)&&!0===t.binned}function un(t){return n.isObject(t)}function cn(t){return null==t?void 0:t.param}function fn(t){switch(t){case Z:case K:case xt:case mt:case gt:case yt:case At:case _t:case wt:case kt:case vt:return 6;case Dt:return 4;default:return 10}}function dn(t){return!(null==t||!t.expr)}function hn(t){const e=F(t||{}),n={};for(const i of e)n[i]=kn(t[i]);return n}function pn(t){const{anchor:e,frame:n,offset:i,orient:r,angle:o,limit:a,color:s,subtitleColor:l,subtitleFont:u,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:m,...g}=t,y={...e?{anchor:e}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...void 0!==o?{angle:o}:{},...void 0!==a?{limit:a}:{}},v={...l?{subtitleColor:l}:{},...u?{subtitleFont:u}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...m?{subtitlePadding:m}:{}};return{titleMarkConfig:{...g,...s?{fill:s}:{}},subtitleMarkConfig:p(t,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:y,subtitle:v}}function mn(t){return n.isString(t)||n.isArray(t)&&n.isString(t[0])}function gn(t){return!(null==t||!t.signal)}function yn(t){return!!t.step}function vn(t){return!n.isArray(t)&&"field"in t&&"data"in t}const xn=F({aria:1,description:1,ariaRole:1,ariaRoleDescription:1,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,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius: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,url:1,smooth:1}),bn={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},_n=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function wn(t){const e=n.isArray(t.condition)?t.condition.map(An):An(t.condition);return{...kn(t),condition:e}}function kn(t){if(dn(t)){const{expr:e,...n}=t;return{signal:e,...n}}return t}function An(t){if(dn(t)){const{expr:e,...n}=t;return{signal:e,...n}}return t}function Dn(t){if(dn(t)){const{expr:e,...n}=t;return{signal:e,...n}}return gn(t)?t:void 0!==t?{value:t}:void 0}function Sn(t){return gn(t)?t.signal:n.stringValue(t.value)}function Mn(t){return gn(t)?t.signal:null==t?null:n.stringValue(t)}function En(t,e,n){for(const i of n){const n=Nn(i,e.markDef,e.config);void 0!==n&&(t[i]=Dn(n))}return t}function Cn(t){var e;return[].concat(t.type,null!==(e=t.style)&&void 0!==e?e:[])}function Fn(t,e,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const{vgChannel:r,ignoreVgConfig:o}=i;return r&&void 0!==e[r]?e[r]:void 0!==e[t]?e[t]:!o||r&&r!==t?Nn(t,e,n,i):void 0}function Nn(t,e,n){let{vgChannel:i}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return H(i?On(t,e,n.style):void 0,On(t,e,n.style),i?n[e.type][i]:void 0,n[e.type][t],i?n.mark[i]:n.mark[t])}function On(t,e,n){return zn(t,Cn(e),n)}function zn(t,e,i){let r;e=n.array(e);for(const n of e){const e=i[n];e&&void 0!==e[t]&&(r=e[t])}return r}function Tn(t,e){return n.array(t).reduce(((t,n)=>{var i;return t.field.push(ia(n,e)),t.order.push(null!==(i=n.sort)&&void 0!==i?i:"ascending"),t}),{field:[],order:[]})}function Pn(t,e){const n=[...t];return e.forEach((t=>{for(const e of n)if(f(e,t))return;n.push(t)})),n}function Rn(t,e){return f(t,e)||!e?t:t?[...n.array(t),...n.array(e)].join(", "):e}function Bn(t,e){const n=t.value,i=e.value;if(null==n||null===i)return{explicit:t.explicit,value:null};if((mn(n)||gn(n))&&(mn(i)||gn(i)))return{explicit:t.explicit,value:Rn(n,i)};if(mn(n)||gn(n))return{explicit:t.explicit,value:n};if(mn(i)||gn(i))return{explicit:t.explicit,value:i};if(!(mn(n)||gn(n)||mn(i)||gn(i)))return{explicit:t.explicit,value:Pn(n,i)};throw new Error("It should never reach here")}function jn(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function $n(t,e,n){return function(t,e,n){if(e.set)e.set.call(t,n);else{if(!e.writable)throw new TypeError("attempted to set read only private field");e.value=n}}(t,Ln(t,e,"set"),n),n}function Ln(t,e,n){if(!e.has(t))throw new TypeError("attempted to "+n+" private field on non-instance");return e.get(t)}function Un(t,e,n){(function(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t,e),e.set(t,n)}function qn(t){return"Invalid specification ".concat(g(t),'. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".')}const In='Autosize "fit" only works for single views and layered views.';function Wn(t){return"".concat("width"==t?"Width":"Height",' "container" only works for single views and layered views.')}function Hn(t){const e="width"==t?"x":"y";return"".concat("width"==t?"Width":"Height",' "container" only works well with autosize "fit" or "fit-').concat(e,'".')}function Vn(t){return t?'Dropping "fit-'.concat(t,'" because spec has discrete ').concat(re(t),"."):'Dropping "fit" because spec has discrete size.'}function Gn(t){return"Unknown field for ".concat(t,". Cannot calculate view size.")}function Yn(t){return'Cannot project a selection on encoding channel "'.concat(t,'", which has no field.')}function Xn(t,e){return'Cannot project a selection on encoding channel "'.concat(t,'" as it uses an aggregate function ("').concat(e,'").')}function Jn(t){return"Selection not supported for ".concat(t," yet.")}const Qn="The same selection must be used to override scale domains in a layered view.";function Zn(t){return'The "columns" property cannot be used when "'.concat(t,'" has nested row/column.')}function Kn(t,e,n){return'An ancestor parsed field "'.concat(t,'" as ').concat(n," but a child wants to parse the field as ").concat(e,".")}function ti(t){return"Config.customFormatTypes is not true, thus custom format type and format for channel ".concat(t," are dropped.")}const ei="Arc marks uses theta channel rather than angle, replacing angle with theta.";function ni(t){return"".concat(t,"Offset dropped because ").concat(t," is continuous")}function ii(t){return"There is no ".concat(t," encoding. Replacing ").concat(t,"Offset encoding as ").concat(t,".")}function ri(t){return'Invalid field type "'.concat(t,'".')}function oi(t,e){const{fill:n,stroke:i}=e;return"Dropping color ".concat(t," as the plot also has ").concat(n&&i?"fill and stroke":n?"fill":"stroke",".")}function ai(t,e){return"Dropping ".concat(g(t),' from channel "').concat(e,'" since it does not contain any data field, datum, value, or signal.')}const si="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function li(t,e,n){return"".concat(t,' dropped as it is incompatible with "').concat(e,'"').concat(n?" when ".concat(n):"",".")}function ui(t){return"".concat(t," encoding has no scale, so specified scale is ignored.")}function ci(t){return"".concat(t," encoding should be discrete (ordinal / nominal / binned).")}function fi(t){return"".concat(t," encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).")}function di(t,e){return'Using discrete channel "'.concat(t,'" to encode "').concat(e,'" field can be misleading as it does not encode ').concat("ordinal"===e?"order":"magnitude",".")}function hi(t){return"Using unaggregated domain with raw field has no effect (".concat(g(t),").")}function pi(t){return'Unaggregated domain not applicable for "'.concat(t,'" since it produces values outside the origin domain of the source data.')}function mi(t){return"Unaggregated domain is currently unsupported for log scale (".concat(g(t),").")}function gi(t,e,n){return"".concat(n,"-scale's \"").concat(e,'" is dropped as it does not work with ').concat(t," scale.")}function yi(t){return'The step for "'.concat(t,'" is dropped because the ').concat("width"===t?"x":"y"," is continuous.")}const vi="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",xi="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.",bi="Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect.",_i="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.";function wi(t,e){return"Invalid ".concat(t,": ").concat(g(e),".")}function ki(t){return"1D error band does not support ".concat(t,".")}function Ai(t){return"Channel ".concat(t,' is required for "binned" bin.')}const Di=n.logger(n.Warn);let Si=Di;function Mi(){Si.warn(...arguments)}function Ei(t){if(t&&n.isObject(t))for(const e of Ri)if(e in t)return!0;return!1}const Ci=["january","february","march","april","may","june","july","august","september","october","november","december"],Fi=Ci.map((t=>t.substr(0,3))),Ni=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Oi=Ni.map((t=>t.substr(0,3)));function zi(t,e){const i=[];if(e&&void 0!==t.day&&F(t).length>1&&(Mi(function(t){return"Dropping day from datetime ".concat(g(t)," as day cannot be combined with other units.")}(t)),delete(t=d(t)).day),void 0!==t.year?i.push(t.year):i.push(2012),void 0!==t.month){const r=e?function(t){if(Q(t)&&(t=+t),n.isNumber(t))return t-1;{const e=t.toLowerCase(),n=Ci.indexOf(e);if(-1!==n)return n;const i=e.substr(0,3),r=Fi.indexOf(i);if(-1!==r)return r;throw new Error(wi("month",t))}}(t.month):t.month;i.push(r)}else if(void 0!==t.quarter){const r=e?function(t){if(Q(t)&&(t=+t),n.isNumber(t))return t>4&&Mi(wi("quarter",t)),t-1;throw new Error(wi("quarter",t))}(t.quarter):t.quarter;i.push(n.isNumber(r)?3*r:"".concat(r,"*3"))}else i.push(0);if(void 0!==t.date)i.push(t.date);else if(void 0!==t.day){const r=e?function(t){if(Q(t)&&(t=+t),n.isNumber(t))return t%7;{const e=t.toLowerCase(),n=Ni.indexOf(e);if(-1!==n)return n;const i=e.substr(0,3),r=Oi.indexOf(i);if(-1!==r)return r;throw new Error(wi("day",t))}}(t.day):t.day;i.push(n.isNumber(r)?r+1:"".concat(r,"+1"))}else i.push(1);for(const e of["hours","minutes","seconds","milliseconds"]){const n=t[e];i.push(void 0===n?0:n)}return i}function Ti(t){const e=zi(t,!0).join(", ");return t.utc?"utc(".concat(e,")"):"datetime(".concat(e,")")}const Pi={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},Ri=F(Pi);function Bi(t){return t.startsWith("utc")}const ji={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function $i(t){return Ri.filter((e=>Li(t,e)))}function Li(t,e){const n=t.indexOf(e);return!(n<0||n>0&&"seconds"===e&&"i"===t.charAt(n-1)||t.length>n+3&&"day"===e&&"o"===t.charAt(n+3)||n>0&&"year"===e&&"f"===t.charAt(n-1))}function Ui(t,e){let{end:n}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{end:!1};const i=j(e),r=Bi(t)?"utc":"";let o;const a={};for(const e of Ri)Li(t,e)&&(a[e]="quarter"===(s=e)?"(".concat(r,"quarter(").concat(i,")-1)"):"".concat(r).concat(s,"(").concat(i,")"),o=e);var s;return n&&(a[o]+="+1"),function(t){const e=zi(t,!1).join(", ");return t.utc?"utc(".concat(e,")"):"datetime(".concat(e,")")}(a)}function qi(t){if(!t)return;const e=$i(t);return"timeUnitSpecifier(".concat(g(e),", ").concat(g(ji),")")}function Ii(t){if(!t)return;let e;return n.isString(t)?e={unit:t}:n.isObject(t)&&(e={...t,...t.unit?{unit:t.unit}:{}}),Bi(e.unit)&&(e.utc=!0,e.unit=e.unit.substr(3)),e}function Wi(t){return!(null==t||!t.field)&&void 0!==t.equal}function Hi(t){return!(null==t||!t.field)&&void 0!==t.lt}function Vi(t){return!(null==t||!t.field)&&void 0!==t.lte}function Gi(t){return!(null==t||!t.field)&&void 0!==t.gt}function Yi(t){return!(null==t||!t.field)&&void 0!==t.gte}function Xi(t){if(null!=t&&t.field){if(n.isArray(t.range)&&2===t.range.length)return!0;if(gn(t.range))return!0}return!1}function Ji(t){return!(null==t||!t.field)&&(n.isArray(t.oneOf)||n.isArray(t.in))}function Qi(t){return Ji(t)||Wi(t)||Xi(t)||Hi(t)||Gi(t)||Vi(t)||Yi(t)}function Zi(t,e){return ba(t,{timeUnit:e,wrapTime:!0})}function Ki(t){var e;let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{field:i}=t,r=null===(e=Ii(t.timeUnit))||void 0===e?void 0:e.unit,o=r?"time(".concat(Ui(r,i),")"):ia(t,{expr:"datum"});if(Wi(t))return"".concat(o,"===").concat(Zi(t.equal,r));if(Hi(t)){const e=t.lt;return"".concat(o,"<").concat(Zi(e,r))}if(Gi(t)){const e=t.gt;return"".concat(o,">").concat(Zi(e,r))}if(Vi(t)){const e=t.lte;return"".concat(o,"<=").concat(Zi(e,r))}if(Yi(t)){const e=t.gte;return"".concat(o,">=").concat(Zi(e,r))}if(Ji(t))return"indexof([".concat(function(t,e){return t.map((t=>Zi(t,e)))}(t.oneOf,r).join(","),"], ").concat(o,") !== -1");if(function(t){return!(null==t||!t.field)&&void 0!==t.valid}(t))return tr(o,t.valid);if(Xi(t)){const{range:e}=t,i=gn(e)?{signal:"".concat(e.signal,"[0]")}:e[0],a=gn(e)?{signal:"".concat(e.signal,"[1]")}:e[1];if(null!==i&&null!==a&&n)return"inrange("+o+", ["+Zi(i,r)+", "+Zi(a,r)+"])";const s=[];return null!==i&&s.push("".concat(o," >= ").concat(Zi(i,r))),null!==a&&s.push("".concat(o," <= ").concat(Zi(a,r))),s.length>0?s.join(" && "):"true"}throw new Error("Invalid field predicate: ".concat(g(t)))}function tr(t){return arguments.length>1&&void 0!==arguments[1]&&!arguments[1]?"!isValid(".concat(t,") || !isFinite(+").concat(t,")"):"isValid(".concat(t,") && isFinite(+").concat(t,")")}function er(t){var e;return Qi(t)&&t.timeUnit?{...t,timeUnit:null===(e=Ii(t.timeUnit))||void 0===e?void 0:e.unit}:t}function nr(t){return"quantitative"===t||"temporal"===t}function ir(t){return"ordinal"===t||"nominal"===t}const rr="quantitative",or="ordinal",ar="temporal",sr="nominal",lr="geojson";const ur={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",SYMLOG:"symlog",IDENTITY:"identity",SEQUENTIAL:"sequential",TIME:"time",UTC:"utc",QUANTILE:"quantile",QUANTIZE:"quantize",THRESHOLD:"threshold",BIN_ORDINAL:"bin-ordinal",ORDINAL:"ordinal",POINT:"point",BAND:"band"},cr={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"};function fr(t,e){const n=cr[t],i=cr[e];return n===i||"ordinal-position"===n&&"time"===i||"ordinal-position"===i&&"time"===n}const dr={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 hr(t){return dr[t]}const pr=new Set(["linear","log","pow","sqrt","symlog"]),mr=new Set([...pr,"time","utc"]);function gr(t){return pr.has(t)}const yr=new Set(["quantile","quantize","threshold"]),vr=new Set([...mr,...yr,"sequential","identity"]),xr=new Set(["ordinal","bin-ordinal","point","band"]);function br(t){return xr.has(t)}function _r(t){return vr.has(t)}function wr(t){return mr.has(t)}function kr(t){return yr.has(t)}function Ar(t){return null==t?void 0:t.param}const{type:Dr,domain:Sr,range:Mr,rangeMax:Er,rangeMin:Cr,scheme:Fr,...Nr}={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,align:1,range:1,rangeMax:1,rangeMin: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},Or=F(Nr);function zr(t,e){switch(e){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(t);case"bins":return!["point","band","identity","ordinal"].includes(t);case"round":return wr(t)||"band"===t||"point"===t;case"padding":case"rangeMin":case"rangeMax":return wr(t)||["point","band"].includes(t);case"paddingOuter":case"align":return["point","band"].includes(t);case"paddingInner":return"band"===t;case"domainMax":case"domainMid":case"domainMin":case"clamp":return wr(t);case"nice":return wr(t)||"quantize"===t||"threshold"===t;case"exponent":return"pow"===t;case"base":return"log"===t;case"constant":return"symlog"===t;case"zero":return _r(t)&&!x(["log","time","utc","threshold","quantile"],t)}}function Tr(t,e){switch(e){case"interpolate":case"scheme":case"domainMid":return $t(t)?void 0:'Cannot use the scale property "'.concat(e,'" with non-color channel.');case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}const Pr={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},Rr=Pr.arc,Br=Pr.area,jr=Pr.bar,$r=Pr.image,Lr=Pr.line,Ur=Pr.point,qr=Pr.rect,Ir=Pr.rule,Wr=Pr.text,Hr=Pr.tick,Vr=Pr.trail,Gr=Pr.circle,Yr=Pr.square,Xr=Pr.geoshape;function Jr(t){return["line","area","trail"].includes(t)}function Qr(t){return["rect","bar","image","arc"].includes(t)}const Zr=new Set(F(Pr));function Kr(t){return t.type}const to=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],eo=F({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),no=F({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function io(t){return t&&null!=t.band}const ro={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},oo={binSpacing:1,continuousBandSize:5,timeUnitBandPosition:.5},ao={binSpacing:0,continuousBandSize:5,timeUnitBandPosition:.5};function so(t){const{channel:e,channelDef:n,markDef:i,scale:r,config:o}=t,a=ho(t);return Wo(n)&&!nn(n.aggregate)&&r&&wr(r.get("type"))?function(t){let{fieldDef:e,channel:n,markDef:i,ref:r,config:o}=t;return Jr(i.type)?r:null===Fn("invalid",i,o)?[lo(e,n),r]:r}({fieldDef:n,channel:e,markDef:i,ref:a,config:o}):a}function lo(t,e){return{test:uo(t,!0),..."y"===ee(e)?{field:{group:"height"}}:{value:0}}}function uo(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return tr(n.isString(t)?t:ia(t,{expr:"datum"}),!e)}function co(t,e,n,i){const r={};if(e&&(r.scale=e),Vo(t)){const{datum:e}=t;Ei(e)?r.signal=Ti(e):gn(e)?r.signal=e.signal:dn(e)?r.signal=e.expr:r.value=e}else r.field=ia(t,n);if(i){const{offset:t,band:e}=i;t&&(r.offset=t),e&&(r.band=e)}return r}function fo(t){let{scaleName:e,fieldOrDatumDef:n,fieldOrDatumDef2:i,offset:r,startSuffix:o,bandPosition:a=.5}=t;const s=01&&void 0!==arguments[1]?arguments[1]:{},n=t.field;const i=e.prefix;let r=e.suffix,o="";if(function(t){return"count"===t.aggregate}(t))n=Y("count");else{let i;if(!e.nofn)if(function(t){return"op"in t}(t))i=t.op;else{const{bin:u,aggregate:c,timeUnit:f}=t;var a,s;if(sn(u))i=an(u),r=(null!==(a=e.binSuffix)&&void 0!==a?a:"")+(null!==(s=e.suffix)&&void 0!==s?s:"");else if(c)Ke(c)?(o='["'.concat(n,'"]'),n="argmax_".concat(c.argmax)):Ze(c)?(o='["'.concat(n,'"]'),n="argmin_".concat(c.argmin)):i=String(c);else if(f){var l;i=function(t){const{utc:e,...n}=Ii(t);return n.unit?(e?"utc":"")+F(n).map((t=>T("".concat("unit"===t?"":"_".concat(t,"_")).concat(n[t])))).join(""):(e?"utc":"")+"timeunit"+F(n).map((t=>T("_".concat(t,"_").concat(n[t])))).join("")}(f),r=(!["range","mid"].includes(e.binSuffix)&&e.binSuffix||"")+(null!==(l=e.suffix)&&void 0!==l?l:"")}}i&&(n=n?"".concat(i,"_").concat(n):i)}return r&&(n="".concat(n,"_").concat(r)),i&&(n="".concat(i,"_").concat(n)),e.forAs?I(n):e.expr?$(n,e.expr)+o:U(n)+o}function ra(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return Wo(t)&&!!t.bin;case"temporal":return!1}throw new Error(ri(t.type))}const oa=(t,e)=>{switch(e.fieldTitle){case"plain":return t.field;case"functional":return function(t){const{aggregate:e,bin:n,timeUnit:i,field:r}=t;if(Ke(e))return"".concat(r," for argmax(").concat(e.argmax,")");if(Ze(e))return"".concat(r," for argmin(").concat(e.argmin,")");const o=Ii(i),a=e||(null==o?void 0:o.unit)||(null==o?void 0:o.maxbins)&&"timeunit"||sn(n)&&"bin";return a?"".concat(a.toUpperCase(),"(").concat(r,")"):r}(t);default:return function(t,e){const{field:n,bin:i,timeUnit:r,aggregate:o}=t;if("count"===o)return e.countTitle;if(sn(i))return"".concat(n," (binned)");if(r){var a;const t=null===(a=Ii(r))||void 0===a?void 0:a.unit;if(t)return"".concat(n," (").concat($i(t).join("-"),")")}else if(o)return Ke(o)?"".concat(n," for max ").concat(o.argmax):Ze(o)?"".concat(n," for min ").concat(o.argmin):"".concat(B(o)," of ").concat(n);return n}(t,e)}};let aa=oa;function sa(t){aa=t}function la(t,e,n){var i;let{allowDisabling:r,includeDefault:o=!0}=n;const a=null===(i=ua(t))||void 0===i?void 0:i.title;if(!Wo(t))return null!=a?a:t.title;const s=t,l=o?ca(s,e):void 0;return r?H(a,s.title,l):null!==(u=null!=a?a:s.title)&&void 0!==u?u:l;var u}function ua(t){return Ko(t)&&t.axis?t.axis:ta(t)&&t.legend?t.legend:To(t)&&t.header?t.header:void 0}function ca(t,e){return aa(t,e)}function fa(t){if(ea(t)){const{format:e,formatType:n}=t;return{format:e,formatType:n}}{var e;const n=null!==(e=ua(t))&&void 0!==e?e:{},{format:i,formatType:r}=n;return{format:i,formatType:r}}}function da(t){return Wo(t)?t:qo(t)?t.condition:void 0}function ha(t){return Xo(t)?t:Io(t)?t.condition:void 0}function pa(t,e,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return n.isString(t)||n.isNumber(t)||n.isBoolean(t)?(Mi(function(t,e,n){return"Channel ".concat(t," is a ").concat(e,". Converted to {value: ").concat(g(n),"}.")}(e,n.isString(t)?"string":n.isNumber(t)?"number":"boolean",t)),{value:t}):Xo(t)?ma(t,e,i,r):Io(t)?{...t,condition:ma(t.condition,e,i,r)}:t}function ma(t,e,i,r){if(ea(t)){const{format:n,formatType:o,...a}=t;if(mo(o)&&!i.customFormatTypes)return Mi(ti(e)),ma(a,e,i,r)}else{const n=Ko(t)?"axis":ta(t)?"legend":To(t)?"header":null;if(n&&t[n]){const{format:o,formatType:a,...s}=t[n];if(mo(a)&&!i.customFormatTypes)return Mi(ti(e)),ma({...t,[n]:s},e,i,r)}}return Wo(t)?ga(t,e,r):function(t){let e=t.type;if(e)return t;const{datum:i}=t;return e=n.isNumber(i)?"quantitative":n.isString(i)?"nominal":Ei(i)?"temporal":void 0,{...t,type:e}}(t)}function ga(t,e){let{compositeMark:i=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{aggregate:r,timeUnit:o,bin:a,field:s}=t,l={...t};if(i||!r||tn(r)||Ke(r)||Ze(r)||(Mi(function(t){return'Invalid aggregation operator "'.concat(t,'".')}(r)),delete l.aggregate),o&&(l.timeUnit=Ii(o)),s&&(l.field="".concat(s)),sn(a)&&(l.bin=ya(a,e)),ln(a)&&!Se(e)&&Mi(function(t){return"Channel ".concat(t,' should not be used with "binned" bin.')}(e)),Jo(l)){const{type:t}=l,e=function(t){if(t)switch(t=t.toLowerCase()){case"q":case rr:return"quantitative";case"t":case ar:return"temporal";case"o":case or:return"ordinal";case"n":case sr:return"nominal";case lr:return"geojson"}}(t);t!==e&&(l.type=e),"quantitative"!==t&&nn(r)&&(Mi(function(t,e){return'Invalid field type "'.concat(t,'" for aggregate: "').concat(e,'", using "quantitative" instead.')}(t,r)),l.type="quantitative")}else if(!te(e)){const t=function(t,e){var i;switch(e){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Bo(t)&&n.isArray(t.sort))return"ordinal";const{aggregate:r,bin:o,timeUnit:a}=t;if(a)return"temporal";if(o||r&&!Ke(r)&&!Ze(r))return"quantitative";if(Zo(t)&&null!==(i=t.scale)&&void 0!==i&&i.type)switch(cr[t.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(l,e);l.type=t}if(Jo(l)){const{compatible:t,warning:n}=function(t,e){const n=t.type;if("geojson"===n&&"shape"!==e)return{compatible:!1,warning:"Channel ".concat(e," should not be used with a geojson data.")};switch(e){case Z:case K:case tt:return ra(t)?va:{compatible:!1,warning:ci(e)};case et:case nt:case ot:case at:case mt:case gt:case yt:case St:case Et:case Ct:case Ft:case Nt:case Ot:case bt:case ut:case st:case zt:return va;case dt:case pt:case ft:case ht:return n!==rr?{compatible:!1,warning:"Channel ".concat(e," should be used with a quantitative field only, not ").concat(t.type," field.")}:va;case _t:case wt:case kt:case At:case xt:case ct:case lt:case it:case rt:return"nominal"!==n||t.sort?va:{compatible:!1,warning:"Channel ".concat(e," should not be used with an unsorted discrete field.")};case vt:case Dt:return ra(t)||Zo(i=t)&&kr(null===(r=i.scale)||void 0===r?void 0:r.type)?va:{compatible:!1,warning:fi(e)};case Mt:return"nominal"!==t.type||"sort"in t?va:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var i,r}(l,e)||{};!1===t&&Mi(n)}if(Bo(l)&&n.isString(l.sort)){const{sort:t}=l;if(Co(t))return{...l,sort:{encoding:t}};const e=t.substr(1);if("-"===t.charAt(0)&&Co(e))return{...l,sort:{encoding:e,order:"descending"}}}if(To(l)){const{header:t}=l;if(t){const{orient:e,...n}=t;if(e)return{...l,header:{...n,labelOrient:t.labelOrient||e,titleOrient:t.titleOrient||e}}}}return l}function ya(t,e){return n.isBoolean(t)?{maxbins:fn(e)}:"binned"===t?{binned:!0}:t.maxbins||t.step?t:{...t,maxbins:fn(e)}}const va={compatible:!0};function xa(t){const{formatType:e}=fa(t);return"time"===e||!e&&((n=t)&&("temporal"===n.type||Wo(n)&&!!n.timeUnit));var n}function ba(t,e){var i;let{timeUnit:r,type:o,wrapTime:a,undefinedIfExprNotRequired:s}=e;const l=r&&(null===(i=Ii(r))||void 0===i?void 0:i.unit);let u,c=l||"temporal"===o;return dn(t)?u=t.expr:gn(t)?u=t.signal:Ei(t)?(c=!0,u=Ti(t)):(n.isString(t)||n.isNumber(t))&&c&&(u="datetime(".concat(g(t),")"),function(t){return!!Pi[t]}(l)&&(n.isNumber(t)&&t<1e4||n.isString(t)&&isNaN(Date.parse(t)))&&(u=Ti({[l]:t}))),u?a&&c?"time(".concat(u,")"):u:s?void 0:g(t)}function _a(t,e){const{type:n}=t;return e.map((e=>{const i=ba(e,{timeUnit:Wo(t)?t.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return void 0!==i?{signal:i}:e}))}function wa(t,e){return sn(t.bin)?We(e)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const ka={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:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function Aa(t){return null==t?void 0:t.condition}const Da=["domain","grid","labels","ticks","title"],Sa={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"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",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",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"},Ma={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap: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,tickCap: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,translate:1,values:1,zindex:1},Ea={...Ma,style:1,labelExpr:1,encoding:1};function Ca(t){return!!Ea[t]}const Fa=F({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function Na(t){return"mark"in t}class CompositeMarkNormalizer{constructor(t,e){this.name=t,this.run=e}hasMatchingType(t){return!!Na(t)&&(Kr(e=t.mark)?e.type:e)===this.name;var e}}function Oa(t,e){const i=t&&t[e];return!!i&&(n.isArray(i)?b(i,(t=>!!t.field)):Wo(i)||qo(i))}function za(t,e){const i=t&&t[e];return!!i&&(n.isArray(i)?b(i,(t=>!!t.field)):Wo(i)||Vo(i)||Io(i))}function Ta(t,e){if(Se(e)){const n=t[e];if((Wo(n)||Vo(n))&&ir(n.type))return za(t,oe(e))}return!1}function Pa(t){return b(It,(e=>{if(Oa(t,e)){const i=t[e];if(n.isArray(i))return b(i,(t=>!!t.aggregate));{const t=da(i);return t&&!!t.aggregate}}return!1}))}function Ra(t,e){const n=[],i=[],r=[],o=[],a={};return La(t,((s,l)=>{if(Wo(s)){const{field:u,aggregate:c,bin:f,timeUnit:d,...h}=s;if(c||d||f){const t=ua(s),p=null==t?void 0:t.title;let m=ia(s,{forAs:!0});const g={...p?[]:{title:la(s,e,{allowDisabling:!0})},...h,field:m};if(c){let t;if(Ke(c)?(t="argmax",m=ia({op:"argmax",field:c.argmax},{forAs:!0}),g.field="".concat(m,".").concat(u)):Ze(c)?(t="argmin",m=ia({op:"argmin",field:c.argmin},{forAs:!0}),g.field="".concat(m,".").concat(u)):"boxplot"!==c&&"errorbar"!==c&&"errorband"!==c&&(t=c),t){const e={op:t,as:m};u&&(e.field=u),o.push(e)}}else if(n.push(m),Jo(s)&&sn(f)){if(i.push({bin:f,field:u,as:m}),n.push(ia(s,{binSuffix:"end"})),wa(s,l)&&n.push(ia(s,{binSuffix:"range"})),Se(l)){const t={field:"".concat(m,"_end")};a["".concat(l,"2")]=t}g.bin="binned",te(l)||(g.type=rr)}else if(d){r.push({timeUnit:d,field:u,as:m});const t=Jo(s)&&s.type!==ar&&"time";t&&(l===St||l===Ft?g.formatType=t:function(t){return!!we[t]}(l)?g.legend={formatType:t,...g.legend}:Se(l)&&(g.axis={formatType:t,...g.axis}))}a[l]=g}else n.push(u),a[l]=t[l]}else a[l]=t[l]})),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:a}}function Ba(t,e,n){const i=He(e,n);if(!i)return!1;if("binned"===i){const n=t[e===it?et:nt];return!!(Wo(n)&&Wo(t[e])&&ln(n.bin))}return!0}function ja(t,e){const n={};for(const i of F(t)){const r=pa(t[i],i,e,{compositeMark:!0});n[i]=r}return n}function $a(t){const e=[];for(const i of F(t))if(Oa(t,i)){const r=t[i],o=n.array(r);for(const t of o)Wo(t)?e.push(t):qo(t)&&e.push(t.condition)}return e}function La(t,e,i){if(t)for(const r of F(t)){const o=t[r];if(n.isArray(o))for(const t of o)e.call(i,t,r);else e.call(i,o,r)}}function Ua(t,e){return F(e).reduce(((i,r)=>{switch(r){case et:case nt:case Nt:case zt:case Ot:case it:case rt:case ot:case at:case ut:case ct:case st:case lt:case ft:case dt:case ht:case pt:case St:case vt:case bt:case Ft:return i;case Mt:if("line"===t||"trail"===t)return i;case Et:case Ct:{const t=e[r];if(n.isArray(t)||Wo(t))for(const e of n.array(t))e.aggregate||i.push(ia(e,{}));return i}case xt:if("trail"===t)return i;case mt:case gt:case yt:case _t:case wt:case kt:case Dt:case At:{const t=da(e[r]);return t&&!t.aggregate&&i.push(ia(t,{})),i}}}),[])}function qa(t,e,n){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return"tooltip"in n?{tooltip:n.tooltip}:{tooltip:[...t.map((t=>{let{fieldPrefix:n,titlePrefix:r}=t;const o=i?" of ".concat(Ia(e)):"";return{field:n+e.field,type:e.type,title:gn(r)?{signal:"".concat(r,'"').concat(escape(o),'"')}:r+o}})),...A($a(n).map(na),y)]}}function Ia(t){const{title:e,field:n}=t;return H(e,n)}function Wa(t,e,i,r,o){const{scale:a,axis:s}=i;return l=>{let{partName:u,mark:c,positionPrefix:f,endPositionPrefix:d,extraEncoding:h={}}=l;const p=Ia(i);return Ha(t,u,o,{mark:c,encoding:{[e]:{field:"".concat(f,"_").concat(i.field),type:i.type,...void 0!==p?{title:p}:{},...void 0!==a?{scale:a}:{},...void 0!==s?{axis:s}:{}},...n.isString(d)?{["".concat(e,"2")]:{field:"".concat(d,"_").concat(i.field)}}:{},...r,...h}})}}function Ha(t,e,i,r){const{clip:o,color:a,opacity:s}=t,l=t.type;return t[e]||void 0===t[e]&&i[e]?[{...r,mark:{...i[e],...o?{clip:o}:{},...a?{color:a}:{},...s?{opacity:s}:{},...Kr(r.mark)?r.mark:{type:r.mark},style:"".concat(l,"-").concat(String(e)),...n.isBoolean(t[e])?{}:t[e]}}]:[]}function Va(t,e,n){const{encoding:i}=t,r="vertical"===e?"y":"x",o=i[r],a=i["".concat(r,"2")],s=i["".concat(r,"Error")],l=i["".concat(r,"Error2")];return{continuousAxisChannelDef:Ga(o,n),continuousAxisChannelDef2:Ga(a,n),continuousAxisChannelDefError:Ga(s,n),continuousAxisChannelDefError2:Ga(l,n),continuousAxis:r}}function Ga(t,e){if(null!=t&&t.aggregate){const{aggregate:n,...i}=t;return n!==e&&Mi(function(t,e){return"Continuous axis should not have customized aggregation function ".concat(t,"; ").concat(e," already agregates the axis.")}(n,e)),i}return t}function Ya(t,e){const{mark:n,encoding:i}=t,{x:r,y:o}=i;if(Kr(n)&&n.orient)return n.orient;if(Go(r)){if(Go(o)){const t=Wo(r)&&r.aggregate,n=Wo(o)&&o.aggregate;if(t||n!==e){if(n||t!==e){if(t===e&&n===e)throw new Error("Both x and y cannot have aggregate");return xa(o)&&!xa(r)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(Go(o))return"vertical";throw new Error("Need a valid continuous axis for ".concat(e,"s"))}const Xa="boxplot",Ja=new CompositeMarkNormalizer(Xa,Za);function Qa(t){return n.isNumber(t)?"tukey":t}function Za(t,e){var i;let{config:r}=e;t={...t,encoding:ja(t.encoding,r)};const{mark:o,encoding:a,params:s,projection:l,...u}=t,c=Kr(o)?o:{type:o};s&&Mi(Jn("boxplot"));const f=null!==(i=c.extent)&&void 0!==i?i:r.boxplot.extent,d=Fn("size",c,r),h=Qa(f),{bins:p,timeUnits:g,transform:y,continuousAxisChannelDef:v,continuousAxis:x,groupby:b,aggregate:_,encodingWithoutContinuousAxis:w,ticksOrient:k,boxOrient:A,customTooltipWithoutAggregatedField:D}=function(t,e,i){const r=Ya(t,Xa),{continuousAxisChannelDef:o,continuousAxis:a}=Va(t,r,Xa),s=o.field,l=Qa(e),u=[...Ka(s),{op:"median",field:s,as:"mid_box_".concat(s)},{op:"min",field:s,as:("min-max"===l?"lower_whisker_":"min_")+s},{op:"max",field:s,as:("min-max"===l?"upper_whisker_":"max_")+s}],c="min-max"===l||"tukey"===l?[]:[{calculate:'datum["upper_box_'.concat(s,'"] - datum["lower_box_').concat(s,'"]'),as:"iqr_".concat(s)},{calculate:'min(datum["upper_box_'.concat(s,'"] + datum["iqr_').concat(s,'"] * ').concat(e,', datum["max_').concat(s,'"])'),as:"upper_whisker_".concat(s)},{calculate:'max(datum["lower_box_'.concat(s,'"] - datum["iqr_').concat(s,'"] * ').concat(e,', datum["min_').concat(s,'"])'),as:"lower_whisker_".concat(s)}],{[a]:f,...d}=t.encoding,{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=function(t){const{tooltip:e,...i}=t;if(!e)return{filteredEncoding:i};let r,o;if(n.isArray(e)){for(const t of e)t.aggregate?(r||(r=[]),r.push(t)):(o||(o=[]),o.push(t));r&&(i.tooltip=r)}else e.aggregate?i.tooltip=e:o=e;return n.isArray(o)&&1===o.length&&(o=o[0]),{customTooltipWithoutAggregatedField:o,filteredEncoding:i}}(d),{bins:m,timeUnits:g,aggregate:y,groupby:v,encoding:x}=Ra(p,i),b="vertical"===r?"horizontal":"vertical",_=r;return{bins:m,timeUnits:g,transform:[...m,...g,{aggregate:[...y,...u],groupby:v},...c],groupby:v,aggregate:y,continuousAxisChannelDef:o,continuousAxis:a,encodingWithoutContinuousAxis:x,ticksOrient:b,boxOrient:_,customTooltipWithoutAggregatedField:h}}(t,f,r),{color:S,size:M,...E}=w,F=t=>Wa(c,x,v,t,r.boxplot),N=F(E),O=F(w),z=F({...E,...M?{size:M}:{}}),T=qa([{fieldPrefix:"min-max"===h?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:"min-max"===h?"lower_whisker_":"min_",titlePrefix:"Min"}],v,w),P={type:"tick",color:"black",opacity:1,orient:k,invalid:null,aria:!1},R="min-max"===h?T:qa([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],v,w),B=[...N({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:R}),...N({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:R}),...N({partName:"ticks",mark:P,positionPrefix:"lower_whisker",extraEncoding:R}),...N({partName:"ticks",mark:P,positionPrefix:"upper_whisker",extraEncoding:R})],j=[..."tukey"!==h?B:[],...O({partName:"box",mark:{type:"bar",...d?{size:d}:{},orient:A,invalid:null,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:T}),...z({partName:"median",mark:{type:"tick",invalid:null,...n.isObject(r.boxplot.median)&&r.boxplot.median.color?{color:r.boxplot.median.color}:{},...d?{size:d}:{},orient:k,aria:!1},positionPrefix:"mid_box",extraEncoding:T})];var $;if("min-max"===h)return{...u,transform:(null!==($=u.transform)&&void 0!==$?$:[]).concat(y),layer:j};const L='datum["lower_box_'.concat(v.field,'"]'),U='datum["upper_box_'.concat(v.field,'"]'),q="(".concat(U," - ").concat(L,")"),I="".concat(L," - ").concat(f," * ").concat(q),W="".concat(U," + ").concat(f," * ").concat(q),H='datum["'.concat(v.field,'"]'),V={joinaggregate:Ka(v.field),groupby:b},G={transform:[{filter:"(".concat(I," <= ").concat(H,") && (").concat(H," <= ").concat(W,")")},{aggregate:[{op:"min",field:v.field,as:"lower_whisker_".concat(v.field)},{op:"max",field:v.field,as:"upper_whisker_".concat(v.field)},{op:"min",field:"lower_box_".concat(v.field),as:"lower_box_".concat(v.field)},{op:"max",field:"upper_box_".concat(v.field),as:"upper_box_".concat(v.field)},..._],groupby:b}],layer:B},{tooltip:Y,...X}=E,{scale:J,axis:Q}=v,Z=Ia(v),K=m(Q,["title"]),tt=Ha(c,"outliers",r.boxplot,{transform:[{filter:"(".concat(H," < ").concat(I,") || (").concat(H," > ").concat(W,")")}],mark:"point",encoding:{[x]:{field:v.field,type:v.type,...void 0!==Z?{title:Z}:{},...void 0!==J?{scale:J}:{},...C(K)?{}:{axis:K}},...X,...S?{color:S}:{},...D?{tooltip:D}:{}}})[0];let et;const nt=[...p,...g,V];return tt?et={transform:nt,layer:[tt,G]}:(et=G,et.transform.unshift(...nt)),{...u,layer:[et,{transform:y,layer:j}]}}function Ka(t){return[{op:"q1",field:t,as:"lower_box_".concat(t)},{op:"q3",field:t,as:"upper_box_".concat(t)}]}const ts="errorbar",es=new CompositeMarkNormalizer(ts,ns);function ns(t,e){let{config:n}=e;t={...t,encoding:ja(t.encoding,n)};const{transform:i,continuousAxisChannelDef:r,continuousAxis:o,encodingWithoutContinuousAxis:a,ticksOrient:s,markDef:l,outerSpec:u,tooltipEncoding:c}=rs(t,ts,n);delete a.size;const f=Wa(l,o,r,a,n.errorbar),d=l.thickness,h=l.size,p={type:"tick",orient:s,aria:!1,...void 0!==d?{thickness:d}:{},...void 0!==h?{size:h}:{}},m=[...f({partName:"ticks",mark:p,positionPrefix:"lower",extraEncoding:c}),...f({partName:"ticks",mark:p,positionPrefix:"upper",extraEncoding:c}),...f({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...void 0!==d?{size:d}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c})];return{...u,transform:i,...m.length>1?{layer:m}:{...m[0]}}}function is(t,e){const{encoding:n}=t;if(function(t){return(Xo(t.x)||Xo(t.y))&&!Xo(t.x2)&&!Xo(t.y2)&&!Xo(t.xError)&&!Xo(t.xError2)&&!Xo(t.yError)&&!Xo(t.yError2)}(n))return{orient:Ya(t,e),inputType:"raw"};const i=function(t){return Xo(t.x2)||Xo(t.y2)}(n),r=function(t){return Xo(t.xError)||Xo(t.xError2)||Xo(t.yError)||Xo(t.yError2)}(n),o=n.x,a=n.y;if(i){if(r)throw new Error("".concat(e," cannot be both type aggregated-upper-lower and aggregated-error"));const t=n.x2,i=n.y2;if(Xo(t)&&Xo(i))throw new Error("".concat(e," cannot have both x2 and y2"));if(Xo(t)){if(Go(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error("Both x and x2 have to be quantitative in ".concat(e))}if(Xo(i)){if(Go(a))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error("Both y and y2 have to be quantitative in ".concat(e))}throw new Error("No ranged axis")}{const t=n.xError,i=n.xError2,r=n.yError,s=n.yError2;if(Xo(i)&&!Xo(t))throw new Error("".concat(e," cannot have xError2 without xError"));if(Xo(s)&&!Xo(r))throw new Error("".concat(e," cannot have yError2 without yError"));if(Xo(t)&&Xo(r))throw new Error("".concat(e," cannot have both xError and yError with both are quantiative"));if(Xo(t)){if(Go(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(Xo(r)){if(Go(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 rs(t,e,n){var i;const{mark:r,encoding:o,params:a,projection:s,...l}=t,u=Kr(r)?r:{type:r};a&&Mi(Jn(e));const{orient:c,inputType:f}=is(t,e),{continuousAxisChannelDef:d,continuousAxisChannelDef2:h,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:m,continuousAxis:g}=Va(t,c,e),{errorBarSpecificAggregate:y,postAggregateCalculates:v,tooltipSummary:x,tooltipTitleWithFieldName:b}=function(t,e,n,i,r,o,a,s){let l=[],u=[];const c=e.field;let f,d=!1;if("raw"===o){const e=t.center?t.center:t.extent?"iqr"===t.extent?"median":"mean":s.errorbar.center,n=t.extent?t.extent:"mean"===e?"stderr":"iqr";if("median"===e!=("iqr"===n)&&Mi(function(t,e,n){return"".concat(t," is not usually used with ").concat(e," for ").concat(n,".")}(e,n,a)),"stderr"===n||"stdev"===n)l=[{op:n,field:c,as:"extent_".concat(c)},{op:e,field:c,as:"center_".concat(c)}],u=[{calculate:'datum["center_'.concat(c,'"] + datum["extent_').concat(c,'"]'),as:"upper_".concat(c)},{calculate:'datum["center_'.concat(c,'"] - datum["extent_').concat(c,'"]'),as:"lower_".concat(c)}],f=[{fieldPrefix:"center_",titlePrefix:B(e)},{fieldPrefix:"upper_",titlePrefix:os(e,n,"+")},{fieldPrefix:"lower_",titlePrefix:os(e,n,"-")}],d=!0;else{let t,e,i;"ci"===n?(t="mean",e="ci0",i="ci1"):(t="median",e="q1",i="q3"),l=[{op:e,field:c,as:"lower_".concat(c)},{op:i,field:c,as:"upper_".concat(c)},{op:t,field:c,as:"center_".concat(c)}],f=[{fieldPrefix:"upper_",titlePrefix:la({field:c,aggregate:i,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:la({field:c,aggregate:e,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:la({field:c,aggregate:t,type:"quantitative"},s,{allowDisabling:!1})}]}}else{(t.center||t.extent)&&Mi((h=t.center,p=t.extent,"".concat(p?"extent ":"").concat(p&&h?"and ":"").concat(h?"center ":"").concat(p&&h?"are ":"is ","not needed when data are aggregated."))),"aggregated-upper-lower"===o?(f=[],u=[{calculate:'datum["'.concat(n.field,'"]'),as:"upper_".concat(c)},{calculate:'datum["'.concat(c,'"]'),as:"lower_".concat(c)}]):"aggregated-error"===o&&(f=[{fieldPrefix:"",titlePrefix:c}],u=[{calculate:'datum["'.concat(c,'"] + datum["').concat(i.field,'"]'),as:"upper_".concat(c)}],r?u.push({calculate:'datum["'.concat(c,'"] + datum["').concat(r.field,'"]'),as:"lower_".concat(c)}):u.push({calculate:'datum["'.concat(c,'"] - datum["').concat(i.field,'"]'),as:"lower_".concat(c)}));for(const t of u)f.push({fieldPrefix:t.as.substring(0,6),titlePrefix:q(q(t.calculate,'datum["',""),'"]',"")})}var h,p;return{postAggregateCalculates:u,errorBarSpecificAggregate:l,tooltipSummary:f,tooltipTitleWithFieldName:d}}(u,d,h,p,m,f,e,n),{[g]:_,["x"===g?"x2":"y2"]:w,["x"===g?"xError":"yError"]:k,["x"===g?"xError2":"yError2"]:A,...D}=o,{bins:S,timeUnits:M,aggregate:E,groupby:C,encoding:F}=Ra(D,n),N=[...E,...y],O="raw"!==f?[]:C,z=qa(x,d,F,b);return{transform:[...null!==(i=l.transform)&&void 0!==i?i:[],...S,...M,...0===N.length?[]:[{aggregate:N,groupby:O}],...v],groupby:O,continuousAxisChannelDef:d,continuousAxis:g,encodingWithoutContinuousAxis:F,ticksOrient:"vertical"===c?"horizontal":"vertical",markDef:u,outerSpec:l,tooltipEncoding:z}}function os(t,e,n){return"".concat(B(t)," ").concat(n," ").concat(e)}const as="errorband",ss=new CompositeMarkNormalizer(as,ls);function ls(t,e){let{config:n}=e;t={...t,encoding:ja(t.encoding,n)};const{transform:i,continuousAxisChannelDef:r,continuousAxis:o,encodingWithoutContinuousAxis:a,markDef:s,outerSpec:l,tooltipEncoding:u}=rs(t,as,n),c=s,f=Wa(c,o,r,a,n.errorband),d=void 0!==t.encoding.x&&void 0!==t.encoding.y;let h={type:d?"area":"rect"},p={type:d?"line":"rule"};const m={...c.interpolate?{interpolate:c.interpolate}:{},...c.tension&&c.interpolate?{tension:c.tension}:{}};return d?(h={...h,...m,ariaRoleDescription:"errorband"},p={...p,...m,aria:!1}):c.interpolate?Mi(ki("interpolate")):c.tension&&Mi(ki("tension")),{...l,transform:i,layer:[...f({partName:"band",mark:h,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...f({partName:"borders",mark:p,positionPrefix:"lower",extraEncoding:u}),...f({partName:"borders",mark:p,positionPrefix:"upper",extraEncoding:u})]}}const us={};function cs(t,e,n){const i=new CompositeMarkNormalizer(t,e);us[t]={normalizer:i,parts:n}}cs(Xa,Za,["box","median","outliers","rule","ticks"]),cs(ts,ns,["ticks","rule"]),cs(as,ls,["band","borders"]);const fs=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],ds={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"},hs={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},ps=F(ds),ms=F(hs),gs=F({header:1,headerRow:1,headerColumn:1,headerFacet:1}),ys=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],vs="_vgsid_",xs={point:{on:"click",fields:[vs],toggle:"event.shiftKey",resolve:"global",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 bs(t){return"legend"===t||!(null==t||!t.legend)}function _s(t){return bs(t)&&n.isObject(t)}function ws(t){return!(null==t||!t.select)}function ks(t){const e=[];for(const n of t||[]){if(ws(n))continue;const{expr:t,bind:i,...r}=n;if(i&&t){const n={...r,bind:i,init:t};e.push(n)}else{const n={...r,...t?{update:t}:{},...i?{bind:i}:{}};e.push(n)}}return e}function As(t){return"concat"in t}function Ds(t){return"vconcat"in t}function Ss(t){return"hconcat"in t}function Ms(t){let{step:e,offsetIsDiscrete:n}=t;var i;return n?null!==(i=e.for)&&void 0!==i?i:"offset":"position"}function Es(t){return n.isObject(t)&&void 0!==t.step}function Cs(t){return t.view||t.width||t.height}const Fs=F({align:1,bounds:1,center:1,columns:1,spacing:1});function Ns(t,e){var n;return null!==(n=t[e])&&void 0!==n?n:t["width"===e?"continuousWidth":"continuousHeight"]}function Os(t,e){const n=zs(t,e);return Es(n)?n.step:Ts}function zs(t,e){var n;return H(null!==(n=t[e])&&void 0!==n?n:t["width"===e?"discreteWidth":"discreteHeight"],{step:t.step})}const Ts=20,Ps={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:Ts},mark:{color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},arc:{},area:{},bar:oo,circle:{},geoshape:{},image:{},line:{},point:{},rect:ao,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,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:xs,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},Rs=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Bs={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},js={blue:Rs[0],orange:Rs[1],red:Rs[2],teal:Rs[3],green:Rs[4],yellow:Rs[5],purple:Rs[6],pink:Rs[7],brown:Rs[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 $s(t){const e=F(t||{}),n={};for(const i of e){const e=t[i];n[i]=Aa(e)?wn(e):kn(e)}return n}const Ls=[...no,...Fa,...gs,"background","padding","legend","lineBreak","scale","style","title","view"];function Us(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{color:e,font:i,fontSize:r,selection:o,...a}=t,s=n.mergeConfig({},d(Ps),i?function(t){return{text:{font:t},style:{"guide-label":{font:t},"guide-title":{font:t},"group-title":{font:t},"group-subtitle":{font:t}}}}(i):{},e?function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{signals:[{name:"color",value:n.isObject(t)?{...js,...t}:js}],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"}]}}}(e):{},r?function(t){return{signals:[{name:"fontSize",value:n.isObject(t)?{...Bs,...t}:Bs}],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"}}}}}(r):{},a||{});o&&n.writeConfig(s,"selection",o,!0);const l=m(s,Ls);for(const t of["background","lineBreak","padding"])s[t]&&(l[t]=kn(s[t]));for(const t of no)s[t]&&(l[t]=hn(s[t]));for(const t of Fa)s[t]&&(l[t]=$s(s[t]));for(const t of gs)s[t]&&(l[t]=hn(s[t]));return s.legend&&(l.legend=hn(s.legend)),s.scale&&(l.scale=hn(s.scale)),s.style&&(l.style=function(t){const e=F(t),n={};for(const i of e)n[i]=$s(t[i]);return n}(s.style)),s.title&&(l.title=hn(s.title)),s.view&&(l.view=hn(s.view)),l}const qs=new Set(["view",...Zr]),Is=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],Ws={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]};function Hs(t){t=d(t);for(const e of Is)delete t[e];if(t.axis)for(const e in t.axis)Aa(t.axis[e])&&delete t.axis[e];if(t.legend)for(const e of fs)delete t.legend[e];if(t.mark){for(const e of eo)delete t.mark[e];t.mark.tooltip&&n.isObject(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(ks(t.params)),delete t.params);for(const e of qs){for(const n of eo)delete t[e][n];const n=Ws[e];if(n)for(const i of n)delete t[e][i];Vs(t,e)}for(const e of F(us))delete t[e];!function(t){const{titleMarkConfig:e,subtitleMarkConfig:n,subtitle:i}=pn(t.title);C(e)||(t.style["group-title"]={...t.style["group-title"],...e}),C(n)||(t.style["group-subtitle"]={...t.style["group-subtitle"],...n}),C(i)?delete t.title:t.title=i}(t);for(const e in t)n.isObject(t[e])&&C(t[e])&&delete t[e];return C(t)?void 0:t}function Vs(t,e,n,i){var r;"view"===e&&(n="cell");const o={...i?t[e][i]:t[e],...t.style[null!==(r=n)&&void 0!==r?r:e]};var a;C(o)||(t.style[null!==(a=n)&&void 0!==a?a:e]=o),i||delete t[e]}function Gs(t){return"layer"in t}class SpecMapper{map(t,e){return Po(t)?this.mapFacet(t,e):function(t){return"repeat"in t}(t)?this.mapRepeat(t,e):Ss(t)?this.mapHConcat(t,e):Ds(t)?this.mapVConcat(t,e):As(t)?this.mapConcat(t,e):this.mapLayerOrUnit(t,e)}mapLayerOrUnit(t,e){if(Gs(t))return this.mapLayer(t,e);if(Na(t))return this.mapUnit(t,e);throw new Error(qn(t))}mapLayer(t,e){return{...t,layer:t.layer.map((t=>this.mapLayerOrUnit(t,e)))}}mapHConcat(t,e){return{...t,hconcat:t.hconcat.map((t=>this.map(t,e)))}}mapVConcat(t,e){return{...t,vconcat:t.vconcat.map((t=>this.map(t,e)))}}mapConcat(t,e){const{concat:n,...i}=t;return{...i,concat:n.map((t=>this.map(t,e)))}}mapFacet(t,e){return{...t,spec:this.map(t.spec,e)}}mapRepeat(t,e){return{...t,spec:this.map(t.spec,e)}}}const Ys={zero:1,center:1,normalize:1};const Xs=new Set([Rr,jr,Br,Ir,Ur,Gr,Yr,Lr,Wr,Hr]),Js=new Set([jr,Br,Rr]);function Qs(t){return Wo(t)&&"quantitative"===Ho(t)&&!t.bin}function Zs(t,e){const n="x"===e?"y":"radius",i=t[e],r=t[n];if(Wo(i)&&Wo(r))if(Qs(i)&&Qs(r)){if(i.stack)return e;if(r.stack)return n;const t=Wo(i)&&!!i.aggregate;if(t!==(Wo(r)&&!!r.aggregate))return t?e:n;{var o,a;const t=null===(o=i.scale)||void 0===o?void 0:o.type,s=null===(a=r.scale)||void 0===a?void 0:a.type;if(t&&"linear"!==t)return n;if(s&&"linear"!==s)return e}}else{if(Qs(i))return e;if(Qs(r))return n}else{if(Qs(i))return e;if(Qs(r))return n}}function Ks(t,e){var i,r;const o=Kr(t)?t.type:t;if(!Xs.has(o))return null;const a=Zs(e,"x")||Zs(e,"theta");if(!a)return null;const s=e[a],l=Wo(s)?ia(s,{}):void 0,u=function(t){switch(t){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(a),c=[],f=new Set;if(e[u]){const t=e[u],n=Wo(t)?ia(t,{}):void 0;n&&n!==l&&(c.push(u),f.add(n));const i="x"===u?"xOffset":"yOffset",r=e[i],o=Wo(r)?ia(r,{}):void 0;o&&o!==l&&(c.push(i),f.add(o))}const d=ke.reduce(((t,i)=>{if("tooltip"!==i&&Oa(e,i)){const r=e[i];for(const e of n.array(r)){const n=da(e);if(n.aggregate)continue;const r=ia(n,{});r&&f.has(r)||t.push({channel:i,fieldDef:n})}}return t}),[]);let h;return void 0!==s.stack?h=n.isBoolean(s.stack)?s.stack?"zero":null:s.stack:Js.has(o)&&(h="zero"),h&&h in Ys?Pa(e)&&0===d.length?null:null!=s&&null!==(i=s.scale)&&void 0!==i&&i.type&&(null==s||null===(r=s.scale)||void 0===r?void 0:r.type)!==ur.LINEAR?(Mi(function(t){return"Cannot stack non-linear scale (".concat(t,").")}(s.scale.type)),null):Xo(e[ie(a)])?(void 0!==s.stack&&Mi('Cannot stack "'.concat(m=a,'" if there is already "').concat(m,'2".')),null):(Wo(s)&&s.aggregate&&!rn.has(s.aggregate)&&Mi((p=s.aggregate,'Stacking is applied even though the aggregate function is non-summative ("'.concat(p,'").'))),{groupbyChannels:c,groupbyFields:f,fieldChannel:a,impute:null!==s.impute&&Jr(o),stackBy:d,offset:h}):null;var p,m}function tl(t){const{point:e,line:n,...i}=t;return F(i).length>1?i:i.type}function el(t){for(const e of["line","area","rule","trail"])t[e]&&(t={...t,[e]:m(t[e],["point","line"])});return t}function nl(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0;return"transparent"===t.point?{opacity:0}:t.point?n.isObject(t.point)?t.point:{}:void 0!==t.point?null:e.point||i.shape?n.isObject(e.point)?e.point:{}:void 0}function il(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.line?!0===t.line?{}:t.line:void 0!==t.line?null:e.line?!0===e.line?{}:e.line:void 0}class PathOverlayNormalizer{constructor(){jn(this,"name","path-overlay")}hasMatchingType(t,e){if(Na(t)){const{mark:n,encoding:i}=t,r=Kr(n)?n:{type:n};switch(r.type){case"line":case"rule":case"trail":return!!nl(r,e[r.type],i);case"area":return!!nl(r,e[r.type],i)||!!il(r,e[r.type])}}return!1}run(t,e,n){const{config:i}=e,{params:r,projection:o,mark:a,encoding:s,...l}=t,u=ja(s,i),c=Kr(a)?a:{type:a},f=nl(c,i[c.type],u),d="area"===c.type&&il(c,i[c.type]),h=[{...r?{params:r}:{},mark:tl({..."area"===c.type&&void 0===c.opacity&&void 0===c.fillOpacity?{opacity:.7}:{},...c}),encoding:m(u,["shape"])}],g=Ks(c,u);let y=u;if(g){const{fieldChannel:t,offset:e}=g;y={...u,[t]:{...u[t],...e?{stack:e}:{}}}}return d&&h.push({...o?{projection:o}:{},mark:{type:"line",...p(c,["clip","interpolate","tension","tooltip"]),...d},encoding:y}),f&&h.push({...o?{projection:o}:{},mark:{type:"point",opacity:1,filled:!0,...p(c,["clip","tooltip"]),...f},encoding:y}),n({...l,layer:h},{...e,config:el(i)})}}function rl(t,e){return e?zo(t)?cl(t,e):sl(t,e):t}function ol(t,e){return e?cl(t,e):t}function al(t,e,i){const r=e[t];return(o=r)&&!n.isString(o)&&"repeat"in o?r.repeat in i?{...e,[t]:i[r.repeat]}:void Mi(function(t){return'Unknown repeated value "'.concat(t,'".')}(r.repeat)):e;var o}function sl(t,e){if(void 0!==(t=al("field",t,e))){if(null===t)return null;if(Bo(t)&&No(t.sort)){const n=al("field",t.sort,e);t={...t,...n?{sort:n}:{}}}return t}}function ll(t,e){if(Wo(t))return sl(t,e);{const n=al("datum",t,e);return n===t||n.type||(n.type="nominal"),n}}function ul(t,e){if(!Xo(t)){if(Io(t)){const n=ll(t.condition,e);if(n)return{...t,condition:n};{const{condition:e,...n}=t;return n}}return t}{const n=ll(t,e);if(n)return n;if(Uo(t))return{condition:t.condition}}}function cl(t,e){const i={};for(const r in t)if(n.hasOwnProperty(t,r)){const o=t[r];if(n.isArray(o))i[r]=o.map((t=>ul(t,e))).filter((t=>t));else{const t=ul(o,e);void 0!==t&&(i[r]=t)}}return i}class RuleForRangedLineNormalizer{constructor(){jn(this,"name","RuleForRangedLine")}hasMatchingType(t){if(Na(t)){const{encoding:e,mark:n}=t;if("line"===n||Kr(n)&&"line"===n.type)for(const t of Kt){const n=e[ee(t)];if(e[t]&&(Wo(n)&&!ln(n.bin)||Vo(n)))return!0}}return!1}run(t,e,i){const{encoding:r,mark:o}=t;return Mi((a=!!r.x2,s=!!r.y2,"Line mark is for continuous lines and thus cannot be used with ".concat(a&&s?"x2 and y2":a?"x2":"y2",". We will use the rule mark (line segments) instead."))),i({...t,mark:n.isObject(o)?{...o,type:"rule"}:"rule"},e);var a,s}}function fl(t){let{parentEncoding:e,encoding:i={},layer:r}=t,o={};if(e){const t=new Set([...F(e),...F(i)]);for(const a of t){const t=i[a],s=e[a];if(Xo(t)){const e={...s,...t};o[a]=e}else Io(t)?o[a]={...t,condition:{...s,...t.condition}}:t||null===t?o[a]=t:(r||Qo(s)||gn(s)||Xo(s)||n.isArray(s))&&(o[a]=s)}}else o=i;return!o||C(o)?void 0:o}function dl(t){const{parentProjection:e,projection:n}=t;return e&&n&&Mi(function(t){const{parentProjection:e,projection:n}=t;return"Layer's shared projection ".concat(g(e)," is overridden by a child projection ").concat(g(n),".")}({parentProjection:e,projection:n})),null!=n?n:e}function hl(t){return"filter"in t}function pl(t){return"lookup"in t}function ml(t){return"pivot"in t}function gl(t){return"density"in t}function yl(t){return"quantile"in t}function vl(t){return"regression"in t}function xl(t){return"loess"in t}function bl(t){return"sample"in t}function _l(t){return"window"in t}function wl(t){return"joinaggregate"in t}function kl(t){return"flatten"in t}function Al(t){return"calculate"in t}function Dl(t){return"bin"in t}function Sl(t){return"impute"in t}function Ml(t){return"timeUnit"in t}function El(t){return"aggregate"in t}function Cl(t){return"stack"in t}function Fl(t){return"fold"in t}function Nl(t,e){const{transform:n,...i}=t;return n?{...i,transform:n.map((t=>{if(hl(t))return{filter:Tl(t,e)};if(Dl(t)&&un(t.bin))return{...t,bin:zl(t.bin)};if(pl(t)){const{selection:e,...n}=t.from;return e?{...t,from:{param:e,...n}}:t}return t}))}:t}function Ol(t,e){var i,r;const o=d(t);if(Wo(o)&&un(o.bin)&&(o.bin=zl(o.bin)),Zo(o)&&null!==(i=o.scale)&&void 0!==i&&null!==(r=i.domain)&&void 0!==r&&r.selection){const{selection:t,...e}=o.scale.domain;o.scale.domain={...e,...t?{param:t}:{}}}if(Uo(o))if(n.isArray(o.condition))o.condition=o.condition.map((t=>{const{selection:n,param:i,test:r,...o}=t;return i?t:{...o,test:Tl(t,e)}}));else{const{selection:t,param:n,test:i,...r}=Ol(o.condition,e);o.condition=n?o.condition:{...r,test:Tl(o.condition,e)}}return o}function zl(t){const e=t.extent;if(null!=e&&e.selection){const{selection:n,...i}=e;return{...t,extent:{...i,param:n}}}return t}function Tl(t,e){const n=t=>c(t,(t=>{var n,i,r;const o={param:t,empty:null===(n=e.emptySelections[t])||void 0===n||n};return null!==(r=(i=e.selectionPredicates)[t])&&void 0!==r||(i[t]=[]),e.selectionPredicates[t].push(o),o}));return t.selection?n(t.selection):c(t.test||t.filter,(t=>t.selection?n(t.selection):t))}class TopLevelSelectionsNormalizer extends SpecMapper{map(t,e){var n;const i=null!==(n=e.selections)&&void 0!==n?n:[];if(t.params&&!Na(t)){const e=[];for(const n of t.params)ws(n)?i.push(n):e.push(n);t.params=e}return e.selections=i,super.map(t,Pl(t,e))}mapUnit(t,e){var i;const r=e.selections;if(!r||!r.length)return t;const o=(null!==(i=e.path)&&void 0!==i?i:[]).concat(t.name),a=[];for(const e of r)if(e.views&&e.views.length)for(const i of e.views)(n.isString(i)&&(i===t.name||o.indexOf(i)>=0)||n.isArray(i)&&i.map((t=>o.indexOf(t))).every(((t,e,n)=>-1!==t&&(0===e||t>n[e-1]))))&&a.push(e);else a.push(e);return a.length&&(t.params=a),t}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=TopLevelSelectionsNormalizer.prototype[t];TopLevelSelectionsNormalizer.prototype[t]=function(t,n){return e.call(this,t,Pl(t,n))}}function Pl(t,e){var n;return t.name?{...e,path:(null!==(n=e.path)&&void 0!==n?n:[]).concat(t.name)}:e}function Rl(t,e){void 0===e&&(e=Us(t.config));const n=function(t){const e={config:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}};return $l.map(Bl.map(jl.map(t,e),e),e)}(t,e),{width:i,height:r}=t,o=function(t,e,n){let{width:i,height:r}=e;const o=Na(t)||Gs(t),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&&(Mi(Wn("width")),i=void 0),"container"==r&&(Mi(Wn("height")),r=void 0));const s={type:"pad",...a,...n?Ll(n.autosize):{},...Ll(t.autosize)};if("fit"!==s.type||o||(Mi(In),s.type="pad"),"container"==i&&"fit"!=s.type&&"fit-x"!=s.type&&Mi(Hn("width")),"container"==r&&"fit"!=s.type&&"fit-y"!=s.type&&Mi(Hn("height")),!f(s,{type:"pad"}))return s}(n,{width:i,height:r,autosize:t.autosize},e);return{...n,...o?{autosize:o}:{}}}const Bl=new class CoreNormalizer extends SpecMapper{constructor(){super(...arguments),jn(this,"nonFacetUnitNormalizers",[Ja,es,ss,new PathOverlayNormalizer,new RuleForRangedLineNormalizer])}map(t,e){if(Na(t)){const n=Oa(t.encoding,Z),i=Oa(t.encoding,K),r=Oa(t.encoding,tt);if(n||i||r)return this.mapFacetedUnit(t,e)}return super.map(t,e)}mapUnit(t,e){const{parentEncoding:n,parentProjection:i}=e,r=ol(t.encoding,e.repeater),o={...t,...r?{encoding:r}:{}};if(n||i)return this.mapUnitWithParentEncodingOrProjection(o,e);const a=this.mapLayerOrUnit.bind(this);for(const t of this.nonFacetUnitNormalizers)if(t.hasMatchingType(o,e.config))return t.run(o,e,a);return o}mapRepeat(t,e){return function(t){return!n.isArray(t.repeat)&&t.repeat.layer}(t)?this.mapLayerRepeat(t,e):this.mapNonLayerRepeat(t,e)}mapLayerRepeat(t,e){const{repeat:n,spec:i,...r}=t,{row:o,column:a,layer:s}=n,{repeater:l={},repeaterPrefix:u=""}=e;return o||a?this.mapRepeat({...t,repeat:{...o?{row:o}:{},...a?{column:a}:{}},spec:{repeat:{layer:s},spec:i}},e):{...r,layer:s.map((t=>{const n={...l,layer:t},r="".concat((i.name||"")+u,"child__layer_").concat(T(t)),o=this.mapLayerOrUnit(i,{...e,repeater:n,repeaterPrefix:r});return o.name=r,o}))}}mapNonLayerRepeat(t,e){var i;const{repeat:r,spec:o,data:a,...s}=t;!n.isArray(r)&&t.columns&&(t=m(t,["columns"]),Mi(Zn("repeat")));const l=[],{repeater:u={},repeaterPrefix:c=""}=e,f=!n.isArray(r)&&r.row||[u?u.row:null],d=!n.isArray(r)&&r.column||[u?u.column:null],h=n.isArray(r)&&r||[u?u.repeat:null];for(const t of h)for(const i of f)for(const a of d){const s={repeat:t,row:i,column:a,layer:u.layer},f=(o.name||"")+c+"child__"+(n.isArray(r)?"".concat(T(t)):(r.row?"row_".concat(T(i)):"")+(r.column?"column_".concat(T(a)):"")),d=this.map(o,{...e,repeater:s,repeaterPrefix:f});d.name=f,l.push(m(d,["data"]))}const p=n.isArray(r)?t.columns:r.column?r.column.length:1;return{data:null!==(i=o.data)&&void 0!==i?i:a,align:"all",...s,columns:p,concat:l}}mapFacet(t,e){const{facet:n}=t;return zo(n)&&t.columns&&(t=m(t,["columns"]),Mi(Zn("facet"))),super.mapFacet(t,e)}mapUnitWithParentEncodingOrProjection(t,e){const{encoding:n,projection:i}=t,{parentEncoding:r,parentProjection:o,config:a}=e,s=dl({parentProjection:o,projection:i}),l=fl({parentEncoding:r,encoding:ol(n,e.repeater)});return this.mapUnit({...t,...s?{projection:s}:{},...l?{encoding:l}:{}},{config:a})}mapFacetedUnit(t,e){const{row:n,column:i,facet:r,...o}=t.encoding,{mark:a,width:s,projection:l,height:u,view:c,params:f,encoding:d,...h}=t,{facetMapping:p,layout:m}=this.getFacetMappingAndLayout({row:n,column:i,facet:r},e),g=ol(o,e.repeater);return this.mapFacet({...h,...m,facet:p,spec:{...s?{width:s}:{},...u?{height:u}:{},...c?{view:c}:{},...l?{projection:l}:{},mark:a,encoding:g,...f?{params:f}:{}}},e)}getFacetMappingAndLayout(t,e){const{row:n,column:i,facet:r}=t;if(n||i){r&&Mi((a=[...n?[Z]:[],...i?[K]:[]],"Facet encoding dropped as ".concat(a.join(" and ")," ").concat(a.length>1?"are":"is"," also specified.")));const e={},s={};for(const n of[Z,K]){const i=t[n];if(i){const{align:t,center:r,spacing:a,columns:l,...u}=i;e[n]=u;for(const t of["align","center","spacing"]){var o;void 0!==i[t]&&(null!==(o=s[t])&&void 0!==o||(s[t]={}),s[t][n]=i[t])}}}return{facetMapping:e,layout:s}}var a;{const{align:t,center:n,spacing:i,columns:o,...a}=r;return{facetMapping:rl(a,e.repeater),layout:{...t?{align:t}:{},...n?{center:n}:{},...i?{spacing:i}:{},...o?{columns:o}:{}}}}}mapLayer(t,e){let{parentEncoding:n,parentProjection:i,...r}=e;const{encoding:o,projection:a,...s}=t,l={...r,parentEncoding:fl({parentEncoding:n,encoding:o,layer:!0}),parentProjection:dl({parentProjection:i,projection:a})};return super.mapLayer(s,l)}},jl=new class SelectionCompatibilityNormalizer extends SpecMapper{map(t,e){var n,i;return null!==(n=e.emptySelections)&&void 0!==n||(e.emptySelections={}),null!==(i=e.selectionPredicates)&&void 0!==i||(e.selectionPredicates={}),t=Nl(t,e),super.map(t,e)}mapLayerOrUnit(t,e){if((t=Nl(t,e)).encoding){const n={};for(const[i,r]of O(t.encoding))n[i]=Ol(r,e);t={...t,encoding:n}}return super.mapLayerOrUnit(t,e)}mapUnit(t,e){const{selection:n,...i}=t;return n?{...i,params:O(n).map((t=>{let[n,i]=t;const{init:r,bind:o,empty:a,...s}=i;"single"===s.type?(s.type="point",s.toggle=!1):"multi"===s.type&&(s.type="point"),e.emptySelections[n]="none"!==a;for(const t of N(null!==(l=e.selectionPredicates[n])&&void 0!==l?l:{})){var l;t.empty="none"!==a}return{name:n,value:r,select:s,bind:o}}))}:t}},$l=new TopLevelSelectionsNormalizer;function Ll(t){return n.isString(t)?{type:t}:null!=t?t:{}}const Ul=["background","padding"];function ql(t,e){const n={};for(const e of Ul)t&&void 0!==t[e]&&(n[e]=kn(t[e]));return e&&(n.params=t.params),n}class Split{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.explicit=t,this.implicit=e}clone(){return new Split(d(this.explicit),d(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(t){return H(this.explicit[t],this.implicit[t])}getWithExplicit(t){return void 0!==this.explicit[t]?{explicit:!0,value:this.explicit[t]}:void 0!==this.implicit[t]?{explicit:!1,value:this.implicit[t]}:{explicit:!1,value:void 0}}setWithExplicit(t,e){let{value:n,explicit:i}=e;void 0!==n&&this.set(t,n,i)}set(t,e,n){return delete this[n?"implicit":"explicit"][t],this[n?"explicit":"implicit"][t]=e,this}copyKeyFromSplit(t,e){let{explicit:n,implicit:i}=e;void 0!==n[t]?this.set(t,n[t],!0):void 0!==i[t]&&this.set(t,i[t],!1)}copyKeyFromObject(t,e){void 0!==e[t]&&this.set(t,e[t],!0)}copyAll(t){for(const e of F(t.combine())){const n=t.getWithExplicit(e);this.setWithExplicit(e,n)}}}function Il(t){return{explicit:!0,value:t}}function Wl(t){return{explicit:!1,value:t}}function Hl(t){return(e,n,i,r)=>{const o=t(e.value,n.value);return o>0?e:o<0?n:Vl(e,n,i,r)}}function Vl(t,e,n,i){return t.explicit&&e.explicit&&Mi(function(t,e,n,i){return"Conflicting ".concat(e.toString(),' property "').concat(t.toString(),'" (').concat(g(n)," and ").concat(g(i),"). Using ").concat(g(n),".")}(n,i,t.value,e.value)),t}function Gl(t,e,n,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Vl;return void 0===t||void 0===t.value?e:t.explicit&&!e.explicit?t:e.explicit&&!t.explicit?e:f(t.value,e.value)?t:r(t,e,n,i)}class AncestorParse extends Split{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];super(t,e),this.explicit=t,this.implicit=e,this.parseNothing=n}clone(){const t=super.clone();return t.parseNothing=this.parseNothing,t}}function Yl(t){return"url"in t}function Xl(t){return"values"in t}function Jl(t){return"name"in t&&!Yl(t)&&!Xl(t)&&!Ql(t)}function Ql(t){return t&&(Zl(t)||Kl(t)||tu(t))}function Zl(t){return"sequence"in t}function Kl(t){return"sphere"in t}function tu(t){return"graticule"in t}let eu;function nu(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n.identity;if(n.isArray(t)){const n=t.map((t=>nu(t,e,i)));return e?"[".concat(n.join(", "),"]"):n}return Ei(t)?i(e?Ti(t):function(t){const e=zi(t,!0);return t.utc?+new Date(Date.UTC(...e)):+new Date(...e)}(t)):e?i(g(t)):t}function iu(t,e){for(const r of N(null!==(i=t.component.selection)&&void 0!==i?i:{})){var i;const o=r.name;let a="".concat(o).concat(cc,", ").concat("global"===r.resolve?"true":"{unit: ".concat(pc(t),"}"));for(const n of hc)n.defined(r)&&(n.signals&&(e=n.signals(t,r,e)),n.modifyExpr&&(a=n.modifyExpr(t,r,a)));e.push({name:o+fc,on:[{events:{signal:r.name+cc},update:"modify(".concat(n.stringValue(r.name+uc),", ").concat(a,")")}]})}return au(e)}function ru(t,e){if(t.component.selection&&F(t.component.selection).length){const i=n.stringValue(t.getName("cell"));e.unshift({name:"facet",value:{},on:[{events:n.parseSelector("mousemove","scope"),update:"isTuple(facet) ? facet : group(".concat(i,").datum")}]})}return au(e)}function ou(t,e){for(const i of N(null!==(n=t.component.selection)&&void 0!==n?n:{})){var n;for(const n of hc)n.defined(i)&&n.marks&&(e=n.marks(t,i,e))}return e}function au(t){return t.map((t=>(t.on&&!t.on.length&&delete t.on,t)))}!function(t){t[t.Raw=0]="Raw",t[t.Main=1]="Main",t[t.Row=2]="Row",t[t.Column=3]="Column",t[t.Lookup=4]="Lookup"}(eu||(eu={}));class DataFlowNode{constructor(t,e){this.debugName=e,jn(this,"_children",[]),jn(this,"_parent",null),jn(this,"_hash",void 0),t&&(this.parent=t)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(t){this._parent=t,t&&t.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(t,e){this._children.includes(t)?Mi("Attempt to add the same child twice."):void 0!==e?this._children.splice(e,0,t):this._children.push(t)}removeChild(t){const e=this._children.indexOf(t);return this._children.splice(e,1),e}remove(){let t=this._parent.removeChild(this);for(const e of this._children)e._parent=this._parent,this._parent.addChild(e,t++)}insertAsParentOf(t){const e=t.parent;e.removeChild(this),this.parent=e,t.parent=this}swapWithParent(){const t=this._parent,e=t.parent;for(const e of this._children)e.parent=t;this._children=[],t.removeChild(this);const n=t.parent.removeChild(t);this._parent=e,e.addChild(this,n),t.parent=this}}class OutputNode extends DataFlowNode{clone(){const t=new this.constructor;return t.debugName="clone_".concat(this.debugName),t._source=this._source,t._name="clone_".concat(this._name),t.type=this.type,t.refCounts=this.refCounts,t.refCounts[t._name]=0,t}constructor(t,e,n,i){super(t,e),this.type=n,this.refCounts=i,jn(this,"_source",void 0),jn(this,"_name",void 0),this._source=this._name=e,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return void 0===this._hash&&(this._hash="Output ".concat(G())),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(t){this._source=t}}class TimeUnitNode extends DataFlowNode{clone(){return new TimeUnitNode(null,d(this.formula))}constructor(t,e){super(t),this.formula=e}static makeFromEncoding(t,e){const n=e.reduceFieldDef(((t,e)=>{const{field:n,timeUnit:i}=e;if(i){const r=ia(e,{forAs:!0});t[y({as:r,field:n,timeUnit:i})]={as:r,field:n,timeUnit:i}}return t}),{});return C(n)?null:new TimeUnitNode(t,n)}static makeFromTransform(t,e){const{timeUnit:n,...i}={...e},r={...i,timeUnit:Ii(n)};return new TimeUnitNode(t,{[y(r)]:r})}merge(t){this.formula={...this.formula};for(const e in t.formula)this.formula[e]||(this.formula[e]=t.formula[e]);for(const e of t.children)t.removeChild(e),e.parent=this;t.remove()}removeFormulas(t){const e={};for(const[n,i]of O(this.formula))t.has(i.as)||(e[n]=i);this.formula=e}producedFields(){return new Set(N(this.formula).map((t=>t.as)))}dependentFields(){return new Set(N(this.formula).map((t=>t.field)))}hash(){return"TimeUnit ".concat(y(this.formula))}assemble(){const t=[];for(const e of N(this.formula)){const{field:n,as:i,timeUnit:r}=e,{unit:o,utc:a,...s}=Ii(r);t.push({field:U(n),type:"timeunit",...o?{units:$i(o)}:{},...a?{timezone:"utc"}:{},...s,as:[i,"".concat(i,"_end")]})}return t}}const su="_tuple_fields";class SelectionProjectionComponent{constructor(){jn(this,"hasChannel",void 0),jn(this,"hasField",void 0),jn(this,"hasSelectionId",void 0),jn(this,"timeUnit",void 0),jn(this,"items",void 0);for(var t=arguments.length,e=new Array(t),n=0;n!0,parse:(t,e,i)=>{var r;const o=e.name,a=null!==(r=e.project)&&void 0!==r?r:e.project=new SelectionProjectionComponent,s={},l={},u=new Set,c=(t,e)=>{const n="visual"===e?t.channel:t.field;let i=T("".concat(o,"_").concat(n));for(let t=1;u.has(i);t++)i=T("".concat(o,"_").concat(n,"_").concat(t));return u.add(i),{[e]:i}},f=e.type,d=t.config.selection[f],h=void 0!==i.value?n.array(i.value):null;let{fields:p,encodings:m}=n.isObject(i.select)?i.select:{};if(!p&&!m&&h)for(const t of h)if(n.isObject(t))for(const e of F(t))Qt[e]?(m||(m=[])).push(e):"interval"===f?(Mi('Interval selections should be initialized using "x" and/or "y" keys.'),m=d.encodings):(p||(p=[])).push(e);p||m||(m=d.encodings,"fields"in d&&(p=d.fields));for(const e of null!==(g=m)&&void 0!==g?g:[]){var g;const n=t.fieldDef(e);if(n){let i=n.field;if(n.aggregate){Mi(Xn(e,n.aggregate));continue}if(!i){Mi(Yn(e));continue}if(n.timeUnit){i=t.vgField(e);const r={timeUnit:n.timeUnit,as:i,field:n.field};l[y(r)]=r}if(!s[i]){let r="E";"interval"===f?_r(t.getScaleComponent(e).get("type"))&&(r="R"):n.bin&&(r="R-RE");const o={field:i,channel:e,type:r};o.signals={...c(o,"data"),...c(o,"visual")},a.items.push(s[i]=o),a.hasField[i]=a.hasChannel[e]=s[i],a.hasSelectionId=a.hasSelectionId||i===vs}}else Mi(Yn(e))}for(const t of null!==(v=p)&&void 0!==v?v:[]){var v;if(a.hasField[t])continue;const e={type:"E",field:t};e.signals={...c(e,"data")},a.items.push(e),a.hasField[t]=e,a.hasSelectionId=a.hasSelectionId||t===vs}h&&(e.init=h.map((t=>a.items.map((e=>n.isObject(t)?void 0!==t[e.channel]?t[e.channel]:t[e.field]:t))))),C(l)||(a.timeUnit=new TimeUnitNode(null,l))},signals:(t,e,n)=>{const i=e.name+su;return n.filter((t=>t.name===i)).length>0||e.project.hasSelectionId?n:n.concat({name:i,value:e.project.items.map((t=>{const{signals:e,hasLegend:n,...i}=t;return i.field=U(i.field),i}))})}},uu={defined:t=>"interval"===t.type&&"global"===t.resolve&&t.bind&&"scales"===t.bind,parse:(t,e)=>{const n=e.scales=[];for(const i of e.project.items){const r=i.channel;if(!We(r))continue;const o=t.getScaleComponent(r),a=o?o.get("type"):void 0;o&&_r(a)?(o.set("selectionExtent",{param:e.name,field:i.field},!0),n.push(i)):Mi("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(t,e,i)=>{const r=e.scales.filter((t=>0===i.filter((e=>e.name===t.signals.data)).length));if(!t.parent||fu(t)||0===r.length)return i;const o=i.filter((t=>t.name===e.name))[0];let a=o.update;if(a.indexOf(dc)>=0)o.update="{".concat(r.map((t=>"".concat(n.stringValue(U(t.field)),": ").concat(t.signals.data))).join(", "),"}");else{for(const t of r){const e="".concat(n.stringValue(U(t.field)),": ").concat(t.signals.data);a.includes(e)||(a="".concat(a.substring(0,a.length-1),", ").concat(e,"}"))}o.update=a}return i.concat(r.map((t=>({name:t.signals.data}))))},signals:(t,e,n)=>{if(t.parent&&!fu(t))for(const t of e.scales){const e=n.filter((e=>e.name===t.signals.data))[0];e.push="outer",delete e.value,delete e.update}return n}};function cu(t,e){const i=n.stringValue(t.scaleName(e));return"domain(".concat(i,")")}function fu(t){var e;return t.parent&&bd(t.parent)&&(null!==(e=!t.parent.parent)&&void 0!==e?e:fu(t.parent.parent))}const du="_brush",hu="_scale_trigger",pu={defined:t=>"interval"===t.type,signals:(t,e,i)=>{const r=e.name,o=r+su,a=uu.defined(e),s=e.init?e.init[0]:null,l=[],u=[];if(e.translate&&!a){const t="!event.item || event.item.mark.name !== ".concat(n.stringValue(r+du));mu(e,((e,i)=>{var r,o;const a=n.array(null!==(o=(r=i.between[0]).filter)&&void 0!==o?o:r.filter=[]);return a.includes(t)||a.push(t),e}))}e.project.items.forEach(((r,o)=>{const a=r.channel;if(a!==et&&a!==nt)return void Mi("Interval selections only support x and y encoding channels.");const c=s?s[o]:null,f=function(t,e,i,r){const o=i.channel,a=i.signals.visual,s=i.signals.data,l=uu.defined(e),u=n.stringValue(t.scaleName(o)),c=t.getScaleComponent(o),f=c?c.get("type"):void 0,d=t=>"scale(".concat(u,", ").concat(t,")"),h=t.getSizeSignalRef(o===et?"width":"height").signal,p="".concat(o,"(unit)"),m=mu(e,((t,e)=>[...t,{events:e.between[0],update:"[".concat(p,", ").concat(p,"]")},{events:e,update:"[".concat(a,"[0], clamp(").concat(p,", 0, ").concat(h,")]")}]));return m.push({events:{signal:e.name+hu},update:_r(f)?"[".concat(d("".concat(s,"[0]")),", ").concat(d("".concat(s,"[1]")),"]"):"[0, 0]"}),l?[{name:s,on:[]}]:[{name:a,...r?{init:nu(r,!0,d)}:{value:[]},on:m},{name:s,...r?{init:nu(r)}:{},on:[{events:{signal:a},update:"".concat(a,"[0] === ").concat(a,"[1] ? null : invert(").concat(u,", ").concat(a,")")}]}]}(t,e,r,c),d=r.signals.data,h=r.signals.visual,p=n.stringValue(t.scaleName(a)),m=_r(t.getScaleComponent(a).get("type"))?"+":"";i.push(...f),l.push(d),u.push({scaleName:t.scaleName(a),expr:"(!isArray(".concat(d,") || ")+"(".concat(m,"invert(").concat(p,", ").concat(h,")[0] === ").concat(m).concat(d,"[0] && ")+"".concat(m,"invert(").concat(p,", ").concat(h,")[1] === ").concat(m).concat(d,"[1]))")})})),!a&&u.length&&i.push({name:r+hu,value:{},on:[{events:u.map((t=>({scale:t.scaleName}))),update:"".concat(u.map((t=>t.expr)).join(" && ")," ? ").concat(r+hu," : {}")}]});const c="unit: ".concat(pc(t),", fields: ").concat(o,", values");return i.concat({name:r+cc,...s?{init:"{".concat(c,": ").concat(nu(s),"}")}:{},...l.length?{on:[{events:[{signal:l.join(" || ")}],update:"".concat(l.join(" && ")," ? {").concat(c,": [").concat(l,"]} : null")}]}:{}})},marks:(t,e,i)=>{const r=e.name,{x:o,y:a}=e.project.hasChannel,s=null==o?void 0:o.signals.visual,l=null==a?void 0:a.signals.visual,u="data(".concat(n.stringValue(e.name+uc),")");if(uu.defined(e)||!o&&!a)return i;const c={x:void 0!==o?{signal:"".concat(s,"[0]")}:{value:0},y:void 0!==a?{signal:"".concat(l,"[0]")}:{value:0},x2:void 0!==o?{signal:"".concat(s,"[1]")}:{field:{group:"width"}},y2:void 0!==a?{signal:"".concat(l,"[1]")}:{field:{group:"height"}}};if("global"===e.resolve)for(const e of F(c))c[e]=[{test:"".concat(u,".length && ").concat(u,"[0].unit === ").concat(pc(t)),...c[e]},{value:0}];const{fill:f,fillOpacity:d,cursor:h,...p}=e.mark,m=F(p).reduce(((t,e)=>(t[e]=[{test:[void 0!==o&&"".concat(s,"[0] !== ").concat(s,"[1]"),void 0!==a&&"".concat(l,"[0] !== ").concat(l,"[1]")].filter((t=>t)).join(" && "),value:p[e]},{value:null}],t)),{});return[{name:"".concat(r+du,"_bg"),type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:d}},update:c}},...i,{name:r+du,type:"rect",clip:!0,encode:{enter:{...h?{cursor:{value:h}}:{},fill:{value:"transparent"}},update:{...c,...m}}}]}};function mu(t,e){return t.events.reduce(((t,n)=>n.between?e(t,n):(Mi("".concat(n," is not an ordered event stream for interval selections.")),t)),[])}const gu={defined:t=>"point"===t.type,signals:(t,e,i)=>{var r;const o=e.name,a=o+su,s=e.project,l="(item().isVoronoi ? datum.datum : datum)",u=N(null!==(r=t.component.selection)&&void 0!==r?r:{}).reduce(((t,e)=>"interval"===e.type?t.concat(e.name+du):t),[]).map((t=>"indexof(item().mark.name, '".concat(t,"') < 0"))).join(" && "),c="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0".concat(u?" && ".concat(u):"");let f="unit: ".concat(pc(t),", ");if(e.project.hasSelectionId)f+="".concat(vs,": ").concat(l,"[").concat(n.stringValue(vs),"]");else{const e=s.items.map((e=>{const i=t.fieldDef(e.channel);return null!=i&&i.bin?"[".concat(l,"[").concat(n.stringValue(t.vgField(e.channel,{})),"], ")+"".concat(l,"[").concat(n.stringValue(t.vgField(e.channel,{binSuffix:"end"})),"]]"):"".concat(l,"[").concat(n.stringValue(e.field),"]")})).join(", ");f+="fields: ".concat(a,", values: [").concat(e,"]")}const d=e.events;return i.concat([{name:o+cc,on:d?[{events:d,update:"".concat(c," ? {").concat(f,"} : null"),force:!0}]:[]}])}};function yu(t,e,i,r){const o=Uo(e)&&e.condition,a=r(e);return o?{[i]:[...n.array(o).map((e=>{const n=r(e);if(function(t){return t.param}(e)){const{param:i,empty:r}=e;return{test:bc(t,{param:i,empty:r}),...n}}return{test:wc(t,e.test),...n}})),...void 0!==a?[a]:[]]}:void 0!==a?{[i]:a}:{}}function vu(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"text";const n=t.encoding[e];return yu(t,n,e,(e=>xu(e,t.config)))}function xu(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"datum";if(t){if(Qo(t))return Dn(t.value);if(Xo(t)){const{format:i,formatType:r}=fa(t);return vo({fieldOrDatumDef:t,format:i,formatType:r,expr:n,config:e})}}}function bu(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{encoding:i,markDef:r,config:o,stack:a}=t,s=i.tooltip;if(n.isArray(s))return{tooltip:wu({tooltip:s},a,o,e)};{const l=e.reactiveGeom?"datum.datum":"datum";return yu(t,s,"tooltip",(t=>{const s=xu(t,o,l);if(s)return s;if(null===t)return;let u=Fn("tooltip",r,o);return!0===u&&(u={content:"encoding"}),n.isString(u)?{value:u}:n.isObject(u)?gn(u)?u:"encoding"===u.content?wu(i,a,o,e):{signal:l}:void 0}))}}function _u(t,e,i){let{reactiveGeom:r}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const o={},a=r?"datum.datum":"datum",s=[];function l(r,l){var u;const c=ee(l),f=Jo(r)?r:{...r,type:t[c].type},d=f.title||ca(f,i),h=n.array(d).join(", ");let p;if(Se(l)){const e="x"===l?"x2":"y2",n=da(t[e]);if(ln(f.bin)&&n){const t=ia(f,{expr:a}),r=ia(n,{expr:a}),{format:s,formatType:l}=fa(f);p=So(t,r,s,l,i),o[e]=!0}}if((Se(l)||l===ut||l===st)&&e&&e.fieldChannel===l&&"normalize"===e.offset){const{format:t,formatType:e}=fa(f);p=vo({fieldOrDatumDef:f,format:t,formatType:e,expr:a,config:i,normalizeStack:!0}).signal}null!==(u=p)&&void 0!==u||(p=xu(f,i,a).signal),s.push({channel:l,key:h,value:p})}La(t,((t,e)=>{Wo(t)?l(t,e):qo(t)&&l(t.condition,e)}));const u={};for(const{channel:t,key:e,value:n}of s)o[t]||u[e]||(u[e]=n);return u}function wu(t,e,n){let{reactiveGeom:i}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const r=_u(t,e,n,{reactiveGeom:i}),o=O(r).map((t=>{let[e,n]=t;return'"'.concat(e,'": ').concat(n)}));return o.length>0?{signal:"{".concat(o.join(", "),"}")}:void 0}function ku(t){const{markDef:e,config:n}=t,i=Fn("aria",e,n);return!1===i?{}:{...i?{aria:i}:{},...Au(t),...Du(t)}}function Au(t){const{mark:e,markDef:n,config:i}=t;if(!1===i.aria)return{};const r=Fn("ariaRoleDescription",n,i);return null!=r?{ariaRoleDescription:{value:r}}:e in bn?{}:{ariaRoleDescription:{value:e}}}function Du(t){const{encoding:e,markDef:n,config:i,stack:r}=t,o=e.description;if(o)return yu(t,o,"description",(e=>xu(e,t.config)));const a=Fn("description",n,i);if(null!=a)return{description:Dn(a)};if(!1===i.aria)return{};const s=_u(e,r,i);return C(s)?void 0:{description:{signal:O(s).map(((t,e)=>{let[n,i]=t;return'"'.concat(e>0?"; ":"").concat(n,': " + (').concat(i,")")})).join(" + ")}}}function Su(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{markDef:i,encoding:r,config:o}=e,{vgChannel:a}=n;let{defaultRef:s,defaultValue:l}=n;var u;void 0===s&&(null!==(u=l)&&void 0!==u||(l=Fn(t,i,o,{vgChannel:a,ignoreVgConfig:!0})),void 0!==l&&(s=Dn(l)));const c=r[t];return yu(e,c,null!=a?a:t,(n=>ho({channel:t,channelDef:n,markDef:i,config:o,scaleName:e.scaleName(t),scale:e.getScaleComponent(t),stack:null,defaultRef:s})))}function Mu(t){var e,n,i,r;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{filled:void 0};const{markDef:a,encoding:s,config:l}=t,{type:u}=a,c=null!==(e=o.filled)&&void 0!==e?e:Fn("filled",a,l),f=x(["bar","point","circle","square","geoshape"],u)?"transparent":void 0,d=null!==(n=null!==(i=Fn(!0===c?"color":void 0,a,l,{vgChannel:"fill"}))&&void 0!==i?i:l.mark[!0===c&&"color"])&&void 0!==n?n:f,h=null!==(r=Fn(!1===c?"color":void 0,a,l,{vgChannel:"stroke"}))&&void 0!==r?r:l.mark[!1===c&&"color"],p=c?"fill":"stroke",m={...d?{fill:Dn(d)}:{},...h?{stroke:Dn(h)}:{}};return a.color&&(c?a.fill:a.stroke)&&Mi(oi("property",{fill:"fill"in a,stroke:"stroke"in a})),{...m,...Su("color",t,{vgChannel:p,defaultValue:c?d:h}),...Su("fill",t,{defaultValue:s.fill?d:void 0}),...Su("stroke",t,{defaultValue:s.stroke?h:void 0})}}function Eu(t){const{encoding:e,mark:n}=t,i=e.order;return!Jr(n)&&Qo(i)?yu(t,i,"zindex",(t=>Dn(t.value))):{}}function Cu(t){let{channel:e,markDef:n,encoding:i={},model:r,bandPosition:o}=t;const a="".concat(e,"Offset"),s=n[a],l=i[a];if(("xOffset"===a||"yOffset"===a)&&l)return{offsetType:"encoding",offset:ho({channel:a,channelDef:l,markDef:n,config:null==r?void 0:r.config,scaleName:r.scaleName(a),scale:r.getScaleComponent(a),stack:null,defaultRef:Dn(s),bandPosition:o})};const u=n[a];return u?{offsetType:"visual",offset:u}:{}}function Fu(t,e,n){let{defaultPos:i,vgChannel:r}=n;const{encoding:o,markDef:a,config:s,stack:l}=e,u=o[t],c=o[ie(t)],f=e.scaleName(t),d=e.getScaleComponent(t),{offset:h,offsetType:p}=Cu({channel:t,markDef:a,encoding:o,model:e,bandPosition:.5}),m=Nu({model:e,defaultPos:i,channel:t,scaleName:f,scale:d}),g=!u&&Se(t)&&(o.latitude||o.longitude)?{field:e.getName(t)}:function(t){const{channel:e,channelDef:n,scaleName:i,stack:r,offset:o,markDef:a}=t;if(Xo(n)&&r&&e===r.fieldChannel){if(Wo(n)){let t=n.bandPosition;if(void 0!==t||"text"!==a.type||"radius"!==e&&"theta"!==e||(t=.5),void 0!==t)return fo({scaleName:i,fieldOrDatumDef:n,startSuffix:"start",bandPosition:t,offset:o})}return co(n,i,{suffix:"end"},{offset:o})}return so(t)}({channel:t,channelDef:u,channel2Def:c,markDef:a,config:s,scaleName:f,scale:d,stack:l,offset:h,defaultRef:m,bandPosition:"encoding"===p?0:void 0});return g?{[r||t]:g}:void 0}function Nu(t){let{model:e,defaultPos:n,channel:i,scaleName:r,scale:o}=t;const{markDef:a,config:s}=e;return()=>{const t=ee(i),l=ne(i),u=Fn(i,a,s,{vgChannel:l});if(void 0!==u)return po(i,u);switch(n){case"zeroOrMin":case"zeroOrMax":if(r){const t=o.get("type");if(x([ur.LOG,ur.TIME,ur.UTC],t));else if(o.domainDefinitelyIncludesZero())return{scale:r,value:0}}if("zeroOrMin"===n)return"y"===t?{field:{group:"height"}}:{value:0};switch(t){case"radius":return{signal:"min(".concat(e.width.signal,",").concat(e.height.signal,")/2")};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":return{...e[re(i)],mult:.5}}}}const Ou={left:"x",center:"xc",right:"x2"},zu={top:"y",middle:"yc",bottom:"y2"};function Tu(t,e,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"middle";if("radius"===t||"theta"===t)return ne(t);const r="x"===t?"align":"baseline",o=Fn(r,e,n);let a;return gn(o)?(Mi(function(t){return"The ".concat(t," for range marks cannot be an expression")}(r)),a=void 0):a=o,"x"===t?Ou[a||("top"===i?"left":"center")]:zu[a||i]}function Pu(t,e,n){let{defaultPos:i,defaultPos2:r,range:o}=n;return o?Ru(t,e,{defaultPos:i,defaultPos2:r}):Fu(t,e,{defaultPos:i})}function Ru(t,e,n){let{defaultPos:i,defaultPos2:r}=n;const{markDef:o,config:a}=e,s=ie(t),l=re(t),u=function(t,e,n){const{encoding:i,mark:r,markDef:o,stack:a,config:s}=t,l=ee(n),u=re(n),c=ne(n),f=i[l],d=t.scaleName(l),h=t.getScaleComponent(l),{offset:p}=Cu(n in i||n in o?{channel:n,markDef:o,encoding:i,model:t}:{channel:l,markDef:o,encoding:i,model:t});if(!f&&("x2"===n||"y2"===n)&&(i.latitude||i.longitude)){const e=re(n),i=t.markDef[e];return null!=i?{[e]:{value:i}}:{[c]:{field:t.getName(n)}}}const m=function(t){let{channel:e,channelDef:n,channel2Def:i,markDef:r,config:o,scaleName:a,scale:s,stack:l,offset:u,defaultRef:c}=t;return Xo(n)&&l&&e.charAt(0)===l.fieldChannel.charAt(0)?co(n,a,{suffix:"start"},{offset:u}):so({channel:e,channelDef:i,scaleName:a,scale:s,stack:l,markDef:r,config:o,offset:u,defaultRef:c})}({channel:n,channelDef:f,channel2Def:i[n],markDef:o,config:s,scaleName:d,scale:h,stack:a,offset:p,defaultRef:void 0});return void 0!==m?{[c]:m}:Bu(n,o)||Bu(n,{[n]:On(n,o,s.style),[u]:On(u,o,s.style)})||Bu(n,s[r])||Bu(n,s.mark)||{[c]:Nu({model:t,defaultPos:e,channel:n,scaleName:d,scale:h})()}}(e,r,s);return{...Fu(t,e,{defaultPos:i,vgChannel:u[l]?Tu(t,o,a):ne(t)}),...u}}function Bu(t,e){const n=re(t),i=ne(t);if(void 0!==e[i])return{[i]:po(t,e[i])};if(void 0!==e[t])return{[i]:po(t,e[t])};if(e[n]){const i=e[n];if(!io(i))return{[n]:po(t,i)};Mi(function(t){return"Position range does not support relative band size for ".concat(t,".")}(n))}}function ju(t,e){var i,r;const{config:o,encoding:a,markDef:s}=t,l=s.type,u=ie(e),c=re(e),f=a[e],d=a[u],h=t.getScaleComponent(e),p=h?h.get("type"):void 0,m=s.orient,g=null!==(i=null!==(r=a[c])&&void 0!==r?r:a.size)&&void 0!==i?i:Fn("size",s,o,{vgChannel:c}),y="bar"===l&&("x"===e?"vertical"===m:"horizontal"===m);return!Wo(f)||!(sn(f.bin)||ln(f.bin)||f.timeUnit&&!d)||g&&!io(g)||br(p)?(Xo(f)&&br(p)||y)&&!d?function(t,e,i){const{markDef:r,encoding:o,config:a,stack:s}=i,l=r.orient,u=i.scaleName(e),c=i.getScaleComponent(e),f=re(e),d=ie(e),h=function(t){switch(t){case et:return"xOffset";case nt:return"yOffset";case it:return"x2Offset";case rt:return"y2Offset";case ut:return"thetaOffset";case st:return"radiusOffset";case ct:return"theta2Offset";case lt:return"radius2Offset"}}(e),p=i.scaleName(h),m="horizontal"===l&&"y"===e||"vertical"===l&&"x"===e;let g;(o.size||r.size)&&(m?g=Su("size",i,{vgChannel:f,defaultRef:Dn(r.size)}):Mi(function(t){return'Cannot apply size to non-oriented mark "'.concat(t,'".')}(r.type)));const y=!!g,v=$o({channel:e,fieldDef:t,markDef:r,config:a,scaleType:null==c?void 0:c.get("type"),useVlSizeChannel:m});g=g||{[f]:$u(f,p||u,c,a,v)};const x=Tu(e,r,a,"band"===(null==c?void 0:c.get("type"))&&io(v)&&!y?"top":"middle"),b="xc"===x||"yc"===x,{offset:_,offsetType:w}=Cu({channel:e,markDef:r,encoding:o,model:i,bandPosition:b?.5:0}),k=so({channel:e,channelDef:t,markDef:r,config:a,scaleName:u,scale:c,stack:s,offset:_,defaultRef:Nu({model:i,defaultPos:"mid",channel:e,scaleName:u,scale:c}),bandPosition:b?"encoding"===w?0:.5:gn(v)?{signal:"(1-".concat(v,")/2")}:io(v)?(1-v.band)/2:0});if(f)return{[x]:k,...g};{const t=ne(d),e=g[f],i=_?{...e,offset:_}:e;return{[x]:k,[t]:n.isArray(k)?[k[0],{...k[1],offset:i}]:{...k,offset:i}}}}(f,e,t):Ru(e,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function(t){var e,n,i;let{fieldDef:r,fieldDef2:o,channel:a,model:s}=t;const{config:l,markDef:u,encoding:c}=s,f=s.getScaleComponent(a),d=s.scaleName(a),h=f?f.get("type"):void 0,p=f.get("reverse"),m=$o({channel:a,fieldDef:r,markDef:u,config:l,scaleType:h}),g=null===(e=s.component.axes[a])||void 0===e?void 0:e[0],y=null!==(n=null==g?void 0:g.get("translate"))&&void 0!==n?n:.5,v=Se(a)&&null!==(i=Fn("binSpacing",u,l))&&void 0!==i?i:0,x=ie(a),b=ne(a),_=ne(x),{offset:w}=Cu({channel:a,markDef:u,encoding:c,model:s,bandPosition:0}),k=gn(m)?{signal:"(1-".concat(m.signal,")/2")}:io(m)?(1-m.band)/2:.5;if(sn(r.bin)||r.timeUnit)return{[_]:Uu({fieldDef:r,scaleName:d,bandPosition:k,offset:Lu(x,v,p,y,w)}),[b]:Uu({fieldDef:r,scaleName:d,bandPosition:gn(k)?{signal:"1-".concat(k.signal)}:1-k,offset:Lu(a,v,p,y,w)})};if(ln(r.bin)){const t=co(r,d,{},{offset:Lu(x,v,p,y,w)});if(Wo(o))return{[_]:t,[b]:co(o,d,{},{offset:Lu(a,v,p,y,w)})};if(un(r.bin)&&r.bin.step)return{[_]:t,[b]:{signal:'scale("'.concat(d,'", ').concat(ia(r,{expr:"datum"})," + ").concat(r.bin.step,")"),offset:Lu(a,v,p,y,w)}}}Mi(Ai(x))}({fieldDef:f,fieldDef2:d,channel:e,model:t})}function $u(t,e,i,r,o){if(io(o)){if(!i)return{mult:o.band,field:{group:t}};{const t=i.get("type");if("band"===t){let t="bandwidth('".concat(e,"')");return 1!==o.band&&(t="".concat(o.band," * ").concat(t)),{signal:"max(0.25, ".concat(t,")")}}1!==o.band&&(Mi(function(t){return"Cannot use the relative band size with ".concat(t," scale.")}(t)),o=void 0)}}else{if(gn(o))return o;if(o)return{value:o}}if(i){const t=i.get("range");if(yn(t)&&n.isNumber(t.step))return{value:t.step-2}}return{value:Os(r.view,t)-2}}function Lu(t,e,n,i,r){if(Pt(t))return 0;const o="x"===t||"y2"===t?-e/2:e/2;if(gn(n)||gn(r)||gn(i)){const t=Mn(n),e=Mn(r),a=Mn(i);return{signal:(a?"".concat(a," + "):"")+(t?"(".concat(t," ? -1 : 1) * "):"")+(e?"(".concat(e," + ").concat(o,")"):o)}}return r=r||0,i+(n?-r-o:+r+o)}function Uu(t){let{fieldDef:e,scaleName:n,bandPosition:i,offset:r}=t;return fo({scaleName:n,fieldOrDatumDef:e,bandPosition:i,offset:r})}const qu=new Set(["aria","width","height"]);function Iu(t,e){const{fill:n,stroke:i}="include"===e.color?Mu(t):{};return{...Hu(t.markDef,e),...Wu(t,"fill",n),...Wu(t,"stroke",i),...Su("opacity",t),...Su("fillOpacity",t),...Su("strokeOpacity",t),...Su("strokeWidth",t),...Su("strokeDash",t),...Eu(t),...bu(t),...vu(t,"href"),...ku(t)}}function Wu(t,e,i){const{config:r,mark:o,markDef:a}=t;if("hide"===Fn("invalid",a,r)&&i&&!Jr(o)){const r=function(t,e){let{invalid:n=!1,channels:i}=e;const r=i.reduce(((e,n)=>{const i=t.getScaleComponent(n);if(i){const r=i.get("type"),o=t.vgField(n,{expr:"datum"});o&&_r(r)&&(e[o]=!0)}return e}),{}),o=F(r);if(o.length>0){const t=n?"||":"&&";return o.map((t=>uo(t,n))).join(" ".concat(t," "))}}(t,{invalid:!0,channels:Ie});if(r)return{[e]:[{test:r,value:null},...n.array(i)]}}return i?{[e]:i}:{}}function Hu(t,e){return xn.reduce(((n,i)=>(qu.has(i)||void 0===t[i]||"ignore"===e[i]||(n[i]=Dn(t[i])),n)),{})}function Vu(t){const{config:e,markDef:n}=t;if(Fn("invalid",n,e)){const e=function(t,e){let{invalid:n=!1,channels:i}=e;const r=i.reduce(((e,n)=>{const i=t.getScaleComponent(n);if(i){var r;const o=i.get("type"),a=t.vgField(n,{expr:"datum",binSuffix:null!==(r=t.stack)&&void 0!==r&&r.impute?"mid":void 0});a&&_r(o)&&(e[a]=!0)}return e}),{}),o=F(r);if(o.length>0){const t=n?"||":"&&";return o.map((t=>uo(t,n))).join(" ".concat(t," "))}}(t,{channels:De});if(e)return{defined:{signal:e}}}return{}}function Gu(t,e){if(void 0!==e)return{[t]:Dn(e)}}const Yu="voronoi",Xu={defined:t=>"point"===t.type&&t.nearest,parse:(t,e)=>{if(e.events)for(const n of e.events)n.markname=t.getName(Yu)},marks:(t,e,n)=>{const{x:i,y:r}=e.project.hasChannel,o=t.mark;if(Jr(o))return Mi('The "nearest" transform is not supported for '.concat(o," marks.")),n;const a={name:t.getName(Yu),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...bu(t,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:i||!r?"datum.datum.x || 0":"0"},y:{expr:r||!i?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let s=0,l=!1;return n.forEach(((e,n)=>{var i;const r=null!==(i=e.name)&&void 0!==i?i:"";r===t.component.mark[0].name?s=n:r.indexOf(Yu)>=0&&(l=!0)})),l||n.splice(s+1,0,a),n}},Ju={defined:t=>"point"===t.type&&"global"===t.resolve&&t.bind&&"scales"!==t.bind&&!bs(t.bind),parse:(t,e,n)=>gc(e,n),topLevelSignals:(t,e,i)=>{const r=e.name,o=e.project,a=e.bind,s=e.init&&e.init[0],l=Xu.defined(e)?"(item().isVoronoi ? datum.datum : datum)":"datum";return o.items.forEach(((t,o)=>{const u=T("".concat(r,"_").concat(t.field));var c,f;i.filter((t=>t.name===u)).length||i.unshift({name:u,...s?{init:nu(s[o])}:{value:null},on:e.events?[{events:e.events,update:"datum && item().mark.marktype !== 'group' ? ".concat(l,"[").concat(n.stringValue(t.field),"] : null")}]:[],bind:null!==(c=null!==(f=a[t.field])&&void 0!==f?f:a[t.channel])&&void 0!==c?c:a})})),i},signals:(t,e,n)=>{const i=e.name,r=e.project,o=n.filter((t=>t.name===i+cc))[0],a=i+su,s=r.items.map((t=>T("".concat(i,"_").concat(t.field)))),l=s.map((t=>"".concat(t," !== null"))).join(" && ");return s.length&&(o.update="".concat(l," ? {fields: ").concat(a,", values: [").concat(s.join(", "),"]} : null")),delete o.value,delete o.on,n}},Qu="_toggle",Zu={defined:t=>"point"===t.type&&!!t.toggle,signals:(t,e,n)=>n.concat({name:e.name+Qu,value:!1,on:[{events:e.events,update:e.toggle}]}),modifyExpr:(t,e)=>{const n=e.name+cc,i=e.name+Qu;return"".concat(i," ? null : ").concat(n,", ")+("global"===e.resolve?"".concat(i," ? null : true, "):"".concat(i," ? null : {unit: ").concat(pc(t),"}, "))+"".concat(i," ? ").concat(n," : null")}},Ku={defined:t=>void 0!==t.clear&&!1!==t.clear,parse:(t,e)=>{e.clear&&(e.clear=n.isString(e.clear)?n.parseSelector(e.clear,"view"):e.clear)},topLevelSignals:(t,e,n)=>{if(Ju.defined(e))for(const t of e.project.items){const i=n.findIndex((n=>n.name===T("".concat(e.name,"_").concat(t.field))));-1!==i&&n[i].on.push({events:e.clear,update:"null"})}return n},signals:(t,e,n)=>{function i(t,i){-1!==t&&n[t].on&&n[t].on.push({events:e.clear,update:i})}if("interval"===e.type)for(const t of e.project.items){const e=n.findIndex((e=>e.name===t.signals.visual));i(e,"[0, 0]"),-1===e&&i(n.findIndex((e=>e.name===t.signals.data)),"null")}else{let t=n.findIndex((t=>t.name===e.name+cc));i(t,"null"),Zu.defined(e)&&(t=n.findIndex((t=>t.name===e.name+Qu)),i(t,"false"))}return n}},tc={defined:t=>{const e="global"===t.resolve&&t.bind&&bs(t.bind),n=1===t.project.items.length&&t.project.items[0].field!==vs;return e&&!n&&Mi("Legend bindings are only supported for selections over an individual field or encoding channel."),e&&n},parse:(t,e,i)=>{const r=d(i);if(r.select=n.isString(r.select)?{type:r.select,toggle:e.toggle}:{...r.select,toggle:e.toggle},gc(e,r),n.isObject(i.select)&&(i.select.on||i.select.clear)){const t='event.item && indexof(event.item.mark.role, "legend") < 0';for(const i of e.events){var o;i.filter=n.array(null!==(o=i.filter)&&void 0!==o?o:[]),i.filter.includes(t)||i.filter.push(t)}}const a=_s(e.bind)?e.bind.legend:"click",s=n.isString(a)?n.parseSelector(a,"view"):n.array(a);e.bind={legend:{merge:s}}},topLevelSignals:(t,e,n)=>{const i=e.name,r=_s(e.bind)&&e.bind.legend,o=t=>e=>{const n=d(e);return n.markname=t,n};for(const t of e.project.items){if(!t.hasLegend)continue;const a="".concat(T(t.field),"_legend"),s="".concat(i,"_").concat(a);if(0===n.filter((t=>t.name===s)).length){const t=r.merge.map(o("".concat(a,"_symbols"))).concat(r.merge.map(o("".concat(a,"_labels")))).concat(r.merge.map(o("".concat(a,"_entries"))));n.unshift({name:s,...e.init?{}:{value:null},on:[{events:t,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:"!event.item || !datum ? null : ".concat(s),force:!0}]})}}return n},signals:(t,e,n)=>{const i=e.name,r=e.project,o=n.find((t=>t.name===i+cc)),a=i+su,s=r.items.filter((t=>t.hasLegend)).map((t=>T("".concat(i,"_").concat(T(t.field),"_legend")))),l=s.map((t=>"".concat(t," !== null"))).join(" && "),u="".concat(l," ? {fields: ").concat(a,", values: [").concat(s.join(", "),"]} : null");e.events&&s.length>0?o.on.push({events:s.map((t=>({signal:t}))),update:u}):s.length>0&&(o.update=u,delete o.value,delete o.on);const c=n.find((t=>t.name===i+Qu)),f=_s(e.bind)&&e.bind.legend;return c&&(e.events?c.on.push({...c.on[0],events:f}):c.on[0].events=f),n}};const ec="_translate_anchor",nc="_translate_delta",ic={defined:t=>"interval"===t.type&&t.translate,signals:(t,e,i)=>{const r=e.name,o=uu.defined(e),a=r+ec,{x:s,y:l}=e.project.hasChannel;let u=n.parseSelector(e.translate,"scope");return o||(u=u.map((t=>(t.between[0].markname=r+du,t)))),i.push({name:a,value:{},on:[{events:u.map((t=>t.between[0])),update:"{x: x(unit), y: y(unit)"+(void 0!==s?", extent_x: ".concat(o?cu(t,et):"slice(".concat(s.signals.visual,")")):"")+(void 0!==l?", extent_y: ".concat(o?cu(t,nt):"slice(".concat(l.signals.visual,")")):"")+"}"}]},{name:r+nc,value:{},on:[{events:u,update:"{x: ".concat(a,".x - x(unit), y: ").concat(a,".y - y(unit)}")}]}),void 0!==s&&rc(t,e,s,"width",i),void 0!==l&&rc(t,e,l,"height",i),i}};function rc(t,e,n,i,r){var o,a;const s=e.name,l=s+ec,u=s+nc,c=n.channel,f=uu.defined(e),d=r.filter((t=>t.name===n.signals[f?"data":"visual"]))[0],h=t.getSizeSignalRef(i).signal,p=t.getScaleComponent(c),m=p.get("type"),g=p.get("reverse"),y=f?c===et?g?"":"-":g?"-":"":"",v="".concat(l,".extent_").concat(c),x="".concat(y).concat(u,".").concat(c," / ").concat(f?"".concat(h):"span(".concat(v,")")),b=f?"log"===m?"panLog":"symlog"===m?"panSymlog":"pow"===m?"panPow":"panLinear":"panLinear",_=f?"pow"===m?", ".concat(null!==(o=p.get("exponent"))&&void 0!==o?o:1):"symlog"===m?", ".concat(null!==(a=p.get("constant"))&&void 0!==a?a:1):"":"",w="".concat(b,"(").concat(v,", ").concat(x).concat(_,")");d.on.push({events:{signal:u},update:f?w:"clampRange(".concat(w,", 0, ").concat(h,")")})}const oc="_zoom_anchor",ac="_zoom_delta",sc={defined:t=>"interval"===t.type&&t.zoom,signals:(t,e,i)=>{const r=e.name,o=uu.defined(e),a=r+ac,{x:s,y:l}=e.project.hasChannel,u=n.stringValue(t.scaleName(et)),c=n.stringValue(t.scaleName(nt));let f=n.parseSelector(e.zoom,"scope");return o||(f=f.map((t=>(t.markname=r+du,t)))),i.push({name:r+oc,on:[{events:f,update:o?"{"+[u?"x: invert(".concat(u,", x(unit))"):"",c?"y: invert(".concat(c,", y(unit))"):""].filter((t=>!!t)).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:a,on:[{events:f,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),void 0!==s&&lc(t,e,s,"width",i),void 0!==l&&lc(t,e,l,"height",i),i}};function lc(t,e,n,i,r){var o,a;const s=e.name,l=n.channel,u=uu.defined(e),c=r.filter((t=>t.name===n.signals[u?"data":"visual"]))[0],f=t.getSizeSignalRef(i).signal,d=t.getScaleComponent(l),h=d.get("type"),p=u?cu(t,l):c.name,m=s+ac,g="".concat(s).concat(oc,".").concat(l),y=u?"log"===h?"zoomLog":"symlog"===h?"zoomSymlog":"pow"===h?"zoomPow":"zoomLinear":"zoomLinear",v=u?"pow"===h?", ".concat(null!==(o=d.get("exponent"))&&void 0!==o?o:1):"symlog"===h?", ".concat(null!==(a=d.get("constant"))&&void 0!==a?a:1):"":"",x="".concat(y,"(").concat(p,", ").concat(g,", ").concat(m).concat(v,")");c.on.push({events:{signal:m},update:u?x:"clampRange(".concat(x,", 0, ").concat(f,")")})}const uc="_store",cc="_tuple",fc="_modify",dc="vlSelectionResolve",hc=[gu,pu,lu,Zu,Ju,uu,tc,Ku,ic,sc,Xu];function pc(t){let{escape:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{escape:!0},i=e?n.stringValue(t.name):t.name;const r=function(t){let e=t.parent;for(;e&&!vd(e);)e=e.parent;return e}(t);if(r){const{facet:t}=r;for(const e of Ut)t[e]&&(i+=" + '__facet_".concat(e,"_' + (facet[").concat(n.stringValue(r.vgField(e)),"])"))}return i}function mc(t){var e;return N(null!==(e=t.component.selection)&&void 0!==e?e:{}).reduce(((t,e)=>t||e.project.hasSelectionId),!1)}function gc(t,e){!n.isString(e.select)&&e.select.on||delete t.events,!n.isString(e.select)&&e.select.clear||delete t.clear,!n.isString(e.select)&&e.select.toggle||delete t.toggle}function yc(t){const e=[];return"Identifier"===t.type?[t.name]:"Literal"===t.type?[t.value]:("MemberExpression"===t.type&&(e.push(...yc(t.object)),e.push(...yc(t.property))),e)}function vc(t){return"MemberExpression"===t.object.type?vc(t.object):"datum"===t.object.name}function xc(t){const e=n.parseExpression(t),i=new Set;return e.visit((t=>{"MemberExpression"===t.type&&vc(t)&&i.add(yc(t).slice(1).join("."))})),i}class FilterNode extends DataFlowNode{clone(){return new FilterNode(null,this.model,d(this.filter))}constructor(t,e,n){super(t),this.model=e,this.filter=n,jn(this,"expr",void 0),jn(this,"_dependentFields",void 0),this.expr=wc(this.model,this.filter,this),this._dependentFields=xc(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return"Filter ".concat(this.expr)}}function bc(t,e,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"datum";const o=n.isString(e)?e:e.param,a=T(o),s=n.stringValue(a+uc);let l;try{l=t.getSelectionComponent(a,o)}catch(t){return"!!".concat(a)}if(l.project.timeUnit){const e=null!=i?i:t.component.data.raw,n=l.project.timeUnit.clone();e.parent?n.insertAsParentOf(e):e.parent=n}const u=l.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest(",c="global"===l.resolve?")":", ".concat(n.stringValue(l.resolve),")"),f="".concat(u).concat(s,", ").concat(r).concat(c),d="length(data(".concat(s,"))");return!1===e.empty?"".concat(d," && ").concat(f):"!".concat(d," || ").concat(f)}function _c(t,e,i){const r=T(e),o=i.encoding;let a,s=i.field;try{a=t.getSelectionComponent(r,e)}catch(t){return r}if(o||s){if(o&&!s){const t=a.project.items.filter((t=>t.channel===o));!t.length||t.length>1?(s=a.project.items[0].field,Mi((t.length?"Multiple ":"No ")+"matching ".concat(n.stringValue(o)," encoding found for selection ").concat(n.stringValue(i.param),". ")+'Using "field": '.concat(n.stringValue(s),"."))):s=t[0].field}}else s=a.project.items[0].field,a.project.items.length>1&&Mi('A "field" or "encoding" must be specified when using a selection as a scale domain. '+'Using "field": '.concat(n.stringValue(s),"."));return"".concat(a.name,"[").concat(n.stringValue(U(s)),"]")}function wc(t,e,i){return P(e,(e=>n.isString(e)?e:function(t){return null==t?void 0:t.param}(e)?bc(t,e,i):Ki(e)))}function kc(t,e,n,i){var r,o,a,s,l;null!==(r=t.encode)&&void 0!==r||(t.encode={}),null!==(a=(o=t.encode)[e])&&void 0!==a||(o[e]={}),null!==(l=(s=t.encode[e]).update)&&void 0!==l||(s.update={}),t.encode[e].update[n]=i}function Ac(t,e,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{header:!1};const{disable:o,orient:a,scale:s,labelExpr:l,title:u,zindex:c,...f}=t.combine();if(!o){for(const t in f){const i=Sa[t],r=f[t];if(i&&i!==e&&"both"!==i)delete f[t];else if(Aa(r)){const{condition:e,...i}=r,o=n.array(e),a=ka[t];if(a){const{vgProp:e,part:n}=a;kc(f,n,e,[...o.map((t=>{const{test:e,...n}=t;return{test:wc(null,e),...n}})),i]),delete f[t]}else if(null===a){const e={signal:o.map((t=>{const{test:e,...n}=t;return"".concat(wc(null,e)," ? ").concat(Sn(n)," : ")})).join("")+Sn(i)};f[t]=e}}else if(gn(r)){const e=ka[t];if(e){const{vgProp:n,part:i}=e;kc(f,i,n,r),delete f[t]}}x(["labelAlign","labelBaseline"],t)&&null===f[t]&&delete f[t]}if("grid"===e){if(!f.grid)return;if(f.encode){const{grid:t}=f.encode;f.encode={...t?{grid:t}:{}},C(f.encode)&&delete f.encode}return{scale:s,orient:a,...f,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:H(c,0)}}{if(!r.header&&t.mainExtracted)return;if(void 0!==l){var d,h;let t=l;null!==(d=f.encode)&&void 0!==d&&null!==(h=d.labels)&&void 0!==h&&h.update&&gn(f.encode.labels.update.text)&&(t=q(l,"datum.label",f.encode.labels.update.text.signal)),kc(f,"labels","text",{signal:t})}if(null===f.labelAlign&&delete f.labelAlign,f.encode){for(const e of Da)t.hasAxisPart(e)||delete f.encode[e];C(f.encode)&&delete f.encode}const e=function(t,e){if(t)return n.isArray(t)&&!mn(t)?t.map((t=>ca(t,e))).join(", "):t}(u,i);return{scale:s,orient:a,grid:!1,...e?{title:e}:{},...f,...!1===i.aria?{aria:!1}:{},zindex:H(c,0)}}}}function Dc(t){const{axes:e}=t.component,n=[];for(const i of De)if(e[i])for(const r of e[i])if(!r.get("disable")&&!r.get("gridScale")){const e="x"===i?"height":"width",r=t.getSizeSignalRef(e).signal;e!==r&&n.push({name:e,update:r})}return n}function Sc(t,e,n,i){return Object.assign.apply(null,[{},...t.map((t=>{if("axisOrient"===t){const t="x"===n?"bottom":"left",r=e["x"===n?"axisBottom":"axisLeft"]||{},o=e["x"===n?"axisTop":"axisRight"]||{},a=new Set([...F(r),...F(o)]),s={};for(const e of a.values())s[e]={signal:"".concat(i.signal,' === "').concat(t,'" ? ').concat(Mn(r[e])," : ").concat(Mn(o[e]))};return s}return e[t]}))])}function Mc(t,e){const i=[{}];for(const o of t){var r;let t=null===(r=e[o])||void 0===r?void 0:r.style;if(t){t=n.array(t);for(const n of t)i.push(e.style[n])}}return Object.assign.apply(null,i)}function Ec(t,e,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const r=zn(t,n,e);if(void 0!==r)return{configFrom:"style",configValue:r};for(const e of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"]){var o;if(void 0!==(null===(o=i[e])||void 0===o?void 0:o[t]))return{configFrom:e,configValue:i[e][t]}}return{}}const Cc={scale:t=>{let{model:e,channel:n}=t;return e.scaleName(n)},format:t=>{let{fieldOrDatumDef:e,config:n,axis:i}=t;const{format:r,formatType:o}=i;return _o(e,e.type,r,o,n,!0)},formatType:t=>{let{axis:e,fieldOrDatumDef:n,scaleType:i}=t;const{formatType:r}=e;return wo(r,n,i)},grid:t=>{var e;let{fieldOrDatumDef:n,axis:i,scaleType:r}=t;return null!==(e=i.grid)&&void 0!==e?e:function(t,e){return!br(t)&&Wo(e)&&!sn(null==e?void 0:e.bin)&&!ln(null==e?void 0:e.bin)}(r,n)},gridScale:t=>{let{model:e,channel:n}=t;return function(t,e){const n="x"===e?"y":"x";if(t.getScaleComponent(n))return t.scaleName(n)}(e,n)},labelAlign:t=>{let{axis:e,labelAngle:n,orient:i,channel:r}=t;return e.labelAlign||Oc(n,i,r)},labelAngle:t=>{let{labelAngle:e}=t;return e},labelBaseline:t=>{let{axis:e,labelAngle:n,orient:i,channel:r}=t;return e.labelBaseline||Nc(n,i,r)},labelFlush:t=>{var e;let{axis:n,fieldOrDatumDef:i,channel:r}=t;return null!==(e=n.labelFlush)&&void 0!==e?e:function(t,e){if("x"===e&&x(["quantitative","temporal"],t))return!0}(i.type,r)},labelOverlap:t=>{var e;let{axis:i,fieldOrDatumDef:r,scaleType:o}=t;return null!==(e=i.labelOverlap)&&void 0!==e?e:function(t,e,i,r){if(i&&!n.isObject(r)||"nominal"!==t&&"ordinal"!==t)return"log"!==e&&"symlog"!==e||"greedy"}(r.type,o,Wo(r)&&!!r.timeUnit,Wo(r)?r.sort:void 0)},orient:t=>{let{orient:e}=t;return e},tickCount:t=>{var e;let{channel:n,model:i,axis:r,fieldOrDatumDef:o,scaleType:a}=t;const s="x"===n?"width":"y"===n?"height":void 0,l=s?i.getSizeSignalRef(s):void 0;return null!==(e=r.tickCount)&&void 0!==e?e:function(t){let{fieldOrDatumDef:e,scaleType:n,size:i,values:r}=t;if(!r&&!br(n)&&"log"!==n){if(Wo(e)){var o;if(sn(e.bin))return{signal:"ceil(".concat(i.signal,"/10)")};if(e.timeUnit&&x(["month","hours","day","quarter"],null===(o=Ii(e.timeUnit))||void 0===o?void 0:o.unit))return}return{signal:"ceil(".concat(i.signal,"/40)")}}}({fieldOrDatumDef:o,scaleType:a,size:l,values:r.values})},title:t=>{let{axis:e,model:n,channel:i}=t;if(void 0!==e.title)return e.title;const r=zc(n,i);if(void 0!==r)return r;const o=n.typedFieldDef(i),a="x"===i?"x2":"y2",s=n.fieldDef(a);return Pn(o?[Ro(o)]:[],Wo(s)?[Ro(s)]:[])},values:t=>{let{axis:e,fieldOrDatumDef:i}=t;return function(t,e){const i=t.values;return n.isArray(i)?_a(e,i):gn(i)?i:void 0}(e,i)},zindex:t=>{var e;let{axis:n,fieldOrDatumDef:i,mark:r}=t;return null!==(e=n.zindex)&&void 0!==e?e:function(t,e){return"rect"===t&&ra(e)?1:0}(r,i)}};function Fc(t){return"(((".concat(t.signal," % 360) + 360) % 360)")}function Nc(t,e,n,i){if(void 0!==t){if("x"===n){if(gn(t)){const n=Fc(t),i=gn(e)?"(".concat(e.signal,' === "top")'):"top"===e;return{signal:"(45 < ".concat(n," && ").concat(n," < 135) || (225 < ").concat(n," && ").concat(n,' < 315) ? "middle" :')+"(".concat(n," <= 45 || 315 <= ").concat(n,") === ").concat(i,' ? "bottom" : "top"')}}if(45{if(Zo(e)&&Oo(e.sort)){const{field:i,timeUnit:r}=e,o=e.sort,a=o.map(((t,e)=>"".concat(Ki({field:i,timeUnit:r,equal:t})," ? ").concat(e," : "))).join("")+o.length;t=new CalculateNode(t,{calculate:a,as:Tc(e,n,{forAs:!0})})}})),t}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 ".concat(y(this.transform))}}function Tc(t,e,n){return ia(t,{prefix:e,suffix:"sort_index",...null!=n?n:{}})}function Pc(t,e){return x(["top","bottom"],e)?"column":x(["left","right"],e)||"row"===t?"row":"column"}function Rc(t,e,n,i){const r="row"===i?n.headerRow:"column"===i?n.headerColumn:n.headerFacet;return H((e||{})[t],r[t],n.header[t])}function Bc(t,e,n,i){const r={};for(const o of t){const t=Rc(o,e||{},n,i);void 0!==t&&(r[o]=t)}return r}const jc=["row","column"],$c=["header","footer"];function Lc(t,e){const n=t.component.layoutHeaders[e].title,i=t.config?t.config:void 0,r=t.component.layoutHeaders[e].facetFieldDef?t.component.layoutHeaders[e].facetFieldDef:void 0,{titleAnchor:o,titleAngle:a,titleOrient:s}=Bc(["titleAnchor","titleAngle","titleOrient"],r.header,i,e),l=Pc(e,s),u=J(a);return{name:"".concat(e,"-title"),type:"group",role:"".concat(l,"-title"),title:{text:n,..."row"===e?{orient:"left"}:{},style:"guide-title",...qc(u,l),...Uc(l,u,o),...Xc(i,r,e,ps,ds)}}}function Uc(t,e){switch(arguments.length>2&&void 0!==arguments[2]?arguments[2]:"middle"){case"start":return{align:"left"};case"end":return{align:"right"}}const n=Oc(e,"row"===t?"left":"top","row"===t?"y":"x");return n?{align:n}:{}}function qc(t,e){const n=Nc(t,"row"===e?"left":"top","row"===e?"y":"x",!0);return n?{baseline:n}:{}}function Ic(t,e){const n=t.component.layoutHeaders[e],i=[];for(const r of $c)if(n[r])for(const o of n[r]){const a=Vc(t,e,r,n,o);null!=a&&i.push(a)}return i}function Wc(t,e){const{sort:i}=t;var r;return No(i)?{field:ia(i,{expr:"datum"}),order:null!==(r=i.order)&&void 0!==r?r:"ascending"}:n.isArray(i)?{field:Tc(t,e,{expr:"datum"}),order:"ascending"}:{field:ia(t,{expr:"datum"}),order:null!=i?i:"ascending"}}function Hc(t,e,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:a,labelOrient:s,labelExpr:l}=Bc(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,n,e),u=vo({fieldOrDatumDef:t,format:i,formatType:r,expr:"parent",config:n}).signal,c=Pc(e,s);return{text:{signal:l?q(q(l,"datum.label",u),"datum.value",ia(t,{expr:"parent"})):u},..."row"===e?{orient:"left"}:{},style:"guide-label",frame:"group",...qc(o,c),...Uc(c,o,a),...Xc(n,t,e,ms,hs)}}function Vc(t,e,n,i,r){if(r){let o=null;const{facetFieldDef:a}=i,s=t.config?t.config:void 0;if(a&&r.labels){const{labelOrient:t}=Bc(["labelOrient"],a.header,s,e);("row"===e&&!x(["top","bottom"],t)||"column"===e&&!x(["left","right"],t))&&(o=Hc(a,e,s))}const l=vd(t)&&!zo(t.facet),u=r.axes,c=(null==u?void 0:u.length)>0;if(o||c){const s="row"===e?"height":"width";return{name:t.getName("".concat(e,"_").concat(n)),type:"group",role:"".concat(e,"-").concat(n),...i.facetFieldDef?{from:{data:t.getName("".concat(e,"_domain"))},sort:Wc(a,e)}:{},...c&&l?{from:{data:t.getName("facet_domain_".concat(e))}}:{},...o?{title:o}:{},...r.sizeSignal?{encode:{update:{[s]:r.sizeSignal}}}:{},...c?{axes:u}:{}}}}return null}const Gc={column:{start:0,end:1},row:{start:1,end:0}};function Yc(t,e){return Gc[e][t]}function Xc(t,e,n,i,r){const o={};for(const a of i){if(!r[a])continue;const i=Rc(a,null==e?void 0:e.header,t,n);void 0!==i&&(o[r[a]]=i)}return o}function Jc(t){return[...Qc(t,"width"),...Qc(t,"height"),...Qc(t,"childWidth"),...Qc(t,"childHeight")]}function Qc(t,e){const n="width"===e?"x":"y",i=t.component.layoutSize.get(e);if(!i||"merged"===i)return[];const r=t.getSizeSignalRef(e).signal;if("step"===i){const e=t.getScaleComponent(n);if(e){const i=e.get("type"),o=e.get("range");if(br(i)&&yn(o)){const i=t.scaleName(n);return vd(t.parent)&&"independent"===t.parent.component.resolve.scale[n]?[Zc(i,o)]:[Zc(i,o),{name:r,update:Kc(i,e,"domain('".concat(i,"').length"))}]}}throw new Error("layout size is step although width/height is not step.")}if("container"==i){const e=r.endsWith("width"),n=e?"containerSize()[0]":"containerSize()[1]",i=Ns(t.config.view,e?"width":"height"),o="isFinite(".concat(n,") ? ").concat(n," : ").concat(i);return[{name:r,init:o,on:[{update:o,events:"window:resize"}]}]}return[{name:r,value:i}]}function Zc(t,e){const n="".concat(t,"_step");return gn(e.step)?{name:n,update:e.step.signal}:{name:n,value:e.step}}function Kc(t,e,n){const i=e.get("type"),r=e.get("padding"),o=H(e.get("paddingOuter"),r);let a=e.get("paddingInner");return a="band"===i?void 0!==a?a:r:1,"bandspace(".concat(n,", ").concat(Mn(a),", ").concat(Mn(o),") * ").concat(t,"_step")}function tf(t){return"childWidth"===t?"width":"childHeight"===t?"height":t}function ef(t,e){return F(t).reduce(((n,i)=>{const r=t[i];return{...n,...yu(e,r,i,(t=>Dn(t.value)))}}),{})}function nf(t,e){if(vd(e))return"theta"===t?"independent":"shared";if(bd(e))return"shared";if(xd(e))return Se(t)||"theta"===t||"radius"===t?"independent":"shared";throw new Error("invalid model type for resolve")}function rf(t,e){const n=t.scale[e],i=Se(e)?"axis":"legend";return"independent"===n?("shared"===t[i][e]&&Mi(function(t){return'Setting the scale to be independent for "'.concat(t,'" means we also have to set the guide (axis or legend) to be independent.')}(e)),"independent"):t[i][e]||"shared"}const of=F({aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description: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,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});class LegendComponent extends Split{}const af={symbols:function(t,e){var i,r,o,a;let{fieldOrDatumDef:s,model:l,channel:u,legendCmpt:c,legendType:f}=e;if("symbol"!==f)return;const{markDef:d,encoding:h,config:p,mark:m}=l,g=d.filled&&"trail"!==m;let y={...En({},l,to),...Mu(l,{filled:g})};const v=null!==(i=c.get("symbolOpacity"))&&void 0!==i?i:p.legend.symbolOpacity,x=null!==(r=c.get("symbolFillColor"))&&void 0!==r?r:p.legend.symbolFillColor,b=null!==(o=c.get("symbolStrokeColor"))&&void 0!==o?o:p.legend.symbolStrokeColor,_=void 0===v?null!==(a=sf(h.opacity))&&void 0!==a?a:d.opacity:void 0;var w;if(y.fill)if("fill"===u||g&&u===mt)delete y.fill;else if(y.fill.field)x?delete y.fill:(y.fill=Dn(null!==(w=p.legend.symbolBaseFillColor)&&void 0!==w?w:"black"),y.fillOpacity=Dn(null!=_?_:1));else if(n.isArray(y.fill)){var k,A,D;const t=null!==(k=null!==(A=lf(null!==(D=h.fill)&&void 0!==D?D:h.color))&&void 0!==A?A:d.fill)&&void 0!==k?k:g&&d.color;t&&(y.fill=Dn(t))}if(y.stroke)if("stroke"===u||!g&&u===mt)delete y.stroke;else if(y.stroke.field||b)delete y.stroke;else if(n.isArray(y.stroke)){const t=H(lf(h.stroke||h.color),d.stroke,g?d.color:void 0);t&&(y.stroke={value:t})}if(u!==_t){const t=Wo(s)&&cf(0,c,s);t?y.opacity=[{test:t,...Dn(null!=_?_:1)},Dn(p.legend.unselectedOpacity)]:_&&(y.opacity=Dn(_))}return y={...y,...t},C(y)?void 0:y},gradient:function(t,e){var n;let{model:i,legendType:r,legendCmpt:o}=e;if("gradient"!==r)return;const{config:a,markDef:s,encoding:l}=i;let u={};const c=void 0===(null!==(n=o.get("gradientOpacity"))&&void 0!==n?n:a.legend.gradientOpacity)?sf(l.opacity)||s.opacity:void 0;return c&&(u.opacity=Dn(c)),u={...u,...t},C(u)?void 0:u},labels:function(t,e){let{fieldOrDatumDef:n,model:i,channel:r,legendCmpt:o}=e;const a=i.legend(r)||{},s=i.config,l=Wo(n)?cf(0,o,n):void 0,u=l?[{test:l,value:1},{value:s.legend.unselectedOpacity}]:void 0,{format:c,formatType:f}=a;let d;mo(f)?d=bo({fieldOrDatumDef:n,field:"datum.value",format:c,formatType:f,config:s}):void 0===c&&void 0===f&&s.customFormatTypes&&("quantitative"===n.type&&s.numberFormatType?d=bo({fieldOrDatumDef:n,field:"datum.value",format:s.numberFormat,formatType:s.numberFormatType,config:s}):"temporal"===n.type&&s.timeFormatType&&Wo(n)&&void 0===n.timeUnit&&(d=bo({fieldOrDatumDef:n,field:"datum.value",format:s.timeFormat,formatType:s.timeFormatType,config:s})));const h={...u?{opacity:u}:{},...d?{text:d}:{},...t};return C(h)?void 0:h},entries:function(t,e){let{legendCmpt:n}=e;const i=n.get("selections");return null!=i&&i.length?{...t,fill:{value:"transparent"}}:t}};function sf(t){return uf(t,((t,e)=>Math.max(t,e.value)))}function lf(t){return uf(t,((t,e)=>H(t,e.value)))}function uf(t,e){return function(t){const e=null==t?void 0:t.condition;return!!e&&(n.isArray(e)||Qo(e))}(t)?n.array(t.condition).reduce(e,t.value):Qo(t)?t.value:void 0}function cf(t,e,i){const r=e.get("selections");if(null==r||!r.length)return;const o=n.stringValue(i.field);return r.map((t=>{const e=n.stringValue(T(t)+uc);return"(!length(data(".concat(e,")) || (").concat(t,"[").concat(o,"] && indexof(").concat(t,"[").concat(o,"], datum.value) >= 0))")})).join(" || ")}const ff={direction:t=>{let{direction:e}=t;return e},format:t=>{let{fieldOrDatumDef:e,legend:n,config:i}=t;const{format:r,formatType:o}=n;return _o(e,e.type,r,o,i,!1)},formatType:t=>{let{legend:e,fieldOrDatumDef:n,scaleType:i}=t;const{formatType:r}=e;return wo(r,n,i)},gradientLength:t=>{var e,n;const{legend:i,legendConfig:r}=t;return null!==(e=null!==(n=i.gradientLength)&&void 0!==n?n:r.gradientLength)&&void 0!==e?e:function(t){let{legendConfig:e,model:n,direction:i,orient:r,scaleType:o}=t;const{gradientHorizontalMaxLength:a,gradientHorizontalMinLength:s,gradientVerticalMaxLength:l,gradientVerticalMinLength:u}=e;if(wr(o))return"horizontal"===i?"top"===r||"bottom"===r?pf(n,"width",s,a):s:pf(n,"height",u,l)}(t)},labelOverlap:t=>{var e,n;let{legend:i,legendConfig:r,scaleType:o}=t;return null!==(e=null!==(n=i.labelOverlap)&&void 0!==n?n:r.labelOverlap)&&void 0!==e?e:function(t){if(x(["quantile","threshold","log","symlog"],t))return"greedy"}(o)},symbolType:t=>{var e;let{legend:n,markDef:i,channel:r,encoding:o}=t;return null!==(e=n.symbolType)&&void 0!==e?e:function(t,e,n,i){if("shape"!==e){var r;const t=null!==(r=lf(n))&&void 0!==r?r:i;if(t)return t}switch(t){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}(i.type,r,o.shape,i.shape)},title:t=>{let{fieldOrDatumDef:e,config:n}=t;return la(e,n,{allowDisabling:!0})},type:t=>{let{legendType:e,scaleType:n,channel:i}=t;if($t(i)&&wr(n)){if("gradient"===e)return}else if("symbol"===e)return;return e},values:t=>{let{fieldOrDatumDef:e,legend:i}=t;return function(t,e){const i=t.values;return n.isArray(i)?_a(e,i):gn(i)?i:void 0}(i,e)}};function df(t){const{legend:e}=t;return H(e.type,function(t){let{channel:e,timeUnit:n,scaleType:i}=t;if($t(e)){if(x(["quarter","month","day"],n))return"symbol";if(wr(i))return"gradient"}return"symbol"}(t))}function hf(t){var e,n;let{legendConfig:i,legendType:r,orient:o,legend:a}=t;return null!==(e=null!==(n=a.direction)&&void 0!==n?n:i[r?"gradientDirection":"symbolDirection"])&&void 0!==e?e:function(t,e){switch(t){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return"gradient"===e?"horizontal":void 0}}(o,r)}function pf(t,e,n,i){const r=t.getSizeSignalRef(e).signal;return{signal:"clamp(".concat(r,", ").concat(n,", ").concat(i,")")}}function mf(t){const e=yd(t)?function(t){const{encoding:e}=t,n={};for(const i of[mt,...ys]){const r=ha(e[i]);r&&t.getScaleComponent(i)&&(i===vt&&Wo(r)&&r.type===lr||(n[i]=yf(t,i)))}return n}(t):function(t){const{legends:e,resolve:n}=t.component;for(const i of t.children){mf(i);for(const r of F(i.component.legends))n.legend[r]=rf(t.component.resolve,r),"shared"===n.legend[r]&&(e[r]=vf(e[r],i.component.legends[r]),e[r]||(n.legend[r]="independent",delete e[r]))}for(const i of F(e))for(const e of t.children)e.component.legends[i]&&"shared"===n.legend[i]&&delete e.component.legends[i];return e}(t);return t.component.legends=e,e}function gf(t,e,n,i){switch(e){case"disable":return void 0!==n;case"values":return!(null==n||!n.values);case"title":if("title"===e&&t===(null==i?void 0:i.title))return!0}return t===(n||{})[e]}function yf(t,e){var n,i,r;let o=t.legend(e);const{markDef:a,encoding:s,config:l}=t,u=l.legend,c=new LegendComponent({},function(t,e){const n=t.scaleName(e);if("trail"===t.mark){if("color"===e)return{stroke:n};if("size"===e)return{strokeWidth:n}}return"color"===e?t.markDef.filled?{fill:n}:{stroke:n}:{[e]:n}}(t,e));!function(t,e,n){var i;const r=null===(i=t.fieldDef(e))||void 0===i?void 0:i.field;for(const i of N(null!==(o=t.component.selection)&&void 0!==o?o:{})){var o,a;const t=null!==(a=i.project.hasField[r])&&void 0!==a?a:i.project.hasChannel[e];if(t&&tc.defined(i)){var s;const e=null!==(s=n.get("selections"))&&void 0!==s?s:[];e.push(i.name),n.set("selections",e,!1),t.hasLegend=!0}}}(t,e,c);const f=void 0!==o?!o:u.disable;if(c.set("disable",f,void 0!==o),f)return c;o=o||{};const d=t.getScaleComponent(e).get("type"),h=ha(s[e]),p=Wo(h)?null===(n=Ii(h.timeUnit))||void 0===n?void 0:n.unit:void 0,m=o.orient||l.legend.orient||"right",g=df({legend:o,channel:e,timeUnit:p,scaleType:d}),y={legend:o,channel:e,model:t,markDef:a,encoding:s,fieldOrDatumDef:h,legendConfig:u,config:l,scaleType:d,orient:m,legendType:g,direction:hf({legend:o,legendType:g,orient:m,legendConfig:u})};for(const n of of){if("gradient"===g&&n.startsWith("symbol")||"symbol"===g&&n.startsWith("gradient"))continue;const i=n in ff?ff[n](y):o[n];if(void 0!==i){const r=gf(i,n,o,t.fieldDef(e));(r||void 0===l.legend[n])&&c.set(n,i,r)}}const v=null!==(i=null===(r=o)||void 0===r?void 0:r.encoding)&&void 0!==i?i:{},x=c.get("selections"),b={},_={fieldOrDatumDef:h,model:t,channel:e,legendCmpt:c,legendType:g};for(const e of["labels","legend","title","symbols","gradient","entries"]){var w;const n=ef(null!==(w=v[e])&&void 0!==w?w:{},t),i=e in af?af[e](n,_):n;void 0===i||C(i)||(b[e]={...null!=x&&x.length&&Wo(h)?{name:"".concat(T(h.field),"_legend_").concat(e)}:{},...null!=x&&x.length?{interactive:!!x}:{},update:i})}var k;return C(b)||c.set("encode",b,!(null===(k=o)||void 0===k||!k.encoding)),c}function vf(t,e){if(!t)return e.clone();const n=t.getWithExplicit("orient"),i=e.getWithExplicit("orient");if(n.explicit&&i.explicit&&n.value!==i.value)return;let r=!1;for(const n of of){const i=Gl(t.getWithExplicit(n),e.getWithExplicit(n),n,"legend",((t,e)=>{switch(n){case"symbolType":return i=t,"circle"===(o=e).value?o:i;case"title":return Bn(t,e);case"type":return r=!0,Wl("symbol")}var i,o;return Vl(t,e,n,"legend")}));t.setWithExplicit(n,i)}var o,a,s,l;return r&&(null!==(o=t.implicit)&&void 0!==o&&null!==(a=o.encode)&&void 0!==a&&a.gradient&&R(t.implicit,["encode","gradient"]),null!==(s=t.explicit)&&void 0!==s&&null!==(l=s.encode)&&void 0!==l&&l.gradient&&R(t.explicit,["encode","gradient"])),t}function xf(t){const e=t.component.legends,n={};for(const i of F(e)){const r=t.getScaleComponent(i),o=g(r.get("domains"));if(n[o])for(const t of n[o])vf(t,e[i])||n[o].push(e[i]);else n[o]=[e[i].clone()]}return N(n).flat().map((e=>function(t,e){var n;const{disable:i,labelExpr:r,selections:o,...a}=t.combine();if(!i){if(!1===e.aria&&null==a.aria&&(a.aria=!1),null!==(n=a.encode)&&void 0!==n&&n.symbols){const t=a.encode.symbols.update;!t.fill||"transparent"===t.fill.value||t.stroke||a.stroke||(t.stroke={value:"transparent"});for(const e of ys)a[e]&&delete t[e]}if(a.title||delete a.title,void 0!==r){var s,l;let t=r;null!==(s=a.encode)&&void 0!==s&&null!==(l=s.labels)&&void 0!==l&&l.update&&gn(a.encode.labels.update.text)&&(t=q(r,"datum.label",a.encode.labels.update.text.signal)),function(t,e,n,i){var r,o,a,s,l;null!==(r=t.encode)&&void 0!==r||(t.encode={}),null!==(a=(o=t.encode)[e])&&void 0!==a||(o[e]={}),null!==(l=(s=t.encode[e]).update)&&void 0!==l||(s.update={}),t.encode[e].update[n]=i}(a,"labels","text",{signal:t})}return a}}(e,t.config))).filter((t=>void 0!==t))}function bf(t){return bd(t)||xd(t)?function(t){return t.children.reduce(((t,e)=>t.concat(e.assembleProjections())),_f(t))}(t):_f(t)}function _f(t){const e=t.component.projection;if(!e||e.merged)return[];const n=e.combine(),{name:i}=n;if(e.data){const r={signal:"[".concat(e.size.map((t=>t.signal)).join(", "),"]")},o=e.data.reduce(((e,n)=>{const i=gn(n)?n.signal:"data('".concat(t.lookupDataSource(n),"')");return x(e,i)||e.push(i),e}),[]);if(o.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:i,size:r,fit:{signal:o.length>1?"[".concat(o.join(", "),"]"):o[0]},...n}]}return[{name:i,translate:{signal:"[width / 2, height / 2]"},...n}]}const wf=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class ProjectionComponent extends Split{constructor(t,e,n,i){super({...e},{name:t}),this.specifiedProjection=e,this.size=n,this.data=i,jn(this,"merged",!1)}get isFit(){return!!this.data}}function kf(t){t.component.projection=yd(t)?function(t){if(t.hasProjection){var e;const n=hn(t.specifiedProjection),i=!(n&&(null!=n.scale||null!=n.translate)),r=i?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,o=i?function(t){const e=[],{encoding:n}=t;for(const i of[[dt,ft],[pt,ht]])(ha(n[i[0]])||ha(n[i[1]]))&&e.push({signal:t.getName("geojson_".concat(e.length))});return t.channelHasField(vt)&&t.typedFieldDef(vt).type===lr&&e.push({signal:t.getName("geojson_".concat(e.length))}),0===e.length&&e.push(t.requestDataName(eu.Main)),e}(t):void 0,a=new ProjectionComponent(t.projectionName(!0),{...null!==(e=hn(t.config.projection))&&void 0!==e?e:{},...null!=n?n:{}},r,o);return a.get("type")||a.set("type","equalEarth",!1),a}}(t):function(t){if(0===t.children.length)return;let e;for(const e of t.children)kf(e);const i=_(t.children,(t=>{const i=t.component.projection;if(i){if(e){const t=function(t,e){const i=_(wf,(i=>!n.hasOwnProperty(t.explicit,i)&&!n.hasOwnProperty(e.explicit,i)||!!(n.hasOwnProperty(t.explicit,i)&&n.hasOwnProperty(e.explicit,i)&&f(t.get(i),e.get(i)))));if(f(t.size,e.size)){if(i)return t;if(f(t.explicit,{}))return e;if(f(e.explicit,{}))return t}return null}(e,i);return t&&(e=t),!!t}return e=i,!0}return!0}));if(e&&i){const n=t.projectionName(!0),i=new ProjectionComponent(n,e.specifiedProjection,e.size,d(e.data));for(const e of t.children){const t=e.component.projection;t&&(t.isFit&&i.data.push(...e.component.projection.data),e.renameProjection(t.get("name"),n),t.merged=!0)}return i}}(t)}function Af(t,e,n,i){if(wa(e,n)){var r,o;const a=yd(t)&&null!==(r=null!==(o=t.axis(n))&&void 0!==o?o:t.legend(n))&&void 0!==r?r:{},s=ia(e,{expr:"datum"}),l=ia(e,{expr:"datum",binSuffix:"end"});return{formulaAs:ia(e,{binSuffix:"range",forAs:!0}),formula:So(s,l,a.format,a.formatType,i)}}return{}}function Df(t,e){return"".concat(an(t),"_").concat(e)}function Sf(t,e,n){var i;const r=Df(null!==(i=ya(n,void 0))&&void 0!==i?i:{},e);return t.getName("".concat(r,"_bins"))}function Mf(t,e,i){let r,o;r=function(t){return"as"in t}(t)?n.isString(t.as)?[t.as,"".concat(t.as,"_end")]:[t.as[0],t.as[1]]:[ia(t,{forAs:!0}),ia(t,{binSuffix:"end",forAs:!0})];const a={...ya(e,void 0)},s=Df(a,t.field),{signal:l,extentSignal:u}=function(t,e){return{signal:t.getName("".concat(e,"_bins")),extentSignal:t.getName("".concat(e,"_extent"))}}(i,s);if(cn(a.extent)){const t=a.extent;o=_c(i,t.param,t),delete a.extent}return{key:s,binComponent:{bin:a,field:t.field,as:[r],...l?{signal:l}:{},...u?{extentSignal:u}:{},...o?{span:o}:{}}}}class BinNode extends DataFlowNode{clone(){return new BinNode(null,d(this.bins))}constructor(t,e){super(t),this.bins=e}static makeFromEncoding(t,e){const n=e.reduceFieldDef(((t,n,i)=>{if(Jo(n)&&sn(n.bin)){const{key:r,binComponent:o}=Mf(n,n.bin,e);t[r]={...o,...t[r],...Af(e,n,i,e.config)}}return t}),{});return C(n)?null:new BinNode(t,n)}static makeFromTransform(t,e,n){const{key:i,binComponent:r}=Mf(e,e.bin,n);return new BinNode(t,{[i]:r})}merge(t,e){for(const n of F(t.bins))n in this.bins?(e(t.bins[n].signal,this.bins[n].signal),this.bins[n].as=A([...this.bins[n].as,...t.bins[n].as],y)):this.bins[n]=t.bins[n];for(const e of t.children)t.removeChild(e),e.parent=this;t.remove()}producedFields(){return new Set(N(this.bins).map((t=>t.as)).flat(2))}dependentFields(){return new Set(N(this.bins).map((t=>t.field)))}hash(){return"Bin ".concat(y(this.bins))}assemble(){return N(this.bins).flatMap((t=>{const e=[],[n,...i]=t.as,{extent:r,...o}=t.bin,a={type:"bin",field:U(t.field),as:n,signal:t.signal,...cn(r)?{extent:null}:{extent:r},...t.span?{span:{signal:"span(".concat(t.span,")")}}:{},...o};!r&&t.extentSignal&&(e.push({type:"extent",field:U(t.field),signal:t.extentSignal}),a.extent={signal:t.extentSignal}),e.push(a);for(const t of i)for(let i=0;i<2;i++)e.push({type:"formula",expr:ia({field:n[i]},{expr:"datum"}),as:t[i]});return t.formula&&e.push({type:"formula",expr:t.formula,as:t.formulaAs}),e}))}}function Ef(t,e,i,r){var o;const a=yd(r)?r.encoding[ie(e)]:void 0;if(Jo(i)&&yd(r)&&Lo(i,a,r.markDef,r.config))t.add(ia(i,{})),t.add(ia(i,{suffix:"end"})),i.bin&&wa(i,e)&&t.add(ia(i,{binSuffix:"range"}));else if(e in Rt){const n=function(t){switch(t){case ft:return"y";case ht:return"y2";case dt:return"x";case pt:return"x2"}}(e);t.add(r.getName(n))}else t.add(ia(i));return Zo(i)&&function(t){return n.isObject(t)&&"field"in t}(null===(o=i.scale)||void 0===o?void 0:o.range)&&t.add(i.scale.range.field),t}class AggregateNode extends DataFlowNode{clone(){return new AggregateNode(null,new Set(this.dimensions),d(this.measures))}constructor(t,e,n){super(t),this.dimensions=e,this.measures=n}get groupBy(){return this.dimensions}static makeFromEncoding(t,e){let n=!1;e.forEachFieldDef((t=>{t.aggregate&&(n=!0)}));const i={},r=new Set;return n?(e.forEachFieldDef(((t,n)=>{const{aggregate:o,field:a}=t;if(o)if("count"===o){var s;null!==(s=i["*"])&&void 0!==s||(i["*"]={}),i["*"].count=new Set([ia(t,{forAs:!0})])}else{if(Ze(o)||Ke(o)){var l;const t=Ze(o)?"argmin":"argmax",e=o[t];null!==(l=i[e])&&void 0!==l||(i[e]={}),i[e][t]=new Set([ia({op:t,field:e},{forAs:!0})])}else{var u;null!==(u=i[a])&&void 0!==u||(i[a]={}),i[a][o]=new Set([ia(t,{forAs:!0})])}var c;We(n)&&"unaggregated"===e.scaleDomain(n)&&(null!==(c=i[a])&&void 0!==c||(i[a]={}),i[a].min=new Set([ia({field:a,aggregate:"min"},{forAs:!0})]),i[a].max=new Set([ia({field:a,aggregate:"max"},{forAs:!0})]))}else Ef(r,n,t,e)})),r.size+F(i).length===0?null:new AggregateNode(t,r,i)):null}static makeFromTransform(t,e){const n=new Set,i={};for(const t of e.aggregate){const{op:e,field:n,as:a}=t;var r,o;e&&("count"===e?(null!==(r=i["*"])&&void 0!==r||(i["*"]={}),i["*"].count=new Set([a||ia(t,{forAs:!0})])):(null!==(o=i[n])&&void 0!==o||(i[n]={}),i[n][e]=new Set([a||ia(t,{forAs:!0})])))}for(const t of null!==(a=e.groupby)&&void 0!==a?a:[]){var a;n.add(t)}return n.size+F(i).length===0?null:new AggregateNode(t,n,i)}merge(t){return D(this.dimensions,t.dimensions)?(function(t,e){for(const i of F(e)){const r=e[i];for(const e of F(r)){var n;i in t?t[i][e]=new Set([...null!==(n=t[i][e])&&void 0!==n?n:[],...r[e]]):t[i]={[e]:r[e]}}}}(this.measures,t.measures),!0):(function(){Si.debug(...arguments)}("different dimensions, cannot merge"),!1)}addDimensions(t){t.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...F(this.measures)])}producedFields(){const t=new Set;for(const e of F(this.measures))for(const n of F(this.measures[e])){const i=this.measures[e][n];0===i.size?t.add("".concat(n,"_").concat(e)):i.forEach(t.add,t)}return t}hash(){return"Aggregate ".concat(y({dimensions:this.dimensions,measures:this.measures}))}assemble(){const t=[],e=[],n=[];for(const i of F(this.measures))for(const r of F(this.measures[i]))for(const o of this.measures[i][r])n.push(o),t.push(r),e.push("*"===i?null:U(i));return{type:"aggregate",groupby:[...this.dimensions].map(U),ops:t,fields:e,as:n}}}class FacetNode extends DataFlowNode{constructor(t,e,i,r){super(t),this.model=e,this.name=i,this.data=r,jn(this,"column",void 0),jn(this,"row",void 0),jn(this,"facet",void 0),jn(this,"childModel",void 0);for(const t of Ut){const i=e.facet[t];if(i){const{bin:r,sort:o}=i;this[t]={name:e.getName("".concat(t,"_domain")),fields:[ia(i),...sn(r)?[ia(i,{binSuffix:"end"})]:[]],...No(o)?{sortField:o}:n.isArray(o)?{sortIndexField:Tc(i,t)}:{}}}}this.childModel=e.child}hash(){let t="Facet";for(const e of Ut)this[e]&&(t+=" ".concat(e.charAt(0),":").concat(y(this[e])));return t}get fields(){const t=[];for(const n of Ut){var e;null!==(e=this[n])&&void 0!==e&&e.fields&&t.push(...this[n].fields)}return t}dependentFields(){const t=new Set(this.fields);for(const e of Ut)this[e]&&(this[e].sortField&&t.add(this[e].sortField.field),this[e].sortIndexField&&t.add(this[e].sortIndexField));return t}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const t={};for(const e of De){const n=this.childModel.component.scales[e];if(n&&!n.merged){const i=n.get("type"),r=n.get("range");if(br(i)&&yn(r)){const n=Jf(Qf(this.childModel,e));n?t[e]=n:Mi(Gn(e))}}}return t}assembleRowColumnHeaderData(t,e,n){const i={row:"y",column:"x",facet:void 0}[t],r=[],o=[],a=[];i&&n&&n[i]&&(e?(r.push("distinct_".concat(n[i])),o.push("max")):(r.push(n[i]),o.push("distinct")),a.push("distinct_".concat(n[i])));const{sortField:s,sortIndexField:l}=this[t];if(s){const{op:t=Mo,field:e}=s;r.push(e),o.push(t),a.push(ia(s,{forAs:!0}))}else l&&(r.push(l),o.push("max"),a.push(l));return{name:this[t].name,source:null!=e?e:this.data,transform:[{type:"aggregate",groupby:this[t].fields,...r.length?{fields:r,ops:o,as:a}:{}}]}}assembleFacetHeaderData(t){const{columns:e}=this.model.layout,{layoutHeaders:n}=this.model.component,i=[],r={};for(const t of jc){for(const e of $c){var o;const i=null!==(o=n[t]&&n[t][e])&&void 0!==o?o:[];for(const e of i){var a;if((null===(a=e.axes)||void 0===a?void 0:a.length)>0){r[t]=!0;break}}}if(r[t]){const n='length(data("'.concat(this.facet.name,'"))'),r="row"===t?e?{signal:"ceil(".concat(n," / ").concat(e,")")}:1:e?{signal:"min(".concat(n,", ").concat(e,")")}:{signal:n};i.push({name:"".concat(this.facet.name,"_").concat(t),transform:[{type:"sequence",start:0,stop:r}]})}}const{row:s,column:l}=r;return(s||l)&&i.unshift(this.assembleRowColumnHeaderData("facet",null,t)),i}assemble(){const t=[];let e=null;const n=this.getChildIndependentFieldsWithStep(),{column:i,row:r,facet:o}=this;if(i&&r&&(n.x||n.y)){var a,s;e="cross_".concat(this.column.name,"_").concat(this.row.name);const i=[].concat(null!==(a=n.x)&&void 0!==a?a:[],null!==(s=n.y)&&void 0!==s?s:[]),r=i.map((()=>"distinct"));t.push({name:e,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:i,ops:r}]})}for(const i of[K,Z])this[i]&&t.push(this.assembleRowColumnHeaderData(i,e,n));if(o){const e=this.assembleFacetHeaderData(n);e&&t.push(...e)}return t}}function Cf(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function Ff(t){const e={};return u(t.filter,(t=>{if(Qi(t)){let r=null;if(Wi(t))r=kn(t.equal);else if(Vi(t))r=kn(t.lte);else if(Hi(t))r=kn(t.lt);else if(Gi(t))r=kn(t.gt);else if(Yi(t))r=kn(t.gte);else if(Xi(t))r=t.range[0];else if(Ji(t)){var i;r=(null!==(i=t.oneOf)&&void 0!==i?i:t.in)[0]}r&&(Ei(r)?e[t.field]="date":n.isNumber(r)?e[t.field]="number":n.isString(r)&&(e[t.field]="string")),t.timeUnit&&(e[t.field]="date")}})),e}function Nf(t){const e={};function i(t){var i;xa(t)?e[t.field]="date":"quantitative"===t.type&&(i=t.aggregate,n.isString(i)&&x(["min","max"],i))?e[t.field]="number":W(t.field)>1?t.field in e||(e[t.field]="flatten"):Zo(t)&&No(t.sort)&&W(t.sort.field)>1&&(t.sort.field in e||(e[t.sort.field]="flatten"))}if((yd(t)||vd(t))&&t.forEachFieldDef(((e,n)=>{if(Jo(e))i(e);else{const r=ee(n),o=t.fieldDef(r);i({...e,type:o.type})}})),yd(t)){const{mark:n,markDef:i,encoding:r}=t;if(Jr(n)&&!t.encoding.order){const t=r["horizontal"===i.orient?"y":"x"];Wo(t)&&"quantitative"===t.type&&!(t.field in e)&&(e[t.field]="number")}}return e}class ParseNode extends DataFlowNode{clone(){return new ParseNode(null,d(this._parse))}constructor(t,e){super(t),jn(this,"_parse",void 0),this._parse=e}hash(){return"Parse ".concat(y(this._parse))}static makeExplicit(t,e,n){var i;let r={};const o=e.data;return!Ql(o)&&null!=o&&null!==(i=o.format)&&void 0!==i&&i.parse&&(r=o.format.parse),this.makeWithAncestors(t,r,{},n)}static makeWithAncestors(t,e,n,i){for(const t of F(n)){const e=i.getWithExplicit(t);void 0!==e.value&&(e.explicit||e.value===n[t]||"derived"===e.value||"flatten"===n[t]?delete n[t]:Mi(Kn(t,n[t],e.value)))}for(const t of F(e)){const n=i.get(t);void 0!==n&&(n===e[t]?delete e[t]:Mi(Kn(t,e[t],n)))}const r=new Split(e,n);i.copyAll(r);const o={};for(const t of F(r.combine())){const e=r.get(t);null!==e&&(o[t]=e)}return 0===F(o).length||i.parseNothing?null:new ParseNode(t,o)}get parse(){return this._parse}merge(t){this._parse={...this._parse,...t.parse},t.remove()}assembleFormatParse(){const t={};for(const e of F(this._parse)){const n=this._parse[e];1===W(e)&&(t[e]=n)}return t}producedFields(){return new Set(F(this._parse))}dependentFields(){return new Set(F(this._parse))}assembleTransforms(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return F(this._parse).filter((e=>!t||W(e)>1)).map((t=>{const e=function(t,e){const n=j(t);if("number"===e)return"toNumber(".concat(n,")");if("boolean"===e)return"toBoolean(".concat(n,")");if("string"===e)return"toString(".concat(n,")");if("date"===e)return"toDate(".concat(n,")");if("flatten"===e)return n;if(e.startsWith("date:")){const t=Cf(e.slice(5,e.length));return"timeParse(".concat(n,",'").concat(t,"')")}if(e.startsWith("utc:")){const t=Cf(e.slice(4,e.length));return"utcParse(".concat(n,",'").concat(t,"')")}return Mi('Unrecognized parse "'.concat(e,'".')),null}(t,this._parse[t]);return e?{type:"formula",expr:e,as:I(t)}:null})).filter((t=>null!==t))}}class IdentifierNode extends DataFlowNode{clone(){return new IdentifierNode(null)}constructor(t){super(t)}dependentFields(){return new Set}producedFields(){return new Set([vs])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:vs}}}class GraticuleNode extends DataFlowNode{clone(){return new GraticuleNode(null,this.params)}constructor(t,e){super(t),this.params=e}dependentFields(){return new Set}producedFields(){}hash(){return"Graticule ".concat(y(this.params))}assemble(){return{type:"graticule",...!0===this.params?{}:this.params}}}class SequenceNode extends DataFlowNode{clone(){return new SequenceNode(null,this.params)}constructor(t,e){super(t),this.params=e}dependentFields(){return new Set}producedFields(){var t;return new Set([null!==(t=this.params.as)&&void 0!==t?t:"data"])}hash(){return"Hash ".concat(y(this.params))}assemble(){return{type:"sequence",...this.params}}}class SourceNode extends DataFlowNode{constructor(t){var e;let n;if(super(null),jn(this,"_data",void 0),jn(this,"_name",void 0),jn(this,"_generator",void 0),null!==(e=t)&&void 0!==e||(t={name:"source"}),Ql(t)||(n=t.format?{...m(t.format,["parse"])}:{}),Xl(t))this._data={values:t.values};else if(Yl(t)){if(this._data={url:t.url},!n.type){let e=/(?:\.([^.]+))?$/.exec(t.url)[1];x(["json","csv","tsv","dsv","topojson"],e)||(e="json"),n.type=e}}else Kl(t)?this._data={values:[{type:"Sphere"}]}:(Jl(t)||Ql(t))&&(this._data={});this._generator=Ql(t),t.name&&(this._name=t.name),n&&!C(n)&&(this._data.format=n)}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(t){this._name=t}set parent(t){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{name:this._name,...this._data,transform:[]}}}function Of(t){return t instanceof SourceNode||t instanceof GraticuleNode||t instanceof SequenceNode}var zf=new WeakMap;class Optimizer{constructor(){Un(this,zf,{writable:!0,value:void 0}),$n(this,zf,!1)}setModified(){$n(this,zf,!0)}get modifiedFlag(){return function(t,e){return e.get?e.get.call(t):e.value}(t=this,Ln(t,zf,"get"));var t}}class BottomUpOptimizer extends Optimizer{getNodeDepths(t,e,n){n.set(t,e);for(const i of t.children)this.getNodeDepths(i,e+1,n);return n}optimize(t){const e=[...this.getNodeDepths(t,0,new Map).entries()].sort(((t,e)=>e[1]-t[1]));for(const t of e)this.run(t[0]);return this.modifiedFlag}}class TopDownOptimizer extends Optimizer{optimize(t){this.run(t);for(const e of t.children)this.optimize(e);return this.modifiedFlag}}class MergeIdenticalNodes extends TopDownOptimizer{mergeNodes(t,e){const n=e.shift();for(const i of e)t.removeChild(i),i.parent=n,i.remove()}run(t){const e=t.children.map((t=>t.hash())),n={};for(let i=0;i1&&(this.setModified(),this.mergeNodes(t,n[e]))}}class RemoveUnnecessaryIdentifierNodes extends TopDownOptimizer{constructor(t){super(),jn(this,"requiresSelectionId",void 0),this.requiresSelectionId=t&&mc(t)}run(t){t instanceof IdentifierNode&&(this.requiresSelectionId&&(Of(t.parent)||t.parent instanceof AggregateNode||t.parent instanceof ParseNode)||(this.setModified(),t.remove()))}}class RemoveDuplicateTimeUnits extends Optimizer{optimize(t){return this.run(t,new Set),this.modifiedFlag}run(t,e){let n=new Set;t instanceof TimeUnitNode&&(n=t.producedFields(),S(n,e)&&(this.setModified(),t.removeFormulas(e),0===t.producedFields.length&&t.remove()));for(const i of t.children)this.run(i,new Set([...e,...n]))}}class RemoveUnnecessaryOutputNodes extends TopDownOptimizer{constructor(){super()}run(t){t instanceof OutputNode&&!t.isRequired()&&(this.setModified(),t.remove())}}class MoveParseUp extends BottomUpOptimizer{run(t){if(!(Of(t)||t.numChildren()>1))for(const e of t.children)if(e instanceof ParseNode)if(t instanceof ParseNode)this.setModified(),t.merge(e);else{if(E(t.producedFields(),e.dependentFields()))continue;this.setModified(),e.swapWithParent()}}}class MergeParse extends BottomUpOptimizer{run(t){const e=[...t.children],n=t.children.filter((t=>t instanceof ParseNode));if(t.numChildren()>1&&n.length>=1){const i={},r=new Set;for(const t of n){const e=t.parse;for(const t of F(e))t in i?i[t]!==e[t]&&r.add(t):i[t]=e[t]}for(const t of r)delete i[t];if(!C(i)){this.setModified();const n=new ParseNode(t,i);for(const r of e){if(r instanceof ParseNode)for(const t of F(i))delete r.parse[t];t.removeChild(r),r.parent=n,r instanceof ParseNode&&0===F(r.parse).length&&r.remove()}}}}}class RemoveUnusedSubtrees extends BottomUpOptimizer{run(t){t instanceof OutputNode||t.numChildren()>0||t instanceof FacetNode||t instanceof SourceNode||(this.setModified(),t.remove())}}class MergeTimeUnits extends BottomUpOptimizer{run(t){const e=t.children.filter((t=>t instanceof TimeUnitNode)),n=e.pop();for(const t of e)this.setModified(),n.merge(t)}}class MergeAggregates extends BottomUpOptimizer{run(t){const e=t.children.filter((t=>t instanceof AggregateNode)),n={};for(const t of e){const e=y(t.groupBy);e in n||(n[e]=[]),n[e].push(t)}for(const e of F(n)){const i=n[e];if(i.length>1){const e=i.pop();for(const n of i)e.merge(n)&&(t.removeChild(n),n.parent=e,n.remove(),this.setModified())}}}}class MergeBins extends BottomUpOptimizer{constructor(t){super(),this.model=t}run(t){const e=!(Of(t)||t instanceof FilterNode||t instanceof ParseNode||t instanceof IdentifierNode),n=[],i=[];for(const r of t.children)r instanceof BinNode&&(e&&!E(t.producedFields(),r.dependentFields())?n.push(r):i.push(r));if(n.length>0){const e=n.pop();for(const t of n)e.merge(t,this.model.renameSignal.bind(this.model));this.setModified(),t instanceof BinNode?t.merge(e,this.model.renameSignal.bind(this.model)):e.swapWithParent()}if(i.length>1){const t=i.pop();for(const e of i)t.merge(e,this.model.renameSignal.bind(this.model));this.setModified()}}}class MergeOutputs extends BottomUpOptimizer{run(t){const e=[...t.children];if(!b(e,(t=>t instanceof OutputNode))||t.numChildren()<=1)return;const n=[];let i;for(const r of e)if(r instanceof OutputNode){let e=r;for(;1===e.numChildren();){const[t]=e.children;if(!(t instanceof OutputNode))break;e=t}n.push(...e.children),i?(t.removeChild(r),r.parent=i.parent,i.parent.removeChild(i),i.parent=e,this.setModified()):i=e}else n.push(r);if(n.length){this.setModified();for(const t of n)t.parent.removeChild(t),t.parent=i}}}class JoinAggregateTransformNode extends DataFlowNode{clone(){return new JoinAggregateTransformNode(null,d(this.transform))}constructor(t,e){super(t),this.transform=e}addDimensions(t){this.transform.groupby=A(this.transform.groupby.concat(t),(t=>t))}dependentFields(){const t=new Set;return this.transform.groupby&&this.transform.groupby.forEach(t.add,t),this.transform.joinaggregate.map((t=>t.field)).filter((t=>void 0!==t)).forEach(t.add,t),t}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(t){var e;return null!==(e=t.as)&&void 0!==e?e:ia(t)}hash(){return"JoinAggregateTransform ".concat(y(this.transform))}assemble(){const t=[],e=[],n=[];for(const i of this.transform.joinaggregate)e.push(i.op),n.push(this.getDefaultName(i)),t.push(void 0===i.field?null:i.field);const i=this.transform.groupby;return{type:"joinaggregate",as:n,ops:e,fields:t,...void 0!==i?{groupby:i}:{}}}}class StackNode extends DataFlowNode{clone(){return new StackNode(null,d(this._stack))}constructor(t,e){super(t),jn(this,"_stack",void 0),this._stack=e}static makeFromTransform(t,e){const{stack:i,groupby:r,as:o,offset:a="zero"}=e,s=[],l=[];if(void 0!==e.sort)for(const t of e.sort)s.push(t.field),l.push(H(t.order,"ascending"));const u={field:s,order:l};let c;return c=function(t){return n.isArray(t)&&t.every((t=>n.isString(t)))&&t.length>1}(o)?o:n.isString(o)?[o,"".concat(o,"_end")]:["".concat(e.stack,"_start"),"".concat(e.stack,"_end")],new StackNode(t,{dimensionFieldDefs:[],stackField:i,groupby:r,offset:a,sort:u,facetby:[],as:c})}static makeFromEncoding(t,e){const i=e.stack,{encoding:r}=e;if(!i)return null;const{groupbyChannels:o,fieldChannel:a,offset:s,impute:l}=i,u=o.map((t=>da(r[t]))).filter((t=>!!t)),c=function(t){return t.stack.stackBy.reduce(((t,e)=>{const n=ia(e.fieldDef);return n&&t.push(n),t}),[])}(e),f=e.encoding.order;let d;return d=n.isArray(f)||Wo(f)?Tn(f):c.reduce(((t,e)=>(t.field.push(e),t.order.push("y"===a?"descending":"ascending"),t)),{field:[],order:[]}),new StackNode(t,{dimensionFieldDefs:u,stackField:e.vgField(a),facetby:[],stackby:c,sort:d,offset:s,impute:l,as:[e.vgField(a,{suffix:"start",forAs:!0}),e.vgField(a,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(t){this._stack.facetby.push(...t)}dependentFields(){const t=new Set;return t.add(this._stack.stackField),this.getGroupbyFields().forEach(t.add,t),this._stack.facetby.forEach(t.add,t),this._stack.sort.field.forEach(t.add,t),t}producedFields(){return new Set(this._stack.as)}hash(){return"Stack ".concat(y(this._stack))}getGroupbyFields(){const{dimensionFieldDefs:t,impute:e,groupby:n}=this._stack;return t.length>0?t.map((t=>t.bin?e?[ia(t,{binSuffix:"mid"})]:[ia(t,{}),ia(t,{binSuffix:"end"})]:[ia(t)])).flat():null!=n?n:[]}assemble(){const t=[],{facetby:e,dimensionFieldDefs:n,stackField:i,stackby:r,sort:o,offset:a,impute:s,as:l}=this._stack;if(s)for(const o of n){const{bandPosition:n=.5,bin:a}=o;if(a){const e=ia(o,{expr:"datum"}),i=ia(o,{expr:"datum",binSuffix:"end"});t.push({type:"formula",expr:"".concat(n,"*").concat(e,"+").concat(1-n,"*").concat(i),as:ia(o,{binSuffix:"mid",forAs:!0})})}t.push({type:"impute",field:i,groupby:[...r,...e],key:ia(o,{binSuffix:"mid"}),method:"value",value:0})}return t.push({type:"stack",groupby:[...this.getGroupbyFields(),...e],field:i,sort:o,as:l,offset:a}),t}}class WindowTransformNode extends DataFlowNode{clone(){return new WindowTransformNode(null,d(this.transform))}constructor(t,e){super(t),this.transform=e}addDimensions(t){this.transform.groupby=A(this.transform.groupby.concat(t),(t=>t))}dependentFields(){var t,e;const n=new Set;return(null!==(t=this.transform.groupby)&&void 0!==t?t:[]).forEach(n.add,n),(null!==(e=this.transform.sort)&&void 0!==e?e:[]).forEach((t=>n.add(t.field))),this.transform.window.map((t=>t.field)).filter((t=>void 0!==t)).forEach(n.add,n),n}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(t){var e;return null!==(e=t.as)&&void 0!==e?e:ia(t)}hash(){return"WindowTransform ".concat(y(this.transform))}assemble(){const t=[],e=[],n=[],i=[];for(const r of this.transform.window)e.push(r.op),n.push(this.getDefaultName(r)),i.push(void 0===r.param?null:r.param),t.push(void 0===r.field?null:r.field);const r=this.transform.frame,o=this.transform.groupby;if(r&&null===r[0]&&null===r[1]&&e.every((t=>tn(t))))return{type:"joinaggregate",as:n,ops:e,fields:t,...void 0!==o?{groupby:o}:{}};const a=[],s=[];if(void 0!==this.transform.sort)for(const t of this.transform.sort){var l;a.push(t.field),s.push(null!==(l=t.order)&&void 0!==l?l:"ascending")}const u={field:a,order:s},c=this.transform.ignorePeers;return{type:"window",params:i,as:n,ops:e,fields:t,sort:u,...void 0!==c?{ignorePeers:c}:{},...void 0!==o?{groupby:o}:{},...void 0!==r?{frame:r}:{}}}}function Tf(t){if(t instanceof FacetNode)if(1!==t.numChildren()||t.children[0]instanceof OutputNode){const n=t.model.component.data.main;Pf(n);const i=(e=t,function t(n){if(!(n instanceof FacetNode)){const i=n.clone();if(i instanceof OutputNode){const t=Rf+i.getSource();i.setSource(t),e.model.component.data.outputNodes[t]=i}else(i instanceof AggregateNode||i instanceof StackNode||i instanceof WindowTransformNode||i instanceof JoinAggregateTransformNode)&&i.addDimensions(e.fields);for(const e of n.children.flatMap(t))e.parent=i;return[i]}return n.children.flatMap(t)}),r=t.children.map(i).flat();for(const t of r)t.parent=n}else{const e=t.children[0];(e instanceof AggregateNode||e instanceof StackNode||e instanceof WindowTransformNode||e instanceof JoinAggregateTransformNode)&&e.addDimensions(t.fields),e.swapWithParent(),Tf(t)}else t.children.map(Tf);var e}function Pf(t){if(t instanceof OutputNode&&t.type===eu.Main&&1===t.numChildren()){const e=t.children[0];e instanceof FacetNode||(e.swapWithParent(),Pf(t))}}const Rf="scale_",Bf=5;function jf(t){for(const e of t){for(const t of e.children)if(t.parent!==e)return!1;if(!jf(e.children))return!1}return!0}function $f(t,e){let n=!1;for(const i of e)n=t.optimize(i)||n;return n}function Lf(t,e,n){let i=t.sources,r=!1;return r=$f(new RemoveUnnecessaryOutputNodes,i)||r,r=$f(new RemoveUnnecessaryIdentifierNodes(e),i)||r,i=i.filter((t=>t.numChildren()>0)),r=$f(new RemoveUnusedSubtrees,i)||r,i=i.filter((t=>t.numChildren()>0)),n||(r=$f(new MoveParseUp,i)||r,r=$f(new MergeBins(e),i)||r,r=$f(new RemoveDuplicateTimeUnits,i)||r,r=$f(new MergeParse,i)||r,r=$f(new MergeAggregates,i)||r,r=$f(new MergeTimeUnits,i)||r,r=$f(new MergeIdenticalNodes,i)||r,r=$f(new MergeOutputs,i)||r),t.sources=i,r}class SignalRefWrapper{constructor(t){jn(this,"signal",void 0),Object.defineProperty(this,"signal",{enumerable:!0,get:t})}static fromName(t,e){return new SignalRefWrapper((()=>t(e)))}}function Uf(t){yd(t)?function(t){const e=t.component.scales;for(const n of F(e)){const i=qf(t,n);if(e[n].setWithExplicit("domains",i),Vf(t,n),t.component.data.isFaceted){let e=t;for(;!vd(e)&&e.parent;)e=e.parent;if("shared"===e.component.resolve.scale[n])for(const t of i.value)vn(t)&&(t.data=Rf+t.data.replace(Rf,""))}}}(t):function(t){for(const e of t.children)Uf(e);const e=t.component.scales;for(const n of F(e)){let i,r=null;for(const e of t.children){const t=e.component.scales[n];if(t){i=void 0===i?t.getWithExplicit("domains"):Gl(i,t.getWithExplicit("domains"),"domains","scale",Yf);const e=t.get("selectionExtent");r&&e&&r.param!==e.param&&Mi(Qn),r=e}}e[n].setWithExplicit("domains",i),r&&e[n].set("selectionExtent",r,!0)}}(t)}function qf(t,e){const n=t.getScaleComponent(e).get("type"),{encoding:i}=t,r=function(t,e,n,i){if("unaggregated"===t){const{valid:t,reason:i}=Gf(e,n);if(!t)return void Mi(i)}else if(void 0===t&&i.useUnaggregatedDomain){const{valid:t}=Gf(e,n);if(t)return"unaggregated"}return t}(t.scaleDomain(e),t.typedFieldDef(e),n,t.config.scale);return r!==t.scaleDomain(e)&&(t.specifiedScales[e]={...t.specifiedScales[e],domain:r}),"x"===e&&ha(i.x2)?ha(i.x)?Gl(Wf(n,r,t,"x"),Wf(n,r,t,"x2"),"domain","scale",Yf):Wf(n,r,t,"x2"):"y"===e&&ha(i.y2)?ha(i.y)?Gl(Wf(n,r,t,"y"),Wf(n,r,t,"y2"),"domain","scale",Yf):Wf(n,r,t,"y2"):Wf(n,r,t,e)}function If(t,e,n){var i;const r=null===(i=Ii(n))||void 0===i?void 0:i.unit;return"temporal"===e||r?function(t,e,n){return t.map((t=>{const i=ba(t,{timeUnit:n,type:e});return{signal:"{data: ".concat(i,"}")}}))}(t,e,r):[t]}function Wf(t,e,i,r){const{encoding:o}=i,a=ha(o[r]),{type:s}=a,l=a.timeUnit;if(function(t){return null==t?void 0:t.unionWith}(e)){const n=Wf(t,void 0,i,r),o=If(e.unionWith,s,l);return Il([...n.value,...o])}if(gn(e))return Il([e]);if(e&&"unaggregated"!==e&&!Ar(e))return Il(If(e,s,l));const u=i.stack;if(u&&r===u.fieldChannel){if("normalize"===u.offset)return Wl([[0,1]]);const t=i.requestDataName(eu.Main);return Wl([{data:t,field:i.vgField(r,{suffix:"start"})},{data:t,field:i.vgField(r,{suffix:"end"})}])}const c=We(r)&&Wo(a)?function(t,e,n){if(!br(n))return;const i=t.fieldDef(e),r=i.sort;if(Oo(r))return{op:"min",field:Tc(i,e),order:"ascending"};const{stack:o}=t,a=o?new Set([...o.groupbyFields,...o.stackBy.map((t=>t.fieldDef.field))]):void 0;if(No(r))return Hf(r,o&&!a.has(r.field));if(Fo(r)){const{encoding:e,order:n}=r,i=t.fieldDef(e),{aggregate:s,field:l}=i,u=o&&!a.has(l);if(Ze(s)||Ke(s))return Hf({field:ia(i),order:n},u);if(tn(s)||!s)return Hf({op:s,field:l,order:n},u)}else{if("descending"===r)return{op:"min",field:t.vgField(e),order:"descending"};if(x(["ascending",void 0],r))return!0}}(i,r,t):void 0;if(Vo(a))return Wl(If([a.datum],s,l));const f=a;if("unaggregated"===e){const t=i.requestDataName(eu.Main),{field:e}=a;return Wl([{data:t,field:ia({field:e,aggregate:"min"})},{data:t,field:ia({field:e,aggregate:"max"})}])}if(sn(f.bin)){if(br(t))return Wl("bin-ordinal"===t?[]:[{data:z(c)?i.requestDataName(eu.Main):i.requestDataName(eu.Raw),field:i.vgField(r,wa(f,r)?{binSuffix:"range"}:{}),sort:!0!==c&&n.isObject(c)?c:{field:i.vgField(r,{}),op:"min"}}]);{const{bin:t}=f;if(sn(t)){const e=Sf(i,f.field,t);return Wl([new SignalRefWrapper((()=>{const t=i.getSignalName(e);return"[".concat(t,".start, ").concat(t,".stop]")}))])}return Wl([{data:i.requestDataName(eu.Main),field:i.vgField(r,{})}])}}if(f.timeUnit&&x(["time","utc"],t)&&Lo(f,yd(i)?i.encoding[ie(r)]:void 0,i.markDef,i.config)){const t=i.requestDataName(eu.Main);return Wl([{data:t,field:i.vgField(r)},{data:t,field:i.vgField(r,{suffix:"end"})}])}return Wl(c?[{data:z(c)?i.requestDataName(eu.Main):i.requestDataName(eu.Raw),field:i.vgField(r),sort:c}]:[{data:i.requestDataName(eu.Main),field:i.vgField(r)}])}function Hf(t,e){const{op:n,field:i,order:r}=t;return{op:null!=n?n:e?"sum":Mo,...i?{field:U(i)}:{},...r?{order:r}:{}}}function Vf(t,e){var n;const i=t.component.scales[e],r=t.specifiedScales[e].domain,o=null===(n=t.fieldDef(e))||void 0===n?void 0:n.bin,a=Ar(r)&&r,s=un(o)&&cn(o.extent)&&o.extent;(a||s)&&i.set("selectionExtent",null!=a?a:s,!0)}function Gf(t,e){const{aggregate:i,type:r}=t;return i?n.isString(i)&&!on.has(i)?{valid:!1,reason:pi(i)}:"quantitative"===r&&"log"===e?{valid:!1,reason:mi(t)}:{valid:!0}:{valid:!1,reason:hi(t)}}function Yf(t,e,n,i){return t.explicit&&e.explicit&&Mi(function(t,e,n,i){return"Conflicting ".concat(e.toString(),' property "').concat(t.toString(),'" (').concat(g(n)," and ").concat(g(i),"). Using the union of the two domains.")}(n,i,t.value,e.value)),{explicit:t.explicit,value:[...t.value,...e.value]}}function Xf(t){const e=A(t.map((t=>{if(vn(t)){const{sort:e,...n}=t;return n}return t})),y),i=A(t.map((t=>{if(vn(t)){const e=t.sort;return void 0===e||z(e)||("op"in e&&"count"===e.op&&delete e.field,"ascending"===e.order&&delete e.order),e}})).filter((t=>void 0!==t)),y);if(0===e.length)return;if(1===e.length){const e=t[0];if(vn(e)&&i.length>0){let t=i[0];if(i.length>1)Mi(vi),t=!0;else if(n.isObject(t)&&"field"in t){const n=t.field;e.field===n&&(t=!t.order||{order:t.order})}return{...e,sort:t}}return e}const r=A(i.map((t=>z(t)||!("op"in t)||n.isString(t.op)&&t.op in Qe?t:(Mi(function(t){return"Dropping sort property ".concat(g(t),' as unioned domains only support boolean or op "count", "min", and "max".')}(t)),!0))),y);let o;1===r.length?o=r[0]:r.length>1&&(Mi(vi),o=!0);const a=A(t.map((t=>vn(t)?t.data:null)),(t=>t));return 1===a.length&&null!==a[0]?{data:a[0],fields:e.map((t=>t.field)),...o?{sort:o}:{}}:{fields:e,...o?{sort:o}:{}}}function Jf(t){if(vn(t)&&n.isString(t.field))return t.field;if(function(t){return!n.isArray(t)&&"fields"in t&&!("data"in t)}(t)){let e;for(const i of t.fields)if(vn(i)&&n.isString(i.field))if(e){if(e!==i.field)return Mi(xi),e}else e=i.field;return Mi(bi),e}if(function(t){return!n.isArray(t)&&"fields"in t&&"data"in t}(t)){Mi(_i);const e=t.fields[0];return n.isString(e)?e:void 0}}function Qf(t,e){const n=t.component.scales[e].get("domains").map((e=>(vn(e)&&(e.data=t.lookupDataSource(e.data)),e)));return Xf(n)}function Zf(t){return bd(t)||xd(t)?t.children.reduce(((t,e)=>t.concat(Zf(e))),Kf(t)):Kf(t)}function Kf(t){return F(t.component.scales).reduce(((e,i)=>{const r=t.component.scales[i];if(r.merged)return e;const o=r.combine(),{name:a,type:s,selectionExtent:l,domains:u,range:c,reverse:f,...d}=o,h=function(t,e,i,r){if(Se(i)){if(yn(t))return{step:{signal:"".concat(e,"_step")}}}else if(n.isObject(t)&&vn(t))return{...t,data:r.lookupDataSource(t.data)};return t}(o.range,a,i,t),p=Qf(t,i),m=l?function(t,e,i,r){const o=_c(t,e.param,e);return{signal:_r(i.get("type"))&&n.isArray(r)&&r[0]>r[1]?"isValid(".concat(o,") && reverse(").concat(o,")"):o}}(t,l,r,p):null;return e.push({name:a,type:s,...p?{domain:p}:{},...m?{domainRaw:m}:{},range:h,...void 0!==f?{reverse:f}:{},...d}),e}),[])}class ScaleComponent extends Split{constructor(t,e){super({},{name:t}),jn(this,"merged",!1),this.setWithExplicit("type",e)}domainDefinitelyIncludesZero(){return!1!==this.get("zero")||b(this.get("domains"),(t=>n.isArray(t)&&2===t.length&&t[0]<=0&&t[1]>=0))}}const td=["range","scheme"];function ed(t,e){const i=t.fieldDef(e);if(null!=i&&i.bin){const{bin:r,field:o}=i,a=re(e),s=t.getName(a);if(n.isObject(r)&&r.binned&&void 0!==r.step)return new SignalRefWrapper((()=>{const n=t.scaleName(e),i='(domain("'.concat(n,'")[1] - domain("').concat(n,'")[0]) / ').concat(r.step);return"".concat(t.getSignalName(s)," / (").concat(i,")")}));if(sn(r)){const e=Sf(t,o,r);return new SignalRefWrapper((()=>{const n=t.getSignalName(e),i="(".concat(n,".stop - ").concat(n,".start) / ").concat(n,".step");return"".concat(t.getSignalName(s)," / (").concat(i,")")}))}}}function nd(t,e){const i=e.specifiedScales[t],{size:r}=e,o=e.getScaleComponent(t).get("type");for(const r of td)if(void 0!==i[r]){const a=zr(o,r),s=Tr(t,r);if(a)if(s)Mi(s);else switch(r){case"range":{const r=i.range;if(n.isArray(r)){if(Se(t))return Il(r.map((t=>{if("width"===t||"height"===t){const n=e.getName(t),i=e.getSignalName.bind(e);return SignalRefWrapper.fromName(i,n)}return t})))}else if(n.isObject(r))return Il({data:e.requestDataName(eu.Main),field:r.field,sort:{op:"min",field:e.vgField(t)}});return Il(r)}case"scheme":return Il(id(i[r]))}else Mi(gi(o,r,t))}const a=t===et||"xOffset"===t?"width":"height",s=r[a];if(Es(s))if(Se(t))if(br(o)){const n=rd(s,e,t);if(n)return Il({step:n})}else Mi(yi(a));else if(Ne(t)){const n=t===ot?"x":"y";if("band"===e.getScaleComponent(n).get("type")){const t=od(s,o);if(t)return Il(t)}}const{rangeMin:l,rangeMax:u}=i,c=function(t,e){const{size:i,config:r,mark:o,encoding:a}=e,s=e.getSignalName.bind(e),{type:l}=ha(a[t]),u=e.getScaleComponent(t).get("type"),{domain:c,domainMid:f}=e.specifiedScales[t];switch(t){case et:case nt:{if(x(["point","band"],u)){const n=ad(t,i,r.view);if(Es(n))return{step:rd(n,e,t)}}const n=re(t),o=e.getName(n);return t===nt&&_r(u)?[SignalRefWrapper.fromName(s,o),0]:[0,SignalRefWrapper.fromName(s,o)]}case ot:case at:return function(t,e,n){const i=t===ot?"x":"y",r=e.getScaleComponent(i).get("type"),o=e.scaleName(i);if("band"===r){const t=ad(i,e.size,e.config.view);if(Es(t)){const e=od(t,n);if(e)return e}return[0,{signal:"bandwidth('".concat(o,"')")}]}return h("Cannot use ".concat(t," scale if ").concat(i," scale is not discrete."))}(t,e,u);case xt:{const a=sd(o,e.component.scales[t].get("zero"),r),s=function(t,e,i,r){const o={x:ed(i,"x"),y:ed(i,"y")};switch(t){case"bar":case"tick":{if(void 0!==r.scale.maxBandSize)return r.scale.maxBandSize;const t=ud(e,o,r.view);return n.isNumber(t)?t-1:new SignalRefWrapper((()=>"".concat(t.signal," - 1")))}case"line":case"trail":case"rule":return r.scale.maxStrokeWidth;case"text":return r.scale.maxFontSize;case"point":case"square":case"circle":{if(r.scale.maxSize)return r.scale.maxSize;const t=ud(e,o,r.view);return n.isNumber(t)?Math.pow(ld*t,2):new SignalRefWrapper((()=>"pow(".concat(ld," * ").concat(t.signal,", 2)")))}}throw new Error(li("size",t))}(o,i,e,r);return kr(u)?function(t,e,n){const i=()=>{const i=Mn(e),r=Mn(t),o="(".concat(i," - ").concat(r,") / (").concat(n," - 1)");return"sequence(".concat(r,", ").concat(i," + ").concat(o,", ").concat(o,")")};return gn(e)?new SignalRefWrapper(i):{signal:i()}}(a,s,function(t,e,i,r){switch(t){case"quantile":return e.scale.quantileCount;case"quantize":return e.scale.quantizeCount;case"threshold":return void 0!==i&&n.isArray(i)?i.length+1:(Mi(function(t){return"Domain for ".concat(t," is required for threshold scale.")}(r)),3)}}(u,r,c,t)):[a,s]}case ut:return[0,2*Math.PI];case bt:return[0,360];case st:return[0,new SignalRefWrapper((()=>{const t=e.getSignalName("width"),n=e.getSignalName("height");return"min(".concat(t,",").concat(n,")/2")}))];case At:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case Dt:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case vt:return"symbol";case mt:case gt:case yt:return"ordinal"===u?"nominal"===l?"category":"ordinal":void 0!==f?"diverging":"rect"===o||"geoshape"===o?"heatmap":"ramp";case _t:case wt:case kt:return[r.scale.minOpacity,r.scale.maxOpacity]}}(t,e);return(void 0!==l||void 0!==u)&&zr(o,"rangeMin")&&n.isArray(c)&&2===c.length?Il([null!=l?l:c[0],null!=u?u:c[1]]):Wl(c)}function id(t){return function(t){return!n.isString(t)&&!!t.name}(t)?{scheme:t.name,...m(t,["name"])}:{scheme:t}}function rd(t,e,i){const{encoding:r}=e,o=e.getScaleComponent(i),a=oe(i),s=r[a];if("offset"===Ms({step:t,offsetIsDiscrete:Xo(s)&&ir(s.type)})&&za(r,a)){var l;const i=e.getScaleComponent(a),r=e.scaleName(a);let s="domain('".concat(r,"').length");if("band"===i.get("type")){var u,c,f,d;const t=null!==(u=null!==(c=i.get("paddingInner"))&&void 0!==c?c:i.get("padding"))&&void 0!==u?u:0,e=null!==(f=null!==(d=i.get("paddingOuter"))&&void 0!==d?d:i.get("padding"))&&void 0!==f?f:0;s="bandspace(".concat(s,", ").concat(t,", ").concat(e,")")}const p=null!==(l=o.get("paddingInner"))&&void 0!==l?l:o.get("padding");return{signal:"".concat(t.step," * ").concat(s," / (1-").concat((h=p,gn(h)?h.signal:n.stringValue(h)),")")}}var h;return t.step}function od(t,e){if("offset"===Ms({step:t,offsetIsDiscrete:br(e)}))return{step:t.step}}function ad(t,e,n){const i=t===et?"width":"height";return e[i]||zs(n,i)}function sd(t,e,n){if(e)return gn(e)?{signal:"".concat(e.signal," ? 0 : ").concat(sd(t,!1,n))}:0;switch(t){case"bar":case"tick":return n.scale.minBandSize;case"line":case"trail":case"rule":return n.scale.minStrokeWidth;case"text":return n.scale.minFontSize;case"point":case"square":case"circle":return n.scale.minSize}throw new Error(li("size",t))}const ld=.95;function ud(t,e,n){const i=Es(t.width)?t.width.step:Os(n,"width"),r=Es(t.height)?t.height.step:Os(n,"height");return e.x||e.y?new SignalRefWrapper((()=>{const t=[e.x?e.x.signal:i,e.y?e.y.signal:r];return"min(".concat(t.join(", "),")")})):Math.min(i,r)}function cd(t,e){yd(t)?function(t,e){const n=t.component.scales,{config:i,encoding:r,markDef:o,specifiedScales:a}=t;for(const s of F(n)){const l=a[s],u=n[s],c=t.getScaleComponent(s),f=ha(r[s]),d=l[e],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=zr(h,e),y=Tr(s,e);if(void 0!==d&&(g?y&&Mi(y):Mi(gi(h,e,s))),g&&void 0===y)if(void 0!==d){const t=f.timeUnit,n=f.type;switch(e){case"domainMax":case"domainMin":Ei(l[e])||"temporal"===n||t?u.set(e,{signal:ba(l[e],{type:n,timeUnit:t})},!0):u.set(e,l[e],!0);break;default:u.copyKeyFromObject(e,l)}}else{const n=e in fd?fd[e]({model:t,channel:s,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:m,domain:l.domain,domainMin:l.domainMin,domainMax:l.domainMax,markDef:o,config:i,hasNestedOffsetScale:Ta(r,s)}):i.scale[e];void 0!==n&&u.set(e,n,!1)}}}(t,e):hd(t,e)}const fd={bins:t=>{let{model:e,fieldOrDatumDef:n}=t;return Wo(n)?function(t,e){const n=e.bin;if(sn(n)){const i=Sf(t,e.field,n);return new SignalRefWrapper((()=>t.getSignalName(i)))}if(ln(n)&&un(n)&&void 0!==n.step)return{step:n.step}}(e,n):void 0},interpolate:t=>{let{channel:e,fieldOrDatumDef:n}=t;return function(t,e){if(x([mt,gt,yt],t)&&"nominal"!==e)return"hcl"}(e,n.type)},nice:t=>{let{scaleType:e,channel:i,domain:r,domainMin:o,domainMax:a,fieldOrDatumDef:s}=t;return function(t,e,i,r,o,a){var s;if(!(null!==(s=da(a))&&void 0!==s&&s.bin||n.isArray(i)||null!=o||null!=r||x([ur.TIME,ur.UTC],t)))return!!Se(e)||void 0}(e,i,r,o,a,s)},padding:t=>{let{channel:e,scaleType:n,fieldOrDatumDef:i,markDef:r,config:o}=t;return function(t,e,n,i,r,o){if(Se(t)){if(wr(e)){if(void 0!==n.continuousPadding)return n.continuousPadding;const{type:e,orient:a}=r;if("bar"===e&&(!Wo(i)||!i.bin&&!i.timeUnit)&&("vertical"===a&&"x"===t||"horizontal"===a&&"y"===t))return o.continuousBandSize}if(e===ur.POINT)return n.pointPadding}}(e,n,o.scale,i,r,o.bar)},paddingInner:t=>{let{scalePadding:e,channel:n,markDef:i,scaleType:r,config:o,hasNestedOffsetScale:a}=t;return function(t,e,n,i,r){let o=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(void 0===t){if(Se(e)){const{bandPaddingInner:t,barBandPaddingInner:e,rectBandPaddingInner:i,bandWithNestedOffsetPaddingInner:a}=r;return o?a:H(t,"bar"===n?e:i)}return Ne(e)&&i===ur.BAND?r.offsetBandPaddingInner:void 0}}(e,n,i.type,r,o.scale,a)},paddingOuter:t=>{let{scalePadding:e,channel:n,scaleType:i,scalePaddingInner:r,config:o,hasNestedOffsetScale:a}=t;return function(t,e,n,i,r){let o=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(void 0===t)if(Se(e)){const{bandPaddingOuter:t,bandWithNestedOffsetPaddingOuter:e}=r;if(o)return e;if(n===ur.BAND)return H(t,gn(i)?{signal:"".concat(i.signal,"/2")}:i/2)}else if(Ne(e)){if(n===ur.POINT)return.5;if(n===ur.BAND)return r.offsetBandPaddingOuter}}(e,n,i,r,o.scale,a)},reverse:t=>{let{fieldOrDatumDef:e,scaleType:n,channel:i,config:r}=t;return function(t,e,n,i){return"x"===n&&void 0!==i.xReverse?_r(t)&&"descending"===e?gn(i.xReverse)?{signal:"!".concat(i.xReverse.signal)}:!i.xReverse:i.xReverse:!(!_r(t)||"descending"!==e)||void 0}(n,Wo(e)?e.sort:void 0,i,r.scale)},zero:t=>{let{channel:e,fieldOrDatumDef:i,domain:r,markDef:o,scaleType:a}=t;return function(t,e,i,r,o){if(i&&"unaggregated"!==i&&_r(o)){if(n.isArray(i)){const t=i[0],e=i[i.length-1];if(t<=0&&e>=0)return!0}return!1}if("size"===t&&"quantitative"===e.type&&!kr(o))return!0;if((!Wo(e)||!e.bin)&&x([...De,...Ee],t)){const{orient:e,type:n}=r;return!x(["bar","area","line","trail"],n)||!("horizontal"===e&&"y"===t||"vertical"===e&&"x"===t)}return!1}(e,i,r,o,a)}};function dd(t){yd(t)?function(t){const e=t.component.scales;for(const n of Ie){const i=e[n];if(!i)continue;const r=nd(n,t);i.setWithExplicit("range",r)}}(t):hd(t,"range")}function hd(t,e){const n=t.component.scales;for(const n of t.children)"range"===e?dd(n):cd(n,e);for(const i of F(n)){let r;for(const n of t.children){const t=n.component.scales[i];t&&(r=Gl(r,t.getWithExplicit(e),e,"scale",Hl(((t,n)=>"range"===e&&t.step&&n.step?t.step-n.step:0))))}n[i].setWithExplicit(e,r)}}function pd(t,e,n,i){const r=function(t,e,n,i){switch(e.type){case"nominal":case"ordinal":var r;if($t(t)||"discrete"===Xe(t))return"shape"===t&&"ordinal"===e.type&&Mi(di(t,"ordinal")),"ordinal";if(Se(t)||Ne(t)){if(x(["rect","bar","image","rule"],n.type))return"band";if(i)return"band"}else if("arc"===n.type&&t in Me)return"band";return io(n[re(t)])||Ko(e)&&null!==(r=e.axis)&&void 0!==r&&r.tickBand?"band":"point";case"temporal":return $t(t)?"time":"discrete"===Xe(t)?(Mi(di(t,"temporal")),"ordinal"):Wo(e)&&e.timeUnit&&Ii(e.timeUnit).utc?"utc":"time";case"quantitative":return $t(t)?Wo(e)&&sn(e.bin)?"bin-ordinal":"linear":"discrete"===Xe(t)?(Mi(di(t,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(ri(e.type))}(e,n,i,arguments.length>4&&void 0!==arguments[4]&&arguments[4]),{type:o}=t;return We(e)?void 0!==o?function(t,e){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!We(t))return!1;switch(t){case et:case nt:case ot:case at:case ut:case st:return!!wr(e)||"band"===e||"point"===e&&!n;case xt:case At:case _t:case wt:case kt:case bt:return wr(e)||kr(e)||x(["band","point","ordinal"],e);case mt:case gt:case yt:return"band"!==e;case Dt:case vt:return"ordinal"===e||kr(e)}}(e,o)?Wo(n)&&(a=o,s=n.type,!(x([or,sr],s)?void 0===a||br(a):s===ar?x([ur.TIME,ur.UTC,void 0],a):s!==rr||gr(a)||kr(a)||void 0===a))?(Mi(function(t,e){return'FieldDef does not work with "'.concat(t,'" scale. We are using "').concat(e,'" scale instead.')}(o,r)),r):o:(Mi(function(t,e,n){return'Channel "'.concat(t,'" does not work with "').concat(e,'" scale. We are using "').concat(n,'" scale instead.')}(e,o,r)),r):r:null;var a,s}function md(t){yd(t)?t.component.scales=function(t){const{encoding:e,mark:n,markDef:i}=t,r={};for(const a of Ie){const s=ha(e[a]);if(s&&n===Xr&&a===vt&&s.type===lr)continue;let l=s&&s.scale;if(!Ne(a)||Ta(e,ae(a))){if(s&&null!==l&&!1!==l){var o;null!==(o=l)&&void 0!==o||(l={});const n=pd(l,a,s,i,Ta(e,a));r[a]=new ScaleComponent(t.scaleName("".concat(a),!0),{value:n,explicit:l.type===n})}}else l&&Mi(ui(a))}return r}(t):t.component.scales=function(t){const e=t.component.scales={},n={},i=t.component.resolve;for(const e of t.children){md(e);for(const a of F(e.component.scales)){var r,o;if(null!==(o=(r=i.scale)[a])&&void 0!==o||(r[a]=nf(a,t)),"shared"===i.scale[a]){const t=n[a],r=e.component.scales[a].getWithExplicit("type");t?fr(t.value,r.value)?n[a]=Gl(t,r,"type","scale",gd):(i.scale[a]="independent",delete n[a]):n[a]=r}}}for(const i of F(n)){const r=t.scaleName(i,!0),o=n[i];e[i]=new ScaleComponent(r,o);for(const e of t.children){const t=e.component.scales[i];t&&(e.renameScale(t.get("name"),r),t.merged=!0)}}return e}(t)}const gd=Hl(((t,e)=>hr(t)-hr(e)));class NameMap{constructor(){jn(this,"nameMap",void 0),this.nameMap={}}rename(t,e){this.nameMap[t]=e}has(t){return void 0!==this.nameMap[t]}get(t){for(;this.nameMap[t]&&t!==this.nameMap[t];)t=this.nameMap[t];return t}}function yd(t){return"unit"===(null==t?void 0:t.type)}function vd(t){return"facet"===(null==t?void 0:t.type)}function xd(t){return"concat"===(null==t?void 0:t.type)}function bd(t){return"layer"===(null==t?void 0:t.type)}class Model{constructor(t,e,i,r,o,a,s){var l,u;this.type=e,this.parent=i,this.config=o,jn(this,"name",void 0),jn(this,"size",void 0),jn(this,"title",void 0),jn(this,"description",void 0),jn(this,"data",void 0),jn(this,"transforms",void 0),jn(this,"layout",void 0),jn(this,"scaleNameMap",void 0),jn(this,"projectionNameMap",void 0),jn(this,"signalNameMap",void 0),jn(this,"component",void 0),jn(this,"view",void 0),jn(this,"children",void 0),jn(this,"correctDataNames",(t=>{var e,n,i;return null!==(e=t.from)&&void 0!==e&&e.data&&(t.from.data=this.lookupDataSource(t.from.data)),null!==(n=t.from)&&void 0!==n&&null!==(i=n.facet)&&void 0!==i&&i.data&&(t.from.facet.data=this.lookupDataSource(t.from.facet.data)),t})),this.parent=i,this.config=o,this.view=hn(s),this.name=null!==(l=t.name)&&void 0!==l?l:r,this.title=mn(t.title)?{text:t.title}:t.title?hn(t.title):void 0,this.scaleNameMap=i?i.scaleNameMap:new NameMap,this.projectionNameMap=i?i.projectionNameMap:new NameMap,this.signalNameMap=i?i.signalNameMap:new NameMap,this.data=t.data,this.description=t.description,this.transforms=(null!==(u=t.transform)&&void 0!==u?u:[]).map((t=>hl(t)?{filter:c(t.filter,er)}:t)),this.layout="layer"===e||"unit"===e?{}:function(t,e,i){const r=i[e],o={},{spacing:a,columns:s}=r;void 0!==a&&(o.spacing=a),void 0!==s&&(Po(t)&&!zo(t.facet)||As(t))&&(o.columns=s),Ds(t)&&(o.columns=1);for(const e of Fs)if(void 0!==t[e])if("spacing"===e){var l,u;const i=t[e];o[e]=n.isNumber(i)?i:{row:null!==(l=i.row)&&void 0!==l?l:a,column:null!==(u=i.column)&&void 0!==u?u:a}}else o[e]=t[e];return o}(t,e,o),this.component={data:{sources:i?i.component.data.sources:[],outputNodes:i?i.component.data.outputNodes:{},outputNodeRefCounts:i?i.component.data.outputNodeRefCounts:{},isFaceted:Po(t)||(null==i?void 0:i.component.data.isFaceted)&&void 0===t.data},layoutSize:new Split,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...a?d(a):{}},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(t){let{ignoreRange:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};md(t),Uf(t);for(const e of Or)cd(t,e);e||dd(t)}(this)}parseProjection(){kf(this)}renameTopLevelLayoutSizeSignal(){"width"!==this.getName("width")&&this.renameSignal(this.getName("width"),"width"),"height"!==this.getName("height")&&this.renameSignal(this.getName("height"),"height")}parseLegends(){mf(this)}assembleEncodeFromView(t){const{style:e,...n}=t,i={};for(const t of F(n)){const e=n[t];void 0!==e&&(i[t]=Dn(e))}return i}assembleGroupEncodeEntry(t){let e={};var n;return this.view&&(e=this.assembleEncodeFromView(this.view)),t||(this.description&&(e.description=Dn(this.description)),"unit"!==this.type&&"layer"!==this.type)?C(e)?void 0:e:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...null!==(n=e)&&void 0!==n?n:{}}}assembleLayout(){if(!this.layout)return;const{spacing:t,...e}=this.layout,{component:n,config:i}=this,r=function(t,e){const n={};for(const i of Ut){const r=t[i];if(null!=r&&r.facetFieldDef){const{titleAnchor:t,titleOrient:o}=Bc(["titleAnchor","titleOrient"],r.facetFieldDef.header,e,i),a=Pc(i,o),s=Yc(t,a);void 0!==s&&(n[a]=s)}}return C(n)?void 0:n}(n.layoutHeaders,i);return{padding:t,...this.assembleDefaultLayout(),...e,...r?{titleBand:r}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:t}=this.component;let e=[];for(const n of Ut)t[n].title&&e.push(Lc(this,n));for(const t of jc)e=e.concat(Ic(this,t));return e}assembleAxes(){return function(t,e){const{x:n=[],y:i=[]}=t;return[...n.map((t=>Ac(t,"grid",e))),...i.map((t=>Ac(t,"grid",e))),...n.map((t=>Ac(t,"main",e))),...i.map((t=>Ac(t,"main",e)))].filter((t=>t))}(this.component.axes,this.config)}assembleLegends(){return xf(this)}assembleProjections(){return bf(this)}assembleTitle(){var t;const{encoding:e,...n}=null!==(t=this.title)&&void 0!==t?t:{},i={...pn(this.config.title).nonMarkTitleProperties,...n,...e?{encode:{update:e}}:{}};var r,o;if(i.text)return x(["unit","layer"],this.type)?x(["middle",void 0],i.anchor)&&(null!==(r=i.frame)&&void 0!==r||(i.frame="group")):null!==(o=i.anchor)&&void 0!==o||(i.anchor="start"),C(i)?void 0:i}assembleGroup(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e={};t=t.concat(this.assembleSignals()),t.length>0&&(e.signals=t);const n=this.assembleLayout();n&&(e.layout=n),e.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||vd(this.parent)?Zf(this):[];i.length>0&&(e.scales=i);const r=this.assembleAxes();r.length>0&&(e.axes=r);const o=this.assembleLegends();return o.length>0&&(e.legends=o),e}getName(t){return T((this.name?"".concat(this.name,"_"):"")+t)}getDataName(t){return this.getName(eu[t].toLowerCase())}requestDataName(t){const e=this.getDataName(t),n=this.component.data.outputNodeRefCounts;return n[e]=(n[e]||0)+1,e}getSizeSignalRef(t){if(vd(this.parent)){const e=Ce(tf(t)),n=this.component.scales[e];if(n&&!n.merged){const t=n.get("type"),i=n.get("range");if(br(t)&&yn(i)){const t=n.get("name"),i=Jf(Qf(this,e));return i?{signal:Kc(t,n,ia({aggregate:"distinct",field:i},{expr:"datum"}))}:(Mi(Gn(e)),null)}}}return{signal:this.signalNameMap.get(this.getName(t))}}lookupDataSource(t){const e=this.component.data.outputNodes[t];return e?e.getSource():t}getSignalName(t){return this.signalNameMap.get(t)}renameSignal(t,e){this.signalNameMap.rename(t,e)}renameScale(t,e){this.scaleNameMap.rename(t,e)}renameProjection(t,e){this.projectionNameMap.rename(t,e)}scaleName(t,e){return e?this.getName(t):Zt(t)&&We(t)&&this.component.scales[t]||this.scaleNameMap.has(this.getName(t))?this.scaleNameMap.get(this.getName(t)):void 0}projectionName(t){return t?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(t){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const e=this.component.scales[t];return e&&!e.merged?e:this.parent?this.parent.getScaleComponent(t):void 0}getSelectionComponent(t,e){let n=this.component.selection[t];if(!n&&this.parent&&(n=this.parent.getSelectionComponent(t,e)),!n)throw new Error('Cannot find a selection named "'.concat(e,'".'));return n}hasAxisOrientSignalRef(){var t,e;return(null===(t=this.component.axes.x)||void 0===t?void 0:t.some((t=>t.hasOrientSignalRef())))||(null===(e=this.component.axes.y)||void 0===e?void 0:e.some((t=>t.hasOrientSignalRef())))}}class ModelWithField extends Model{vgField(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.fieldDef(t);if(n)return ia(n,e)}reduceFieldDef(t,e){return function(t,e,i,r){return t?F(t).reduce(((i,o)=>{const a=t[o];return n.isArray(a)?a.reduce(((t,n)=>e.call(r,t,n,o)),i):e.call(r,i,a,o)}),i):i}(this.getMapping(),((e,n,i)=>{const r=da(n);return r?t(e,r,i):e}),e)}forEachFieldDef(t,e){La(this.getMapping(),((e,n)=>{const i=da(e);i&&t(i,n)}),e)}}class DensityTransformNode extends DataFlowNode{clone(){return new DensityTransformNode(null,d(this.transform))}constructor(t,e){var n,i,r;super(t),this.transform=e,this.transform=d(e);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"],e.groupby&&null==e.minsteps&&null==e.maxsteps&&null==e.steps&&(this.transform.steps=200)}dependentFields(){var t;return new Set([this.transform.density,...null!==(t=this.transform.groupby)&&void 0!==t?t:[]])}producedFields(){return new Set(this.transform.as)}hash(){return"DensityTransform ".concat(y(this.transform))}assemble(){const{density:t,...e}=this.transform;return{type:"kde",field:t,...e}}}class FilterInvalidNode extends DataFlowNode{clone(){return new FilterInvalidNode(null,{...this.filter})}constructor(t,e){super(t),this.filter=e}static make(t,e){const{config:n,mark:i,markDef:r}=e;if("filter"!==Fn("invalid",r,n))return null;const o=e.reduceFieldDef(((t,n,r)=>{const o=We(r)&&e.getScaleComponent(r);return o&&_r(o.get("type"))&&"count"!==n.aggregate&&!Jr(i)&&(t[n.field]=n),t}),{});return F(o).length?new FilterInvalidNode(t,o):null}dependentFields(){return new Set(F(this.filter))}producedFields(){return new Set}hash(){return"FilterInvalid ".concat(y(this.filter))}assemble(){const t=F(this.filter).reduce(((t,e)=>{const n=this.filter[e],i=ia(n,{expr:"datum"});return null!==n&&("temporal"===n.type?t.push("(isDate(".concat(i,") || (isValid(").concat(i,") && isFinite(+").concat(i,")))")):"quantitative"===n.type&&(t.push("isValid(".concat(i,")")),t.push("isFinite(+".concat(i,")")))),t}),[]);return t.length>0?{type:"filter",expr:t.join(" && ")}:null}}class FlattenTransformNode extends DataFlowNode{clone(){return new FlattenTransformNode(this.parent,d(this.transform))}constructor(t,e){super(t),this.transform=e,this.transform=d(e);const{flatten:n,as:i=[]}=this.transform;this.transform.as=n.map(((t,e)=>{var n;return null!==(n=i[e])&&void 0!==n?n:t}))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return"FlattenTransform ".concat(y(this.transform))}assemble(){const{flatten:t,as:e}=this.transform;return{type:"flatten",fields:t,as:e}}}class FoldTransformNode extends DataFlowNode{clone(){return new FoldTransformNode(null,d(this.transform))}constructor(t,e){var n,i,r;super(t),this.transform=e,this.transform=d(e);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"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return"FoldTransform ".concat(y(this.transform))}assemble(){const{fold:t,as:e}=this.transform;return{type:"fold",fields:t,as:e}}}class GeoJSONNode extends DataFlowNode{clone(){return new GeoJSONNode(null,d(this.fields),this.geojson,this.signal)}static parseAll(t,e){if(e.component.projection&&!e.component.projection.isFit)return t;let n=0;for(const i of[[dt,ft],[pt,ht]]){const r=i.map((t=>{const n=ha(e.encoding[t]);return Wo(n)?n.field:Vo(n)?{expr:"".concat(n.datum)}:Qo(n)?{expr:"".concat(n.value)}:void 0}));(r[0]||r[1])&&(t=new GeoJSONNode(t,r,null,e.getName("geojson_".concat(n++))))}if(e.channelHasField(vt)){const i=e.typedFieldDef(vt);i.type===lr&&(t=new GeoJSONNode(t,null,i.field,e.getName("geojson_".concat(n++))))}return t}constructor(t,e,n,i){super(t),this.fields=e,this.geojson=n,this.signal=i}dependentFields(){var t;const e=(null!==(t=this.fields)&&void 0!==t?t:[]).filter(n.isString);return new Set([...this.geojson?[this.geojson]:[],...e])}producedFields(){return new Set}hash(){return"GeoJSON ".concat(this.geojson," ").concat(this.signal," ").concat(y(this.fields))}assemble(){return[...this.geojson?[{type:"filter",expr:'isValid(datum["'.concat(this.geojson,'"])')}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class GeoPointNode extends DataFlowNode{clone(){return new GeoPointNode(null,this.projection,d(this.fields),d(this.as))}constructor(t,e,n,i){super(t),this.projection=e,this.fields=n,this.as=i}static parseAll(t,e){if(!e.projectionName())return t;for(const n of[[dt,ft],[pt,ht]]){const i=n.map((t=>{const n=ha(e.encoding[t]);return Wo(n)?n.field:Vo(n)?{expr:"".concat(n.datum)}:Qo(n)?{expr:"".concat(n.value)}:void 0})),r=n[0]===pt?"2":"";(i[0]||i[1])&&(t=new GeoPointNode(t,e.projectionName(),i,[e.getName("x".concat(r)),e.getName("y".concat(r))]))}return t}dependentFields(){return new Set(this.fields.filter(n.isString))}producedFields(){return new Set(this.as)}hash(){return"Geopoint ".concat(this.projection," ").concat(y(this.fields)," ").concat(y(this.as))}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class ImputeNode extends DataFlowNode{clone(){return new ImputeNode(null,d(this.transform))}constructor(t,e){super(t),this.transform=e}dependentFields(){var t;return new Set([this.transform.impute,this.transform.key,...null!==(t=this.transform.groupby)&&void 0!==t?t:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(t){const{start:e=0,stop:n,step:i}=t,r=[e,n,...i?[i]:[]].join(",");return{signal:"sequence(".concat(r,")")}}static makeFromTransform(t,e){return new ImputeNode(t,e)}static makeFromEncoding(t,e){const n=e.encoding,i=n.x,r=n.y;if(Wo(i)&&Wo(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:l,frame:u,keyvals:c}=o.impute,f=Ua(e.mark,n);return new ImputeNode(t,{impute:o.field,key:a.field,...s?{method:s}:{},...void 0!==l?{value:l}:{},...u?{frame:u}:{},...void 0!==c?{keyvals:c}:{},...f.length?{groupby:f}:{}})}return null}hash(){return"Impute ".concat(y(this.transform))}assemble(){const{impute:t,key:e,keyvals:n,method:i,groupby:r,value:o,frame:a=[null,null]}=this.transform,s={type:"impute",field:t,key:e,...n?{keyvals:(l=n,void 0!==(null==l?void 0:l.stop)?this.processSequence(n):n)}:{},method:"value",...r?{groupby:r}:{},value:i&&"value"!==i?null:o};var l;return i&&"value"!==i?[s,{type:"window",as:["imputed_".concat(t,"_value")],ops:[i],fields:[t],frame:a,ignorePeers:!1,...r?{groupby:r}:{}},{type:"formula",expr:"datum.".concat(t," === null ? datum.imputed_").concat(t,"_value : datum.").concat(t),as:t}]:[s]}}class LoessTransformNode extends DataFlowNode{clone(){return new LoessTransformNode(null,d(this.transform))}constructor(t,e){var n,i,r;super(t),this.transform=e,this.transform=d(e);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:e.on,null!==(r=o[1])&&void 0!==r?r:e.loess]}dependentFields(){var t;return new Set([this.transform.loess,this.transform.on,...null!==(t=this.transform.groupby)&&void 0!==t?t:[]])}producedFields(){return new Set(this.transform.as)}hash(){return"LoessTransform ".concat(y(this.transform))}assemble(){const{loess:t,on:e,...n}=this.transform;return{type:"loess",x:e,y:t,...n}}}class LookupNode extends DataFlowNode{clone(){return new LookupNode(null,d(this.transform),this.secondary)}constructor(t,e,n){super(t),this.transform=e,this.secondary=n}static make(t,e,n,i){const r=e.component.data.sources,{from:o}=n;let a=null;if(function(t){return"data"in t}(o)){let t=Fd(o.data,r);t||(t=new SourceNode(o.data),r.push(t));const n=e.getName("lookup_".concat(i));a=new OutputNode(t,n,eu.Lookup,e.component.data.outputNodeRefCounts),e.component.data.outputNodes[n]=a}else if(function(t){return"param"in t}(o)){const t=o.param;let i;n={as:t,...n};try{i=e.getSelectionComponent(T(t),t)}catch(e){throw new Error('Lookups can only be performed on selection parameters. "'.concat(t,'" is a variable parameter.'))}if(a=i.materialized,!a)throw new Error(function(t){return'Cannot define and lookup the "'.concat(t,'" selection in the same view. ')+"Try moving the lookup into a second, layered view?"}(t))}return new LookupNode(t,n,a.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?n.array(this.transform.as):this.transform.from.fields)}hash(){return"Lookup ".concat(y({transform:this.transform,secondary:this.secondary}))}assemble(){let t;if(this.transform.from.fields)t={values:this.transform.from.fields,...this.transform.as?{as:n.array(this.transform.as)}:{}};else{let e=this.transform.as;n.isString(e)||(Mi('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.'),e="_lookup"),t={as:[e]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...t,...this.transform.default?{default:this.transform.default}:{}}}}class QuantileTransformNode extends DataFlowNode{clone(){return new QuantileTransformNode(null,d(this.transform))}constructor(t,e){var n,i,r;super(t),this.transform=e,this.transform=d(e);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"]}dependentFields(){var t;return new Set([this.transform.quantile,...null!==(t=this.transform.groupby)&&void 0!==t?t:[]])}producedFields(){return new Set(this.transform.as)}hash(){return"QuantileTransform ".concat(y(this.transform))}assemble(){const{quantile:t,...e}=this.transform;return{type:"quantile",field:t,...e}}}class RegressionTransformNode extends DataFlowNode{clone(){return new RegressionTransformNode(null,d(this.transform))}constructor(t,e){var n,i,r;super(t),this.transform=e,this.transform=d(e);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:e.on,null!==(r=o[1])&&void 0!==r?r:e.regression]}dependentFields(){var t;return new Set([this.transform.regression,this.transform.on,...null!==(t=this.transform.groupby)&&void 0!==t?t:[]])}producedFields(){return new Set(this.transform.as)}hash(){return"RegressionTransform ".concat(y(this.transform))}assemble(){const{regression:t,on:e,...n}=this.transform;return{type:"regression",x:e,y:t,...n}}}class PivotTransformNode extends DataFlowNode{clone(){return new PivotTransformNode(null,d(this.transform))}constructor(t,e){super(t),this.transform=e}addDimensions(t){var e;this.transform.groupby=A((null!==(e=this.transform.groupby)&&void 0!==e?e:[]).concat(t),(t=>t))}producedFields(){}dependentFields(){var t;return new Set([this.transform.pivot,this.transform.value,...null!==(t=this.transform.groupby)&&void 0!==t?t:[]])}hash(){return"PivotTransform ".concat(y(this.transform))}assemble(){const{pivot:t,value:e,groupby:n,limit:i,op:r}=this.transform;return{type:"pivot",field:t,value:e,...void 0!==i?{limit:i}:{},...void 0!==r?{op:r}:{},...void 0!==n?{groupby:n}:{}}}}class SampleTransformNode extends DataFlowNode{clone(){return new SampleTransformNode(null,d(this.transform))}constructor(t,e){super(t),this.transform=e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return"SampleTransform ".concat(y(this.transform))}assemble(){return{type:"sample",size:this.transform.sample}}}function _d(t){let e=0;return function n(i,r){var o;if(i instanceof SourceNode&&!i.isGenerator&&!Yl(i.data)&&(t.push(r),r={name:null,source:r.name,transform:[]}),i instanceof ParseNode&&(i.parent instanceof SourceNode&&!r.source?(r.format={...null!==(o=r.format)&&void 0!==o?o:{},parse:i.assembleFormatParse()},r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof FacetNode)return r.name||(r.name="data_".concat(e++)),!r.source||r.transform.length>0?(t.push(r),i.data=r.name):i.data=r.source,void t.push(...i.assemble());switch((i instanceof GraticuleNode||i instanceof SequenceNode||i instanceof FilterInvalidNode||i instanceof FilterNode||i instanceof CalculateNode||i instanceof GeoPointNode||i instanceof AggregateNode||i instanceof LookupNode||i instanceof WindowTransformNode||i instanceof JoinAggregateTransformNode||i instanceof FoldTransformNode||i instanceof FlattenTransformNode||i instanceof DensityTransformNode||i instanceof LoessTransformNode||i instanceof QuantileTransformNode||i instanceof RegressionTransformNode||i instanceof IdentifierNode||i instanceof SampleTransformNode||i instanceof PivotTransformNode)&&r.transform.push(i.assemble()),(i instanceof BinNode||i instanceof TimeUnitNode||i instanceof ImputeNode||i instanceof StackNode||i instanceof GeoJSONNode)&&r.transform.push(...i.assemble()),i instanceof OutputNode&&(r.source&&0===r.transform.length?i.setSource(r.source):i.parent instanceof OutputNode?i.setSource(r.name):(r.name||(r.name="data_".concat(e++)),i.setSource(r.name),1===i.numChildren()&&(t.push(r),r={name:null,source:r.name,transform:[]}))),i.numChildren()){case 0:i instanceof OutputNode&&(!r.source||r.transform.length>0)&&t.push(r);break;case 1:n(i.children[0],r);break;default:{r.name||(r.name="data_".concat(e++));let o=r.name;!r.source||r.transform.length>0?t.push(r):o=r.source;for(const t of i.children)n(t,{name:null,source:o,transform:[]});break}}}}function wd(t){return"top"===t||"left"===t||gn(t)?"header":"footer"}function kd(t,e){const{facet:i,config:r,child:o,component:a}=t;if(t.channelHasField(e)){var s;const l=i[e],u=Rc("title",null,r,e);let c=la(l,r,{allowDisabling:!0,includeDefault:void 0===u||!!u});o.component.layoutHeaders[e].title&&(c=n.isArray(c)?c.join(", "):c,c+=" / ".concat(o.component.layoutHeaders[e].title),o.component.layoutHeaders[e].title=null);const f=Rc("labelOrient",l.header,r,e),d=null!==l.header&&H(null===(s=l.header)||void 0===s?void 0:s.labels,r.header.labels,!0),h=x(["bottom","right"],f)?"footer":"header";a.layoutHeaders[e]={title:null!==l.header?c:null,facetFieldDef:l,[h]:"facet"===e?[]:[Ad(t,e,d)]}}}function Ad(t,e,n){const i="row"===e?"height":"width";return{labels:n,sizeSignal:t.child.component.layoutSize.get(i)?t.child.getSizeSignalRef(i):void 0,axes:[]}}function Dd(t,e){const{child:n}=t;if(n.component.axes[e]){const{layoutHeaders:r,resolve:o}=t.component;if(o.axis[e]=rf(o,e),"shared"===o.axis[e]){const o="x"===e?"column":"row",a=r[o];for(const r of n.component.axes[e]){var i;const e=wd(r.get("orient"));null!==(i=a[e])&&void 0!==i||(a[e]=[Ad(t,o,!1)]);const n=Ac(r,"main",t.config,{header:!0});n&&a[e][0].axes.push(n),r.mainExtracted=!0}}}}function Sd(t){for(const e of t.children)e.parseLayoutSize()}function Md(t,e){const n=tf(e),i=Ce(n),r=t.component.resolve,o=t.component.layoutSize;let a;for(const e of t.children){var s;const o=e.component.layoutSize.getWithExplicit(n),l=null!==(s=r.scale[i])&&void 0!==s?s:nf(i,t);if("independent"===l&&"step"===o.value){a=void 0;break}if(a){if("independent"===l&&a.value!==o.value){a=void 0;break}a=Gl(a,o,n,"")}else a=o}if(a){for(const i of t.children)t.renameSignal(i.getName(n),t.getName(e)),i.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(e,a)}else o.setWithExplicit(e,{explicit:!1,value:void 0})}function Ed(t,e){const n="width"===e?"x":"y",i=t.config,r=t.getScaleComponent(n);if(r){const t=r.get("type"),n=r.get("range");if(br(t)){const t=zs(i.view,e);return yn(n)||Es(t)?"step":t}return Ns(i.view,e)}if(t.hasProjection||"arc"===t.mark)return Ns(i.view,e);{const t=zs(i.view,e);return Es(t)?t.step:t}}function Cd(t,e,n){return ia(e,{suffix:"by_".concat(ia(t)),...null!=n?n:{}})}class FacetModel extends ModelWithField{constructor(t,e,n,i){super(t,"facet",e,n,i,t.resolve),jn(this,"facet",void 0),jn(this,"child",void 0),jn(this,"children",void 0),this.child=Qd(t.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(t.facet)}initFacet(t){if(!zo(t))return{facet:this.initFacetFieldDef(t,"facet")};const e=F(t),n={};for(const i of e){if(![Z,K].includes(i)){Mi(li(i,"facet"));break}const e=t[i];if(void 0===e.field){Mi(ai(e,i));break}n[i]=this.initFacetFieldDef(e,i)}return n}initFacetFieldDef(t,e){const n=ga(t,e);return n.header?n.header=hn(n.header):null===n.header&&(n.header=null),n}channelHasField(t){return!!this.facet[t]}fieldDef(t){return this.facet[t]}parseData(){this.component.data=Nd(this),this.child.parseData()}parseLayoutSize(){Sd(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(t){for(const e of Ut)kd(t,e);Dd(t,"x"),Dd(t,"y")}(this)}assembleSelectionTopLevelSignals(t){return this.child.assembleSelectionTopLevelSignals(t)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(t){return this.child.assembleSelectionData(t)}getHeaderLayoutMixins(){const t={};for(const r of Ut)for(const o of $c){const a=this.component.layoutHeaders[r],s=a[o],{facetFieldDef:l}=a;if(l){const n=Rc("titleOrient",l.header,this.config,r);if(["right","bottom"].includes(n)){var e;const i=Pc(r,n);null!==(e=t.titleAnchor)&&void 0!==e||(t.titleAnchor={}),t.titleAnchor[i]="end"}}if(null!=s&&s[0]){const e="row"===r?"height":"width",s="header"===o?"headerBand":"footerBand";var n,i;"facet"===r||this.child.component.layoutSize.get(e)||(null!==(n=t[s])&&void 0!==n||(t[s]={}),t[s][r]=.5),a.title&&(null!==(i=t.offset)&&void 0!==i||(t.offset={}),t.offset["row"===r?"rowTitle":"columnTitle"]=10)}}return t}assembleDefaultLayout(){const{column:t,row:e}=this.facet,n=t?this.columnDistinctSignal():e?1:void 0;let i="all";return(e||"independent"!==this.component.resolve.scale.x)&&(t||"independent"!==this.component.resolve.scale.y)||(i="none"),{...this.getHeaderLayoutMixins(),...n?{columns:n}:{},bounds:"full",align:i}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof FacetModel)){const t=this.getName("column_domain");return{signal:"length(data('".concat(t,"'))")}}}assembleGroupStyle(){}assembleGroup(t){return this.parent&&this.parent instanceof FacetModel?{...this.channelHasField("column")?{encode:{update:{columns:{field:ia(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(t)}:super.assembleGroup(t)}getCardinalityAggregateForChild(){const t=[],e=[],n=[];if(this.child instanceof FacetModel){if(this.child.channelHasField("column")){const i=ia(this.child.facet.column);t.push(i),e.push("distinct"),n.push("distinct_".concat(i))}}else for(const i of De){const r=this.child.component.scales[i];if(r&&!r.merged){const o=r.get("type"),a=r.get("range");if(br(o)&&yn(a)){const r=Jf(Qf(this.child,i));r?(t.push(r),e.push("distinct"),n.push("distinct_".concat(r))):Mi(Gn(i))}}}return{fields:t,ops:e,as:n}}assembleFacet(){const{name:t,data:e}=this.component.data.facetRoot,{row:i,column:r}=this.facet,{fields:o,ops:a,as:s}=this.getCardinalityAggregateForChild(),l=[];for(const t of Ut){const e=this.facet[t];if(e){l.push(ia(e));const{bin:u,sort:c}=e;if(sn(u)&&l.push(ia(e,{binSuffix:"end"})),No(c)){const{field:t,op:n=Mo}=c,l=Cd(e,c);i&&r?(o.push(l),a.push("max"),s.push(l)):(o.push(t),a.push(n),s.push(l))}else if(n.isArray(c)){const n=Tc(e,t);o.push(n),a.push("max"),s.push(n)}}}const u=!!i&&!!r;return{name:t,data:e,groupby:l,...u||o.length>0?{aggregate:{...u?{cross:u}:{},...o.length?{fields:o,ops:a,as:s}:{}}}:{}}}facetSortFields(t){const{facet:e}=this,i=e[t];return i?No(i.sort)?[Cd(i,i.sort,{expr:"datum"})]:n.isArray(i.sort)?[Tc(i,t,{expr:"datum"})]:[ia(i,{expr:"datum"})]:[]}facetSortOrder(t){const{facet:e}=this,i=e[t];if(i){const{sort:t}=i;return[(No(t)?t.order:!n.isArray(t)&&t)||"ascending"]}return[]}assembleLabelTitle(){const{facet:t,config:e}=this;if(t.facet)return Hc(t.facet,"facet",e);const n={row:["top","bottom"],column:["left","right"]};for(const r of jc)if(t[r]){var i;const o=Rc("labelOrient",null===(i=t[r])||void 0===i?void 0:i.header,e,r);if(n[r].includes(o))return Hc(t[r],r,e)}}assembleMarks(){const{child:t}=this,e=function(t){const e=[],n=_d(e);for(const e of t.children)n(e,{source:t.name,name:null,transform:[]});return e}(this.component.data.facetRoot),n=t.assembleGroupEncodeEntry(!1),i=this.assembleLabelTitle()||t.assembleTitle(),r=t.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...i?{title:i}:{},...r?{style:r}:{},from:{facet:this.assembleFacet()},sort:{field:Ut.map((t=>this.facetSortFields(t))).flat(),order:Ut.map((t=>this.facetSortOrder(t))).flat()},...e.length>0?{data:e}:{},...n?{encode:{update:n}}:{},...t.assembleGroup(ru(this,[]))}]}getMapping(){return this.facet}}function Fd(t,e){for(const a of e){var n,i,r,o;const e=a.data;if(t.name&&a.hasName()&&t.name!==a.dataName)continue;const s=null===(n=t.format)||void 0===n?void 0:n.mesh,l=null===(i=e.format)||void 0===i?void 0:i.feature;if(s&&l)continue;const u=null===(r=t.format)||void 0===r?void 0:r.feature;if((u||l)&&u!==l)continue;const c=null===(o=e.format)||void 0===o?void 0:o.mesh;if(!s&&!c||s===c)if(Xl(t)&&Xl(e)){if(f(t.values,e.values))return a}else if(Yl(t)&&Yl(e)){if(t.url===e.url)return a}else if(Jl(t)&&t.name===a.dataName)return a}return null}function Nd(t){var e,n,i;let r=function(t,e){if(t.data||!t.parent){if(null===t.data){const t=new SourceNode({values:[]});return e.push(t),t}const n=Fd(t.data,e);if(n)return Ql(t.data)||(n.data.format=w({},t.data.format,n.data.format)),!n.hasName()&&t.data.name&&(n.dataName=t.data.name),n;{const n=new SourceNode(t.data);return e.push(n),n}}return t.parent.component.data.facetRoot?t.parent.component.data.facetRoot:t.parent.component.data.main}(t,t.component.data.sources);const{outputNodes:o,outputNodeRefCounts:a}=t.component.data,s=t.data,l=s&&(Ql(s)||Yl(s)||Xl(s))||!t.parent?new AncestorParse:t.parent.component.data.ancestorParse.clone();Ql(s)?(Zl(s)?r=new SequenceNode(r,s.sequence):tu(s)&&(r=new GraticuleNode(r,s.graticule)),l.parseNothing=!0):null===(null==s||null===(e=s.format)||void 0===e?void 0:e.parse)&&(l.parseNothing=!0),r=null!==(n=ParseNode.makeExplicit(r,t,l))&&void 0!==n?n:r,r=new IdentifierNode(r);const u=t.parent&&bd(t.parent);var c;(yd(t)||vd(t))&&u&&(r=null!==(c=BinNode.makeFromEncoding(r,t))&&void 0!==c?c:r),t.transforms.length>0&&(r=function(t,e,n){let i=0;for(const a of e.transforms){let s,l;if(Al(a))l=t=new CalculateNode(t,a),s="derived";else if(hl(a)){var r;const i=Ff(a);l=t=null!==(r=ParseNode.makeWithAncestors(t,{},i,n))&&void 0!==r?r:t,t=new FilterNode(t,e,a.filter)}else if(Dl(a))l=t=BinNode.makeFromTransform(t,a,e),s="number";else if(Ml(a))s="date",void 0===n.getWithExplicit(a.field).value&&(t=new ParseNode(t,{[a.field]:s}),n.set(a.field,s,!1)),l=t=TimeUnitNode.makeFromTransform(t,a);else if(El(a))l=t=AggregateNode.makeFromTransform(t,a),s="number",mc(e)&&(t=new IdentifierNode(t));else if(pl(a))l=t=LookupNode.make(t,e,a,i++),s="derived";else if(_l(a))l=t=new WindowTransformNode(t,a),s="number";else if(wl(a))l=t=new JoinAggregateTransformNode(t,a),s="number";else if(Cl(a))l=t=StackNode.makeFromTransform(t,a),s="derived";else if(Fl(a))l=t=new FoldTransformNode(t,a),s="derived";else if(kl(a))l=t=new FlattenTransformNode(t,a),s="derived";else if(ml(a))l=t=new PivotTransformNode(t,a),s="derived";else if(bl(a))t=new SampleTransformNode(t,a);else if(Sl(a))l=t=ImputeNode.makeFromTransform(t,a),s="derived";else if(gl(a))l=t=new DensityTransformNode(t,a),s="derived";else if(yl(a))l=t=new QuantileTransformNode(t,a),s="derived";else if(vl(a))l=t=new RegressionTransformNode(t,a),s="derived";else{if(!xl(a)){Mi("Ignoring an invalid transform: ".concat(g(a),"."));continue}l=t=new LoessTransformNode(t,a),s="derived"}if(l&&void 0!==s)for(const t of null!==(o=l.producedFields())&&void 0!==o?o:[]){var o;n.set(t,s,!1)}}return t}(r,t,l));const f=function(t){const e={};if(yd(t)&&t.component.selection)for(const n of F(t.component.selection)){const i=t.component.selection[n];for(const t of i.project.items)!t.channel&&W(t.field)>1&&(e[t.field]="flatten")}return e}(t),d=Nf(t);var h,p;r=null!==(i=ParseNode.makeWithAncestors(r,{},{...f,...d},l))&&void 0!==i?i:r,yd(t)&&(r=GeoJSONNode.parseAll(r,t),r=GeoPointNode.parseAll(r,t)),(yd(t)||vd(t))&&(u||(r=null!==(p=BinNode.makeFromEncoding(r,t))&&void 0!==p?p:r),r=null!==(h=TimeUnitNode.makeFromEncoding(r,t))&&void 0!==h?h:r,r=CalculateNode.parseAllForSortIndex(r,t));const m=t.getDataName(eu.Raw),y=new OutputNode(r,m,eu.Raw,a);if(o[m]=y,r=y,yd(t)){var v,x;const e=AggregateNode.makeFromEncoding(r,t);e&&(r=e,mc(t)&&(r=new IdentifierNode(r))),r=null!==(v=ImputeNode.makeFromEncoding(r,t))&&void 0!==v?v:r,r=null!==(x=StackNode.makeFromEncoding(r,t))&&void 0!==x?x:r}var b;yd(t)&&(r=null!==(b=FilterInvalidNode.make(r,t))&&void 0!==b?b:r);const _=t.getDataName(eu.Main),k=new OutputNode(r,_,eu.Main,a);o[_]=k,r=k,yd(t)&&function(t,e){for(const[i,r]of O(null!==(n=t.component.selection)&&void 0!==n?n:{})){var n;const o=t.getName("lookup_".concat(i));t.component.data.outputNodes[o]=r.materialized=new OutputNode(new FilterNode(e,t,{param:i}),o,eu.Lookup,t.component.data.outputNodeRefCounts)}}(t,k);let A=null;if(vd(t)){var D;const e=t.getName("facet");r=null!==(D=function(t,e){const{row:n,column:i}=e;if(n&&i){let e=null;for(const r of[n,i])if(No(r.sort)){const{field:n,op:i=Mo}=r.sort;t=e=new JoinAggregateTransformNode(t,{joinaggregate:[{op:i,field:n,as:Cd(r,r.sort,{forAs:!0})}],groupby:[ia(r)]})}return e}return null}(r,t.facet))&&void 0!==D?D:r,A=new FacetNode(r,t,e,k.getSource()),o[e]=A}return{...t.component.data,outputNodes:o,outputNodeRefCounts:a,raw:y,main:k,facetRoot:A,ancestorParse:l}}class ConcatModel extends Model{constructor(t,e,n,i){var r,o,a,s;super(t,"concat",e,n,i,t.resolve),jn(this,"children",void 0),"shared"!==(null===(r=t.resolve)||void 0===r||null===(o=r.axis)||void 0===o?void 0:o.x)&&"shared"!==(null===(a=t.resolve)||void 0===a||null===(s=a.axis)||void 0===s?void 0:s.y)||Mi("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(t).map(((t,e)=>Qd(t,this,this.getName("concat_".concat(e)),void 0,i)))}parseData(){this.component.data=Nd(this);for(const t of this.children)t.parseData()}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const e of F(t.component.selection))this.component.selection[e]=t.component.selection[e]}}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){for(const t of this.children)t.parseAxesAndHeaders()}getChildren(t){return Ds(t)?t.vconcat:Ss(t)?t.hconcat:t.concat}parseLayoutSize(){!function(t){Sd(t);const e=1===t.layout.columns?"width":"childWidth",n=void 0===t.layout.columns?"height":"childHeight";Md(t,e),Md(t,n)}(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(t){return this.children.reduce(((t,e)=>e.assembleSelectionTopLevelSignals(t)),t)}assembleSignals(){return this.children.forEach((t=>t.assembleSignals())),[]}assembleLayoutSignals(){const t=Jc(this);for(const e of this.children)t.push(...e.assembleLayoutSignals());return t}assembleSelectionData(t){return this.children.reduce(((t,e)=>e.assembleSelectionData(t)),t)}assembleMarks(){return this.children.map((t=>{const e=t.assembleTitle(),n=t.assembleGroupStyle(),i=t.assembleGroupEncodeEntry(!1);return{type:"group",name:t.getName("group"),...e?{title:e}:{},...n?{style:n}:{},...i?{encode:{update:i}}:{},...t.assembleGroup()}}))}assembleGroupStyle(){}assembleDefaultLayout(){const t=this.layout.columns;return{...null!=t?{columns:t}:{},bounds:"full",align:"each"}}}const Od={disable:1,gridScale:1,scale:1,...Ma,labelExpr:1,encode:1},zd=F(Od);class AxisComponent extends Split{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];super(),this.explicit=t,this.implicit=e,this.mainExtracted=n}clone(){return new AxisComponent(d(this.explicit),d(this.implicit),this.mainExtracted)}hasAxisPart(t){return!("axis"!==t&&("grid"===t||"title"===t?!this.get(t):(e=this.get(t),!1===e||null===e)));var e}hasOrientSignalRef(){return gn(this.explicit.orient)}}const Td={bottom:"top",top:"bottom",left:"right",right:"left"};function Pd(t,e){if(!t)return e.map((t=>t.clone()));{if(t.length!==e.length)return;const n=t.length;for(let i=0;i{switch(n){case"title":return Bn(t,e);case"gridScale":return{explicit:t.explicit,value:H(t.value,e.value)}}return Vl(t,e,n,"axis")}));t.setWithExplicit(n,i)}return t}function Bd(t,e,n,i,r){if("disable"===e)return void 0!==n;switch(n=n||{},e){case"titleAngle":case"labelAngle":return t===(gn(n.labelAngle)?n.labelAngle:J(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(t===zc(i,r))return!0}return t===n[e]}const jd=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function $d(t,e){var n,i,r,o,a;let s=e.axis(t);const l=new AxisComponent,u=ha(e.encoding[t]),{mark:c,config:f}=e,d=(null===(n=s)||void 0===n?void 0:n.orient)||(null===(i=f["x"===t?"axisX":"axisY"])||void 0===i?void 0:i.orient)||(null===(r=f.axis)||void 0===r?void 0:r.orient)||function(t){return"x"===t?"bottom":"left"}(t),h=e.getScaleComponent(t).get("type"),p=function(t,e,n,i){const r="band"===e?["axisDiscrete","axisBand"]:"point"===e?["axisDiscrete","axisPoint"]:gr(e)?["axisQuantitative"]:"time"===e||"utc"===e?["axisTemporal"]:[],o="x"===t?"axisX":"axisY",a=gn(n)?"axisOrient":"axis".concat(B(n)),s=[...r,...r.map((t=>o+t.substr(4)))],l=["axis",a,o];return{vlOnlyAxisConfig:Sc(s,i,t,n),vgAxisConfig:Sc(l,i,t,n),axisConfigStyle:Mc([...l,...s],i)}}(t,h,d,e.config),m=void 0!==s?!s:Ec("disable",f.style,null===(o=s)||void 0===o?void 0:o.style,p).configValue;if(l.set("disable",m,void 0!==s),m)return l;s=s||{};const g=function(t,e,n,i,r){const o=null==e?void 0:e.labelAngle;if(void 0!==o)return gn(o)?o:J(o);{const{configValue:o}=Ec("labelAngle",i,null==e?void 0:e.style,r);return void 0!==o?J(o):n!==et||!x([sr,or],t.type)||Wo(t)&&t.timeUnit?void 0:270}}(u,s,t,f.style,p),y={fieldOrDatumDef:u,axis:s,channel:t,model:e,scaleType:h,orient:d,labelAngle:g,mark:c,config:f};for(const n of zd){const i=n in Cc?Cc[n](y):Ca(n)?s[n]:void 0,r=void 0!==i,o=Bd(i,n,s,e,t);if(r&&o)l.set(n,i,o);else{const{configValue:t,configFrom:e}=Ca(n)&&"values"!==n?Ec(n,f.style,s.style,p):{},a=void 0!==t;r&&!a?l.set(n,i,o):("vgAxisConfig"!==e||jd.has(n)&&a||Aa(t)||gn(t))&&l.set(n,t,!1)}}const v=null!==(a=s.encoding)&&void 0!==a?a:{},b=Da.reduce(((n,i)=>{var r;if(!l.hasAxisPart(i))return n;const o=ef(null!==(r=v[i])&&void 0!==r?r:{},e),a="labels"===i?function(t,e,n){var i;const{encoding:r,config:o}=t,a=null!==(i=ha(r[e]))&&void 0!==i?i:ha(r[ie(e)]),s=t.axis(e)||{},{format:l,formatType:u}=s;if(mo(u))return{text:bo({fieldOrDatumDef:a,field:"datum.value",format:l,formatType:u,config:o}),...n};if(void 0===l&&void 0===u&&o.customFormatTypes){if("quantitative"===Ho(a)){if(Ko(a)&&"normalize"===a.stack&&o.normalizedNumberFormatType)return{text:bo({fieldOrDatumDef:a,field:"datum.value",format:o.normalizedNumberFormat,formatType:o.normalizedNumberFormatType,config:o}),...n};if(o.numberFormatType)return{text:bo({fieldOrDatumDef:a,field:"datum.value",format:o.numberFormat,formatType:o.numberFormatType,config:o}),...n}}if("temporal"===Ho(a)&&o.timeFormatType&&Wo(a)&&!a.timeUnit)return{text:bo({fieldOrDatumDef:a,field:"datum.value",format:o.timeFormat,formatType:o.timeFormatType,config:o}),...n}}return n}(e,t,o):o;return void 0===a||C(a)||(n[i]={update:a}),n}),{});return C(b)||l.set("encode",b,!!s.encoding||void 0!==s.labelAngle),l}function Ld(t,e,n){const i=hn(t),r=Fn("orient",i,n);if(i.orient=function(t,e,n){switch(t){case Ur:case Gr:case Yr:case Wr:case qr:case $r:return}const{x:i,y:r,x2:o,y2:a}=e;switch(t){case jr:if(Wo(i)&&(ln(i.bin)||Wo(r)&&r.aggregate&&!i.aggregate))return"vertical";if(Wo(r)&&(ln(r.bin)||Wo(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(a||o){if(n)return n;if(!o&&(Wo(i)&&i.type===rr&&!sn(i.bin)||Yo(i)))return"horizontal";if(!a&&(Wo(r)&&r.type===rr&&!sn(r.bin)||Yo(r)))return"vertical"}case Ir:if(o&&(!Wo(i)||!ln(i.bin))&&a&&(!Wo(r)||!ln(r.bin)))return;case Br:if(a)return Wo(r)&&ln(r.bin)?"horizontal":"vertical";if(o)return Wo(i)&&ln(i.bin)?"vertical":"horizontal";if(t===Ir){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case Lr:case Hr:{const e=Go(i),o=Go(r);if(n)return n;if(e&&!o)return"tick"!==t?"horizontal":"vertical";if(!e&&o)return"tick"!==t?"vertical":"horizontal";if(e&&o){const e=i,n=r,o=e.type===ar,a=n.type===ar;return o&&!a?"tick"!==t?"vertical":"horizontal":!o&&a?"tick"!==t?"horizontal":"vertical":!e.aggregate&&n.aggregate?"tick"!==t?"vertical":"horizontal":e.aggregate&&!n.aggregate&&"tick"!==t?"horizontal":"vertical"}return}}return"vertical"}(i.type,e,r),void 0!==r&&r!==i.orient&&Mi((o=i.orient,a=r,'Specified orient "'.concat(o,'" overridden with "').concat(a,'".'))),"bar"===i.type&&i.orient){const t=Fn("cornerRadiusEnd",i,n);if(void 0!==t){const n="horizontal"===i.orient&&e.x2||"vertical"===i.orient&&e.y2?["cornerRadius"]:ro[i.orient];for(const e of n)i[e]=t;void 0!==i.cornerRadiusEnd&&delete i.cornerRadiusEnd}}var o,a;return void 0===Fn("opacity",i,n)&&(i.opacity=function(t,e){if(x([Ur,Hr,Gr,Yr],t)&&!Pa(e))return.7}(i.type,e)),void 0===Fn("cursor",i,n)&&(i.cursor=function(t,e,n){return e.href||t.href||Fn("href",t,n)?"pointer":t.cursor}(i,e,n)),i}function Ud(t,e){const{config:n}=t;return{...Iu(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Fu("x",t,{defaultPos:"mid"}),...Fu("y",t,{defaultPos:"mid"}),...Su("size",t),...Su("angle",t),...qd(t,0,e)}}function qd(t,e,n){return n?{shape:{value:n}}:Su("shape",t)}function Id(t,e,n){if(void 0===Fn("align",t,n))return"center"}function Wd(t,e,n){if(void 0===Fn("baseline",t,n))return"middle"}function Hd(t){var e;const{config:i,markDef:r}=t,{orient:o}=r,a="horizontal"===o?"width":"height",s=t.getScaleComponent("horizontal"===o?"x":"y"),l=null!==(e=Fn("size",r,i,{vgChannel:a}))&&void 0!==e?e:i.tick.bandSize;if(void 0!==l)return l;{const t=s?s.get("range"):void 0;return t&&yn(t)&&n.isNumber(t.step)?3*t.step/4:3*Os(i.view,a)/4}}const Vd={arc:{vgMark:"arc",encodeEntry:t=>({...Iu(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Fu("x",t,{defaultPos:"mid"}),...Fu("y",t,{defaultPos:"mid"}),...ju(t,"radius"),...ju(t,"theta")})},area:{vgMark:"area",encodeEntry:t=>({...Iu(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...Pu("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"horizontal"===t.markDef.orient}),...Pu("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"vertical"===t.markDef.orient}),...Vu(t)})},bar:{vgMark:"rect",encodeEntry:t=>({...Iu(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...ju(t,"x"),...ju(t,"y")})},circle:{vgMark:"symbol",encodeEntry:t=>Ud(t,"circle")},geoshape:{vgMark:"shape",encodeEntry:t=>({...Iu(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:t=>{const{encoding:e}=t,n=e.shape;return[{type:"geoshape",projection:t.projectionName(),...n&&Wo(n)&&n.type===lr?{field:ia(n,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:t=>({...Iu(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...ju(t,"x"),...ju(t,"y"),...vu(t,"url")})},line:{vgMark:"line",encodeEntry:t=>({...Iu(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Fu("x",t,{defaultPos:"mid"}),...Fu("y",t,{defaultPos:"mid"}),...Su("size",t,{vgChannel:"strokeWidth"}),...Vu(t)})},point:{vgMark:"symbol",encodeEntry:t=>Ud(t)},rect:{vgMark:"rect",encodeEntry:t=>({...Iu(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...ju(t,"x"),...ju(t,"y")})},rule:{vgMark:"rule",encodeEntry:t=>{const{markDef:e}=t,n=e.orient;return t.encoding.x||t.encoding.y||t.encoding.latitude||t.encoding.longitude?{...Iu(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Pu("x",t,{defaultPos:"horizontal"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"vertical"!==n}),...Pu("y",t,{defaultPos:"vertical"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"horizontal"!==n}),...Su("size",t,{vgChannel:"strokeWidth"})}:{}}},square:{vgMark:"symbol",encodeEntry:t=>Ud(t,"square")},text:{vgMark:"text",encodeEntry:t=>{const{config:e,encoding:n}=t;return{...Iu(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...Fu("x",t,{defaultPos:"mid"}),...Fu("y",t,{defaultPos:"mid"}),...vu(t),...Su("size",t,{vgChannel:"fontSize"}),...Su("angle",t),...Gu("align",Id(t.markDef,0,e)),...Gu("baseline",Wd(t.markDef,0,e)),...Fu("radius",t,{defaultPos:null}),...Fu("theta",t,{defaultPos:null})}}},tick:{vgMark:"rect",encodeEntry:t=>{const{config:e,markDef:n}=t,i=n.orient,r="horizontal"===i?"width":"height",o="horizontal"===i?"height":"width";return{...Iu(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Fu("x",t,{defaultPos:"mid",vgChannel:"xc"}),...Fu("y",t,{defaultPos:"mid",vgChannel:"yc"}),...Su("size",t,{defaultValue:Hd(t),vgChannel:r}),[o]:Dn(Fn("thickness",n,e))}}},trail:{vgMark:"trail",encodeEntry:t=>({...Iu(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Fu("x",t,{defaultPos:"mid"}),...Fu("y",t,{defaultPos:"mid"}),...Su("size",t),...Vu(t)})}};function Gd(t){if(x([Lr,Br,Vr],t.mark)){const e=Ua(t.mark,t.encoding);if(e.length>0)return function(t,e){return[{name:t.getName("pathgroup"),type:"group",from:{facet:{name:Yd+t.requestDataName(eu.Main),data:t.requestDataName(eu.Main),groupby:e}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:Jd(t,{fromPrefix:Yd})}]}(t,e)}else if(t.mark===jr){const e=_n.some((e=>Fn(e,t.markDef,t.config)));if(t.stack&&!t.fieldDef("size")&&e)return function(t){var e;const[n]=Jd(t,{fromPrefix:Xd}),i=t.scaleName(t.stack.fieldChannel),r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t.vgField(t.stack.fieldChannel,e)},o=(t,e)=>{const n=[r({prefix:"min",suffix:"start",expr:e}),r({prefix:"max",suffix:"start",expr:e}),r({prefix:"min",suffix:"end",expr:e}),r({prefix:"max",suffix:"end",expr:e})];return"".concat(t,"(").concat(n.map((t=>"scale('".concat(i,"',").concat(t,")"))).join(","),")")};let a,s;"x"===t.stack.fieldChannel?(a={...p(n.encode.update,["y","yc","y2","height",..._n]),x:{signal:o("min","datum")},x2:{signal:o("max","datum")},clip:{value:!0}},s={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update={...m(n.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(a={...p(n.encode.update,["x","xc","x2","width"]),y:{signal:o("min","datum")},y2:{signal:o("max","datum")},clip:{value:!0}},s={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update={...m(n.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const e of _n){const i=Nn(e,t.markDef,t.config);n.encode.update[e]?(a[e]=n.encode.update[e],delete n.encode.update[e]):i&&(a[e]=Dn(i)),i&&(n.encode.update[e]={value:0})}const l=[];if((null===(e=t.stack.groupbyChannels)||void 0===e?void 0:e.length)>0)for(const e of t.stack.groupbyChannels){const n=t.fieldDef(e),i=ia(n);i&&l.push(i),(null!=n&&n.bin||null!=n&&n.timeUnit)&&l.push(ia(n,{binSuffix:"end"}))}return a=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce(((e,i)=>{if(n.encode.update[i])return{...e,[i]:n.encode.update[i]};{const n=Nn(i,t.markDef,t.config);return void 0!==n?{...e,[i]:Dn(n)}:e}}),a),a.stroke&&(a.strokeForeground={value:!0},a.strokeOffset={value:0}),[{type:"group",from:{facet:{data:t.requestDataName(eu.Main),name:Xd+t.requestDataName(eu.Main),groupby:l,aggregate:{fields:[r({suffix:"start"}),r({suffix:"start"}),r({suffix:"end"}),r({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:a},marks:[{type:"group",encode:{update:s},marks:[n]}]}]}(t)}return Jd(t)}const Yd="faceted_path_";const Xd="stack_group_";function Jd(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{fromPrefix:""};const{mark:i,markDef:r,encoding:o,config:a}=t,s=H(r.clip,function(t){const e=t.getScaleComponent("x"),n=t.getScaleComponent("y");return!!(null!=e&&e.get("selectionExtent")||null!=n&&n.get("selectionExtent"))||void 0}(t),function(t){const e=t.component.projection;return!(!e||e.isFit)||void 0}(t)),l=Cn(r),u=o.key,c=function(t){const{encoding:e,stack:i,mark:r,markDef:o,config:a}=t,s=e.order;if(!(!n.isArray(s)&&Qo(s)&&v(s.value)||!s&&v(Fn("order",o,a)))){if((n.isArray(s)||Wo(s))&&!i)return Tn(s,{expr:"datum"});if(Jr(r)){const i="horizontal"===o.orient?"y":"x",r=e[i];if(Wo(r)){const e=r.sort;if(n.isArray(e))return{field:ia(r,{prefix:i,suffix:"sort_index",expr:"datum"})};if(No(e))return{field:ia({aggregate:Pa(t.encoding)?e.op:void 0,field:e.field},{expr:"datum"})};if(Fo(e))return{field:ia(t.fieldDef(e.encoding),{expr:"datum"}),order:e.order};if(null===e)return;var l;return{field:ia(r,{binSuffix:null!==(l=t.stack)&&void 0!==l&&l.impute?"mid":void 0,expr:"datum"})}}}}}(t),f=function(t){if(!t.component.selection)return null;const e=F(t.component.selection).length;let n=e,i=t.parent;for(;i&&0===n;)n=F(i.component.selection).length,i=i.parent;return n?{interactive:e>0||!!t.encoding.tooltip}:null}(t),d=Fn("aria",r,a),h=Vd[i].postEncodingTransform?Vd[i].postEncodingTransform(t):null;return[{name:t.getName("marks"),type:Vd[i].vgMark,...s?{clip:!0}:{},...l?{style:l}:{},...u?{key:u.field}:{},...c?{sort:c}:{},...f||{},...!1===d?{aria:d}:{},from:{data:e.fromPrefix+t.requestDataName(eu.Main)},encode:{update:Vd[i].encodeEntry(t)},...h?{transform:h}:{}}]}class UnitModel extends ModelWithField{constructor(t,e,i){var r;let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4?arguments[4]:void 0;super(t,"unit",e,i,a,void 0,Cs(t)?t.view:void 0),jn(this,"markDef",void 0),jn(this,"encoding",void 0),jn(this,"specifiedScales",{}),jn(this,"stack",void 0),jn(this,"specifiedAxes",{}),jn(this,"specifiedLegends",{}),jn(this,"specifiedProjection",{}),jn(this,"selection",[]),jn(this,"children",[]);const s=Kr(t.mark)?{...t.mark}:{type:t.mark},l=s.type;void 0===s.filled&&(s.filled=function(t,e,n){let{graticule:i}=n;if(i)return!1;const r=Nn("filled",t,e),o=t.type;return H(r,o!==Ur&&o!==Lr&&o!==Ir)}(s,a,{graticule:t.data&&tu(t.data)}));const u=this.encoding=function(t,e,i,r){const o={};for(const e of F(t))Zt(e)||Mi("".concat(a=e,"-encoding is dropped as ").concat(a," is not a valid encoding channel."));var a;for(let a of se){if(!t[a])continue;const s=t[a];if(Ne(a)){const t=ae(a),e=o[t];if(Wo(e)){if(nr(e.type)&&Wo(s)){Mi(ni(t));continue}}else a=t,Mi(ii(t))}if("angle"!==a||"arc"!==e||t.theta||(Mi(ei),a=ut),Ba(t,a,e)){if(a===xt&&"line"===e){const e=da(t[a]);if(null!=e&&e.aggregate){Mi(si);continue}}if(a===mt&&(i?"fill"in t:"stroke"in t))Mi(oi("encoding",{fill:"fill"in t,stroke:"stroke"in t}));else if(a===Et||a===Mt&&!n.isArray(s)&&!Qo(s)||a===Ft&&n.isArray(s))s&&(o[a]=n.array(s).reduce(((t,e)=>(Wo(e)?t.push(ga(e,a)):Mi(ai(e,a)),t)),[]));else{if(a===Ft&&null===s)o[a]=null;else if(!(Wo(s)||Vo(s)||Qo(s)||Uo(s)||gn(s))){Mi(ai(s,a));continue}o[a]=pa(s,a,r)}}else Mi(li(a,e))}return o}(t.encoding||{},l,s.filled,a);this.markDef=Ld(s,u,a),this.size=function(t){let{encoding:e,size:n}=t;for(const t of De){const i=re(t);Es(n[i])&&Go(e[t])&&(delete n[i],Mi(yi(i)))}return n}({encoding:u,size:Cs(t)?{...o,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}:o}),this.stack=Ks(l,u),this.specifiedScales=this.initScales(l,u),this.specifiedAxes=this.initAxes(u),this.specifiedLegends=this.initLegends(u),this.specifiedProjection=t.projection,this.selection=(null!==(r=t.params)&&void 0!==r?r:[]).filter((t=>ws(t)))}get hasProjection(){const{encoding:t}=this,e=this.mark===Xr,n=t&&Bt.some((e=>Xo(t[e])));return e||n}scaleDomain(t){const e=this.specifiedScales[t];return e?e.domain:void 0}axis(t){return this.specifiedAxes[t]}legend(t){return this.specifiedLegends[t]}initScales(t,e){return Ie.reduce(((t,n)=>{const i=ha(e[n]);var r;return i&&(t[n]=this.initScale(null!==(r=i.scale)&&void 0!==r?r:{})),t}),{})}initScale(t){const{domain:e,range:i}=t,r=hn(t);return n.isArray(e)&&(r.domain=e.map(kn)),n.isArray(i)&&(r.range=i.map(kn)),r}initAxes(t){return De.reduce(((e,n)=>{const i=t[n];if(Xo(i)||n===et&&Xo(t.x2)||n===nt&&Xo(t.y2)){const t=Xo(i)?i.axis:void 0;e[n]=t?this.initAxis({...t}):t}return e}),{})}initAxis(t){const e=F(t),n={};for(const i of e){const e=t[i];n[i]=Aa(e)?wn(e):kn(e)}return n}initLegends(t){return Ue.reduce(((e,n)=>{const i=ha(t[n]);if(i&&function(t){switch(t){case mt:case gt:case yt:case xt:case vt:case _t:case At:case Dt:return!0;case wt:case kt:case bt:return!1}}(n)){const t=i.legend;e[n]=t?hn(t):t}return e}),{})}parseData(){this.component.data=Nd(this)}parseLayoutSize(){!function(t){const{size:e,component:n}=t;for(const i of De){const r=re(i);if(e[r]){const t=e[r];n.layoutSize.set(r,Es(t)?"step":t,!0)}else{const e=Ed(t,r);n.layoutSize.set(r,e,!1)}}}(this)}parseSelections(){this.component.selection=function(t,e){const i={},r=t.config.selection;if(!e||!e.length)return i;for(const a of e){const e=T(a.name),s=a.select,l=n.isString(s)?s:s.type,u=n.isObject(s)?d(s):{type:l},c=r[l];for(const t in c){var o;"fields"!==t&&"encodings"!==t&&("mark"===t&&(u[t]={...c[t],...u[t]}),(void 0===u[t]||!0===u[t])&&(u[t]=null!==(o=c[t])&&void 0!==o?o:u[t]))}const f=i[e]={...u,name:e,type:l,init:a.value,bind:a.bind,events:n.isString(u.on)?n.parseSelector(u.on,"scope"):n.array(d(u.on))};for(const e of hc)e.defined(f)&&e.parse&&e.parse(t,f,a)}return i}(this,this.selection)}parseMarkGroup(){this.component.mark=Gd(this)}parseAxesAndHeaders(){var t;this.component.axes=(t=this,De.reduce(((e,n)=>(t.component.scales[n]&&(e[n]=[$d(n,t)]),e)),{}))}assembleSelectionTopLevelSignals(t){return function(t,e){let i=!1;for(const o of N(null!==(r=t.component.selection)&&void 0!==r?r:{})){var r;const a=o.name,s=n.stringValue(a+uc);if(0===e.filter((t=>t.name===a)).length){const t="global"===o.resolve?"union":o.resolve,i="point"===o.type?", true, true)":")";e.push({name:o.name,update:"".concat(dc,"(").concat(s,", ").concat(n.stringValue(t)).concat(i)})}i=!0;for(const n of hc)n.defined(o)&&n.topLevelSignals&&(e=n.topLevelSignals(t,o,e))}return i&&0===e.filter((t=>"unit"===t.name)).length&&e.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]}),au(e)}(this,t)}assembleSignals(){return[...Dc(this),...iu(this,[])]}assembleSelectionData(t){return function(t,e){const n=[...e],i=pc(t,{escape:!1});for(const e of N(null!==(r=t.component.selection)&&void 0!==r?r:{})){var r;const t={name:e.name+uc};if(e.project.hasSelectionId&&(t.transform=[{type:"collect",sort:{field:vs}}]),e.init){const n=e.project.items.map((t=>{const{signals:e,...n}=t;return n}));t.values=e.project.hasSelectionId?e.init.map((t=>({unit:i,[vs]:nu(t,!1)[0]}))):e.init.map((t=>({unit:i,fields:n,values:nu(t,!1)})))}n.filter((t=>t.name===e.name+uc)).length||n.push(t)}return n}(this,t)}assembleLayout(){return null}assembleLayoutSignals(){return Jc(this)}assembleMarks(){var t;let e=null!==(t=this.component.mark)&&void 0!==t?t:[];return this.parent&&bd(this.parent)||(e=ou(this,e)),e.map(this.correctDataNames)}assembleGroupStyle(){const{style:t}=this.view||{};return void 0!==t?t:this.encoding.x||this.encoding.y?"cell":void 0}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(t){return Oa(this.encoding,t)}fieldDef(t){return da(this.encoding[t])}typedFieldDef(t){const e=this.fieldDef(t);return Jo(e)?e:null}}class LayerModel extends Model{constructor(t,e,n,i,r){super(t,"layer",e,n,r,t.resolve,t.view),jn(this,"children",void 0);const o={...i,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}};this.children=t.layer.map(((t,e)=>{if(Gs(t))return new LayerModel(t,this,this.getName("layer_".concat(e)),o,r);if(Na(t))return new UnitModel(t,this,this.getName("layer_".concat(e)),o,r);throw new Error(qn(t))}))}parseData(){this.component.data=Nd(this);for(const t of this.children)t.parseData()}parseLayoutSize(){var t;Sd(t=this),Md(t,"width"),Md(t,"height")}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const e of F(t.component.selection))this.component.selection[e]=t.component.selection[e]}}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){!function(t){const{axes:e,resolve:n}=t.component,i={top:0,bottom:0,right:0,left:0};for(const i of t.children){i.parseAxesAndHeaders();for(const r of F(i.component.axes))n.axis[r]=rf(t.component.resolve,r),"shared"===n.axis[r]&&(e[r]=Pd(e[r],i.component.axes[r]),e[r]||(n.axis[r]="independent",delete e[r]))}for(const o of De){for(const a of t.children)if(a.component.axes[o]){if("independent"===n.axis[o]){var r;e[o]=(null!==(r=e[o])&&void 0!==r?r:[]).concat(a.component.axes[o]);for(const t of a.component.axes[o]){const{value:e,explicit:n}=t.getWithExplicit("orient");if(!gn(e)){if(i[e]>0&&!n){const n=Td[e];i[e]>i[n]&&t.set("orient",n,!1)}i[e]++}}}delete a.component.axes[o]}if("independent"===n.axis[o]&&e[o]&&e[o].length>1)for(const t of e[o])t.get("grid")&&!t.explicit.grid&&(t.implicit.grid=!1)}}(this)}assembleSelectionTopLevelSignals(t){return this.children.reduce(((t,e)=>e.assembleSelectionTopLevelSignals(t)),t)}assembleSignals(){return this.children.reduce(((t,e)=>t.concat(e.assembleSignals())),Dc(this))}assembleLayoutSignals(){return this.children.reduce(((t,e)=>t.concat(e.assembleLayoutSignals())),Jc(this))}assembleSelectionData(t){return this.children.reduce(((t,e)=>e.assembleSelectionData(t)),t)}assembleGroupStyle(){const t=new Set;for(const e of this.children)for(const i of n.array(e.assembleGroupStyle()))t.add(i);const e=Array.from(t);return e.length>1?e:1===e.length?e[0]:void 0}assembleTitle(){let t=super.assembleTitle();if(t)return t;for(const e of this.children)if(t=e.assembleTitle(),t)return t}assembleLayout(){return null}assembleMarks(){return function(t,e){for(const n of t.children)yd(n)&&(e=ou(n,e));return e}(this,this.children.flatMap((t=>t.assembleMarks())))}assembleLegends(){return this.children.reduce(((t,e)=>t.concat(e.assembleLegends())),xf(this))}}function Qd(t,e,n,i,r){if(Po(t))return new FacetModel(t,e,n,r);if(Gs(t))return new LayerModel(t,e,n,i,r);if(Na(t))return new UnitModel(t,e,n,i,r);if(function(t){return Ds(t)||Ss(t)||As(t)}(t))return new ConcatModel(t,e,n,r);throw new Error(qn(t))}function Zd(t,e,i,r){const o=r.component.layoutSize.get("width"),a=r.component.layoutSize.get("height");if(void 0===e?(e={type:"pad"},r.hasAxisOrientSignalRef()&&(e.resize=!0)):n.isString(e)&&(e={type:e}),o&&a&&("fit"===(s=e.type)||"fit-x"===s||"fit-y"===s))if("step"===o&&"step"===a)Mi(Vn()),e.type="pad";else if("step"===o||"step"===a){const t="step"===o?"width":"height";Mi(Vn(Ce(t)));const n="width"===t?"height":"width";e.type=function(t){return t?"fit-".concat(Ce(t)):"fit"}(n)}var s;return{...1===F(e).length&&e.type?"pad"===e.type?{}:{autosize:e.type}:{autosize:e},...ql(i,!1),...ql(t,!0)}}function Kd(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0;const r=t.config?Hs(t.config):void 0,o=[].concat(t.assembleSelectionData([]),function(t,e){const n=[],i=_d(n);let r=0;for(const e of t.sources){e.hasName()||(e.dataName="source_".concat(r++));const t=e.assemble();i(e,t)}for(const t of n)0===t.transform.length&&delete t.transform;let o=0;for(const[t,e]of n.entries()){var a;0!==(null!==(a=e.transform)&&void 0!==a?a:[]).length||e.source||n.splice(o++,0,n.splice(t,1)[0])}for(const e of n)for(const n of null!==(s=e.transform)&&void 0!==s?s:[]){var s;"lookup"===n.type&&(n.from=t.outputNodes[n.from].getSource())}for(const t of n)t.name in e&&(t.values=e[t.name]);return n}(t.component.data,n)),a=t.assembleProjections(),s=t.assembleTitle(),l=t.assembleGroupStyle(),u=t.assembleGroupEncodeEntry(!0);let c=t.assembleLayoutSignals();c=c.filter((t=>"width"!==t.name&&"height"!==t.name||void 0===t.value||(e[t.name]=+t.value,!1)));const{params:f,...d}=e;return{$schema:"https://vega.github.io/schema/vega/v5.json",...t.description?{description:t.description}:{},...d,...s?{title:s}:{},...l?{style:l}:{},...u?{encode:{update:u}}:{},data:o,...a.length>0?{projections:a}:{},...t.assembleGroup([...c,...t.assembleSelectionTopLevelSignals([]),...ks(f)]),...r?{config:r}:{},...i?{usermeta:i}:{}}}const th=i;e.accessPathDepth=W,e.accessPathWithDatum=j,e.compile=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var i;e.logger&&(i=e.logger,Si=i),e.fieldTitle&&sa(e.fieldTitle);try{const i=Us(n.mergeConfig(e.config,t.config)),r=Rl(t,i),o=Qd(r,null,"",void 0,i);return o.parse(),function(t,e){jf(t.sources);let n=0,i=0;for(let i=0;it*e,"+":(t,e)=>t+e,"-":(t,e)=>t-e,"/":(t,e)=>t/e,"%":(t,e)=>t%e,">":(t,e)=>t>e,"<":(t,e)=>tt<=e,">=":(t,e)=>t>=e,"==":(t,e)=>t==e,"!=":(t,e)=>t!=e,"===":(t,e)=>t===e,"!==":(t,e)=>t!==e,"&":(t,e)=>t&e,"|":(t,e)=>t|e,"^":(t,e)=>t^e,"<<":(t,e)=>t<>":(t,e)=>t>>e,">>>":(t,e)=>t>>>e},i={"+":t=>+t,"-":t=>-t,"~":t=>~t,"!":t=>!t};const r=Array.prototype.slice,o=(t,e,n)=>{const i=n?n(e[0]):e[0];return i[t].apply(i,r.call(e,1))};var a={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:(t,e,n)=>Math.max(e,Math.min(n,t)),now:Date.now,utc:Date.UTC,datetime:(t,e,n,i,r,o,a)=>new Date(t,e||0,null!=n?n:1,i||0,r||0,o||0,a||0),date:t=>new Date(t).getDate(),day:t=>new Date(t).getDay(),year:t=>new Date(t).getFullYear(),month:t=>new Date(t).getMonth(),hours:t=>new Date(t).getHours(),minutes:t=>new Date(t).getMinutes(),seconds:t=>new Date(t).getSeconds(),milliseconds:t=>new Date(t).getMilliseconds(),time:t=>new Date(t).getTime(),timezoneoffset:t=>new Date(t).getTimezoneOffset(),utcdate:t=>new Date(t).getUTCDate(),utcday:t=>new Date(t).getUTCDay(),utcyear:t=>new Date(t).getUTCFullYear(),utcmonth:t=>new Date(t).getUTCMonth(),utchours:t=>new Date(t).getUTCHours(),utcminutes:t=>new Date(t).getUTCMinutes(),utcseconds:t=>new Date(t).getUTCSeconds(),utcmilliseconds:t=>new Date(t).getUTCMilliseconds(),length:t=>t.length,join:function(){return o("join",arguments)},indexof:function(){return o("indexOf",arguments)},lastindexof:function(){return o("lastIndexOf",arguments)},slice:function(){return o("slice",arguments)},reverse:t=>t.slice().reverse(),parseFloat:parseFloat,parseInt:parseInt,upper:t=>String(t).toUpperCase(),lower:t=>String(t).toLowerCase(),substring:function(){return o("substring",arguments,String)},split:function(){return o("split",arguments,String)},replace:function(){return o("replace",arguments,String)},trim:t=>String(t).trim(),regexp:RegExp,test:(t,e)=>RegExp(t).test(e)};const s=["view","item","group","xy","x","y"],l={Literal:(t,e)=>e.value,Identifier:(t,n)=>{const i=n.name;return t.memberDepth>0?i:"datum"===i?t.datum:"event"===i?t.event:"item"===i?t.item:e[i]||t.params["$"+i]},MemberExpression:(t,e)=>{const n=!e.computed,i=t(e.object);n&&(t.memberDepth+=1);const r=t(e.property);return n&&(t.memberDepth-=1),i[r]},CallExpression:(t,e)=>{const n=e.arguments;let i=e.callee.name;return i.startsWith("_")&&(i=i.slice(1)),"if"===i?t(n[0])?t(n[1]):t(n[2]):(t.fn[i]||a[i]).apply(t.fn,n.map(t))},ArrayExpression:(t,e)=>e.elements.map(t),BinaryExpression:(t,e)=>n[e.operator](t(e.left),t(e.right)),UnaryExpression:(t,e)=>i[e.operator](t(e.argument)),ConditionalExpression:(t,e)=>t(e.test)?t(e.consequent):t(e.alternate),LogicalExpression:(t,e)=>"&&"===e.operator?t(e.left)&&t(e.right):t(e.left)||t(e.right),ObjectExpression:(t,e)=>e.properties.reduce(((e,n)=>{t.memberDepth+=1;const i=t(n.key);return t.memberDepth-=1,e[i]=t(n.value),e}),{})};function u(t,e,n,i,r,o){const a=t=>l[t.type](a,t);return a.memberDepth=0,a.fn=Object.create(e),a.params=n,a.datum=i,a.event=r,a.item=o,s.forEach((t=>a.fn[t]=(...e)=>r.vega[t](...e))),a(t)}var c={operator(t,e){const n=e.ast,i=t.functions;return t=>u(n,i,t)},parameter(t,e){const n=e.ast,i=t.functions;return(t,e)=>u(n,i,e,t)},event(t,e){const n=e.ast,i=t.functions;return t=>u(n,i,void 0,void 0,t)},handler(t,e){const n=e.ast,i=t.functions;return(t,e)=>{const r=e.item&&e.item.datum;return u(n,i,t,r,e)}},encode(t,e){const{marktype:n,channels:i}=e,r=t.functions,o="group"===n||"image"===n||"rect"===n;return(t,e)=>{const a=t.datum;let s,l=0;for(const n in i)s=u(i[n].ast,r,e,a,void 0,t),t[n]!==s&&(t[n]=s,l=1);return"rule"!==n&&function(t,e,n){let i;e.x2&&(e.x?(n&&t.x>t.x2&&(i=t.x,t.x=t.x2,t.x2=i),t.width=t.x2-t.x):t.x=t.x2-(t.width||0)),e.xc&&(t.x=t.xc-(t.width||0)/2),e.y2&&(e.y?(n&&t.y>t.y2&&(i=t.y,t.y=t.y2,t.y2=i),t.height=t.y2-t.y):t.y=t.y2-(t.height||0)),e.yc&&(t.y=t.yc-(t.height||0)/2)}(t,i,o),l}}};t.expressionInterpreter=c,Object.defineProperty(t,"__esModule",{value:!0})}(e)},661:function(t,e,n){!function(t,e){"use strict";var n="0.28.0",i=function(){return i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n")),l&&(r+=''));var c=Object.keys(u);if(c.length>0){r+="";for(var f=0,d=c;f"))}r+="
'.concat(n(h),':').concat(n(p),"
"}return r||"{}"}return n(t)}function o(t){var e=[];return function(n,i){if("object"!=typeof i||null===i)return i;var r=e.indexOf(this)+1;return e.length=r,e.length>t?"[Object]":e.indexOf(i)>=0?"[Circular]":(e.push(i),i)}}function a(t,e){return JSON.stringify(t,o(e))}var s="#vg-tooltip-element {\n visibility: hidden;\n padding: 8px;\n position: fixed;\n z-index: 1000;\n font-family: sans-serif;\n font-size: 11px;\n border-radius: 3px;\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n /* The default theme is the light theme. */\n background-color: rgba(255, 255, 255, 0.95);\n border: 1px solid #d9d9d9;\n color: black;\n}\n#vg-tooltip-element.visible {\n visibility: visible;\n}\n#vg-tooltip-element h2 {\n margin-top: 0;\n margin-bottom: 10px;\n font-size: 13px;\n}\n#vg-tooltip-element img {\n max-width: 200px;\n max-height: 200px;\n}\n#vg-tooltip-element table {\n border-spacing: 0;\n}\n#vg-tooltip-element table tr {\n border: none;\n}\n#vg-tooltip-element table tr td {\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n padding-bottom: 2px;\n}\n#vg-tooltip-element table tr td.key {\n color: #808080;\n max-width: 150px;\n text-align: right;\n padding-right: 4px;\n}\n#vg-tooltip-element table tr td.value {\n display: block;\n max-width: 300px;\n max-height: 7em;\n text-align: left;\n}\n#vg-tooltip-element.dark-theme {\n background-color: rgba(32, 32, 32, 0.9);\n border: 1px solid #f5f5f5;\n color: white;\n}\n#vg-tooltip-element.dark-theme td.key {\n color: #bfbfbf;\n}\n",l="vg-tooltip-element",u={offsetX:10,offsetY:10,id:l,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:!1,sanitize:c,maxDepth:2,formatTooltip:r};function c(t){return String(t).replace(/&/g,"&").replace(/window.innerWidth&&(r=+t.clientX-n-e.width);var o=t.clientY+i;return o+e.height>window.innerHeight&&(o=+t.clientY-i-e.height),{x:r,y:o}}var h=function(){function t(t){this.options=i(i({},u),t);var e=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){var n=document.createElement("style");n.setAttribute("id",this.options.styleId),n.innerHTML=f(e);var r=document.head;r.childNodes.length>0?r.insertBefore(n,r.childNodes[0]):r.appendChild(n)}}return t.prototype.tooltipHandler=function(t,e,n,i){var r;if(this.el=document.getElementById(this.options.id),this.el||(this.el=document.createElement("div"),this.el.setAttribute("id",this.options.id),this.el.classList.add("vg-tooltip"),(null!==(r=document.fullscreenElement)&&void 0!==r?r:document.body).appendChild(this.el)),null!=i&&""!==i){this.el.innerHTML=this.options.formatTooltip(i,this.options.sanitize,this.options.maxDepth),this.el.classList.add("visible","".concat(this.options.theme,"-theme"));var o=d(e,this.el.getBoundingClientRect(),this.options.offsetX,this.options.offsetY),a=o.x,s=o.y;this.el.setAttribute("style","top: ".concat(s,"px; left: ").concat(a,"px"))}else this.el.classList.remove("visible","".concat(this.options.theme,"-theme"))},t}(),p=n;t.DEFAULT_OPTIONS=u,t.Handler=h,t.calculatePosition=d,t.createDefaultStyle=f,t.default=function(t,e){var n=new h(e);return t.tooltip(n.call).run(),n},t.escapeHTML=c,t.formatValue=r,t.replacer=o,t.stringify=a,t.version=p,Object.defineProperty(t,"__esModule",{value:!0})}(e,n(662))},662:function(t,e,n){!function(t){"use strict";function e(t,e,n){return t.fields=e||[],t.fname=n,t}function n(t){return null==t?null:t.fields}function i(t){return 1===t.length?r(t[0]):o(t)}const r=t=>function(e){return e[t]},o=t=>{const e=t.length;return function(n){for(let i=0;ii&&c(),l=i=r+1):"]"===o&&(l||a("Access path missing open bracket: "+t),l>0&&c(),l=0,i=r+1):r>i?c():i=r+1}return l&&a("Access path missing closing bracket: "+t),s&&a("Access path missing closing quote: "+t),r>i&&(r++,c()),e}function l(t,n,r){const o=s(t);return t=1===o.length?o[0]:t,e((r&&r.get||i)(o),[t],n||t)}const u=l("id"),c=e((t=>t),[],"identity"),f=e((()=>0),[],"zero"),d=e((()=>1),[],"one"),h=e((()=>!0),[],"true"),p=e((()=>!1),[],"false");function m(t,e,n){const i=[e].concat([].slice.call(n));console[t].apply(console,i)}const g=0,y=1,v=2,x=3,b=4;var _=Array.isArray;function w(t){return t===Object(t)}const k=t=>"__proto__"!==t;function A(t,e,n,i){if(!k(e))return;let r,o;if(w(n)&&!_(n))for(r in o=w(t[e])?t[e]:t[e]={},n)i&&(!0===i||i[r])?A(o,r,n[r]):k(r)&&(o[r]=n[r]);else t[e]=n}function D(t,e){if(null==t)return e;const n={},i=[];function r(t){n[t.name]||(n[t.name]=1,i.push(t))}return e.forEach(r),t.forEach(r),i}function S(t){return t[t.length-1]}function M(t){return null==t||""===t?null:+t}const E=t=>e=>t*Math.exp(e),C=t=>e=>Math.log(t*e),F=t=>e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),N=t=>e=>Math.sign(e)*Math.expm1(Math.abs(e))*t,O=t=>e=>e<0?-Math.pow(-e,t):Math.pow(e,t);function z(t,e,n,i){const r=n(t[0]),o=n(S(t)),a=(o-r)*e;return[i(r-a),i(o-a)]}function T(t,e,n,i,r){const o=i(t[0]),a=i(S(t)),s=null!=e?i(e):(o+a)/2;return[r(s+(o-s)*n),r(s+(a-s)*n)]}function P(t){return null!=t?_(t)?t:[t]:[]}function R(t){return"function"==typeof t}const B="descending";const j=(t,e)=>(te||null==e)&&null!=t?1:(e=e instanceof Date?+e:e,(t=t instanceof Date?+t:t)!==t&&e==e?-1:e!=e&&t==t?1:0),$=(t,e)=>1===t.length?L(t[0],e[0]):U(t,e,t.length),L=(t,e)=>function(n,i){return j(t(n),t(i))*e},U=(t,e,n)=>(e.push(0),function(i,r){let o,a=0,s=-1;for(;0===a&&++s=0;)n+=t;return n}const Q=t=>G(t)||V(t)?t:Date.parse(t);t.Debug=b,t.Error=y,t.Info=x,t.None=g,t.Warn=v,t.accessor=e,t.accessorFields=n,t.accessorName=function(t){return null==t?null:t.fname},t.array=P,t.ascending=j,t.clampRange=function(t,e,n){let i,r=t[0],o=t[1];return o=n-e?[e,n]:[r=Math.min(Math.max(r,e),n-i),r+i]},t.compare=function(t,i,r){r=r||{},i=P(i)||[];const o=[],a=[],s={},u=r.comparator||$;return P(t).forEach(((t,e)=>{null!=t&&(o.push(i[e]===B?-1:1),a.push(t=R(t)?t:l(t,null,r)),(n(t)||[]).forEach((t=>s[t]=1)))})),0===a.length?null:e(u(a,o),Object.keys(s))},t.constant=function(t){return R(t)?t:()=>t},t.debounce=function(t,e){let n;return i=>{n&&clearTimeout(n),n=setTimeout((()=>(e(i),n=null)),t)}},t.error=a,t.extend=q,t.extent=function(t,e){let n,i,r,o,a=0;if(t&&(n=t.length))if(null==e){for(i=t[a];ao&&(o=i))}else{for(i=e(t[a]);ao&&(o=i))}return[r,o]},t.extentIndex=function(t,e){const n=t.length;let i,r,o,a,s,l=-1;if(null==e){for(;++l=r){i=o=r;break}if(l===n)return[-1,-1];for(a=s=l;++lr&&(i=r,a=l),o=r){i=o=r;break}if(l===n)return[-1,-1];for(a=s=l;++lr&&(i=r,a=l),oi(t)?n[t]:void 0,set(t,e){return i(t)||(++r.size,n[t]===H&&--r.empty),n[t]=e,this},delete(t){return i(t)&&(--r.size,++r.empty,n[t]=H),this},clear(){r.size=r.empty=0,r.object=n={}},test(t){return arguments.length?(e=t,r):e},clean(){const t={};let i=0;for(const r in n){const o=n[r];o===H||e&&e(o)||(t[r]=o,++i)}r.size=i,r.empty=0,r.object=n=t}};return t&&Object.keys(t).forEach((e=>{r.set(e,t[e])})),r},t.field=l,t.flush=function(t,e,n,i,r,o){if(!n&&0!==n)return o;const a=+n;let s,l=t[0],u=S(t);ua&&(r=o,o=a,a=r),i=void 0===i||i,((n=void 0===n||n)?o<=t:ot.replace(/\\(.)/g,"$1"))):P(t));const o=t&&t.length,a=r&&r.get||i,l=t=>a(n?[t]:s(t));let u;if(o)if(1===o){const e=l(t[0]);u=function(t){return""+e(t)}}else{const e=t.map(l);u=function(t){let n=""+e[0](t),i=0;for(;++i=y&&n(e||"error","ERROR",arguments),this},warn(){return i>=v&&n(e||"warn","WARN",arguments),this},info(){return i>=x&&n(e||"log","INFO",arguments),this},debug(){return i>=b&&n(e||"log","DEBUG",arguments),this}}},t.lruCache=function(t){let e,n,i;t=+t||X;const r=()=>{e={},n={},i=0},o=(r,o)=>(++i>t&&(n=e,e={},i=1),e[r]=o);return r(),{clear:r,has:t=>W(e,t)||W(n,t),get:t=>W(e,t)?e[t]:W(n,t)?o(t,n[t]):void 0,set:(t,n)=>W(e,t)?e[t]=n:o(t,n)}},t.merge=function(t,e,n,i){const r=e.length,o=n.length;if(!o)return e;if(!r)return n;const a=i||new e.constructor(r+o);let s=0,l=0,u=0;for(;s0?n[l++]:e[s++];for(;s{for(const n in e)if("signals"===n)t.signals=D(t.signals,e.signals);else{const i="legend"===n?{layout:1}:"style"===n||null;A(t,n,e[n],i)}return t}),{})},t.one=d,t.pad=function(t,e,n,i){const r=n||" ",o=t+"",a=e-o.length;return a<=0?o:"left"===i?J(r,a)+o:"center"===i?J(r,~~(a/2))+o+J(r,Math.ceil(a/2)):o+J(r,a)},t.panLinear=function(t,e){return z(t,e,M,c)},t.panLog=function(t,e){var n=Math.sign(t[0]);return z(t,e,C(n),E(n))},t.panPow=function(t,e,n){return z(t,e,O(n),O(1/n))},t.panSymlog=function(t,e,n){return z(t,e,F(n),N(n))},t.peek=S,t.quarter=function(t){return 1+~~(new Date(t).getMonth()/3)},t.repeat=J,t.span=function(t){return t&&S(t)-t[0]||0},t.splitAccessPath=s,t.stringValue=function t(e){return _(e)?"["+e.map(t)+"]":w(e)||Y(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e},t.toBoolean=function(t){return null==t||""===t?null:!(!t||"false"===t||"0"===t||!t)},t.toDate=function(t,e){return e=e||Q,null==t||""===t?null:e(t)},t.toNumber=M,t.toSet=function(t){const e={},n=t.length;for(let i=0;i{const e=Object(i.useMemo)((()=>Object(l.htmlIdGenerator)()()),[]);return Object(i.useEffect)((()=>{const n=Object(r.compile)(t).spec;new o.View(Object(o.parse)(n,void 0,{ast:!0}),{expr:a.expressionInterpreter}).logLevel(o.Warn).renderer("canvas").tooltip((new s.Handler).call).initialize(`#${e}`).runAsync()}),[t]),Object(u.jsx)("div",{id:e,className:"mlVegaChart","data-test-subj":"mlVegaChart"})};e.default=c}}]);