@malloydata/render 0.0.164-dev240809151534 → 0.0.164-dev240809173948

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1335,7 +1335,7 @@ ${m}`,p)}}else{if(h.urls)for(const m of h.urls)try{if(m.startsWith("internal://"
1335
1335
  : (u > v || v == null) && u != null ? ${r}
1336
1336
  : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}
1337
1337
  : v !== v && u === u ? ${r} : `}var Sze={operator:(t,e)=>i3(t,["_"],e.code),parameter:(t,e)=>i3(t,["datum","_"],e.code),event:(t,e)=>i3(t,["event"],e.code),handler:(t,e)=>{const n=`var datum=event.item&&event.item.datum;return ${e.code};`;return i3(t,["_","event"],n)},encode:(t,e)=>{const{marktype:n,channels:r}=e;let i="var o=item,datum=o.datum,m=0,$;";for(const s in r){const o="o["+Fe(s)+"]";i+=`$=${r[s].code};if(${o}!==$)${o}=$,m=1;`}return i+=mze(r,n),i+="return m;",i3(t,["item","_"],i)},codegen:{get(t){const e=`[${t.map(Fe).join("][")}]`,n=Function("_",`return _${e};`);return n.path=e,n},comparator(t,e){let n;const r=(s,o)=>{const u=e[o];let a,l;return s.path?(a=`a${s.path}`,l=`b${s.path}`):((n=n||{})["f"+o]=s,a=`this.f${o}(a)`,l=`this.f${o}(b)`),Aze(a,l,-u,u)},i=Function("a","b","var u, v; return "+t.map(r).join("")+"0;");return n?i.bind(n):i}}};function vze(t){const e=this;yze(t.type)||!t.type?e.operator(t,t.update?e.operatorExpression(t.update):null):e.transform(t,t.type)}function _ze(t){const e=this;if(t.params){const n=e.get(t.id);n||ve("Invalid operator id: "+t.id),e.dataflow.connect(n,n.parameters(e.parseParameters(t.params),t.react,t.initonly))}}function Cze(t,e){e=e||{};const n=this;for(const r in t){const i=t[r];e[r]=_e(i)?i.map(s=>Qre(s,n,e)):Qre(i,n,e)}return e}function Qre(t,e,n){if(!t||!Qe(t))return t;for(let r=0,i=Gre.length,s;r<i;++r)if(s=Gre[r],Je(t,s.key))return s.parse(t,e,n);return t}var Gre=[{key:"$ref",parse:bze},{key:"$key",parse:Rze},{key:"$expr",parse:Tze},{key:"$field",parse:Oze},{key:"$encode",parse:Dze},{key:"$compare",parse:Nze},{key:"$context",parse:Fze},{key:"$subflow",parse:wze},{key:"$tupleid",parse:Lze}];function bze(t,e){return e.get(t.$ref)||ve("Operator not defined: "+t.$ref)}function Tze(t,e,n){t.$params&&e.parseParameters(t.$params,n);const r="e:"+t.$expr.code;return e.fn[r]||(e.fn[r]=Ls(e.parameterExpression(t.$expr),t.$fields))}function Rze(t,e){const n="k:"+t.$key+"_"+!!t.$flat;return e.fn[n]||(e.fn[n]=cV(t.$key,t.$flat,e.expr.codegen))}function Oze(t,e){if(!t.$field)return null;const n="f:"+t.$field+"_"+t.$name;return e.fn[n]||(e.fn[n]=Is(t.$field,t.$name,e.expr.codegen))}function Nze(t,e){const n="c:"+t.$compare+"_"+t.$order,r=Pe(t.$compare).map(i=>i&&i.$tupleid?Ze:i);return e.fn[n]||(e.fn[n]=aV(r,t.$order,e.expr.codegen))}function Dze(t,e){const n=t.$encode,r={};for(const i in n){const s=n[i];r[i]=Ls(e.encodeExpression(s.$expr),s.$fields),r[i].output=s.$output}return r}function Fze(t,e){return e}function wze(t,e){const n=t.$subflow;return function(r,i,s){const o=e.fork().parse(n),u=o.get(n.operators[0].id),a=o.signals.parent;return a&&a.set(s),u.detachSubflow=()=>e.detach(o),u}}function Lze(){return Ze}function Ize(t){var e=this,n=t.filter!=null?e.eventExpression(t.filter):void 0,r=t.stream!=null?e.get(t.stream):void 0,i;t.source?r=e.events(t.source,t.type,n):t.merge&&(i=t.merge.map(s=>e.get(s)),r=i[0].merge.apply(i[0],i.slice(1))),t.between&&(i=t.between.map(s=>e.get(s)),r=r.between(i[0],i[1])),t.filter&&(r=r.filter(n)),t.throttle!=null&&(r=r.throttle(+t.throttle)),t.debounce!=null&&(r=r.debounce(+t.debounce)),r==null&&ve("Invalid stream definition: "+JSON.stringify(t)),t.consume&&r.consume(!0),e.stream(t,r)}function $ze(t){var e=this,n=Qe(n=t.source)?n.$ref:n,r=e.get(n),i=null,s=t.update,o=void 0;r||ve("Source not defined: "+t.source),i=t.target&&t.target.$expr?e.eventExpression(t.target.$expr):e.get(t.target),s&&s.$expr&&(s.$params&&(o=e.parseParameters(s.$params)),s=e.handlerExpression(s.$expr)),e.update(t,r,i,s,o)}const Bze={skip:!0};function kze(t){var e=this,n={};if(t.signals){var r=n.signals={};Object.keys(e.signals).forEach(s=>{const o=e.signals[s];t.signals(s,o)&&(r[s]=o.value)})}if(t.data){var i=n.data={};Object.keys(e.data).forEach(s=>{const o=e.data[s];t.data(s,o)&&(i[s]=o.input.value)})}return e.subcontext&&t.recurse!==!1&&(n.subcontext=e.subcontext.map(s=>s.getState(t))),n}function Pze(t){var e=this,n=e.dataflow,r=t.data,i=t.signals;Object.keys(i||{}).forEach(s=>{n.update(e.signals[s],i[s],Bze)}),Object.keys(r||{}).forEach(s=>{n.pulse(e.data[s].input,n.changeset().remove(Ko).insert(r[s]))}),(t.subcontext||[]).forEach((s,o)=>{const u=e.subcontext[o];u&&u.setState(s)})}function Mze(t,e,n,r){return new Wre(t,e,n,r)}function Wre(t,e,n,r){this.dataflow=t,this.transforms=e,this.events=t.events.bind(t),this.expr=r||Sze,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function Vre(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)}Wre.prototype=Vre.prototype={fork(){const t=new Vre(this);return(this.subcontext||(this.subcontext=[])).push(t),t},detach(t){this.subcontext=this.subcontext.filter(n=>n!==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,r=n.dataflow,i=t.value;if(n.set(t.id,e),Eze(t.type)&&i&&(i.$ingest?r.ingest(e,i.$ingest,i.$format):i.$request?r.preload(e,i.$request,i.$format):r.pulse(e,r.changeset().insert(i))),t.root&&(n.root=e),t.parent){let s=n.get(t.parent.$ref);s?(r.connect(s,[e]),e.targets().add(s)):(n.unresolved=n.unresolved||[]).push(()=>{s=n.get(t.parent.$ref),r.connect(s,[e]),e.targets().add(s)})}if(t.signal&&(n.signals[t.signal]=e),t.scale&&(n.scales[t.scale]=e),t.data)for(const s in t.data){const o=n.data[s]||(n.data[s]={});t.data[s].forEach(u=>o[u]=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[jk(e)]))},stream(t,e){this.set(t.id,e)},update(t,e,n,r,i){this.dataflow.on(e,n,r,i,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:pze,parseOperator:vze,parseOperatorParameters:_ze,parseParameters:Cze,parseStream:Ize,parseUpdate:$ze,getState:kze,setState:Pze};function jze(t){const e=t.container();e&&(e.setAttribute("role","graphics-document"),e.setAttribute("aria-roleDescription","visualization"),Yre(e,t.description()))}function Yre(t,e){t&&(e==null?t.removeAttribute("aria-label"):t.setAttribute("aria-label",e))}function Uze(t){t.add(null,e=>(t._background=e.bg,t._resize=1,e.bg),{bg:t._signals.background})}const Uk="default";function qze(t){const e=t._signals.cursor||(t._signals.cursor=t.add({user:Uk,item:null}));t.on(t.events("view","mousemove"),e,(n,r)=>{const i=e.value,s=i?je(i)?i:i.user:Uk,o=r.item&&r.item.cursor||null;return i&&s===i.user&&o==i.item?i:{user:s,item:o}}),t.add(null,function(n){let r=n.cursor,i=this.value;return je(r)||(i=r.item,r=r.user),qk(t,r&&r!==Uk?r:i||r),i},{cursor:e})}function qk(t,e){const n=t.globalCursor()?typeof document<"u"&&document.body:t.container();if(n)return e==null?n.style.removeProperty("cursor"):n.style.cursor=e}function DO(t,e){var n=t._runtime.data;return Je(n,e)||ve("Unrecognized data set: "+e),n[e]}function Hze(t,e){return arguments.length<2?DO(this,t).values.value:FO.call(this,t,jp().remove(Ko).insert(e))}function FO(t,e){LY(e)||ve("Second argument to changes must be a changeset.");const n=DO(this,t);return n.modified=!0,this.pulse(n.input,e)}function zze(t,e){return FO.call(this,t,jp().insert(e))}function Qze(t,e){return FO.call(this,t,jp().remove(e))}function Xre(t){var e=t.padding();return Math.max(0,t._viewWidth+e.left+e.right)}function Kre(t){var e=t.padding();return Math.max(0,t._viewHeight+e.top+e.bottom)}function wO(t){var e=t.padding(),n=t._origin;return[e.left+n[0],e.top+n[1]]}function Gze(t){var e=wO(t),n=Xre(t),r=Kre(t);t._renderer.background(t.background()),t._renderer.resize(n,r,e),t._handler.origin(e),t._resizeListeners.forEach(i=>{try{i(n,r)}catch(s){t.error(s)}})}function Wze(t,e,n){var r=t._renderer,i=r&&r.canvas(),s,o,u;return i&&(u=wO(t),o=e.changedTouches?e.changedTouches[0]:e,s=oB(o,i),s[0]-=u[0],s[1]-=u[1]),e.dataflow=t,e.item=n,e.vega=Vze(t,n,s),e}function Vze(t,e,n){const r=e?e.mark.marktype==="group"?e:e.mark.group:null;function i(o){var u=r,a;if(o){for(a=e;a;a=a.mark.group)if(a.mark.name===o){u=a;break}}return u&&u.mark&&u.mark.interactive?u:{}}function s(o){if(!o)return n;je(o)&&(o=i(o));const u=n.slice();for(;o;)u[0]-=o.x||0,u[1]-=o.y||0,o=o.mark&&o.mark.group;return u}return{view:vi(t),item:vi(e||{}),group:i,xy:s,x:o=>s(o)[0],y:o=>s(o)[1]}}const Jre="view",Yze="timer",Xze="window",Kze={trap:!1};function Jze(t){const e=ct({defaults:{}},t),n=(r,i)=>{i.forEach(s=>{_e(r[s])&&(r[s]=na(r[s]))})};return n(e.defaults,["prevent","allow"]),n(e,["view","window","selector"]),e}function Zre(t,e,n,r){t._eventListeners.push({type:n,sources:Pe(e),handler:r})}function Zze(t,e){var n=t._eventConfig.defaults,r=n.prevent,i=n.allow;return r===!1||i===!0?!1:r===!0||i===!1?!0:r?r[e]:i?!i[e]:t.preventDefault()}function LO(t,e,n){const r=t._eventConfig&&t._eventConfig[e];return r===!1||Qe(r)&&!r[n]?(t.warn(`Blocked ${e} ${n} event listener.`),!1):!0}function eQe(t,e,n){var r=this,i=new eI(n),s=function(l,c){r.runAsync(null,()=>{t===Jre&&Zze(r,e)&&l.preventDefault(),i.receive(Wze(r,l,c))})},o;if(t===Yze)LO(r,"timer",e)&&r.timer(s,e);else if(t===Jre)LO(r,"view",e)&&r.addEventListener(e,s,Kze);else if(t===Xze?LO(r,"window",e)&&typeof window<"u"&&(o=[window]):typeof document<"u"&&LO(r,"selector",e)&&(o=Array.from(document.querySelectorAll(t))),!o)r.warn("Can not resolve event source: "+t);else{for(var u=0,a=o.length;u<a;++u)o[u].addEventListener(e,s);Zre(r,o,e,s)}return i}function eie(t){return t.item}function tie(t){return t.item.mark.source}function nie(t){return function(e,n){return n.vega.view().changeset().encode(n.item,t)}}function tQe(t,e){return t=[t||"hover"],e=[e||"update",t[0]],this.on(this.events("view","mouseover",eie),tie,nie(t)),this.on(this.events("view","mouseout",eie),tie,nie(e)),this}function nQe(){var t=this._tooltip,e=this._timers,n=this._eventListeners,r,i,s;for(r=e.length;--r>=0;)e[r].stop();for(r=n.length;--r>=0;)for(s=n[r],i=s.sources.length;--i>=0;)s.sources[i].removeEventListener(s.type,s.handler);return t&&t.call(this,this._handler,null,null,null),this}function Us(t,e,n){const r=document.createElement(t);for(const i in e)r.setAttribute(i,e[i]);return n!=null&&(r.textContent=n),r}const rQe="vega-bind",iQe="vega-bind-name",sQe="vega-bind-radio";function oQe(t,e,n){if(!e)return;const r=n.param;let i=n.state;return i||(i=n.state={elements:null,active:!1,set:null,update:o=>{o!=t.signal(r.signal)&&t.runAsync(null,()=>{i.source=!0,t.signal(r.signal,o)})}},r.debounce&&(i.update=lV(r.debounce,i.update))),(r.input==null&&r.element?uQe:lQe)(i,e,r,t),i.active||(t.on(t._signals[r.signal],null,()=>{i.source?i.source=!1:i.set(t.signal(r.signal))}),i.active=!0),i}function uQe(t,e,n,r){const i=n.event||"input",s=()=>t.update(e.value);r.signal(n.signal,e.value),e.addEventListener(i,s),Zre(r,e,i,s),t.set=o=>{e.value=o,e.dispatchEvent(aQe(i))}}function aQe(t){return typeof Event<"u"?new Event(t):{type:t}}function lQe(t,e,n,r){const i=r.signal(n.signal),s=Us("div",{class:rQe}),o=n.input==="radio"?s:s.appendChild(Us("label"));o.appendChild(Us("span",{class:iQe},n.name||n.signal)),e.appendChild(s);let u=cQe;switch(n.input){case"checkbox":u=fQe;break;case"select":u=xQe;break;case"radio":u=dQe;break;case"range":u=hQe;break}u(t,o,n,i)}function cQe(t,e,n,r){const i=Us("input");for(const s in n)s!=="signal"&&s!=="element"&&i.setAttribute(s==="input"?"type":s,n[s]);i.setAttribute("name",n.signal),i.value=r,e.appendChild(i),i.addEventListener("input",()=>t.update(i.value)),t.elements=[i],t.set=s=>i.value=s}function fQe(t,e,n,r){const i={type:"checkbox",name:n.signal};r&&(i.checked=!0);const s=Us("input",i);e.appendChild(s),s.addEventListener("change",()=>t.update(s.checked)),t.elements=[s],t.set=o=>s.checked=!!o||null}function xQe(t,e,n,r){const i=Us("select",{name:n.signal}),s=n.labels||[];n.options.forEach((o,u)=>{const a={value:o};IO(o,r)&&(a.selected=!0),i.appendChild(Us("option",a,(s[u]||o)+""))}),e.appendChild(i),i.addEventListener("change",()=>{t.update(n.options[i.selectedIndex])}),t.elements=[i],t.set=o=>{for(let u=0,a=n.options.length;u<a;++u)if(IO(n.options[u],o)){i.selectedIndex=u;return}}}function dQe(t,e,n,r){const i=Us("span",{class:sQe}),s=n.labels||[];e.appendChild(i),t.elements=n.options.map((o,u)=>{const a={type:"radio",name:n.signal,value:o};IO(o,r)&&(a.checked=!0);const l=Us("input",a);l.addEventListener("change",()=>t.update(o));const c=Us("label",{},(s[u]||o)+"");return c.prepend(l),i.appendChild(c),l}),t.set=o=>{const u=t.elements,a=u.length;for(let l=0;l<a;++l)IO(u[l].value,o)&&(u[l].checked=!0)}}function hQe(t,e,n,r){r=r!==void 0?r:(+n.max+ +n.min)/2;const i=n.max!=null?n.max:Math.max(100,+r)||100,s=n.min||Math.min(0,i,+r)||0,o=n.step||rc(s,i,100),u=Us("input",{type:"range",name:n.signal,min:s,max:i,step:o});u.value=r;const a=Us("span",{},+r);e.appendChild(u),e.appendChild(a);const l=()=>{a.textContent=u.value,t.update(+u.value)};u.addEventListener("input",l),u.addEventListener("change",l),t.elements=[u],t.set=c=>{u.value=c,a.textContent=c}}function IO(t,e){return t===e||t+""==e+""}function rie(t,e,n,r,i,s){return e=e||new r(t.loader()),e.initialize(n,Xre(t),Kre(t),wO(t),i,s).background(t.background())}function Hk(t,e){return e?function(){try{e.apply(this,arguments)}catch(n){t.error(n)}}:null}function pQe(t,e,n,r){const i=new r(t.loader(),Hk(t,t.tooltip())).scene(t.scenegraph().root).initialize(n,wO(t),t);return e&&e.handlers().forEach(s=>{i.on(s.type,s.handler)}),i}function gQe(t,e){const n=this,r=n._renderType,i=n._eventConfig.bind,s=mB(r);t=n._el=t?zk(n,t,!0):null,jze(n),s||n.error("Unrecognized renderer type: "+r);const o=s.handler||dR,u=t?s.renderer:s.headless;return n._renderer=u?rie(n,n._renderer,t,u):null,n._handler=pQe(n,n._handler,t,o),n._redraw=!0,t&&i!=="none"&&(e=e?n._elBind=zk(n,e,!0):t.appendChild(Us("form",{class:"vega-bindings"})),n._bind.forEach(a=>{a.param.element&&i!=="container"&&(a.element=zk(n,a.param.element,!!a.param.input))}),n._bind.forEach(a=>{oQe(n,a.element||e,a)})),n}function zk(t,e,n){if(typeof e=="string")if(typeof document<"u"){if(e=document.querySelector(e),!e)return t.error("Signal bind element not found: "+e),null}else return t.error("DOM document instance not found."),null;if(e&&n)try{e.textContent=""}catch(r){e=null,t.error(r)}return e}const s3=t=>+t||0,mQe=t=>({top:t,bottom:t,left:t,right:t});function iie(t){return Qe(t)?{top:s3(t.top),bottom:s3(t.bottom),left:s3(t.left),right:s3(t.right)}:mQe(s3(t))}async function Qk(t,e,n,r){const i=mB(e),s=i&&i.headless;return s||ve("Unrecognized renderer type: "+e),await t.runAsync(),rie(t,null,null,s,n,r).renderAsync(t._scenegraph.root)}async function yQe(t,e){t!==nd.Canvas&&t!==nd.SVG&&t!==nd.PNG&&ve("Unrecognized image type: "+t);const n=await Qk(this,t,e);return t===nd.SVG?EQe(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")}function EQe(t,e){const n=new Blob([t],{type:e});return window.URL.createObjectURL(n)}async function AQe(t,e){return(await Qk(this,nd.Canvas,t,e)).canvas()}async function SQe(t){return(await Qk(this,nd.SVG,t)).svg()}function vQe(t,e,n){return Mze(t,qy,r3,n).parse(e)}function _Qe(t){var e=this._runtime.scales;return Je(e,t)||ve("Unrecognized scale or projection: "+t),e[t].value}var sie="width",oie="height",Gk="padding",uie={skip:!0};function aie(t,e){var n=t.autosize(),r=t.padding();return e-(n&&n.contains===Gk?r.left+r.right:0)}function lie(t,e){var n=t.autosize(),r=t.padding();return e-(n&&n.contains===Gk?r.top+r.bottom:0)}function CQe(t){var e=t._signals,n=e[sie],r=e[oie],i=e[Gk];function s(){t._autosize=t._resize=1}t._resizeWidth=t.add(null,u=>{t._width=u.size,t._viewWidth=aie(t,u.size),s()},{size:n}),t._resizeHeight=t.add(null,u=>{t._height=u.size,t._viewHeight=lie(t,u.size),s()},{size:r});const o=t.add(null,s,{pad:i});t._resizeWidth.rank=n.rank+1,t._resizeHeight.rank=r.rank+1,o.rank=i.rank+1}function bQe(t,e,n,r,i,s){this.runAfter(o=>{let u=0;o._autosize=0,o.width()!==n&&(u=1,o.signal(sie,n,uie),o._resizeWidth.skip(!0)),o.height()!==r&&(u=1,o.signal(oie,r,uie),o._resizeHeight.skip(!0)),o._viewWidth!==t&&(o._resize=1,o._viewWidth=t),o._viewHeight!==e&&(o._resize=1,o._viewHeight=e),(o._origin[0]!==i[0]||o._origin[1]!==i[1])&&(o._resize=1,o._origin=i),u&&o.run("enter"),s&&o.runAfter(a=>a.resize())},!1,1)}function TQe(t){return this._runtime.getState(t||{data:RQe,signals:OQe,recurse:!0})}function RQe(t,e){return e.modified&&_e(e.input.value)&&t.indexOf("_:vega:_")}function OQe(t,e){return!(t==="parent"||e instanceof qy.proxy)}function NQe(t){return this.runAsync(null,e=>{e._trigger=!1,e._runtime.setState(t)},e=>{e._trigger=!0}),this}function DQe(t,e){function n(r){t({timestamp:Date.now(),elapsed:r})}this._timers.push(t9e(n,e))}function FQe(t,e,n,r){const i=t.element();i&&i.setAttribute("title",wQe(r))}function wQe(t){return t==null?"":_e(t)?cie(t):Qe(t)&&!Ox(t)?LQe(t):t+""}function LQe(t){return Object.keys(t).map(e=>{const n=t[e];return e+": "+(_e(n)?cie(n):fie(n))}).join(`
1338
- `)}function cie(t){return"["+t.map(fie).join(", ")+"]"}function fie(t){return _e(t)?"[…]":Qe(t)&&!Ox(t)?"{…}":t}function xie(t,e){const n=this;if(e=e||{},jy.call(n),e.loader&&n.loader(e.loader),e.logger&&n.logger(e.logger),e.logLevel!=null&&n.logLevel(e.logLevel),e.locale||t.locale){const s=ct({},t.locale,e.locale);n.locale(_Y(s.number,s.time))}n._el=null,n._elBind=null,n._renderType=e.renderer||nd.Canvas,n._scenegraph=new AZ;const r=n._scenegraph.root;n._renderer=null,n._tooltip=e.tooltip||FQe,n._redraw=!0,n._handler=new dR().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=Jze(t.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=vQe(n,t,e.expr);n._runtime=i,n._signals=i.signals,n._bind=(t.bindings||[]).map(s=>({state:null,param:ct({},s)})),i.root&&i.root.set(r),r.source=i.data.root.input,n.pulse(i.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=aie(n,n._width),n._viewHeight=lie(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,CQe(n),Uze(n),qze(n),n.description(t.description),e.hover&&n.hover(),e.container&&n.initialize(e.container,e.bind)}function $O(t,e){return Je(t._signals,e)?t._signals[e]:ve("Unrecognized signal name: "+Fe(e))}function die(t,e){const n=(t._targets||[]).filter(r=>r._update&&r._update.handler===e);return n.length?n[0]:null}function hie(t,e,n,r){let i=die(n,r);return i||(i=Hk(t,()=>r(e,n.value)),i.handler=r,t.on(n,null,i)),t}function pie(t,e,n){const r=die(e,n);return r&&e._targets.remove(r),t}De(xie,jy,{async evaluate(t,e,n){if(await jy.prototype.evaluate.call(this,t,e),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,Gze(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&lT(this,n),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const e=t!=null?t+"":null;return e!==this._desc&&Yre(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 r=$O(this,t);return arguments.length===1?r.value:this.update(r,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",iie(t)):iie(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?(mB(t)||ve("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&&(jy.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch($O(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:bQe,addEventListener(t,e,n){let r=e;return n&&n.trap===!1||(r=Hk(this,e),r.raw=e),this._handler.on(t,r),this},removeEventListener(t,e){for(var n=this._handler.handlers(t),r=n.length,i,s;--r>=0;)if(s=n[r].type,i=n[r].handler,t===s&&(e===i||e===i.raw)){this._handler.off(s,i);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 hie(this,t,$O(this,t),e)},removeSignalListener(t,e){return pie(this,$O(this,t),e)},addDataListener(t,e){return hie(this,t,DO(this,t).values,e)},removeDataListener(t,e){return pie(this,DO(this,t).values,e)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const e=qk(this,null);this._globalCursor=!!t,e&&qk(this,e)}return this}else return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:DQe,events:eQe,finalize:nQe,hover:tQe,data:Hze,change:FO,insert:zze,remove:Qze,scale:_Qe,initialize:gQe,toImageURL:yQe,toCanvas:AQe,toSVG:SQe,getState:TQe,setState:NQe});const IQe="view",BO="[",kO="]",gie="{",mie="}",$Qe=":",yie=",",BQe="@",kQe=">",PQe=/[[\]{}]/,MQe={"*":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 Eie,Aie;function hd(t,e,n){return Eie=e||IQe,Aie=n||MQe,Sie(t.trim()).map(Wk)}function jQe(t){return Aie[t]}function o3(t,e,n,r,i){const s=t.length;let o=0,u;for(;e<s;++e){if(u=t[e],!o&&u===n)return e;i&&i.indexOf(u)>=0?--o:r&&r.indexOf(u)>=0&&++o}return e}function Sie(t){const e=[],n=t.length;let r=0,i=0;for(;i<n;)i=o3(t,i,yie,BO+gie,kO+mie),e.push(t.substring(r,i).trim()),r=++i;if(e.length===0)throw"Empty event selector: "+t;return e}function Wk(t){return t[0]==="["?UQe(t):qQe(t)}function UQe(t){const e=t.length;let n=1,r;if(n=o3(t,n,kO,BO,kO),n===e)throw"Empty between selector: "+t;if(r=Sie(t.substring(1,n)),r.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(n+1).trim(),t[0]!==kQe)throw"Expected '>' after between selector: "+t;r=r.map(Wk);const i=Wk(t.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)}function qQe(t){const e={source:Eie},n=[];let r=[0,0],i=0,s=0,o=t.length,u=0,a,l;if(t[o-1]===mie){if(u=t.lastIndexOf(gie),u>=0){try{r=HQe(t.substring(u+1,o-1))}catch{throw"Invalid throttle specification: "+t}t=t.slice(0,u).trim(),o=t.length}else throw"Unmatched right brace: "+t;u=0}if(!o)throw t;if(t[0]===BQe&&(i=++u),a=o3(t,u,$Qe),a<o&&(n.push(t.substring(s,a).trim()),s=u=++a),u=o3(t,u,BO),u===o)n.push(t.substring(s,o).trim());else if(n.push(t.substring(s,u).trim()),l=[],s=++u,s===o)throw"Unmatched left bracket: "+t;for(;u<o;){if(u=o3(t,u,kO),u===o)throw"Unmatched left bracket: "+t;if(l.push(t.substring(s,u).trim()),u<o-1&&t[++u]!==BO)throw"Expected left bracket: "+t;s=++u}if(!(o=n.length)||PQe.test(n[o-1]))throw"Invalid event selector: "+t;return o>1?(e.type=n[1],i?e.markname=n[0].slice(1):jQe(n[0])?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)),l!=null&&(e.filter=l),r[0]&&(e.throttle=r[0]),r[1]&&(e.debounce=r[1]),e}function HQe(t){const e=t.split(yie);if(!t.length||e.length>2)throw t;return e.map(n=>{const r=+n;if(r!==r)throw t;return r})}function zQe(t){return Qe(t)?t:{type:t||"pad"}}const u3=t=>+t||0,QQe=t=>({top:t,bottom:t,left:t,right:t});function GQe(t){return Qe(t)?t.signal?t:{top:u3(t.top),bottom:u3(t.bottom),left:u3(t.left),right:u3(t.right)}:QQe(u3(t))}const Sr=t=>Qe(t)&&!_e(t)?ct({},t):{value:t};function vie(t,e,n,r){return n!=null?(Qe(n)&&!_e(n)||_e(n)&&n.length&&Qe(n[0])?t.update[e]=n:t[r||"enter"][e]={value:n},1):0}function Br(t,e,n){for(const r in e)vie(t,r,e[r]);for(const r in n)vie(t,r,n[r],"update")}function E2(t,e,n){for(const r in e)n&&Je(n,r)||(t[r]=ct(t[r]||{},e[r]));return t}function A2(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}const Vk="mark",Yk="frame",Xk="scope",WQe="axis",VQe="axis-domain",YQe="axis-grid",XQe="axis-label",KQe="axis-tick",JQe="axis-title",ZQe="legend",eGe="legend-band",tGe="legend-entry",nGe="legend-gradient",_ie="legend-label",rGe="legend-symbol",iGe="legend-title",sGe="title",oGe="title-text",uGe="title-subtitle";function aGe(t,e,n,r,i){const s={},o={};let u,a,l,c;a="lineBreak",e==="text"&&i[a]!=null&&!A2(a,t)&&Kk(s,a,i[a]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===Yk?i.group:n===Vk?ct({},i.mark,i[e]):null;for(a in c)l=A2(a,t)||(a==="fill"||a==="stroke")&&(A2("fill",t)||A2("stroke",t)),l||Kk(s,a,c[a]);Pe(r).forEach(f=>{const x=i.style&&i.style[f];for(const h in x)A2(h,t)||Kk(s,h,x[h])}),t=ct({},t);for(a in s)c=s[a],c.signal?(u=u||{})[a]=c:o[a]=c;return t.enter=ct(o,t.enter),u&&(t.update=ct(u,t.update)),t}function Kk(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}const Cie=t=>je(t)?Fe(t):t.signal?`(${t.signal})`:bie(t);function PO(t){if(t.gradient!=null)return cGe(t);let e=t.signal?`(${t.signal})`:t.color?lGe(t.color):t.field!=null?bie(t.field):t.value!==void 0?Fe(t.value):void 0;return t.scale!=null&&(e=fGe(t,e)),e===void 0&&(e=null),t.exponent!=null&&(e=`pow(${e},${jO(t.exponent)})`),t.mult!=null&&(e+=`*${jO(t.mult)}`),t.offset!=null&&(e+=`+${jO(t.offset)}`),t.round&&(e=`round(${e})`),e}const MO=(t,e,n,r)=>`(${t}(${[e,n,r].map(PO).join(",")})+'')`;function lGe(t){return t.c?MO("hcl",t.h,t.c,t.l):t.h||t.s?MO("hsl",t.h,t.s,t.l):t.l||t.a?MO("lab",t.l,t.a,t.b):t.r||t.g||t.b?MO("rgb",t.r,t.g,t.b):null}function cGe(t){const e=[t.start,t.stop,t.count].map(n=>n==null?null:Fe(n));for(;e.length&&_t(e)==null;)e.pop();return e.unshift(Cie(t.gradient)),`gradient(${e.join(",")})`}function jO(t){return Qe(t)?"("+PO(t)+")":t}function bie(t){return Tie(Qe(t)?t:{datum:t})}function Tie(t){let e,n,r;if(t.signal)e="datum",r=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?(r=t.parent,e+=".datum"):r=t.group}else t.datum?(e="datum",r=t.datum):ve("Invalid field reference: "+Fe(t));return t.signal||(r=je(r)?El(r).map(Fe).join("]["):Tie(r)),e+"["+r+"]"}function fGe(t,e){const n=Cie(t.scale);return t.range!=null?e=`lerp(_range(${n}), ${+t.range})`:(e!==void 0&&(e=`_scale(${n}, ${e})`),t.band&&(e=(e?e+"+":"")+`_bandwidth(${n})`+(+t.band==1?"":"*"+jO(t.band)),t.extra&&(e=`(datum.extra ? _scale(${n}, datum.extra.value) : ${e})`)),e==null&&(e="0")),e}function xGe(t){let e="";return t.forEach(n=>{const r=PO(n);e+=n.test?`(${n.test})?${r}:`:r}),_t(e)===":"&&(e+="null"),e}function Rie(t,e,n,r,i,s){const o={};s=s||{},s.encoders={$encode:o},t=aGe(t,e,n,r,i.config);for(const u in t)o[u]=dGe(t[u],e,s,i);return s}function dGe(t,e,n,r){const i={},s={};for(const o in t)t[o]!=null&&(i[o]=pGe(hGe(t[o]),r,n,s));return{$expr:{marktype:e,channels:i},$fields:Object.keys(s),$output:Object.keys(t)}}function hGe(t){return _e(t)?xGe(t):PO(t)}function pGe(t,e,n,r){const i=_a(t,e);return i.$fields.forEach(s=>r[s]=1),ct(n,i.$params),i.$expr}const gGe="outer",mGe=["value","update","init","react","bind"];function Oie(t,e){ve(t+' for "outer" push: '+Fe(e))}function Nie(t,e){const n=t.name;if(t.push===gGe)e.signals[n]||Oie("No prior signal definition",n),mGe.forEach(r=>{t[r]!==void 0&&Oie("Invalid property ",r)});else{const r=e.addSignal(n,t.value);t.react===!1&&(r.react=!1),t.bind&&e.addBinding(n,t.bind)}}function Jk(t,e,n,r){this.id=-1,this.type=t,this.value=e,this.params=n,r&&(this.parent=r)}function UO(t,e,n,r){return new Jk(t,e,n,r)}function qO(t,e){return UO("operator",t,e)}function Ke(t){const e={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(e),e}function a3(t,e){return e?{$field:t,$name:e}:{$field:t}}const Zk=a3("key");function Die(t,e){return{$compare:t,$order:e}}function yGe(t,e){const n={$key:t};return e&&(n.$flat=!0),n}const EGe="ascending",AGe="descending";function SGe(t){return Qe(t)?(t.order===AGe?"-":"+")+HO(t.op,t.field):""}function HO(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}const e8="scope",t8="view";function nr(t){return t&&t.signal}function vGe(t){return t&&t.expr}function zO(t){if(nr(t))return!0;if(Qe(t)){for(const e in t)if(zO(t[e]))return!0}return!1}function uu(t,e){return t??e}function pd(t){return t&&t.signal||t}const Fie="timer";function l3(t,e){return(t.merge?CGe:t.stream?bGe:t.type?TGe:ve("Invalid stream specification: "+Fe(t)))(t,e)}function _Ge(t){return t===e8?t8:t||t8}function CGe(t,e){const n=t.merge.map(i=>l3(i,e)),r=n8({merge:n},t,e);return e.addStream(r).id}function bGe(t,e){const n=l3(t.stream,e),r=n8({stream:n},t,e);return e.addStream(r).id}function TGe(t,e){let n;t.type===Fie?(n=e.event(Fie,t.throttle),t={between:t.between,filter:t.filter}):n=e.event(_Ge(t.source),t.type);const r=n8({stream:n},t,e);return Object.keys(r).length===1?n:e.addStream(r).id}function n8(t,e,n){let r=e.between;return r&&(r.length!==2&&ve('Stream "between" parameter must have 2 entries: '+Fe(e)),t.between=[l3(r[0],n),l3(r[1],n)]),r=e.filter?[].concat(e.filter):[],(e.marktype||e.markname||e.markrole)&&r.push(RGe(e.marktype,e.markname,e.markrole)),e.source===e8&&r.push("inScope(event.item)"),r.length&&(t.filter=_a("("+r.join(")&&(")+")",n).$expr),(r=e.throttle)!=null&&(t.throttle=+r),(r=e.debounce)!=null&&(t.debounce=+r),e.consume&&(t.consume=!0),t}function RGe(t,e,n){const r="event.item";return r+(t&&t!=="*"?"&&"+r+".mark.marktype==='"+t+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(e?"&&"+r+".mark.name==='"+e+"'":"")}const OGe={code:"_.$value",ast:{type:"Identifier",value:"value"}};function NGe(t,e,n){const r=t.encode,i={target:n};let s=t.events,o=t.update,u=[];s||ve("Signal update missing events specification."),je(s)&&(s=hd(s,e.isSubscope()?e8:t8)),s=Pe(s).filter(a=>a.signal||a.scale?(u.push(a),0):1),u.length>1&&(u=[FGe(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),r!=null&&(o&&ve("Signal encode and update are mutually exclusive."),o="encode(item(),"+Fe(r)+")"),i.update=je(o)?_a(o,e):o.expr!=null?_a(o.expr,e):o.value!=null?o.value:o.signal!=null?{$expr:OGe,$params:{$value:e.signalRef(o.signal)}}:ve("Invalid signal update specification."),t.force&&(i.options={force:!0}),u.forEach(a=>e.addUpdate(ct(DGe(a,e),i)))}function DGe(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):l3(t,e)}}function FGe(t){return{signal:"["+t.map(e=>e.scale?'scale("'+e.scale+'")':e.signal)+"]"}}function wGe(t,e){const n=e.getSignal(t.name);let r=t.update;t.init&&(r?ve("Signals can not include both init and update expressions."):(r=t.init,n.initonly=!0)),r&&(r=_a(r,e),n.update=r.$expr,n.params=r.$params),t.on&&t.on.forEach(i=>NGe(i,e,n.id))}const jt=t=>(e,n,r)=>UO(t,n,e||void 0,r),wie=jt("aggregate"),LGe=jt("axisticks"),Lie=jt("bound"),au=jt("collect"),Iie=jt("compare"),IGe=jt("datajoin"),$ie=jt("encode"),$Ge=jt("expression"),BGe=jt("facet"),kGe=jt("field"),PGe=jt("key"),MGe=jt("legendentries"),jGe=jt("load"),UGe=jt("mark"),qGe=jt("multiextent"),HGe=jt("multivalues"),zGe=jt("overlap"),QGe=jt("params"),Bie=jt("prefacet"),GGe=jt("projection"),WGe=jt("proxy"),VGe=jt("relay"),kie=jt("render"),YGe=jt("scale"),gd=jt("sieve"),XGe=jt("sortitems"),Pie=jt("viewlayout"),KGe=jt("values");let JGe=0;const Mie={min:"min",max:"max",count:"sum"};function ZGe(t,e){const n=t.type||"linear";AJ(n)||ve("Unrecognized scale type: "+Fe(n)),e.addScale(t.name,{type:n,domain:void 0})}function eWe(t,e){const n=e.getScale(t.name).params;let r;n.domain=jie(t.domain,t,e),t.range!=null&&(n.range=qie(t,e,n)),t.interpolate!=null&&cWe(t.interpolate,n),t.nice!=null&&(n.nice=lWe(t.nice)),t.bins!=null&&(n.bins=aWe(t.bins,e));for(r in t)Je(n,r)||r==="name"||(n[r]=So(t[r],e))}function So(t,e){return Qe(t)?t.signal?e.signalRef(t.signal):ve("Unsupported object: "+Fe(t)):t}function QO(t,e){return t.signal?e.signalRef(t.signal):t.map(n=>So(n,e))}function GO(t){ve("Can not find data set: "+Fe(t))}function jie(t,e,n){if(!t){(e.domainMin!=null||e.domainMax!=null)&&ve("No scale domain defined for domainMin/domainMax to override.");return}return t.signal?n.signalRef(t.signal):(_e(t)?tWe:t.fields?rWe:nWe)(t,e,n)}function tWe(t,e,n){return t.map(r=>So(r,n))}function nWe(t,e,n){const r=n.getData(t.data);return r||GO(t.data),Kp(e.type)?r.valuesRef(n,t.field,Uie(t.sort,!1)):_J(e.type)?r.domainRef(n,t.field):r.extentRef(n,t.field)}function rWe(t,e,n){const r=t.data,i=t.fields.reduce((s,o)=>(o=je(o)?{data:r,field:o}:_e(o)||o.signal?iWe(o,n):o,s.push(o),s),[]);return(Kp(e.type)?sWe:_J(e.type)?oWe:uWe)(t,n,i)}function iWe(t,e){const n="_:vega:_"+JGe++,r=au({});if(_e(t))r.value={$ingest:t};else if(t.signal){const i="setdata("+Fe(n)+","+t.signal+")";r.params.input=e.signalRef(i)}return e.addDataPipeline(n,[r,gd({})]),{data:n,field:"data"}}function sWe(t,e,n){const r=Uie(t.sort,!0);let i,s;const o=n.map(l=>{const c=e.getData(l.data);return c||GO(l.data),c.countsRef(e,l.field,r)}),u={groupby:Zk,pulse:o};r&&(i=r.op||"count",s=r.field?HO(i,r.field):"count",u.ops=[Mie[i]],u.fields=[e.fieldRef(s)],u.as=[s]),i=e.add(wie(u));const a=e.add(au({pulse:Ke(i)}));return s=e.add(KGe({field:Zk,sort:e.sortRef(r),pulse:Ke(a)})),Ke(s)}function Uie(t,e){return t&&(!t.field&&!t.op?Qe(t)?t.field="key":t={field:"key"}:!t.field&&t.op!=="count"?ve("No field provided for sort aggregate op: "+t.op):e&&t.field&&t.op&&!Mie[t.op]&&ve("Multiple domain scales can not be sorted using "+t.op)),t}function oWe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||GO(i.data),s.domainRef(e,i.field)});return Ke(e.add(HGe({values:r})))}function uWe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||GO(i.data),s.extentRef(e,i.field)});return Ke(e.add(qGe({extents:r})))}function aWe(t,e){return t.signal||_e(t)?QO(t,e):e.objectProperty(t)}function lWe(t){return Qe(t)?{interval:So(t.interval),step:So(t.step)}:So(t)}function cWe(t,e){e.interpolate=So(t.type||t),t.gamma!=null&&(e.interpolateGamma=So(t.gamma))}function qie(t,e,n){const r=e.config.range;let i=t.range;if(i.signal)return e.signalRef(i.signal);if(je(i)){if(r&&Je(r,i))return t=ct({},t,{range:r[i]}),qie(t,e,n);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=Kp(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:ve("Unrecognized scale range value: "+Fe(i))}else if(i.scheme){n.scheme=_e(i.scheme)?QO(i.scheme,e):So(i.scheme,e),i.extent&&(n.schemeExtent=QO(i.extent,e)),i.count&&(n.schemeCount=So(i.count,e));return}else if(i.step){n.rangeStep=So(i.step,e);return}else{if(Kp(t.type)&&!_e(i))return jie(i,t,e);_e(i)||ve("Unsupported range type: "+Fe(i))}return i.map(s=>(_e(s)?QO:So)(s,e))}function fWe(t,e){const n=e.config.projection||{},r={};for(const i in t)i!=="name"&&(r[i]=r8(t[i],i,e));for(const i in n)r[i]==null&&(r[i]=r8(n[i],i,e));e.addProjection(t.name,r)}function r8(t,e,n){return _e(t)?t.map(r=>r8(r,e,n)):Qe(t)?t.signal?n.signalRef(t.signal):e==="fit"?t:ve("Unsupported parameter object: "+Fe(t)):t}const lu="top",S2="left",v2="right",Dc="bottom",Hie="center",xWe="vertical",dWe="start",hWe="middle",pWe="end",i8="index",s8="label",gWe="offset",_2="perc",mWe="perc2",vo="value",c3="guide-label",o8="guide-title",yWe="group-title",EWe="group-subtitle",zie="symbol",WO="gradient",u8="discrete",a8="size",l8=[a8,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],f3={name:1,style:1,interactive:1},Ct={value:0},_o={value:1},VO="group",Qie="rect",c8="rule",AWe="symbol",md="text";function x3(t){return t.type=VO,t.interactive=t.interactive||!1,t}function ds(t,e){const n=(r,i)=>uu(t[r],uu(e[r],i));return n.isVertical=r=>xWe===uu(t.direction,e.direction||(r?e.symbolDirection:e.gradientDirection)),n.gradientLength=()=>uu(t.gradientLength,e.gradientLength||e.gradientWidth),n.gradientThickness=()=>uu(t.gradientThickness,e.gradientThickness||e.gradientHeight),n.entryColumns=()=>uu(t.columns,uu(e.columns,+n.isVertical(!0))),n}function Gie(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 SWe(t,e,n){const r=e.config.style[n];return r&&r[t]}function YO(t,e,n){return`item.anchor === '${dWe}' ? ${t} : item.anchor === '${pWe}' ? ${e} : ${n}`}const f8=YO(Fe(S2),Fe(v2),Fe(Hie));function vWe(t){const e=t("tickBand");let n=t("tickOffset"),r,i;return e?e.signal?(r={signal:`(${e.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${e.signal}) === 'extent'`},Qe(n)||(n={signal:`(${e.signal}) === 'extent' ? 0 : ${n}`})):e==="extent"?(r=1,i=!0,n=0):(r=.5,i=!1):(r=t("bandPosition"),i=t("tickExtra")),{extra:i,band:r,offset:n}}function Wie(t,e){return e?t?Qe(t)?Object.assign({},t,{offset:Wie(t.offset,e)}):{value:t,offset:e}:e:t}function qs(t,e){return e?(t.name=e.name,t.style=e.style||t.style,t.interactive=!!e.interactive,t.encode=E2(t.encode,e,f3)):t.interactive=!1,t}function _We(t,e,n,r){const i=ds(t,n),s=i.isVertical(),o=i.gradientThickness(),u=i.gradientLength();let a,l,c,f,x;s?(l=[0,1],c=[0,0],f=o,x=u):(l=[0,0],c=[1,0],f=u,x=o);const h={enter:a={opacity:Ct,x:Ct,y:Ct,width:Sr(f),height:Sr(x)},update:ct({},a,{opacity:_o,fill:{gradient:e,start:l,stop:c}}),exit:{opacity:Ct}};return Br(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),qs({type:Qie,role:nGe,encode:h},r)}function CWe(t,e,n,r,i){const s=ds(t,n),o=s.isVertical(),u=s.gradientThickness(),a=s.gradientLength();let l,c,f,x,h="";o?(l="y",f="y2",c="x",x="width",h="1-"):(l="x",f="x2",c="y",x="height");const p={opacity:Ct,fill:{scale:e,field:vo}};p[l]={signal:h+"datum."+_2,mult:a},p[c]=Ct,p[f]={signal:h+"datum."+mWe,mult:a},p[x]=Sr(u);const m={enter:p,update:ct({},p,{opacity:_o}),exit:{opacity:Ct}};return Br(m,{stroke:s("gradientStrokeColor"),strokeWidth:s("gradientStrokeWidth")},{opacity:s("gradientOpacity")}),qs({type:Qie,role:eGe,key:vo,from:i,encode:m},r)}const bWe=`datum.${_2}<=0?"${S2}":datum.${_2}>=1?"${v2}":"${Hie}"`,TWe=`datum.${_2}<=0?"${Dc}":datum.${_2}>=1?"${lu}":"${hWe}"`;function Vie(t,e,n,r){const i=ds(t,e),s=i.isVertical(),o=Sr(i.gradientThickness()),u=i.gradientLength();let a=i("labelOverlap"),l,c,f,x,h="";const p={enter:l={opacity:Ct},update:c={opacity:_o,text:{field:s8}},exit:{opacity:Ct}};return Br(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:uu(t.labelLimit,e.gradientLabelLimit)}),s?(l.align={value:"left"},l.baseline=c.baseline={signal:TWe},f="y",x="x",h="1-"):(l.align=c.align={signal:bWe},l.baseline={value:"top"},f="x",x="y"),l[f]=c[f]={signal:h+"datum."+_2,mult:u},l[x]=c[x]=o,o.offset=uu(t.labelOffset,e.gradientLabelOffset)||0,a=a?{separation:i("labelSeparation"),method:a,order:"datum."+i8}:void 0,qs({type:md,role:_ie,style:c3,key:vo,from:r,encode:p,overlap:a},n)}function RWe(t,e,n,r,i){const s=ds(t,e),o=n.entries,u=!!(o&&o.interactive),a=o?o.name:void 0,l=s("clipHeight"),c=s("symbolOffset"),f={data:"value"},x=`(${i}) ? datum.${gWe} : datum.${a8}`,h=l?Sr(l):{field:a8},p=`datum.${i8}`,m=`max(1, ${i})`;let g,y,E,A,S;h.mult=.5,g={enter:y={opacity:Ct,x:{signal:x,mult:.5,offset:c},y:h},update:E={opacity:_o,x:y.x,y:y.y},exit:{opacity:Ct}};let v=null,_=null;t.fill||(v=e.symbolBaseFillColor,_=e.symbolBaseStrokeColor),Br(g,{fill:s("symbolFillColor",v),shape:s("symbolType"),size:s("symbolSize"),stroke:s("symbolStrokeColor",_),strokeDash:s("symbolDash"),strokeDashOffset:s("symbolDashOffset"),strokeWidth:s("symbolStrokeWidth")},{opacity:s("symbolOpacity")}),l8.forEach(R=>{t[R]&&(E[R]=y[R]={scale:t[R],field:vo})});const C=qs({type:AWe,role:rGe,key:vo,from:f,clip:l?!0:void 0,encode:g},n.symbols),b=Sr(c);b.offset=s("labelOffset"),g={enter:y={opacity:Ct,x:{signal:x,offset:b},y:h},update:E={opacity:_o,text:{field:s8},x:y.x,y:y.y},exit:{opacity:Ct}},Br(g,{align:s("labelAlign"),baseline:s("labelBaseline"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontStyle:s("labelFontStyle"),fontWeight:s("labelFontWeight"),limit:s("labelLimit")});const O=qs({type:md,role:_ie,style:c3,key:vo,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!l},width:Ct,height:l?Sr(l):Ct,opacity:Ct},exit:{opacity:Ct},update:E={opacity:_o,row:{signal:null},column:{signal:null}}},s.isVertical(!0)?(A=`ceil(item.mark.items.length / ${m})`,E.row.signal=`${p}%${A}`,E.column.signal=`floor(${p} / ${A})`,S={field:["row",p]}):(E.row.signal=`floor(${p} / ${m})`,E.column.signal=`${p} % ${m}`,S={field:p}),E.column.signal=`(${i})?${E.column.signal}:${p}`,r={facet:{data:r,name:"value",groupby:i8}},x3({role:Xk,from:r,encode:E2(g,o,f3),marks:[C,O],name:a,interactive:u,sort:S})}function OWe(t,e){const n=ds(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const x8='item.orient === "left"',d8='item.orient === "right"',XO=`(${x8} || ${d8})`,NWe=`datum.vgrad && ${XO}`,DWe=YO('"top"','"bottom"','"middle"'),FWe=YO('"right"','"left"','"center"'),wWe=`datum.vgrad && ${d8} ? (${FWe}) : (${XO} && !(datum.vgrad && ${x8})) ? "left" : ${f8}`,LWe=`item._anchor || (${XO} ? "middle" : "start")`,IWe=`${NWe} ? (${x8} ? -90 : 90) : 0`,$We=`${XO} ? (datum.vgrad ? (${d8} ? "bottom" : "top") : ${DWe}) : "top"`;function BWe(t,e,n,r){const i=ds(t,e),s={enter:{opacity:Ct},update:{opacity:_o,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Ct}};return Br(s,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:LWe},angle:{signal:IWe},align:{signal:wWe},baseline:{signal:$We},text:t.title,fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),baseline:i("titleBaseline")}),qs({type:md,role:iGe,style:o8,from:r,encode:s},n)}function kWe(t,e){let n;return Qe(t)&&(t.signal?n=t.signal:t.path?n="pathShape("+Yie(t.path)+")":t.sphere&&(n="geoShape("+Yie(t.sphere)+', {type: "Sphere"})')),n?e.signalRef(n):!!t}function Yie(t){return Qe(t)&&t.signal?t.signal:Fe(t)}function Xie(t){const e=t.role||"";return!e.indexOf("axis")||!e.indexOf("legend")||!e.indexOf("title")?e:t.type===VO?Xk:e||Vk}function PWe(t){return{marktype:t.type,name:t.name||void 0,role:t.role||Xie(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function MWe(t,e){return t&&t.signal?e.signalRef(t.signal):t!==!1}function h8(t,e){const n=N5e(t.type);n||ve("Unrecognized transform type: "+Fe(t.type));const r=UO(n.type.toLowerCase(),null,Kie(n,t,e));return t.signal&&e.addSignal(t.signal,e.proxy(r)),r.metadata=n.metadata||{},r}function Kie(t,e,n){const r={},i=t.params.length;for(let s=0;s<i;++s){const o=t.params[s];r[o.name]=jWe(o,e,n)}return r}function jWe(t,e,n){const r=t.type,i=e[t.name];if(r==="index")return UWe(t,e,n);if(i===void 0){t.required&&ve("Missing required "+Fe(e.type)+" parameter: "+Fe(t.name));return}else{if(r==="param")return qWe(t,e,n);if(r==="projection")return n.projectionRef(e[t.name])}return t.array&&!nr(i)?i.map(s=>Jie(t,s,n)):Jie(t,i,n)}function Jie(t,e,n){const r=t.type;if(nr(e))return ese(r)?ve("Expression references can not be signals."):p8(r)?n.fieldRef(e):tse(r)?n.compareRef(e):n.signalRef(e.signal);{const i=t.expr||p8(r);return i&&HWe(e)?n.exprRef(e.expr,e.as):i&&zWe(e)?a3(e.field,e.as):ese(r)?_a(e,n):QWe(r)?Ke(n.getData(e).values):p8(r)?a3(e):tse(r)?n.compareRef(e):e}}function UWe(t,e,n){return je(e.from)||ve('Lookup "from" parameter must be a string literal.'),n.getData(e.from).lookupRef(n,e.key)}function qWe(t,e,n){const r=e[t.name];return t.array?(_e(r)||ve("Expected an array of sub-parameters. Instead: "+Fe(r)),r.map(i=>Zie(t,i,n))):Zie(t,r,n)}function Zie(t,e,n){const r=t.params.length;let i;for(let o=0;o<r;++o){i=t.params[o];for(const u in i.key)if(i.key[u]!==e[u]){i=null;break}if(i)break}i||ve("Unsupported parameter: "+Fe(e));const s=ct(Kie(i,e,n),i.key);return Ke(n.add(QGe(s)))}const HWe=t=>t&&t.expr,zWe=t=>t&&t.field,QWe=t=>t==="data",ese=t=>t==="expr",p8=t=>t==="field",tse=t=>t==="compare";function GWe(t,e,n){let r,i,s,o,u;return t?(r=t.facet)&&(e||ve("Only group marks can be faceted."),r.field!=null?o=u=KO(r,n):(t.data?u=Ke(n.getData(t.data).aggregate):(s=h8(ct({type:"aggregate",groupby:Pe(r.groupby)},r.aggregate),n),s.params.key=n.keyRef(r.groupby),s.params.pulse=KO(r,n),o=u=Ke(n.add(s))),i=n.keyRef(r.groupby,!0))):o=Ke(n.add(au(null,[{}]))),o||(o=KO(t,n)),{key:i,pulse:o,parent:u}}function KO(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:Ke(e.getData(t.data).output)}function yd(t,e,n,r,i){this.scope=t,this.input=e,this.output=n,this.values=r,this.aggregate=i,this.index={}}yd.fromEntries=function(t,e){const n=e.length,r=e[n-1],i=e[n-2];let s=e[0],o=null,u=1;for(s&&s.type==="load"&&(s=e[1]),t.add(e[0]);u<n;++u)e[u].params.pulse=Ke(e[u-1]),t.add(e[u]),e[u].type==="aggregate"&&(o=e[u]);return new yd(t,s,i,r,o)};function nse(t){return je(t)?t:null}function rse(t,e,n){const r=HO(n.op,n.field);let i;if(e.ops){for(let s=0,o=e.as.length;s<o;++s)if(e.as[s]===r)return}else e.ops=["count"],e.fields=[null],e.as=["count"];n.op&&(e.ops.push((i=n.op.signal)?t.signalRef(i):n.op),e.fields.push(t.fieldRef(n.field)),e.as.push(r))}function d3(t,e,n,r,i,s,o){const u=e[n]||(e[n]={}),a=SGe(s);let l=nse(i),c,f;if(l!=null&&(t=e.scope,l=l+(a?"|"+a:""),c=u[l]),!c){const x=s?{field:Zk,pulse:e.countsRef(t,i,s)}:{field:t.fieldRef(i),pulse:Ke(e.output)};a&&(x.sort=t.sortRef(s)),f=t.add(UO(r,void 0,x)),o&&(e.index[i]=f),c=Ke(f),l!=null&&(u[l]=c)}return c}yd.prototype={countsRef(t,e,n){const r=this,i=r.counts||(r.counts={}),s=nse(e);let o,u,a;return s!=null&&(t=r.scope,o=i[s]),o?n&&n.field&&rse(t,o.agg.params,n):(a={groupby:t.fieldRef(e,"key"),pulse:Ke(r.output)},n&&n.field&&rse(t,a,n),u=t.add(wie(a)),o=t.add(au({pulse:Ke(u)})),o={agg:u,ref:Ke(o)},s!=null&&(i[s]=o)),o.ref},tuplesRef(){return Ke(this.values)},extentRef(t,e){return d3(t,this,"extent","extent",e,!1)},domainRef(t,e){return d3(t,this,"domain","values",e,!1)},valuesRef(t,e,n){return d3(t,this,"vals","values",e,n||!0)},lookupRef(t,e){return d3(t,this,"lookup","tupleindex",e,!1)},indataRef(t,e){return d3(t,this,"indata","tupleindex",e,!0,!0)}};function WWe(t,e,n){const r=t.from.facet,i=r.name,s=KO(r,e);let o;r.name||ve("Facet must have a name: "+Fe(r)),r.data||ve("Facet must reference a data set: "+Fe(r)),r.field?o=e.add(Bie({field:e.fieldRef(r.field),pulse:s})):r.groupby?o=e.add(BGe({key:e.keyRef(r.groupby),group:Ke(e.proxy(n.parent)),pulse:s})):ve("Facet must specify groupby or field: "+Fe(r));const u=e.fork(),a=u.add(au()),l=u.add(gd({pulse:Ke(a)}));u.addData(i,new yd(u,a,a,l)),u.addSignal("parent",null),o.params.subflow={$subflow:u.parse(t).toRuntime()}}function VWe(t,e,n){const r=e.add(Bie({pulse:n.pulse})),i=e.fork();i.add(gd()),i.addSignal("parent",null),r.params.subflow={$subflow:i.parse(t).toRuntime()}}function ise(t,e,n){const r=t.remove,i=t.insert,s=t.toggle,o=t.modify,u=t.values,a=e.add(qO()),l="if("+t.trigger+',modify("'+n+'",'+[i,r,s,o,u].map(f=>f??"null").join(",")+"),0)",c=_a(l,e);a.update=c.$expr,a.params=c.$params}function JO(t,e){const n=Xie(t),r=t.type===VO,i=t.from&&t.from.facet,s=t.overlap;let o=t.layout||n===Xk||n===Yk,u,a,l,c,f,x,h;const p=n===Vk||o||i,m=GWe(t.from,r,e);a=e.add(IGe({key:m.key||(t.key?a3(t.key):void 0),pulse:m.pulse,clean:!r}));const g=Ke(a);a=l=e.add(au({pulse:g})),a=e.add(UGe({markdef:PWe(t),interactive:MWe(t.interactive,e),clip:kWe(t.clip,e),context:{$context:!0},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:Ke(a)}));const y=Ke(a);a=c=e.add($ie(Rie(t.encode,t.type,n,t.style,e,{mod:!1,pulse:y}))),a.params.parent=e.encode(),t.transform&&t.transform.forEach(_=>{const C=h8(_,e),b=C.metadata;(b.generates||b.changes)&&ve("Mark transforms should not generate new data."),b.nomod||(c.params.mod=!0),C.params.pulse=Ke(a),e.add(a=C)}),t.sort&&(a=e.add(XGe({sort:e.compareRef(t.sort),pulse:Ke(a)})));const E=Ke(a);(i||o)&&(o=e.add(Pie({layout:e.objectProperty(t.layout),legends:e.legends,mark:y,pulse:E})),x=Ke(o));const A=e.add(Lie({mark:y,pulse:x||E}));h=Ke(A),r&&(p&&(u=e.operators,u.pop(),o&&u.pop()),e.pushState(E,x||h,g),i?WWe(t,e,m):p?VWe(t,e,m):e.parse(t),e.popState(),p&&(o&&u.push(o),u.push(A))),s&&(h=YWe(s,h,e));const S=e.add(kie({pulse:h})),v=e.add(gd({pulse:Ke(S)},void 0,e.parent()));t.name!=null&&(f=t.name,e.addData(f,new yd(e,l,S,v)),t.on&&t.on.forEach(_=>{(_.insert||_.remove||_.toggle)&&ve("Marks only support modify triggers."),ise(_,e,f)}))}function YWe(t,e,n){const r=t.method,i=t.bound,s=t.separation,o={separation:nr(s)?n.signalRef(s.signal):s,method:nr(r)?n.signalRef(r.signal):r,pulse:e};if(t.order&&(o.sort=n.compareRef({field:t.order})),i){const u=i.tolerance;o.boundTolerance=nr(u)?n.signalRef(u.signal):+u,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return Ke(n.add(zGe(o)))}function XWe(t,e){const n=e.config.legend,r=t.encode||{},i=ds(t,n),s=r.legend||{},o=s.name||void 0,u=s.interactive,a=s.style,l={};let c=0,f,x,h;l8.forEach(A=>t[A]?(l[A]=t[A],c=c||t[A]):0),c||ve("Missing valid scale for legend.");const p=KWe(t,e.scaleType(c)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=Ke(e.add(au(null,[m]))),y={enter:{x:{value:0},y:{value:0}}},E=Ke(e.add(MGe(x={type:p,scale:e.scaleRef(c),count:e.objectProperty(i("tickCount")),limit:e.property(i("symbolLimit")),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)})));return p===WO?(h=[_We(t,c,n,r.gradient),Vie(t,n,r.labels,E)],x.count=x.count||e.signalRef(`max(2,2*floor((${pd(i.gradientLength())})/100))`)):p===u8?h=[CWe(t,c,n,r.gradient,E),Vie(t,n,r.labels,E)]:(f=OWe(t,n),h=[RWe(t,n,r,E,pd(f.columns))],x.size=eVe(t,e,h[0].marks)),h=[x3({role:tGe,from:g,encode:y,marks:h,layout:f,interactive:u})],m.title&&h.push(BWe(t,n,r.title,g)),JO(x3({role:ZQe,from:g,encode:E2(ZWe(i,t,n),s,f3),marks:h,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:u,style:a}),e)}function KWe(t,e){let n=t.type||zie;return!t.type&&JWe(t)===1&&(t.fill||t.stroke)&&(n=b$(e)?WO:T$(e)?u8:zie),n!==WO?n:T$(e)?u8:WO}function JWe(t){return l8.reduce((e,n)=>e+(t[n]?1:0),0)}function ZWe(t,e,n){const r={enter:{},update:{}};return Br(r,{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}),r}function eVe(t,e,n){const r=pd(sse("size",t,n)),i=pd(sse("strokeWidth",t,n)),s=pd(tVe(n[1].encode,e,c3));return _a(`max(ceil(sqrt(${r})+${i}),${s})`,e)}function sse(t,e,n){return e[t]?`scale("${e[t]}",datum)`:Gie(t,n[0].encode)}function tVe(t,e,n){return Gie("fontSize",t)||SWe("fontSize",e,n)}const nVe=`item.orient==="${S2}"?-90:item.orient==="${v2}"?90:0`;function rVe(t,e){t=je(t)?{text:t}:t;const n=ds(t,e.config.title),r=t.encode||{},i=r.group||{},s=i.name||void 0,o=i.interactive,u=i.style,a=[],l={},c=Ke(e.add(au(null,[l])));return a.push(oVe(t,n,iVe(t),c)),t.subtitle&&a.push(uVe(t,n,r.subtitle,c)),JO(x3({role:sGe,from:c,encode:sVe(n,i),marks:a,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:s,interactive:o,style:u}),e)}function iVe(t){const e=t.encode;return e&&e.title||ct({name:t.name,interactive:t.interactive,style:t.style},e)}function sVe(t,e){const n={enter:{},update:{}};return Br(n,{orient:t("orient"),anchor:t("anchor"),align:{signal:f8},angle:{signal:nVe},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),E2(n,e,f3)}function oVe(t,e,n,r){const i={value:0},s=t.text,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Br(o,{text:s,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")}),qs({type:md,role:oGe,style:yWe,from:r,encode:o},n)}function uVe(t,e,n,r){const i={value:0},s=t.subtitle,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Br(o,{text:s,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")}),qs({type:md,role:uGe,style:EWe,from:r,encode:o},n)}function aVe(t,e){const n=[];t.transform&&t.transform.forEach(r=>{n.push(h8(r,e))}),t.on&&t.on.forEach(r=>{ise(r,e,t.name)}),e.addDataPipeline(t.name,lVe(t,e,n))}function lVe(t,e,n){const r=[];let i=null,s=!1,o=!1,u,a,l,c,f;for(t.values?nr(t.values)||zO(t.format)?(r.push(ose(e,t)),r.push(i=Ed())):r.push(i=Ed({$ingest:t.values,$format:t.format})):t.url?zO(t.url)||zO(t.format)?(r.push(ose(e,t)),r.push(i=Ed())):r.push(i=Ed({$request:t.url,$format:t.format})):t.source&&(i=u=Pe(t.source).map(x=>Ke(e.getData(x).output)),r.push(null)),a=0,l=n.length;a<l;++a)c=n[a],f=c.metadata,!i&&!f.source&&r.push(i=Ed()),r.push(c),f.generates&&(o=!0),f.modifies&&!o&&(s=!0),f.source?i=c:f.changes&&(i=null);return u&&(l=u.length-1,r[0]=VGe({derive:s,pulse:l?u:u[0]}),(s||l)&&r.splice(1,0,Ed())),i||r.push(Ed()),r.push(gd({})),r}function Ed(t){const e=au({},t);return e.metadata={source:!0},e}function ose(t,e){return jGe({url:e.url?t.property(e.url):void 0,async:e.async?t.property(e.async):void 0,values:e.values?t.property(e.values):void 0,format:t.objectProperty(e.format)})}const use=t=>t===Dc||t===lu,ZO=(t,e,n)=>nr(t)?dVe(t.signal,e,n):t===S2||t===lu?e:n,vr=(t,e,n)=>nr(t)?fVe(t.signal,e,n):use(t)?e:n,cu=(t,e,n)=>nr(t)?xVe(t.signal,e,n):use(t)?n:e,ase=(t,e,n)=>nr(t)?hVe(t.signal,e,n):t===lu?{value:e}:{value:n},cVe=(t,e,n)=>nr(t)?pVe(t.signal,e,n):t===v2?{value:e}:{value:n},fVe=(t,e,n)=>lse(`${t} === '${lu}' || ${t} === '${Dc}'`,e,n),xVe=(t,e,n)=>lse(`${t} !== '${lu}' && ${t} !== '${Dc}'`,e,n),dVe=(t,e,n)=>g8(`${t} === '${S2}' || ${t} === '${lu}'`,e,n),hVe=(t,e,n)=>g8(`${t} === '${lu}'`,e,n),pVe=(t,e,n)=>g8(`${t} === '${v2}'`,e,n),lse=(t,e,n)=>(e=e!=null?Sr(e):e,n=n!=null?Sr(n):n,cse(e)&&cse(n)?(e=e?e.signal||Fe(e.value):null,n=n?n.signal||Fe(n.value):null,{signal:`${t} ? (${e}) : (${n})`}):[ct({test:t},e)].concat(n||[])),cse=t=>t==null||Object.keys(t).length===1,g8=(t,e,n)=>({signal:`${t} ? (${C2(e)}) : (${C2(n)})`}),gVe=(t,e,n,r,i)=>({signal:(r!=null?`${t} === '${S2}' ? (${C2(r)}) : `:"")+(n!=null?`${t} === '${Dc}' ? (${C2(n)}) : `:"")+(i!=null?`${t} === '${v2}' ? (${C2(i)}) : `:"")+(e!=null?`${t} === '${lu}' ? (${C2(e)}) : `:"")+"(null)"}),C2=t=>nr(t)?t.signal:t==null?null:Fe(t),mVe=(t,e)=>e===0?0:nr(t)?{signal:`(${t.signal}) * ${e}`}:{value:t*e},b2=(t,e)=>{const n=t.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+e.signal}:t};function T2(t,e,n,r){let i;if(e&&Je(e,t))return e[t];if(Je(n,t))return n[t];if(t.startsWith("title")){switch(t){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=t[5].toLowerCase()+t.slice(6)}return r[o8][i]}else if(t.startsWith("label")){switch(t){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=t[5].toLowerCase()+t.slice(6)}return r[c3][i]}return null}function fse(t){const e={};for(const n of t)if(n)for(const r in n)e[r]=1;return Object.keys(e)}function yVe(t,e){var n=e.config,r=n.style,i=n.axis,s=e.scaleType(t.scale)==="band"&&n.axisBand,o=t.orient,u,a,l;if(nr(o)){const f=fse([n.axisX,n.axisY]),x=fse([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);u={};for(l of f)u[l]=vr(o,T2(l,n.axisX,i,r),T2(l,n.axisY,i,r));a={};for(l of x)a[l]=gVe(o.signal,T2(l,n.axisTop,i,r),T2(l,n.axisBottom,i,r),T2(l,n.axisLeft,i,r),T2(l,n.axisRight,i,r))}else u=o===lu||o===Dc?n.axisX:n.axisY,a=n["axis"+o[0].toUpperCase()+o.slice(1)];return u||a||s?ct({},i,u,a,s):i}function EVe(t,e,n,r){const i=ds(t,e),s=t.orient;let o,u;const a={enter:o={opacity:Ct},update:u={opacity:_o},exit:{opacity:Ct}};Br(a,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const l=xse(t,0),c=xse(t,1);return o.x=u.x=vr(s,l,Ct),o.x2=u.x2=vr(s,c),o.y=u.y=cu(s,l,Ct),o.y2=u.y2=cu(s,c),qs({type:c8,role:VQe,from:r,encode:a},n)}function xse(t,e){return{scale:t.scale,range:e}}function AVe(t,e,n,r,i){const s=ds(t,e),o=t.orient,u=t.gridScale,a=ZO(o,1,-1),l=SVe(t.offset,a);let c,f,x;const h={enter:c={opacity:Ct},update:x={opacity:_o},exit:f={opacity:Ct}};Br(h,{stroke:s("gridColor"),strokeCap:s("gridCap"),strokeDash:s("gridDash"),strokeDashOffset:s("gridDashOffset"),strokeOpacity:s("gridOpacity"),strokeWidth:s("gridWidth")});const p={scale:t.scale,field:vo,band:i.band,extra:i.extra,offset:i.offset,round:s("tickRound")},m=vr(o,{signal:"height"},{signal:"width"}),g=u?{scale:u,range:0,mult:a,offset:l}:{value:0,offset:l},y=u?{scale:u,range:1,mult:a,offset:l}:ct(m,{mult:a,offset:l});return c.x=x.x=vr(o,p,g),c.y=x.y=cu(o,p,g),c.x2=x.x2=cu(o,y),c.y2=x.y2=vr(o,y),f.x=vr(o,p),f.y=cu(o,p),qs({type:c8,role:YQe,key:vo,from:r,encode:h},n)}function SVe(t,e){if(e!==1)if(!Qe(t))t=nr(e)?{signal:`(${e.signal}) * (${t||0})`}:e*(t||0);else{let n=t=ct({},t);for(;n.mult!=null;)if(Qe(n.mult))n=n.mult=ct({},n.mult);else return n.mult=nr(e)?{signal:`(${n.mult}) * (${e.signal})`}:n.mult*e,t;n.mult=e}return t}function vVe(t,e,n,r,i,s){const o=ds(t,e),u=t.orient,a=ZO(u,-1,1);let l,c,f;const x={enter:l={opacity:Ct},update:f={opacity:_o},exit:c={opacity:Ct}};Br(x,{stroke:o("tickColor"),strokeCap:o("tickCap"),strokeDash:o("tickDash"),strokeDashOffset:o("tickDashOffset"),strokeOpacity:o("tickOpacity"),strokeWidth:o("tickWidth")});const h=Sr(i);h.mult=a;const p={scale:t.scale,field:vo,band:s.band,extra:s.extra,offset:s.offset,round:o("tickRound")};return f.y=l.y=vr(u,Ct,p),f.y2=l.y2=vr(u,h),c.x=vr(u,p),f.x=l.x=cu(u,Ct,p),f.x2=l.x2=cu(u,h),c.y=cu(u,p),qs({type:c8,role:KQe,key:vo,from:r,encode:x},n)}function m8(t,e,n,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+e+","+n+","+r+","+i+")"}}function _Ve(t,e,n,r,i,s){const o=ds(t,e),u=t.orient,a=t.scale,l=ZO(u,-1,1),c=pd(o("labelFlush")),f=pd(o("labelFlushOffset")),x=o("labelAlign"),h=o("labelBaseline");let p=c===0||!!c,m;const g=Sr(i);g.mult=l,g.offset=Sr(o("labelPadding")||0),g.offset.mult=l;const y={scale:a,field:vo,band:.5,offset:Wie(s.offset,o("labelOffset"))},E=vr(u,p?m8(a,c,'"left"','"right"','"center"'):{value:"center"},cVe(u,"left","right")),A=vr(u,ase(u,"bottom","top"),p?m8(a,c,'"top"','"bottom"','"middle"'):{value:"middle"}),S=m8(a,c,`-(${f})`,f,0);p=p&&f;const v={opacity:Ct,x:vr(u,y,g),y:cu(u,y,g)},_={enter:v,update:m={opacity:_o,text:{field:s8},x:v.x,y:v.y,align:E,baseline:A},exit:{opacity:Ct,x:v.x,y:v.y}};Br(_,{dx:!x&&p?vr(u,S):null,dy:!h&&p?cu(u,S):null}),Br(_,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:x,baseline:h});const C=o("labelBound");let b=o("labelOverlap");return b=b||C?{separation:o("labelSeparation"),method:b,order:"datum.index",bound:C?{scale:a,orient:u,tolerance:C}:null}:void 0,m.align!==E&&(m.align=b2(m.align,E)),m.baseline!==A&&(m.baseline=b2(m.baseline,A)),qs({type:md,role:XQe,style:c3,key:vo,from:r,encode:_,overlap:b},n)}function CVe(t,e,n,r){const i=ds(t,e),s=t.orient,o=ZO(s,-1,1);let u,a;const l={enter:u={opacity:Ct,anchor:Sr(i("titleAnchor",null)),align:{signal:f8}},update:a=ct({},u,{opacity:_o,text:Sr(t.title)}),exit:{opacity:Ct}},c={signal:`lerp(range("${t.scale}"), ${YO(0,1,.5)})`};return a.x=vr(s,c),a.y=cu(s,c),u.angle=vr(s,Ct,mVe(o,90)),u.baseline=vr(s,ase(s,Dc,lu),{value:Dc}),a.angle=u.angle,a.baseline=u.baseline,Br(l,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),bVe(i,s,l,n),l.update.align=b2(l.update.align,u.align),l.update.angle=b2(l.update.angle,u.angle),l.update.baseline=b2(l.update.baseline,u.baseline),qs({type:md,role:JQe,style:o8,from:r,encode:l},n)}function bVe(t,e,n,r){const i=(u,a)=>u!=null?(n.update[a]=b2(Sr(u),n.update[a]),!1):!A2(a,r),s=i(t("titleX"),"x"),o=i(t("titleY"),"y");n.enter.auto=o===s?Sr(o):vr(e,Sr(o),Sr(s))}function TVe(t,e){const n=yVe(t,e),r=t.encode||{},i=r.axis||{},s=i.name||void 0,o=i.interactive,u=i.style,a=ds(t,n),l=vWe(a),c={scale:t.scale,ticks:!!a("ticks"),labels:!!a("labels"),grid:!!a("grid"),domain:!!a("domain"),title:t.title!=null},f=Ke(e.add(au({},[c]))),x=Ke(e.add(LGe({scale:e.scaleRef(t.scale),extra:e.property(l.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(AVe(t,n,r.grid,x,l)),c.ticks&&(p=a("tickSize"),h.push(vVe(t,n,r.ticks,x,p,l))),c.labels&&(p=c.ticks?p:0,h.push(_Ve(t,n,r.labels,x,p,l))),c.domain&&h.push(EVe(t,n,r.domain,f)),c.title&&h.push(CVe(t,n,r.title,f)),JO(x3({role:WQe,from:f,encode:E2(RVe(a,t),i,f3),marks:h,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:s,interactive:o,style:u}),e)}function RVe(t,e){const n={enter:{},update:{}};return Br(n,{orient:t("orient"),offset:t("offset")||0,position:uu(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 dse(t,e,n){const r=Pe(t.signals),i=Pe(t.scales);return n||r.forEach(s=>Nie(s,e)),Pe(t.projections).forEach(s=>fWe(s,e)),i.forEach(s=>ZGe(s,e)),Pe(t.data).forEach(s=>aVe(s,e)),i.forEach(s=>eWe(s,e)),(n||r).forEach(s=>wGe(s,e)),Pe(t.axes).forEach(s=>TVe(s,e)),Pe(t.marks).forEach(s=>JO(s,e)),Pe(t.legends).forEach(s=>XWe(s,e)),t.title&&rVe(t.title,e),e.parseLambdas(),e}const OVe=t=>E2({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function NVe(t,e){const n=e.config,r=Ke(e.root=e.add(qO())),i=DVe(t,n);i.forEach(l=>Nie(l,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 s=e.add(au()),o=e.add($ie(Rie(OVe(t.encode),VO,Yk,t.style,e,{pulse:Ke(s)}))),u=e.add(Pie({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:r,pulse:Ke(o)}));e.operators.pop(),e.pushState(Ke(o),Ke(u),null),dse(t,e,i),e.operators.push(u);let a=e.add(Lie({mark:r,pulse:Ke(u)}));return a=e.add(kie({pulse:Ke(a)})),a=e.add(gd({pulse:Ke(a)})),e.addData("root",new yd(e,s,s,a)),e}function h3(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function DVe(t,e){const n=o=>uu(t[o],e[o]),r=[h3("background",n("background")),h3("autosize",zQe(n("autosize"))),h3("padding",GQe(n("padding"))),h3("width",n("width")||0),h3("height",n("height")||0)],i=r.reduce((o,u)=>(o[u.name]=u,o),{}),s={};return Pe(t.signals).forEach(o=>{Je(i,o.name)?o=ct(i[o.name],o):r.push(o),s[o.name]=o}),Pe(e.signals).forEach(o=>{!Je(s,o.name)&&!Je(i,o.name)&&r.push(o)}),r}function hse(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 pse(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}hse.prototype=pse.prototype={parse(t){return dse(t,this)},fork(){return new pse(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 Jk?Ke(t):t;return this.add(WGe({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;this.root&&(this.root.root=!0);for(t in this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function n(r,i,s){let o,u;r&&(o=r.data||(r.data={}),u=o[i]||(o[i]=[]),u.push(s))}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 r in e.index)n(e.index[r],t,"index:"+r)}return this},pushState(t,e,n){this._encode.push(Ke(this.add(gd({pulse:t})))),this._parent.push(e),this._lookup.push(n?Ke(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return _t(this._parent)},encode(){return _t(this._encode)},lookup(){return _t(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,e){if(je(t))return a3(t,e);t.signal||ve("Unsupported field reference: "+Fe(t));const n=t.signal;let r=this.field[n];if(!r){const i={name:this.signalRef(n)};e&&(i.as=e),this.field[n]=r=Ke(this.add(kGe(i)))}return r},compareRef(t){let e=!1;const n=s=>nr(s)?(e=!0,this.signalRef(s.signal)):vGe(s)?(e=!0,this.exprRef(s.expr)):s,r=Pe(t.field).map(n),i=Pe(t.order).map(n);return e?Ke(this.add(Iie({fields:r,orders:i}))):Die(r,i)},keyRef(t,e){let n=!1;const r=s=>nr(s)?(n=!0,Ke(i[s.signal])):s,i=this.signals;return t=Pe(t).map(r),n?Ke(this.add(PGe({fields:t,flat:e}))):yGe(t,e)},sortRef(t){if(!t)return t;const e=HO(t.op,t.field),n=t.order||EGe;return n.signal?Ke(this.add(Iie({fields:e,orders:this.signalRef(n.signal)}))):Die(e,n)},event(t,e){const n=t+":"+e;if(!this.events[n]){const r=this.id();this.streams.push({id:r,source:t,type:e}),this.events[n]=r}return this.events[n]},hasOwnSignal(t){return Je(this.signals,t)},addSignal(t,e){this.hasOwnSignal(t)&&ve("Duplicate signal name: "+Fe(t));const n=e instanceof Jk?e:this.add(qO(e));return this.signals[t]=n},getSignal(t){return this.signals[t]||ve("Unrecognized signal name: "+Fe(t)),this.signals[t]},signalRef(t){return this.signals[t]?Ke(this.signals[t]):(Je(this.lambdas,t)||(this.lambdas[t]=this.add(qO(null))),Ke(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let e=0,n=t.length;e<n;++e){const r=t[e],i=_a(r,this),s=this.lambdas[r];s.params=i.$params,s.update=i.$expr}},property(t){return t&&t.signal?this.signalRef(t.signal):t},objectProperty(t){return!t||!Qe(t)?t:this.signalRef(t.signal||y8(t))},exprRef(t,e){const n={expr:_a(t,this)};return e&&(n.expr.$name=e),Ke(this.add($Ge(n)))},addBinding(t,e){this.bindings||ve("Nested signals do not support binding: "+Fe(t)),this.bindings.push(ct({signal:t},e))},addScaleProj(t,e){Je(this.scales,t)&&ve("Duplicate scale or projection name: "+Fe(t)),this.scales[t]=this.add(e)},addScale(t,e){this.addScaleProj(t,YGe(e))},addProjection(t,e){this.addScaleProj(t,GGe(e))},getScale(t){return this.scales[t]||ve("Unrecognized scale name: "+Fe(t)),this.scales[t]},scaleRef(t){return Ke(this.getScale(t))},scaleType(t){return this.getScale(t).params.type},projectionRef(t){return this.scaleRef(t)},projectionType(t){return this.scaleType(t)},addData(t,e){return Je(this.data,t)&&ve("Duplicate data set name: "+Fe(t)),this.data[t]=e},getData(t){return this.data[t]||ve("Undefined data set name: "+Fe(t)),this.data[t]},addDataPipeline(t,e){return Je(this.data,t)&&ve("Duplicate data set name: "+Fe(t)),this.addData(t,yd.fromEntries(this,e))}};function y8(t){return(_e(t)?FVe:wVe)(t)}function FVe(t){const e=t.length;let n="[";for(let r=0;r<e;++r){const i=t[r];n+=(r>0?",":"")+(Qe(i)?i.signal||y8(i):Fe(i))}return n+"]"}function wVe(t){let e="{",n=0,r,i;for(r in t)i=t[r],e+=(++n>1?",":"")+Fe(r)+":"+(Qe(i)?i.signal||y8(i):Fe(i));return e+"}"}function LVe(){const t="sans-serif",r="#4c78a8",i="#000",s="#888",o="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:r},area:{fill:r},image:null,line:{stroke:r,strokeWidth:2},path:{stroke:r},rect:{fill:r},rule:{stroke:i},shape:{stroke:r},symbol:{fill:r,size:64},text:{fill:i,font:t,fontSize:11},trail:{fill:r,size:2},style:{"guide-label":{fill:i,font:t,fontSize:10},"guide-title":{fill:i,font:t,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:t,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,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:o},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:s,grid:!1,gridWidth:1,gridColor:o,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:s,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:o,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:s,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"]}}}function IVe(t,e,n){return Qe(t)||ve("Input Vega specification must be an object."),e=p5(LVe(),e,t.config),NVe(t,new hse(e,n)).toRuntime()}ct(qy,PIe,p7e,j7e,bMe,E9e,Gje,bje,Vje,mUe,RUe,IUe);const $Ve={spark:[180,1],xs:[170,2],sm:[216,3],md:[256,4],lg:[472,7],xl:[508,10],"2xl":[730,14]},eN=28;function BVe(t,e){const n=t.allFields.at(0),r=t.allFields.at(1),{tag:i}=t.tagParse();let s=0,o=0;const u=i.numeric("size","width"),a=i.numeric("size","height");let l=i.text("size");u&&a?(s=u,o=a):(l=l||"md",[s,o]=$Ve[l],o=o*eN);let c=0,f=0,x=-90,h="right",p="middle",m=0,g=0;const y=l!=="spark",E=l!=="spark",A=e.fields[bx(t)];let S=l!=="spark"?eN-1:0,v;const _=bx(r),C=e.fields[_].max,b=Dt("linear")().domain([0,C]).nice().range([o,0]),O=b.domain();if(E){const z=b.domain().at(1),Q=_Y().format(",")(z);f=my(Q,"Inter, sans-serif 12px")+5+31;const ae=Math.ceil(o/40),ie=b.ticks(ae);if(ie.at(-1)<z){const le=(z-ie.at(-1))/z,xe=o/(1-le);S=S-(xe-o),o=xe,v=ae}}if(y){const z=bx(n),Y=e.fields[z].maxString,Q=my(Y,"Inter, sans-serif 12px"),oe=.3;g=22+15,c=Math.min(Q,oe*o),m=c;const ae=(s-f)/A.maxRecordCt;ae>c&&(x=0,m=ae,h=void 0,p="top")}const R=o+c+g,I=Math.ceil(R/eN)*eN;g+=I-R;const M=i.text("size")==="spark";return{plotWidth:s,plotHeight:o,xAxis:{labelAngle:x,labelAlign:h,labelBaseline:p,labelSize:m,height:c,titleSize:g,hidden:M},yAxis:{width:f,tickCount:v,hidden:M},yScale:{domain:O},padding:M?{top:0,left:0,bottom:0,right:0}:{top:S+1,left:f,bottom:c+g,right:0},xField:n,yField:r,get totalWidth(){return this.plotWidth+this.padding.left+this.padding.right},get totalHeight(){return this.plotHeight+this.padding.top+this.padding.bottom}}}const tN="#727883",nN="#E5E7EB";function kVe(t,e){const n=BVe(e.field,e.metadata),r={$schema:"https://vega.github.io/schema/vega/v5.json",width:n.plotWidth,height:n.plotHeight,config:{axisY:{gridColor:nN,tickColor:nN,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelColor:tN,labelPadding:5,titleColor:tN,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10,labelOverlap:!1},axisX:{gridColor:nN,tickColor:nN,tickSize:0,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelPadding:5,labelColor:tN,titleColor:tN,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10},view:{strokeWidth:0}},data:[{name:"table",values:[]}],marks:[],scales:[],legends:[],axes:[],autosize:{type:"none",resize:!0,contains:"content"},padding:n.padding},i={name:"xscale",type:t.x.type==="nominal"?"band":"linear",domain:{data:"table",field:t.x.fields.at(0)},range:"width"};i.type==="band"&&(i.paddingInner=.1,i.paddingOuter=.05,i.round=!0);const s={name:"yscale",type:t.y.type==="nominal"?"band":"linear",domain:n.yScale.domain??{data:"table",fields:t.y.fields},range:"height"};s.type==="linear"&&(s.nice=!0),r.scales.push(i),r.scales.push(s);for(const o of t.marks){const u={},a={name:o.id,source:"table",transform:[]};if(r.data.push(a),o.type==="bar_y"){u.type="rect",u.from={data:o.id};const l=o.x??t.x.fields.at(0),c=o.y??t.y.fields.at(0);u.encode={enter:{x:{scale:"xscale",field:l,band:.1},width:{scale:"xscale",band:.8},y:{scale:"yscale",field:c},y2:{scale:"yscale",value:0},fill:{value:"#53B2C8"}}},r.marks.push(u)}}return n.xAxis.hidden||r.axes.push({orient:"bottom",scale:"xscale",title:t.x.fields.join(", "),labelAngle:n.xAxis.labelAngle,labelLimit:n.xAxis.labelSize,labelAlign:n.xAxis.labelAlign,labelBaseline:n.xAxis.labelBaseline,maxExtent:n.xAxis.height}),n.yAxis.hidden||r.axes.push({orient:"left",scale:"yscale",grid:!0,maxExtent:n.yAxis.width,labelLimit:n.yAxis.width+10,tickCount:n.yAxis.tickCount??{signal:"ceil(height/40)"},title:[...new Set(s.domain.fields)].filter(o=>typeof o=="string").join(", ")}),{spec:r,plotWidth:n.plotWidth,plotHeight:n.plotHeight,totalWidth:n.totalWidth,totalHeight:n.totalHeight}}function PVe(){const t=new WeakMap;return{get:e=>{if(!t.has(e)&&e.isArray()){const n=[];for(const r of e)n.push(r.toObject());t.set(e,n)}return t.get(e)}}}function MVe(t){const e=new WeakMap,n=u=>{if(e.has(u))return e.get(u);const a=bx(u);return e.set(u,a),a},r=PVe(),i={fields:{},fieldKeyMap:e,getFieldKey:n,field:u=>i.fields[n(u)],getData:r.get},s=t.data.field,o=i.getFieldKey(s);return i.fields[o]={field:s,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},gse(t.data.field,i),mse(t.data,i),Object.values(i.fields).forEach(u=>{const a=u.field;a.isExploreField()?yse(a,a.tagParse().tag,i):a.isExplore()&&yse(a,t.tagParse().tag,i)}),i}function gse(t,e){for(const n of t.allFields){const r=e.getFieldKey(n);e.fields[r]={field:n,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},n.isExploreField()&&gse(n,e)}}const mse=(t,e)=>{let n=0;for(const s of t){n++;for(const o of t.field.allFields){const u=o.isAtomicField()?s.cell(o).value:void 0,a=e.field(o);if(GW(o,u)){const l=u;a.min=Math.min(a.min??l,l),a.max=Math.max(a.max??l,l)}else if(WW(o,u)){const l=u;a.values.add(l),(!a.minString||a.minString.length>l.length)&&(a.minString=l),(!a.maxString||a.maxString.length<l.length)&&(a.maxString=l)}else if(o.isExploreField()){const l=s.cell(o);mse(l,e)}}}const r=t.field,i=e.field(r);i.maxRecordCt=Math.max(i.maxRecordCt??n,n)};function yse(t,e,n){const r=n.field(t);if(gy(e,"bar","bar_chart")){const i=OFe(t,e);r.vegaChartProps=kVe(i,{field:t,metadata:n})}}const Ese=PP(),Ase=()=>{const t=MP(Ese);if(!t)throw Error("useResultContext must be used within a ResultContext.Provider");return t};var rN=(t=>(t.Dollars="usd",t.Euros="euro",t.Pounds="pound",t))(rN||{}),rr=(t=>(t.Nanoseconds="nanoseconds",t.Microseconds="microseconds",t.Milliseconds="milliseconds",t.Seconds="seconds",t.Minutes="minutes",t.Hours="hours",t.Days="days",t))(rr||{});function jVe(t){return Object.values(rr).includes(t)}var Sse={exports:{}};(function(t){var e={},n=function(i){i.version="0.11.2";function s(T){for(var N="",$=T.length-1;$>=0;)N+=T.charAt($--);return N}function o(T,N){for(var $="";$.length<N;)$+=T;return $}function u(T,N){var $=""+T;return $.length>=N?$:o("0",N-$.length)+$}function a(T,N){var $=""+T;return $.length>=N?$:o(" ",N-$.length)+$}function l(T,N){var $=""+T;return $.length>=N?$:$+o(" ",N-$.length)}function c(T,N){var $=""+Math.round(T);return $.length>=N?$:o("0",N-$.length)+$}function f(T,N){var $=""+T;return $.length>=N?$:o("0",N-$.length)+$}var x=Math.pow(2,32);function h(T,N){if(T>x||T<-x)return c(T,N);var $=Math.round(T);return f($,N)}function p(T,N){return N=N||0,T.length>=7+N&&(T.charCodeAt(N)|32)===103&&(T.charCodeAt(N+1)|32)===101&&(T.charCodeAt(N+2)|32)===110&&(T.charCodeAt(N+3)|32)===101&&(T.charCodeAt(N+4)|32)===114&&(T.charCodeAt(N+5)|32)===97&&(T.charCodeAt(N+6)|32)===108}var m=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],g=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function y(T){T[0]="General",T[1]="0",T[2]="0.00",T[3]="#,##0",T[4]="#,##0.00",T[9]="0%",T[10]="0.00%",T[11]="0.00E+00",T[12]="# ?/?",T[13]="# ??/??",T[14]="m/d/yy",T[15]="d-mmm-yy",T[16]="d-mmm",T[17]="mmm-yy",T[18]="h:mm AM/PM",T[19]="h:mm:ss AM/PM",T[20]="h:mm",T[21]="h:mm:ss",T[22]="m/d/yy h:mm",T[37]="#,##0 ;(#,##0)",T[38]="#,##0 ;[Red](#,##0)",T[39]="#,##0.00;(#,##0.00)",T[40]="#,##0.00;[Red](#,##0.00)",T[45]="mm:ss",T[46]="[h]:mm:ss",T[47]="mmss.0",T[48]="##0.0E+0",T[49]="@",T[56]='"上午/下午 "hh"時"mm"分"ss"秒 "'}var E={};y(E);var A=[],S=0;for(S=5;S<=8;++S)A[S]=32+S;for(S=23;S<=26;++S)A[S]=0;for(S=27;S<=31;++S)A[S]=14;for(S=50;S<=58;++S)A[S]=14;for(S=59;S<=62;++S)A[S]=S-58;for(S=67;S<=68;++S)A[S]=S-58;for(S=72;S<=75;++S)A[S]=S-58;for(S=67;S<=68;++S)A[S]=S-57;for(S=76;S<=78;++S)A[S]=S-56;for(S=79;S<=81;++S)A[S]=S-34;var v=[];v[5]=v[63]='"$"#,##0_);\\("$"#,##0\\)',v[6]=v[64]='"$"#,##0_);[Red]\\("$"#,##0\\)',v[7]=v[65]='"$"#,##0.00_);\\("$"#,##0.00\\)',v[8]=v[66]='"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',v[41]='_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',v[42]='_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',v[43]='_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',v[44]='_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)';function _(T,N,$){for(var q=T<0?-1:1,L=T*q,H=0,P=1,V=0,fe=1,te=0,X=0,ue=Math.floor(L);te<N&&(ue=Math.floor(L),V=ue*P+H,X=ue*te+fe,!(L-ue<5e-8));)L=1/(L-ue),H=P,P=V,fe=te,te=X;if(X>N&&(te>N?(X=fe,V=H):(X=te,V=P)),!$)return[0,q*V,X];var Be=Math.floor(q*V/X);return[Be,q*V-Be*X,X]}function C(T,N,$){if(T>2958465||T<0)return null;var q=T|0,L=Math.floor(86400*(T-q)),H=0,P=[],V={D:q,T:L,u:86400*(T-q)-L,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(V.u)<1e-6&&(V.u=0),N&&N.date1904&&(q+=1462),V.u>.9999&&(V.u=0,++L==86400&&(V.T=L=0,++q,++V.D)),q===60)P=$?[1317,10,29]:[1900,2,29],H=3;else if(q===0)P=$?[1317,8,29]:[1900,1,0],H=6;else{q>60&&--q;var fe=new Date(1900,0,1);fe.setDate(fe.getDate()+q-1),P=[fe.getFullYear(),fe.getMonth()+1,fe.getDate()],H=fe.getDay(),q<60&&(H=(H+6)%7),$&&(H=Q(fe,P))}return V.y=P[0],V.m=P[1],V.d=P[2],V.S=L%60,L=Math.floor(L/60),V.M=L%60,L=Math.floor(L/60),V.H=L,V.q=H,V}i.parse_date_code=C;var b=new Date(1899,11,31,0,0,0),O=b.getTime(),R=new Date(1900,2,1,0,0,0);function I(T,N){var $=T.getTime();return N?$-=1262304e5:T>=R&&($+=864e5),($-(O+(T.getTimezoneOffset()-b.getTimezoneOffset())*6e4))/864e5}function M(T){return T.toString(10)}i._general_int=M;var z=function(){var N=/(?:\.0*|(\.\d*[1-9])0+)$/;function $(te){return te.indexOf(".")==-1?te:te.replace(N,"$1")}var q=/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,L=/(E[+-])(\d)$/;function H(te){return te.indexOf("E")==-1?te:te.replace(q,"$1E").replace(L,"$10$2")}function P(te){var X=te<0?12:11,ue=$(te.toFixed(12));return ue.length<=X||(ue=te.toPrecision(10),ue.length<=X)?ue:te.toExponential(5)}function V(te){var X=$(te.toFixed(11));return X.length>(te<0?12:11)||X==="0"||X==="-0"?te.toPrecision(6):X}function fe(te){var X=Math.floor(Math.log(Math.abs(te))*Math.LOG10E),ue;return X>=-4&&X<=-1?ue=te.toPrecision(10+X):Math.abs(X)<=9?ue=P(te):X===10?ue=te.toFixed(10).substr(0,12):ue=V(te),$(H(ue.toUpperCase()))}return fe}();i._general_num=z;function Y(T,N){switch(typeof T){case"string":return T;case"boolean":return T?"TRUE":"FALSE";case"number":return(T|0)===T?T.toString(10):z(T);case"undefined":return"";case"object":if(T==null)return"";if(T instanceof Date)return U(14,I(T,N&&N.date1904),N)}throw new Error("unsupported value in General format: "+T)}i._general=Y;function Q(T,N){N[0]-=581;var $=T.getDay();return T<60&&($=($+6)%7),$}function oe(T,N,$,q){var L="",H=0,P=0,V=$.y,fe,te=0;switch(T){case 98:V=$.y+543;case 121:switch(N.length){case 1:case 2:fe=V%100,te=2;break;default:fe=V%1e4,te=4;break}break;case 109:switch(N.length){case 1:case 2:fe=$.m,te=N.length;break;case 3:return g[$.m-1][1];case 5:return g[$.m-1][0];default:return g[$.m-1][2]}break;case 100:switch(N.length){case 1:case 2:fe=$.d,te=N.length;break;case 3:return m[$.q][0];default:return m[$.q][1]}break;case 104:switch(N.length){case 1:case 2:fe=1+($.H+11)%12,te=N.length;break;default:throw"bad hour format: "+N}break;case 72:switch(N.length){case 1:case 2:fe=$.H,te=N.length;break;default:throw"bad hour format: "+N}break;case 77:switch(N.length){case 1:case 2:fe=$.M,te=N.length;break;default:throw"bad minute format: "+N}break;case 115:if(N!="s"&&N!="ss"&&N!=".0"&&N!=".00"&&N!=".000")throw"bad second format: "+N;return $.u===0&&(N=="s"||N=="ss")?u($.S,N.length):(q>=2?P=q===3?1e3:100:P=q===1?10:1,H=Math.round(P*($.S+$.u)),H>=60*P&&(H=0),N==="s"?H===0?"0":""+H/P:(L=u(H,2+q),N==="ss"?L.substr(0,2):"."+L.substr(2,N.length-1)));case 90:switch(N){case"[h]":case"[hh]":fe=$.D*24+$.H;break;case"[m]":case"[mm]":fe=($.D*24+$.H)*60+$.M;break;case"[s]":case"[ss]":fe=(($.D*24+$.H)*60+$.M)*60+Math.round($.S+$.u);break;default:throw"bad abstime format: "+N}te=N.length===3?1:2;break;case 101:fe=V,te=1;break}var X=te>0?u(fe,te):"";return X}function de(T){var N=3;if(T.length<=N)return T;for(var $=T.length%N,q=T.substr(0,$);$!=T.length;$+=N)q+=(q.length>0?",":"")+T.substr($,N);return q}var ae=function(){var N=/%/g;function $(Ee,J,re){var Me=J.replace(N,""),G=J.length-Me.length;return ae(Ee,Me,re*Math.pow(10,2*G))+o("%",G)}function q(Ee,J,re){for(var Me=J.length-1;J.charCodeAt(Me-1)===44;)--Me;return ae(Ee,J.substr(0,Me),re/Math.pow(10,3*(J.length-Me)))}function L(Ee,J){var re,Me=Ee.indexOf("E")-Ee.indexOf(".")-1;if(Ee.match(/^#+0.0E\+0$/)){if(J==0)return"0.0E+0";if(J<0)return"-"+L(Ee,-J);var G=Ee.indexOf(".");G===-1&&(G=Ee.indexOf("E"));var ce=Math.floor(Math.log(J)*Math.LOG10E)%G;if(ce<0&&(ce+=G),re=(J/Math.pow(10,ce)).toPrecision(Me+1+(G+ce)%G),re.indexOf("e")===-1){var we=Math.floor(Math.log(J)*Math.LOG10E);for(re.indexOf(".")===-1?re=re.charAt(0)+"."+re.substr(1)+"E+"+(we-re.length+ce):re+="E+"+(we-ce);re.substr(0,2)==="0.";)re=re.charAt(0)+re.substr(2,G)+"."+re.substr(2+G),re=re.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");re=re.replace(/\+-/,"-")}re=re.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(ze,nt,yt,rt){return nt+yt+rt.substr(0,(G+ce)%G)+"."+rt.substr(ce)+"E"})}else re=J.toExponential(Me);return Ee.match(/E\+00$/)&&re.match(/e[+-]\d$/)&&(re=re.substr(0,re.length-1)+"0"+re.charAt(re.length-1)),Ee.match(/E\-/)&&re.match(/e\+/)&&(re=re.replace(/e\+/,"e")),re.replace("e","E")}var H=/# (\?+)( ?)\/( ?)(\d+)/;function P(Ee,J,re){var Me=parseInt(Ee[4],10),G=Math.round(J*Me),ce=Math.floor(G/Me),we=G-ce*Me,ze=Me;return re+(ce===0?"":""+ce)+" "+(we===0?o(" ",Ee[1].length+1+Ee[4].length):a(we,Ee[1].length)+Ee[2]+"/"+Ee[3]+u(ze,Ee[4].length))}function V(Ee,J,re){return re+(J===0?"":""+J)+o(" ",Ee[1].length+2+Ee[4].length)}var fe=/^#*0*\.([0#]+)/,te=/\).*[0#]/,X=/\(###\) ###\\?-####/;function ue(Ee){for(var J="",re,Me=0;Me!=Ee.length;++Me)switch(re=Ee.charCodeAt(Me)){case 35:break;case 63:J+=" ";break;case 48:J+="0";break;default:J+=String.fromCharCode(re)}return J}function Be(Ee,J){var re=Math.pow(10,J);return""+Math.round(Ee*re)/re}function ut(Ee,J){var re=Ee-Math.floor(Ee),Me=Math.pow(10,J);return J<(""+Math.round(re*Me)).length?0:Math.round(re*Me)}function Rt(Ee,J){return J<(""+Math.round((Ee-Math.floor(Ee))*Math.pow(10,J))).length?1:0}function K(Ee){return Ee<2147483647&&Ee>-2147483648?""+(Ee>=0?Ee|0:Ee-1|0):""+Math.floor(Ee)}function se(Ee,J,re){if(Ee.charCodeAt(0)===40&&!J.match(te)){var Me=J.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return re>=0?se("n",Me,re):"("+se("n",Me,-re)+")"}if(J.charCodeAt(J.length-1)===44)return q(Ee,J,re);if(J.indexOf("%")!==-1)return $(Ee,J,re);if(J.indexOf("E")!==-1)return L(J,re);if(J.charCodeAt(0)===36)return"$"+se(Ee,J.substr(J.charAt(1)==" "?2:1),re);var G,ce,we,ze,nt=Math.abs(re),yt=re<0?"-":"";if(J.match(/^00+$/))return yt+h(nt,J.length);if(J.match(/^[#?]+$/))return G=h(re,0),G==="0"&&(G=""),G.length>J.length?G:ue(J.substr(0,J.length-G.length))+G;if(ce=J.match(H))return P(ce,nt,yt);if(J.match(/^#+0+$/))return yt+h(nt,J.length-J.indexOf("0"));if(ce=J.match(fe))return G=Be(re,ce[1].length).replace(/^([^\.]+)$/,"$1."+ue(ce[1])).replace(/\.$/,"."+ue(ce[1])).replace(/\.(\d*)$/,function(Gs,z3){return"."+z3+o("0",ue(ce[1]).length-z3.length)}),J.indexOf("0.")!==-1?G:G.replace(/^0\./,".");if(J=J.replace(/^#+([0.])/,"$1"),ce=J.match(/^(0*)\.(#*)$/))return yt+Be(nt,ce[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,ce[1].length?"0.":".");if(ce=J.match(/^#{1,3},##0(\.?)$/))return yt+de(h(nt,0));if(ce=J.match(/^#,##0\.([#0]*0)$/))return re<0?"-"+se(Ee,J,-re):de(""+(Math.floor(re)+Rt(re,ce[1].length)))+"."+u(ut(re,ce[1].length),ce[1].length);if(ce=J.match(/^#,#*,#0/))return se(Ee,J.replace(/^#,#*,/,""),re);if(ce=J.match(/^([0#]+)(\\?-([0#]+))+$/))return G=s(se(Ee,J.replace(/[\\-]/g,""),re)),we=0,s(s(J.replace(/\\/g,"")).replace(/[0#]/g,function(Gs){return we<G.length?G.charAt(we++):Gs==="0"?"0":""}));if(J.match(X))return G=se(Ee,"##########",re),"("+G.substr(0,3)+") "+G.substr(3,3)+"-"+G.substr(6);var rt="";if(ce=J.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return we=Math.min(ce[4].length,7),ze=_(nt,Math.pow(10,we)-1,!1),G=""+yt,rt=ae("n",ce[1],ze[1]),rt.charAt(rt.length-1)==" "&&(rt=rt.substr(0,rt.length-1)+"0"),G+=rt+ce[2]+"/"+ce[3],rt=l(ze[2],we),rt.length<ce[4].length&&(rt=ue(ce[4].substr(ce[4].length-rt.length))+rt),G+=rt,G;if(ce=J.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return we=Math.min(Math.max(ce[1].length,ce[4].length),7),ze=_(nt,Math.pow(10,we)-1,!0),yt+(ze[0]||(ze[1]?"":"0"))+" "+(ze[1]?a(ze[1],we)+ce[2]+"/"+ce[3]+l(ze[2],we):o(" ",2*we+1+ce[2].length+ce[3].length));if(ce=J.match(/^[#0?]+$/))return G=h(re,0),J.length<=G.length?G:ue(J.substr(0,J.length-G.length))+G;if(ce=J.match(/^([#0?]+)\.([#0]+)$/)){G=""+re.toFixed(Math.min(ce[2].length,10)).replace(/([^0])0+$/,"$1"),we=G.indexOf(".");var Tr=J.indexOf(".")-we,Kc=J.length-G.length-Tr;return ue(J.substr(0,Tr)+G+J.substr(J.length-Kc))}if(ce=J.match(/^00,000\.([#0]*0)$/))return we=ut(re,ce[1].length),re<0?"-"+se(Ee,J,-re):de(K(re)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(Gs){return"00,"+(Gs.length<3?u(0,3-Gs.length):"")+Gs})+"."+u(we,ce[1].length);switch(J){case"###,##0.00":return se(Ee,"#,##0.00",re);case"###,###":case"##,###":case"#,###":var H3=de(h(nt,0));return H3!=="0"?yt+H3:"";case"###,###.00":return se(Ee,"###,##0.00",re).replace(/^0\./,".");case"#,###.00":return se(Ee,"#,##0.00",re).replace(/^0\./,".")}throw new Error("unsupported format |"+J+"|")}function Re(Ee,J,re){for(var Me=J.length-1;J.charCodeAt(Me-1)===44;)--Me;return ae(Ee,J.substr(0,Me),re/Math.pow(10,3*(J.length-Me)))}function He(Ee,J,re){var Me=J.replace(N,""),G=J.length-Me.length;return ae(Ee,Me,re*Math.pow(10,2*G))+o("%",G)}function qe(Ee,J){var re,Me=Ee.indexOf("E")-Ee.indexOf(".")-1;if(Ee.match(/^#+0.0E\+0$/)){if(J==0)return"0.0E+0";if(J<0)return"-"+qe(Ee,-J);var G=Ee.indexOf(".");G===-1&&(G=Ee.indexOf("E"));var ce=Math.floor(Math.log(J)*Math.LOG10E)%G;if(ce<0&&(ce+=G),re=(J/Math.pow(10,ce)).toPrecision(Me+1+(G+ce)%G),!re.match(/[Ee]/)){var we=Math.floor(Math.log(J)*Math.LOG10E);re.indexOf(".")===-1?re=re.charAt(0)+"."+re.substr(1)+"E+"+(we-re.length+ce):re+="E+"+(we-ce),re=re.replace(/\+-/,"-")}re=re.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(ze,nt,yt,rt){return nt+yt+rt.substr(0,(G+ce)%G)+"."+rt.substr(ce)+"E"})}else re=J.toExponential(Me);return Ee.match(/E\+00$/)&&re.match(/e[+-]\d$/)&&(re=re.substr(0,re.length-1)+"0"+re.charAt(re.length-1)),Ee.match(/E\-/)&&re.match(/e\+/)&&(re=re.replace(/e\+/,"e")),re.replace("e","E")}function Ie(Ee,J,re){if(Ee.charCodeAt(0)===40&&!J.match(te)){var Me=J.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return re>=0?Ie("n",Me,re):"("+Ie("n",Me,-re)+")"}if(J.charCodeAt(J.length-1)===44)return Re(Ee,J,re);if(J.indexOf("%")!==-1)return He(Ee,J,re);if(J.indexOf("E")!==-1)return qe(J,re);if(J.charCodeAt(0)===36)return"$"+Ie(Ee,J.substr(J.charAt(1)==" "?2:1),re);var G,ce,we,ze,nt=Math.abs(re),yt=re<0?"-":"";if(J.match(/^00+$/))return yt+u(nt,J.length);if(J.match(/^[#?]+$/))return G=""+re,re===0&&(G=""),G.length>J.length?G:ue(J.substr(0,J.length-G.length))+G;if(ce=J.match(H))return V(ce,nt,yt);if(J.match(/^#+0+$/))return yt+u(nt,J.length-J.indexOf("0"));if(ce=J.match(fe))return G=(""+re).replace(/^([^\.]+)$/,"$1."+ue(ce[1])).replace(/\.$/,"."+ue(ce[1])),G=G.replace(/\.(\d*)$/,function(Gs,z3){return"."+z3+o("0",ue(ce[1]).length-z3.length)}),J.indexOf("0.")!==-1?G:G.replace(/^0\./,".");if(J=J.replace(/^#+([0.])/,"$1"),ce=J.match(/^(0*)\.(#*)$/))return yt+(""+nt).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,ce[1].length?"0.":".");if(ce=J.match(/^#{1,3},##0(\.?)$/))return yt+de(""+nt);if(ce=J.match(/^#,##0\.([#0]*0)$/))return re<0?"-"+Ie(Ee,J,-re):de(""+re)+"."+o("0",ce[1].length);if(ce=J.match(/^#,#*,#0/))return Ie(Ee,J.replace(/^#,#*,/,""),re);if(ce=J.match(/^([0#]+)(\\?-([0#]+))+$/))return G=s(Ie(Ee,J.replace(/[\\-]/g,""),re)),we=0,s(s(J.replace(/\\/g,"")).replace(/[0#]/g,function(Gs){return we<G.length?G.charAt(we++):Gs==="0"?"0":""}));if(J.match(X))return G=Ie(Ee,"##########",re),"("+G.substr(0,3)+") "+G.substr(3,3)+"-"+G.substr(6);var rt="";if(ce=J.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return we=Math.min(ce[4].length,7),ze=_(nt,Math.pow(10,we)-1,!1),G=""+yt,rt=ae("n",ce[1],ze[1]),rt.charAt(rt.length-1)==" "&&(rt=rt.substr(0,rt.length-1)+"0"),G+=rt+ce[2]+"/"+ce[3],rt=l(ze[2],we),rt.length<ce[4].length&&(rt=ue(ce[4].substr(ce[4].length-rt.length))+rt),G+=rt,G;if(ce=J.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return we=Math.min(Math.max(ce[1].length,ce[4].length),7),ze=_(nt,Math.pow(10,we)-1,!0),yt+(ze[0]||(ze[1]?"":"0"))+" "+(ze[1]?a(ze[1],we)+ce[2]+"/"+ce[3]+l(ze[2],we):o(" ",2*we+1+ce[2].length+ce[3].length));if(ce=J.match(/^[#0?]+$/))return G=""+re,J.length<=G.length?G:ue(J.substr(0,J.length-G.length))+G;if(ce=J.match(/^([#0]+)\.([#0]+)$/)){G=""+re.toFixed(Math.min(ce[2].length,10)).replace(/([^0])0+$/,"$1"),we=G.indexOf(".");var Tr=J.indexOf(".")-we,Kc=J.length-G.length-Tr;return ue(J.substr(0,Tr)+G+J.substr(J.length-Kc))}if(ce=J.match(/^00,000\.([#0]*0)$/))return re<0?"-"+Ie(Ee,J,-re):de(""+re).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(Gs){return"00,"+(Gs.length<3?u(0,3-Gs.length):"")+Gs})+"."+u(0,ce[1].length);switch(J){case"###,###":case"##,###":case"#,###":var H3=de(""+nt);return H3!=="0"?yt+H3:"";default:if(J.match(/\.[0#?]*$/))return Ie(Ee,J.slice(0,J.lastIndexOf(".")),re)+ue(J.slice(J.lastIndexOf(".")))}throw new Error("unsupported format |"+J+"|")}return function(J,re,Me){return(Me|0)===Me?Ie(J,re,Me):se(J,re,Me)}}();function ie(T){for(var N=[],$=!1,q=0,L=0;q<T.length;++q)switch(T.charCodeAt(q)){case 34:$=!$;break;case 95:case 42:case 92:++q;break;case 59:N[N.length]=T.substr(L,q-L),L=q+1}if(N[N.length]=T.substr(L),$===!0)throw new Error("Format |"+T+"| unterminated string ");return N}i._split=ie;var le=/\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/;function xe(T){for(var N=0,$="",q="";N<T.length;)switch($=T.charAt(N)){case"G":p(T,N)&&(N+=6),N++;break;case'"':for(;T.charCodeAt(++N)!==34&&N<T.length;);++N;break;case"\\":N+=2;break;case"_":N+=2;break;case"@":++N;break;case"B":case"b":if(T.charAt(N+1)==="1"||T.charAt(N+1)==="2")return!0;case"M":case"D":case"Y":case"H":case"S":case"E":case"m":case"d":case"y":case"h":case"s":case"e":case"g":return!0;case"A":case"a":case"上":if(T.substr(N,3).toUpperCase()==="A/P"||T.substr(N,5).toUpperCase()==="AM/PM"||T.substr(N,5).toUpperCase()==="上午/下午")return!0;++N;break;case"[":for(q=$;T.charAt(N++)!=="]"&&N<T.length;)q+=T.charAt(N);if(q.match(le))return!0;break;case".":case"0":case"#":for(;N<T.length&&("0#?.,E+-%".indexOf($=T.charAt(++N))>-1||$=="\\"&&T.charAt(N+1)=="-"&&"0#".indexOf(T.charAt(N+2))>-1););break;case"?":for(;T.charAt(++N)===$;);break;case"*":++N,(T.charAt(N)==" "||T.charAt(N)=="*")&&++N;break;case"(":case")":++N;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;N<T.length&&"0123456789".indexOf(T.charAt(++N))>-1;);break;case" ":++N;break;default:++N;break}return!1}i.is_date=xe;function Ce(T,N,$,q){for(var L=[],H="",P=0,V="",fe="t",te,X,ue,Be="H";P<T.length;)switch(V=T.charAt(P)){case"G":if(!p(T,P))throw new Error("unrecognized character "+V+" in "+T);L[L.length]={t:"G",v:"General"},P+=7;break;case'"':for(H="";(ue=T.charCodeAt(++P))!==34&&P<T.length;)H+=String.fromCharCode(ue);L[L.length]={t:"t",v:H},++P;break;case"\\":var ut=T.charAt(++P),Rt=ut==="("||ut===")"?ut:"t";L[L.length]={t:Rt,v:ut},++P;break;case"_":L[L.length]={t:"t",v:" "},P+=2;break;case"@":L[L.length]={t:"T",v:N},++P;break;case"B":case"b":if(T.charAt(P+1)==="1"||T.charAt(P+1)==="2"){if(te==null&&(te=C(N,$,T.charAt(P+1)==="2"),te==null))return"";L[L.length]={t:"X",v:T.substr(P,2)},fe=V,P+=2;break}case"M":case"D":case"Y":case"H":case"S":case"E":V=V.toLowerCase();case"m":case"d":case"y":case"h":case"s":case"e":case"g":if(N<0||te==null&&(te=C(N,$),te==null))return"";for(H=V;++P<T.length&&T.charAt(P).toLowerCase()===V;)H+=V;V==="m"&&fe.toLowerCase()==="h"&&(V="M"),V==="h"&&(V=Be),L[L.length]={t:V,v:H},fe=V;break;case"A":case"a":case"上":var K={t:V,v:V};if(te==null&&(te=C(N,$)),T.substr(P,3).toUpperCase()==="A/P"?(te!=null&&(K.v=te.H>=12?"P":"A"),K.t="T",Be="h",P+=3):T.substr(P,5).toUpperCase()==="AM/PM"?(te!=null&&(K.v=te.H>=12?"PM":"AM"),K.t="T",P+=5,Be="h"):T.substr(P,5).toUpperCase()==="上午/下午"?(te!=null&&(K.v=te.H>=12?"下午":"上午"),K.t="T",P+=5,Be="h"):(K.t="t",++P),te==null&&K.t==="T")return"";L[L.length]=K,fe=V;break;case"[":for(H=V;T.charAt(P++)!=="]"&&P<T.length;)H+=T.charAt(P);if(H.slice(-1)!=="]")throw'unterminated "[" block: |'+H+"|";if(H.match(le)){if(te==null&&(te=C(N,$),te==null))return"";L[L.length]={t:"Z",v:H.toLowerCase()},fe=H.charAt(1)}else H.indexOf("$")>-1&&(H=(H.match(/\$([^-\[\]]*)/)||[])[1]||"$",xe(T)||(L[L.length]={t:"t",v:H}));break;case".":if(te!=null){for(H=V;++P<T.length&&(V=T.charAt(P))==="0";)H+=V;L[L.length]={t:"s",v:H};break}case"0":case"#":for(H=V;++P<T.length&&"0#?.,E+-%".indexOf(V=T.charAt(P))>-1;)H+=V;L[L.length]={t:"n",v:H};break;case"?":for(H=V;T.charAt(++P)===V;)H+=V;L[L.length]={t:V,v:H},fe=V;break;case"*":++P,(T.charAt(P)==" "||T.charAt(P)=="*")&&++P;break;case"(":case")":L[L.length]={t:q===1?"t":V,v:V},++P;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(H=V;P<T.length&&"0123456789".indexOf(T.charAt(++P))>-1;)H+=T.charAt(P);L[L.length]={t:"D",v:H};break;case" ":L[L.length]={t:V,v:V},++P;break;case"$":L[L.length]={t:"t",v:"$"},++P;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(V)===-1)throw new Error("unrecognized character "+V+" in "+T);L[L.length]={t:"t",v:V},++P;break}var se=0,Re=0,He;for(P=L.length-1,fe="t";P>=0;--P)switch(L[P].t){case"h":case"H":L[P].t=Be,fe="h",se<1&&(se=1);break;case"s":(He=L[P].v.match(/\.0+$/))&&(Re=Math.max(Re,He[0].length-1)),se<3&&(se=3);case"d":case"y":case"M":case"e":fe=L[P].t;break;case"m":fe==="s"&&(L[P].t="M",se<2&&(se=2));break;case"X":break;case"Z":se<1&&L[P].v.match(/[Hh]/)&&(se=1),se<2&&L[P].v.match(/[Mm]/)&&(se=2),se<3&&L[P].v.match(/[Ss]/)&&(se=3)}switch(se){case 0:break;case 1:te.u>=.5&&(te.u=0,++te.S),te.S>=60&&(te.S=0,++te.M),te.M>=60&&(te.M=0,++te.H);break;case 2:te.u>=.5&&(te.u=0,++te.S),te.S>=60&&(te.S=0,++te.M);break}var qe="",Ie;for(P=0;P<L.length;++P)switch(L[P].t){case"t":case"T":case" ":case"D":break;case"X":L[P].v="",L[P].t=";";break;case"d":case"m":case"y":case"h":case"H":case"M":case"s":case"e":case"b":case"Z":L[P].v=oe(L[P].t.charCodeAt(0),L[P].v,te,Re),L[P].t="t";break;case"n":case"?":for(Ie=P+1;L[Ie]!=null&&((V=L[Ie].t)==="?"||V==="D"||(V===" "||V==="t")&&L[Ie+1]!=null&&(L[Ie+1].t==="?"||L[Ie+1].t==="t"&&L[Ie+1].v==="/")||L[P].t==="("&&(V===" "||V==="n"||V===")")||V==="t"&&(L[Ie].v==="/"||L[Ie].v===" "&&L[Ie+1]!=null&&L[Ie+1].t=="?"));)L[P].v+=L[Ie].v,L[Ie]={v:"",t:";"},++Ie;qe+=L[P].v,P=Ie-1;break;case"G":L[P].t="t",L[P].v=Y(N,$);break}var Ee="",J,re;if(qe.length>0){qe.charCodeAt(0)==40?(J=N<0&&qe.charCodeAt(0)===45?-N:N,re=ae("n",qe,J)):(J=N<0&&q>1?-N:N,re=ae("n",qe,J),J<0&&L[0]&&L[0].t=="t"&&(re=re.substr(1),L[0].v="-"+L[0].v)),Ie=re.length-1;var Me=L.length;for(P=0;P<L.length;++P)if(L[P]!=null&&L[P].t!="t"&&L[P].v.indexOf(".")>-1){Me=P;break}var G=L.length;if(Me===L.length&&re.indexOf("E")===-1){for(P=L.length-1;P>=0;--P)L[P]==null||"n?".indexOf(L[P].t)===-1||(Ie>=L[P].v.length-1?(Ie-=L[P].v.length,L[P].v=re.substr(Ie+1,L[P].v.length)):Ie<0?L[P].v="":(L[P].v=re.substr(0,Ie+1),Ie=-1),L[P].t="t",G=P);Ie>=0&&G<L.length&&(L[G].v=re.substr(0,Ie+1)+L[G].v)}else if(Me!==L.length&&re.indexOf("E")===-1){for(Ie=re.indexOf(".")-1,P=Me;P>=0;--P)if(!(L[P]==null||"n?".indexOf(L[P].t)===-1)){for(X=L[P].v.indexOf(".")>-1&&P===Me?L[P].v.indexOf(".")-1:L[P].v.length-1,Ee=L[P].v.substr(X+1);X>=0;--X)Ie>=0&&(L[P].v.charAt(X)==="0"||L[P].v.charAt(X)==="#")&&(Ee=re.charAt(Ie--)+Ee);L[P].v=Ee,L[P].t="t",G=P}for(Ie>=0&&G<L.length&&(L[G].v=re.substr(0,Ie+1)+L[G].v),Ie=re.indexOf(".")+1,P=Me;P<L.length;++P)if(!(L[P]==null||"n?(".indexOf(L[P].t)===-1&&P!==Me)){for(X=L[P].v.indexOf(".")>-1&&P===Me?L[P].v.indexOf(".")+1:0,Ee=L[P].v.substr(0,X);X<L[P].v.length;++X)Ie<re.length&&(Ee+=re.charAt(Ie++));L[P].v=Ee,L[P].t="t",G=P}}}for(P=0;P<L.length;++P)L[P]!=null&&"n?".indexOf(L[P].t)>-1&&(J=q>1&&N<0&&P>0&&L[P-1].v==="-"?-N:N,L[P].v=ae(L[P].t,L[P].v,J),L[P].t="t");var ce="";for(P=0;P!==L.length;++P)L[P]!=null&&(ce+=L[P].v);return ce}i._eval=Ce;var D=/\[[=<>]/,k=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function j(T,N){if(N==null)return!1;var $=parseFloat(N[2]);switch(N[1]){case"=":if(T==$)return!0;break;case">":if(T>$)return!0;break;case"<":if(T<$)return!0;break;case"<>":if(T!=$)return!0;break;case">=":if(T>=$)return!0;break;case"<=":if(T<=$)return!0;break}return!1}function W(T,N){var $=ie(T),q=$.length,L=$[q-1].indexOf("@");if(q<4&&L>-1&&--q,$.length>4)throw new Error("cannot find right format for |"+$.join("|")+"|");if(typeof N!="number")return[4,$.length===4||L>-1?$[$.length-1]:"@"];switch($.length){case 1:$=L>-1?["General","General","General",$[0]]:[$[0],$[0],$[0],"@"];break;case 2:$=L>-1?[$[0],$[0],$[0],$[1]]:[$[0],$[1],$[0],"@"];break;case 3:$=L>-1?[$[0],$[1],$[0],$[2]]:[$[0],$[1],$[2],"@"];break}var H=N>0?$[0]:N<0?$[1]:$[2];if($[0].indexOf("[")===-1&&$[1].indexOf("[")===-1)return[q,H];if($[0].match(D)!=null||$[1].match(D)!=null){var P=$[0].match(k),V=$[1].match(k);return j(N,P)?[q,$[0]]:j(N,V)?[q,$[1]]:[q,$[P!=null&&V!=null?2:1]]}return[q,H]}function U(T,N,$){$==null&&($={});var q="";switch(typeof T){case"string":T=="m/d/yy"&&$.dateNF?q=$.dateNF:q=T;break;case"number":T==14&&$.dateNF?q=$.dateNF:q=($.table!=null?$.table:E)[T],q==null&&(q=$.table&&$.table[A[T]]||E[A[T]]),q==null&&(q=v[T]||"General");break}if(p(q,0))return Y(N,$);N instanceof Date&&(N=I(N,$.date1904));var L=W(q,N);if(p(L[1]))return Y(N,$);if(N===!0)N="TRUE";else if(N===!1)N="FALSE";else if(N===""||N==null)return"";return Ce(L[1],N,$,L[0])}function B(T,N){if(typeof N!="number"){N=+N||-1;for(var $=0;$<392;++$){if(E[$]==null){N<0&&(N=$);continue}if(E[$]==T){N=$;break}}N<0&&(N=391)}return E[N]=T,N}i.load=B,i._table=E,i.get_table=function(){return E},i.load_table=function(N){for(var $=0;$!=392;++$)N[$]!==void 0&&B(N[$],$)},i.init_table=y,i.format=U};n(e),typeof DO_NOT_EXPORT_SSF>"u"&&(t.exports=e)})(Sse);var iN=Sse.exports,UVe=typeof F=="object"&&F&&F.Object===Object&&F,qVe=UVe,HVe=qVe,zVe=typeof self=="object"&&self&&self.Object===Object&&self,QVe=HVe||zVe||Function("return this")(),GVe=QVe,WVe=GVe,VVe=WVe.Symbol,E8=VVe,vse=E8;vse&&vse.toStringTag;var _se=E8;_se&&_se.toStringTag;var Cse=E8,bse=Cse?Cse.prototype:void 0;bse&&bse.toString;function YVe(t,e){const n=t.createElement("span");return n.classList.add("error"),n.appendChild(t.createTextNode(typeof e=="string"?e:e.message)),n}function XVe(t){const e=t.createElement("span");return e.appendChild(t.createTextNode("∅")),e.classList.add("value-null"),e}function KVe(t,e=0){let n=t;for(;e>0&&n.parentRecord;)e-=1,n=n.parentRecord;return n}function JVe(t){const e=t.split("/"),n=e.filter(i=>i==="..").length+1,r=e.filter(i=>i!==".."&&i!=="");return{levelsUp:n,pathSegments:r}}function Tse({tag:t,data:e}){var n;try{const r=((n=t.tag("field"))==null?void 0:n.text())??"",{levelsUp:i,pathSegments:s}=JVe(r);let o=KVe(e,i);for(;s.length>0&&"cell"in o;){const u=s.shift();o=o.cell(u)}return o==null?void 0:o.value}catch{return}}class Rse{constructor(){this.tagOptionExtractors={}}addExtractor(e,...n){for(const r in n)this.tagOptionExtractors[n[r]]=e}activates(e){return!1}isValidMatch(e){return!0}matches(e){return e.renderer===this.rendererName}parseTagParameters(e){const n={};for(const r in this.tagOptionExtractors){const i=e.tag(r);i&&this.tagOptionExtractors[r](n,i)}return n}}class Ose{constructor(e){this.document=e}getText(e){return e.value===null?null:`${e.value}`}async render(e){let n=null;try{n=this.getText(e)}catch(i){return YVe(this.document,i)}if(n===null)return XVe(this.document);const r=this.document.createElement("span");return r.appendChild(this.document.createTextNode(n)),r}}const mD=class mD extends Rse{activates(e){return e.hasParentExplore()&&!e.isExploreField()}create(e,n,r,i,s){return new Ose(e)}get rendererName(){}};mD.instance=new mD;let Nse=mD;function Dse(t,e,n={}){let r=e.toString();return n.terse?r=ZVe.get(e)??r:t===1&&(r=r.substring(0,r.length-1)),`${n.numFormat?iN.format(n.numFormat,t):t.toLocaleString()}${n.terse?"":" "}${r}`}const ZVe=new Map([[rr.Nanoseconds,"ns"],[rr.Microseconds,"µs"],[rr.Milliseconds,"ms"],[rr.Seconds,"s"],[rr.Minutes,"m"],[rr.Hours,"h"],[rr.Days,"d"]]),eYe=new Map([[rr.Nanoseconds,1e3],[rr.Microseconds,1e3],[rr.Milliseconds,1e3],[rr.Seconds,60],[rr.Minutes,60],[rr.Hours,24],[rr.Days,Number.MAX_VALUE]]);function Fse(t,e,n){const r=n.durationUnit&&jVe(n.durationUnit)?n.durationUnit:rr.Seconds,i=t.tagParse().tag,s=i.text("number"),o=i.has("duration","terse");let u=e,a=0,l=[],c=!1;for(const[f,x]of eYe)if(f===r&&(c=!0),!!c&&(a=u%x,u=Math.floor(u/=x),a>0&&(l=[Dse(a,f,{numFormat:s,terse:o}),...l]),u===0))break;return l.length>0?l.slice(0,2).join(" "):Dse(0,r,{numFormat:s,terse:o})}class tYe extends Ose{constructor(e,n){super(e),this.options=n}getText(e){if(e.isNull())return null;if(!e.isNumber())throw new Error(`Cannot format field ${e.field.name} as a duration unit since its not a number`);return Fse(e.field,e.number.value,{durationUnit:this.options.duration_unit})}}const yD=class yD extends Rse{constructor(){super(),this.addExtractor((e,n)=>{e.duration_unit=(n==null?void 0:n.text())??rr.Seconds},this.rendererName)}create(e,n,r,i,s){return new tYe(e,s)}get rendererName(){return"duration"}};yD.instance=new yD;let wse=yD;function Lse(t,e){let n=e;const{tag:r}=t.tagParse();if(r.has("currency")){let i="$";switch(r.text("currency")){case rN.Euros:i="€";break;case rN.Pounds:i="£";break;case rN.Dollars:break}n=iN.format(`${i}#,##0.00`,e)}else if(r.has("percent"))n=iN.format("#,##0.00%",e);else if(r.has("duration")){const s=r.text("duration")??rr.Seconds;return Fse(t,e,{durationUnit:s})??e.toLocaleString()}else r.has("number")?n=iN.format(r.text("number"),e):n=e.toLocaleString();return n}var nYe=wo("<a target=_blank>");function rYe(t,e){const{tag:n}=t.tagParse();if(e.isNull())return"∅";const r=String(e.value),i=n.tag("link");if(!i)throw new Error("Missing tag for Link renderer");const s=Tse({tag:i,data:e})??r,o=i.text("url_template");let u=s;o&&(o.indexOf("$$")>-1?u=o.replace("$$",s):u=o+s);let a=r.replace(/\//g,"/‌");return(()=>{var l=nYe();return rA(l,"href",u),Hi(l,a),l})()}function jit(t){return t}function Uit(t){return t}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,r){return Array.isArray(r)?n.push.apply(n,t.call(r,e-1)):n.push(r),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 Ise={exports:{}};(function(t){var e=function(){function n(x,h){return h!=null&&x instanceof h}var r;try{r=Map}catch{r=function(){}}var i;try{i=Set}catch{i=function(){}}var s;try{s=Promise}catch{s=function(){}}function o(x,h,p,m,g){typeof h=="object"&&(p=h.depth,m=h.prototype,g=h.includeNonEnumerable,h=h.circular);var y=[],E=[],A=typeof Buffer<"u";typeof h>"u"&&(h=!0),typeof p>"u"&&(p=1/0);function S(v,_){if(v===null)return null;if(_===0)return v;var C,b;if(typeof v!="object")return v;if(n(v,r))C=new r;else if(n(v,i))C=new i;else if(n(v,s))C=new s(function(de,ae){v.then(function(ie){de(S(ie,_-1))},function(ie){ae(S(ie,_-1))})});else if(o.__isArray(v))C=[];else if(o.__isRegExp(v))C=new RegExp(v.source,f(v)),v.lastIndex&&(C.lastIndex=v.lastIndex);else if(o.__isDate(v))C=new Date(v.getTime());else{if(A&&Buffer.isBuffer(v))return Buffer.allocUnsafe?C=Buffer.allocUnsafe(v.length):C=new Buffer(v.length),v.copy(C),C;n(v,Error)?C=Object.create(v):typeof m>"u"?(b=Object.getPrototypeOf(v),C=Object.create(b)):(C=Object.create(m),b=m)}if(h){var O=y.indexOf(v);if(O!=-1)return E[O];y.push(v),E.push(C)}n(v,r)&&v.forEach(function(de,ae){var ie=S(ae,_-1),le=S(de,_-1);C.set(ie,le)}),n(v,i)&&v.forEach(function(de){var ae=S(de,_-1);C.add(ae)});for(var R in v){var I;b&&(I=Object.getOwnPropertyDescriptor(b,R)),!(I&&I.set==null)&&(C[R]=S(v[R],_-1))}if(Object.getOwnPropertySymbols)for(var M=Object.getOwnPropertySymbols(v),R=0;R<M.length;R++){var z=M[R],Y=Object.getOwnPropertyDescriptor(v,z);Y&&!Y.enumerable&&!g||(C[z]=S(v[z],_-1),Y.enumerable||Object.defineProperty(C,z,{enumerable:!1}))}if(g)for(var Q=Object.getOwnPropertyNames(v),R=0;R<Q.length;R++){var oe=Q[R],Y=Object.getOwnPropertyDescriptor(v,oe);Y&&Y.enumerable||(C[oe]=S(v[oe],_-1),Object.defineProperty(C,oe,{enumerable:!1}))}return C}return S(x,p)}o.clonePrototype=function(h){if(h===null)return null;var p=function(){};return p.prototype=h,new p};function u(x){return Object.prototype.toString.call(x)}o.__objToStr=u;function a(x){return typeof x=="object"&&u(x)==="[object Date]"}o.__isDate=a;function l(x){return typeof x=="object"&&u(x)==="[object Array]"}o.__isArray=l;function c(x){return typeof x=="object"&&u(x)==="[object RegExp]"}o.__isRegExp=c;function f(x){var h="";return x.global&&(h+="g"),x.ignoreCase&&(h+="i"),x.multiline&&(h+="m"),h}return o.__getRegExpFlags=f,o}();t.exports&&(t.exports=e)})(Ise);var iYe=Ise.exports;const sYe=wD(iYe);var oYe=function t(e,n){if(e===n)return!0;if(e&&n&&typeof e=="object"&&typeof n=="object"){if(e.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(e)){if(r=e.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!t(e[i],n[i]))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(s=Object.keys(e),r=s.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;i--!==0;){var o=s[i];if(!t(e[o],n[o]))return!1}return!0}return e!==e&&n!==n};const uYe=wD(oYe);var aYe=function(t,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var n=typeof e.cycles=="boolean"?e.cycles:!1,r=e.cmp&&function(s){return function(o){return function(u,a){var l={key:u,value:o[u]},c={key:a,value:o[a]};return s(l,c)}}}(e.cmp),i=[];return function s(o){if(o&&o.toJSON&&typeof o.toJSON=="function"&&(o=o.toJSON()),o!==void 0){if(typeof o=="number")return isFinite(o)?""+o:"null";if(typeof o!="object")return JSON.stringify(o);var u,a;if(Array.isArray(o)){for(a="[",u=0;u<o.length;u++)u&&(a+=","),a+=s(o[u])||"null";return a+"]"}if(o===null)return"null";if(i.indexOf(o)!==-1){if(n)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var l=i.push(o)-1,c=Object.keys(o).sort(r&&r(o));for(a="",u=0;u<c.length;u++){var f=c[u],x=s(o[f]);x&&(a&&(a+=","),a+=JSON.stringify(f)+":"+x)}return i.splice(l,1),"{"+a+"}"}}(t)};const A8=wD(aYe);function S8(t){return!!t.or}function v8(t){return!!t.and}function _8(t){return!!t.not}function sN(t,e){if(_8(t))sN(t.not,e);else if(v8(t))for(const n of t.and)sN(n,e);else if(S8(t))for(const n of t.or)sN(n,e);else e(t)}function R2(t,e){return _8(t)?{not:R2(t.not,e)}:v8(t)?{and:t.and.map(n=>R2(n,e))}:S8(t)?{or:t.or.map(n=>R2(n,e))}:e(t)}const Gl=uYe,ot=sYe;function lYe(t){throw new Error(t)}function p3(t,e){const n={};for(const r of e)Je(t,r)&&(n[r]=t[r]);return n}function Co(t,e){const n=Object.assign({},t);for(const r of e)delete n[r];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(t=>A8(t)).join(",")})`};const sn=A8;function bt(t){if(nn(t))return t;const e=je(t)?t:A8(t);if(e.length<250)return e;let n=0;for(let r=0;r<e.length;r++){const i=e.charCodeAt(r);n=(n<<5)-n+i,n=n&n}return n}function $se(t){return t===!1||t===null}function Tt(t,e){return t.includes(e)}function O2(t,e){let n=0;for(const[r,i]of t.entries())if(e(i,r,n++))return!0;return!1}function Bse(t,e){let n=0;for(const[r,i]of t.entries())if(!e(i,r,n++))return!1;return!0}function cYe(t,...e){for(const n of e)fYe(t,n??{});return t}function fYe(t,e){for(const n of be(e))Ub(t,n,e[n],!0)}function Wl(t,e){const n=[],r={};let i;for(const s of t)i=e(s),!(i in r)&&(r[i]=1,n.push(s));return n}function xYe(t,e){if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0}function kse(t,e){for(const n of t)if(e.has(n))return!0;return!1}function Pse(t){const e=new Set;for(const n of t){const i=El(n).map((o,u)=>u===0?o:`[${o}]`),s=i.map((o,u)=>i.slice(0,u+1).join(""));for(const o of s)e.add(o)}return e}function Mse(t,e){return t===void 0||e===void 0?!0:kse(Pse(t),Pse(e))}function Wt(t){return be(t).length===0}const be=Object.keys,Pi=Object.values,Ad=Object.entries;function oN(t){return t===!0||t===!1}function mn(t){const e=t.replace(/\W/g,"_");return(t.match(/^\d+/)?"_":"")+e}function uN(t,e){return _8(t)?`!(${uN(t.not,e)})`:v8(t)?`(${t.and.map(n=>uN(n,e)).join(") && (")})`:S8(t)?`(${t.or.map(n=>uN(n,e)).join(") || (")})`:e(t)}function C8(t,e){if(e.length===0)return!0;const n=e.shift();return n in t&&C8(t[n],e)&&delete t[n],Wt(t)}function aN(t){return t.charAt(0).toUpperCase()+t.substr(1)}function jse(t,e="datum"){const n=El(t),r=[];for(let i=1;i<=n.length;i++){const s=`[${n.slice(0,i).map(Fe).join("][")}]`;r.push(`${e}${s}`)}return r.join(" && ")}function dYe(t,e="datum"){return`${e}[${Fe(El(t).join("."))}]`}function hYe(t){return t.replace(/(\[|\]|\.|'|")/g,"\\$1")}function fu(t){return`${El(t).map(hYe).join("\\.")}`}function N2(t,e,n){return t.replace(new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function Use(t){return`${El(t).join(".")}`}function g3(t){return t?El(t).length:0}function ir(...t){for(const e of t)if(e!==void 0)return e}let pYe=42;function gYe(t){const e=++pYe;return t?String(t)+e:e}function mYe(t){return yYe(t)?t:`__${t}`}function yYe(t){return t.startsWith("__")}function lN(t){if(t!==void 0)return(t%360+360)%360}function b8(t){return nn(t)?!0:!isNaN(t)&&!isNaN(parseFloat(t))}var m3=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Vl="row",Yl="column",cN="facet",yn="x",_r="y",xu="x2",Ca="y2",Fc="xOffset",D2="yOffset",ba="radius",Xl="radius2",du="theta",Kl="theta2",Ta="latitude",Ra="longitude",hu="latitude2",bo="longitude2",hs="color",Oa="fill",Na="stroke",ps="shape",Jl="size",Sd="angle",Zl="opacity",wc="fillOpacity",Lc="strokeOpacity",Ic="strokeWidth",$c="strokeDash",y3="text",E3="order",A3="detail",fN="key",vd="tooltip",xN="href",dN="url",hN="description",EYe={x:1,y:1,x2:1,y2:1},qse={theta:1,theta2:1,radius:1,radius2:1};function Hse(t){return t in qse}const T8={longitude:1,longitude2:1,latitude:1,latitude2:1};function AYe(t){switch(t){case Ta:return"y";case hu:return"y2";case Ra:return"x";case bo:return"x2"}}function SYe(t){return t in T8}const vYe=be(T8),R8=Object.assign(Object.assign(Object.assign(Object.assign({},EYe),qse),T8),{xOffset:1,yOffset:1,color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1});function F2(t){return t===hs||t===Oa||t===Na}const zse={row:1,column:1,facet:1},To=be(zse),O8=Object.assign(Object.assign({},R8),zse),_Ye=be(O8),CYe=m3(O8,["order","detail","tooltip"]),bYe=m3(CYe,["row","column","facet"]);function TYe(t){return!!bYe[t]}function Qse(t){return!!O8[t]}const RYe=[xu,Ca,hu,bo,Kl,Xl];function Gse(t){return _d(t)!==t}function _d(t){switch(t){case xu:return yn;case Ca:return _r;case hu:return Ta;case bo:return Ra;case Kl:return du;case Xl:return ba}return t}function Bc(t){if(Hse(t))switch(t){case du:return"startAngle";case Kl:return"endAngle";case ba:return"outerRadius";case Xl:return"innerRadius"}return t}function e0(t){switch(t){case yn:return xu;case _r:return Ca;case Ta:return hu;case Ra:return bo;case du:return Kl;case ba:return Xl}}function gs(t){switch(t){case yn:case xu:return"width";case _r:case Ca:return"height"}}function OYe(t){switch(t){case yn:return"xOffset";case _r:return"yOffset";case xu:return"x2Offset";case Ca:return"y2Offset";case du:return"thetaOffset";case ba:return"radiusOffset";case Kl:return"theta2Offset";case Xl:return"radius2Offset"}}function Wse(t){switch(t){case yn:return"xOffset";case _r:return"yOffset"}}function Vse(t){switch(t){case"xOffset":return"x";case"yOffset":return"y"}}const NYe=be(R8),N8=m3(R8,["x","y","x2","y2","xOffset","yOffset","latitude","longitude","latitude2","longitude2","theta","theta2","radius","radius2"]),DYe=be(N8),D8={x:1,y:1},Da=be(D8);function kr(t){return t in D8}const F8={theta:1,radius:1},FYe=be(F8);function pN(t){return t==="width"?yn:_r}const Yse={xOffset:1,yOffset:1};function w2(t){return t in Yse}const Xse=m3(N8,["text","tooltip","href","url","description","detail","key","order"]),wYe=be(Xse);function LYe(t){return!!N8[t]}function IYe(t){switch(t){case hs:case Oa:case Na:case Jl:case ps:case Zl:case Ic:case $c:return!0;case wc:case Lc:case Sd:return!1}}const Kse=Object.assign(Object.assign(Object.assign(Object.assign({},D8),F8),Yse),Xse),gN=be(Kse);function kc(t){return!!Kse[t]}function $Ye(t,e){return kYe(t)[e]}const Jse={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},BYe=m3(Jse,["geoshape"]);function kYe(t){switch(t){case hs:case Oa:case Na:case hN:case A3:case fN:case vd:case xN:case E3:case Zl:case wc:case Lc:case Ic:case cN:case Vl:case Yl:return Jse;case yn:case _r:case Fc:case D2:case Ta:case Ra:return BYe;case xu:case Ca:case hu:case bo:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case Jl:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case $c:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case ps:return{point:"always",geoshape:"always"};case y3:return{text:"always"};case Sd:return{point:"always",square:"always",text:"always"};case dN:return{image:"always"};case du:return{text:"always",arc:"always"};case ba:return{text:"always",arc:"always"};case Kl:case Xl:return{arc:"always"}}}function w8(t){switch(t){case yn:case _r:case du:case ba:case Fc:case D2:case Jl:case Sd:case Ic:case Zl:case wc:case Lc:case xu:case Ca:case Kl:case Xl:return;case cN:case Vl:case Yl:case ps:case $c:case y3:case vd:case xN:case dN:case hN:return"discrete";case hs:case Oa:case Na:return"flexible";case Ta:case Ra:case hu:case bo:case A3:case fN:case E3:return}}const PYe={argmax:1,argmin:1,average:1,count:1,distinct:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},MYe={count:1,min:1,max:1};function t0(t){return!!t&&!!t.argmin}function Pc(t){return!!t&&!!t.argmax}function L8(t){return je(t)&&!!PYe[t]}const jYe=new Set(["count","valid","missing","distinct"]);function Zse(t){return je(t)&&jYe.has(t)}function UYe(t){return je(t)&&Tt(["min","max"],t)}const qYe=new Set(["count","sum","distinct","valid","missing"]),HYe=new Set(["mean","average","median","q1","q3","min","max"]);function eoe(t){return Fp(t)&&(t=$N(t,void 0)),"bin"+be(t).map(e=>mN(t[e])?mn(`_${e}_${Ad(t[e])}`):mn(`_${e}_${t[e]}`)).join("")}function Kt(t){return t===!0||Cd(t)&&!t.binned}function Mi(t){return t==="binned"||Cd(t)&&t.binned===!0}function Cd(t){return Qe(t)}function mN(t){return t==null?void 0:t.param}function toe(t){switch(t){case Vl:case Yl:case Jl:case hs:case Oa:case Na:case Ic:case Zl:case wc:case Lc:case ps:return 6;case $c:return 4;default:return 10}}function S3(t){return t&&!!t.expr}function ms(t){const e=be(t||{}),n={};for(const r of e)n[r]=Hs(t[r]);return n}var zYe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function noe(t){const{anchor:e,frame:n,offset:r,orient:i,angle:s,limit:o,color:u,subtitleColor:a,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:x,subtitleLineHeight:h,subtitlePadding:p}=t,m=zYe(t,["anchor","frame","offset","orient","angle","limit","color","subtitleColor","subtitleFont","subtitleFontSize","subtitleFontStyle","subtitleFontWeight","subtitleLineHeight","subtitlePadding"]),g=Object.assign(Object.assign({},m),u?{fill:u}:{}),y=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},e?{anchor:e}:{}),n?{frame:n}:{}),r?{offset:r}:{}),i?{orient:i}:{}),s!==void 0?{angle:s}:{}),o!==void 0?{limit:o}:{}),E=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},a?{subtitleColor:a}:{}),l?{subtitleFont:l}:{}),c?{subtitleFontSize:c}:{}),f?{subtitleFontStyle:f}:{}),x?{subtitleFontWeight:x}:{}),h?{subtitleLineHeight:h}:{}),p?{subtitlePadding:p}:{}),A=p3(t,["align","baseline","dx","dy","limit"]);return{titleMarkConfig:g,subtitleMarkConfig:A,nonMarkTitleProperties:y,subtitle:E}}function Mc(t){return je(t)||_e(t)&&je(t[0])}function Ye(t){return t&&!!t.signal}function jc(t){return!!t.step}function QYe(t){return _e(t)?!1:"fields"in t&&!("data"in t)}function GYe(t){return _e(t)?!1:"fields"in t&&"data"in t}function n0(t){return _e(t)?!1:"field"in t&&"data"in t}const WYe=be({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}),VYe={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},I8=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];var $8=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function roe(t){const e=_e(t.condition)?t.condition.map(ioe):ioe(t.condition);return Object.assign(Object.assign({},Hs(t)),{condition:e})}function Hs(t){if(S3(t)){const{expr:e}=t,n=$8(t,["expr"]);return Object.assign({signal:e},n)}return t}function ioe(t){if(S3(t)){const{expr:e}=t,n=$8(t,["expr"]);return Object.assign({signal:e},n)}return t}function on(t){if(S3(t)){const{expr:e}=t,n=$8(t,["expr"]);return Object.assign({signal:e},n)}return Ye(t)?t:t!==void 0?{value:t}:void 0}function YYe(t){return Ye(t)?t.signal:Fe(t)}function soe(t){return Ye(t)?t.signal:Fe(t.value)}function r0(t){return Ye(t)?t.signal:t==null?null:Fe(t)}function XYe(t,e,n){for(const r of n){const i=bd(r,e.markDef,e.config);i!==void 0&&(t[r]=on(i))}return t}function ooe(t){var e;return[].concat(t.type,(e=t.style)!==null&&e!==void 0?e:[])}function kt(t,e,n,r={}){const{vgChannel:i,ignoreVgConfig:s}=r;return i&&e[i]!==void 0?e[i]:e[t]!==void 0?e[t]:s&&(!i||i===t)?void 0:bd(t,e,n,r)}function bd(t,e,n,{vgChannel:r}={}){return ir(r?yN(t,e,n.style):void 0,yN(t,e,n.style),r?n[e.type][r]:void 0,n[e.type][t],r?n.mark[r]:n.mark[t])}function yN(t,e,n){return uoe(t,ooe(e),n)}function uoe(t,e,n){e=Pe(e);let r;for(const i of e){const s=n[i];s&&s[t]!==void 0&&(r=s[t])}return r}function aoe(t,e){return Pe(t).reduce((n,r)=>{var i;return n.field.push($e(r,e)),n.order.push((i=r.sort)!==null&&i!==void 0?i:"ascending"),n},{field:[],order:[]})}function loe(t,e){const n=[...t];return e.forEach(r=>{for(const i of n)if(Gl(i,r))return;n.push(r)}),n}function coe(t,e){return Gl(t,e)||!e?t:t?[...Pe(t),...Pe(e)].join(", "):e}function foe(t,e){const n=t.value,r=e.value;if(n==null||r===null)return{explicit:t.explicit,value:null};if((Mc(n)||Ye(n))&&(Mc(r)||Ye(r)))return{explicit:t.explicit,value:coe(n,r)};if(Mc(n)||Ye(n))return{explicit:t.explicit,value:n};if(Mc(r)||Ye(r))return{explicit:t.explicit,value:r};if(!Mc(n)&&!Ye(n)&&!Mc(r)&&!Ye(r))return{explicit:t.explicit,value:loe(n,r)};throw new Error("It should never reach here")}function B8(t){return`Invalid specification ${sn(t)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const KYe='Autosize "fit" only works for single views and layered views.';function xoe(t){return`${t=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function doe(t){const e=t=="width"?"Width":"Height",n=t=="width"?"x":"y";return`${e} "container" only works well with autosize "fit" or "fit-${n}".`}function hoe(t){return t?`Dropping "fit-${t}" because spec has discrete ${gs(t)}.`:'Dropping "fit" because spec has discrete size.'}function k8(t){return`Unknown field for ${t}. Cannot calculate view size.`}function poe(t){return`Cannot project a selection on encoding channel "${t}", which has no field.`}function JYe(t,e){return`Cannot project a selection on encoding channel "${t}" as it uses an aggregate function ("${e}").`}function ZYe(t){return`The "nearest" transform is not supported for ${t} marks.`}function goe(t){return`Selection not supported for ${t} yet.`}function eXe(t){return`Cannot find a selection named "${t}".`}const tXe="Scale bindings are currently only supported for scales with unbinned, continuous domains.",nXe="Legend bindings are only supported for selections over an individual field or encoding channel.";function rXe(t){return`Lookups can only be performed on selection parameters. "${t}" is a variable parameter.`}function iXe(t){return`Cannot define and lookup the "${t}" selection in the same view. Try moving the lookup into a second, layered view?`}const sXe="The same selection must be used to override scale domains in a layered view.",oXe='Interval selections should be initialized using "x" and/or "y" keys.';function uXe(t){return`Unknown repeated value "${t}".`}function moe(t){return`The "columns" property cannot be used when "${t}" has nested row/column.`}const aXe="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function lXe(t){return`Unrecognized parse "${t}".`}function yoe(t,e,n){return`An ancestor parsed field "${t}" as ${n} but a child wants to parse the field as ${e}.`}const cXe="Attempt to add the same child twice.";function fXe(t){return`Ignoring an invalid transform: ${sn(t)}.`}const xXe='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.';function Eoe(t){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${t} are dropped.`}function dXe(t){const{parentProjection:e,projection:n}=t;return`Layer's shared projection ${sn(e)} is overridden by a child projection ${sn(n)}.`}const hXe="Arc marks uses theta channel rather than angle, replacing angle with theta.";function pXe(t){return`${t}Offset dropped because ${t} is continuous`}function gXe(t){return`There is no ${t} encoding. Replacing ${t}Offset encoding as ${t}.`}function mXe(t,e,n){return`Channel ${t} is a ${e}. Converted to {value: ${sn(n)}}.`}function Aoe(t){return`Invalid field type "${t}".`}function yXe(t,e){return`Invalid field type "${t}" for aggregate: "${e}", using "quantitative" instead.`}function EXe(t){return`Invalid aggregation operator "${t}".`}function Soe(t,e){const{fill:n,stroke:r}=e;return`Dropping color ${t} as the plot also has ${n&&r?"fill and stroke":n?"fill":"stroke"}.`}function AXe(t){return`Position range does not support relative band size for ${t}.`}function P8(t,e){return`Dropping ${sn(t)} from channel "${e}" since it does not contain any data field, datum, value, or signal.`}const SXe="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function EN(t,e,n){return`${t} dropped as it is incompatible with "${e}"${n?` when ${n}`:""}.`}function vXe(t){return`${t} encoding has no scale, so specified scale is ignored.`}function _Xe(t){return`${t}-encoding is dropped as ${t} is not a valid encoding channel.`}function CXe(t){return`${t} encoding should be discrete (ordinal / nominal / binned).`}function bXe(t){return`${t} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function TXe(t){return`Facet encoding dropped as ${t.join(" and ")} ${t.length>1?"are":"is"} also specified.`}function M8(t,e){return`Using discrete channel "${t}" to encode "${e}" field can be misleading as it does not encode ${e==="ordinal"?"order":"magnitude"}.`}function RXe(t){return`The ${t} for range marks cannot be an expression`}function OXe(t,e){return`Line mark is for continuous lines and thus cannot be used with ${t&&e?"x2 and y2":t?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function NXe(t,e){return`Specified orient "${t}" overridden with "${e}".`}function DXe(t){return`Cannot use the scale property "${t}" with non-color channel.`}function FXe(t){return`Cannot use the relative band size with ${t} scale.`}function wXe(t){return`Using unaggregated domain with raw field has no effect (${sn(t)}).`}function LXe(t){return`Unaggregated domain not applicable for "${t}" since it produces values outside the origin domain of the source data.`}function IXe(t){return`Unaggregated domain is currently unsupported for log scale (${sn(t)}).`}function $Xe(t){return`Cannot apply size to non-oriented mark "${t}".`}function BXe(t,e,n){return`Channel "${t}" does not work with "${e}" scale. We are using "${n}" scale instead.`}function kXe(t,e){return`FieldDef does not work with "${t}" scale. We are using "${e}" scale instead.`}function voe(t,e,n){return`${n}-scale's "${e}" is dropped as it does not work with ${t} scale.`}function _oe(t){return`The step for "${t}" is dropped because the ${t==="width"?"x":"y"} is continuous.`}function PXe(t,e,n,r){return`Conflicting ${e.toString()} property "${t.toString()}" (${sn(n)} and ${sn(r)}). Using ${sn(n)}.`}function MXe(t,e,n,r){return`Conflicting ${e.toString()} property "${t.toString()}" (${sn(n)} and ${sn(r)}). Using the union of the two domains.`}function jXe(t){return`Setting the scale to be independent for "${t}" means we also have to set the guide (axis or legend) to be independent.`}function UXe(t){return`Dropping sort property ${sn(t)} as unioned domains only support boolean or op "count", "min", and "max".`}const Coe="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",qXe="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.",HXe="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.",zXe="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 QXe(t){return`Cannot stack "${t}" if there is already "${t}2".`}function GXe(t){return`Cannot stack non-linear scale (${t}).`}function WXe(t){return`Stacking is applied even though the aggregate function is non-summative ("${t}").`}function AN(t,e){return`Invalid ${t}: ${sn(e)}.`}function VXe(t){return`Dropping day from datetime ${sn(t)} as day cannot be combined with other units.`}function YXe(t,e){return`${e?"extent ":""}${e&&t?"and ":""}${t?"center ":""}${e&&t?"are ":"is "}not needed when data are aggregated.`}function XXe(t,e,n){return`${t} is not usually used with ${e} for ${n}.`}function KXe(t,e){return`Continuous axis should not have customized aggregation function ${t}; ${e} already agregates the axis.`}function boe(t){return`1D error band does not support ${t}.`}function Toe(t){return`Channel ${t} is required for "binned" bin.`}function JXe(t){return`Channel ${t} should not be used with "binned" bin.`}function ZXe(t){return`Domain for ${t} is required for threshold scale.`}const Roe=ZW(JW);let L2=Roe;function eKe(t){return L2=t,L2}function tKe(){return L2=Roe,L2}function Te(...t){L2.warn(...t)}function nKe(...t){L2.debug(...t)}function Td(t){if(t&&Qe(t)){for(const e of U8)if(e in t)return!0}return!1}const Ooe=["january","february","march","april","may","june","july","august","september","october","november","december"],rKe=Ooe.map(t=>t.substr(0,3)),Noe=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],iKe=Noe.map(t=>t.substr(0,3));function sKe(t){if(b8(t)&&(t=+t),nn(t))return t>4&&Te(AN("quarter",t)),t-1;throw new Error(AN("quarter",t))}function oKe(t){if(b8(t)&&(t=+t),nn(t))return t-1;{const e=t.toLowerCase(),n=Ooe.indexOf(e);if(n!==-1)return n;const r=e.substr(0,3),i=rKe.indexOf(r);if(i!==-1)return i;throw new Error(AN("month",t))}}function uKe(t){if(b8(t)&&(t=+t),nn(t))return t%7;{const e=t.toLowerCase(),n=Noe.indexOf(e);if(n!==-1)return n;const r=e.substr(0,3),i=iKe.indexOf(r);if(i!==-1)return i;throw new Error(AN("day",t))}}function j8(t,e){const n=[];if(e&&t.day!==void 0&&be(t).length>1&&(Te(VXe(t)),t=ot(t),delete t.day),t.year!==void 0?n.push(t.year):n.push(2012),t.month!==void 0){const r=e?oKe(t.month):t.month;n.push(r)}else if(t.quarter!==void 0){const r=e?sKe(t.quarter):t.quarter;n.push(nn(r)?r*3:`${r}*3`)}else n.push(0);if(t.date!==void 0)n.push(t.date);else if(t.day!==void 0){const r=e?uKe(t.day):t.day;n.push(nn(r)?r+1:`${r}+1`)}else n.push(1);for(const r of["hours","minutes","seconds","milliseconds"]){const i=t[r];n.push(typeof i>"u"?0:i)}return n}function v3(t){const n=j8(t,!0).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}function aKe(t){const n=j8(t,!1).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}function lKe(t){const e=j8(t,!0);return t.utc?+new Date(Date.UTC(...e)):+new Date(...e)}var cKe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Doe={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},U8=be(Doe);function fKe(t){return!!Doe[t]}function q8(t){return t.startsWith("utc")}function xKe(t){return t.substr(3)}const dKe={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function H8(t){return U8.filter(e=>Foe(t,e))}function Foe(t,e){const n=t.indexOf(e);return!(n<0||n>0&&e==="seconds"&&t.charAt(n-1)==="i"||t.length>n+3&&e==="day"&&t.charAt(n+3)==="o"||n>0&&e==="year"&&t.charAt(n-1)==="f")}function hKe(t,e,{end:n}={end:!1}){const r=jse(e),i=q8(t)?"utc":"";function s(a){return a==="quarter"?`(${i}quarter(${r})-1)`:`${i}${a}(${r})`}let o;const u={};for(const a of U8)Foe(t,a)&&(u[a]=s(a),o=a);return n&&(u[o]+="+1"),aKe(u)}function woe(t){if(!t)return;const e=H8(t);return`timeUnitSpecifier(${sn(e)}, ${sn(dKe)})`}function pKe(t,e,n){if(!t)return;const r=woe(t);return`${n||q8(t)?"utc":"time"}Format(${e}, ${r})`}function ji(t){if(!t)return;let e;return je(t)?e={unit:t}:Qe(t)&&(e=Object.assign(Object.assign({},t),t.unit?{unit:t.unit}:{})),q8(e.unit)&&(e.utc=!0,e.unit=xKe(e.unit)),e}function gKe(t){const e=ji(t),{utc:n}=e,r=cKe(e,["utc"]);return r.unit?(n?"utc":"")+be(r).map(i=>mn(`${i==="unit"?"":`_${i}_`}${r[i]}`)).join(""):(n?"utc":"")+"timeunit"+be(r).map(i=>mn(`_${i}_${r[i]}`)).join("")}function mKe(t){return t==null?void 0:t.param}function z8(t){return t&&!!t.field&&t.equal!==void 0}function Q8(t){return t&&!!t.field&&t.lt!==void 0}function G8(t){return t&&!!t.field&&t.lte!==void 0}function W8(t){return t&&!!t.field&&t.gt!==void 0}function V8(t){return t&&!!t.field&&t.gte!==void 0}function Y8(t){if(t!=null&&t.field){if(_e(t.range)&&t.range.length===2)return!0;if(Ye(t.range))return!0}return!1}function X8(t){return t&&!!t.field&&(_e(t.oneOf)||_e(t.in))}function yKe(t){return t&&!!t.field&&t.valid!==void 0}function Loe(t){return X8(t)||z8(t)||Y8(t)||Q8(t)||W8(t)||G8(t)||V8(t)}function Fa(t,e){return BN(t,{timeUnit:e,wrapTime:!0})}function EKe(t,e){return t.map(n=>Fa(n,e))}function Ioe(t,e=!0){var n;const{field:r}=t,i=(n=ji(t.timeUnit))===null||n===void 0?void 0:n.unit,s=i?`time(${hKe(i,r)})`:$e(t,{expr:"datum"});if(z8(t))return`${s}===${Fa(t.equal,i)}`;if(Q8(t)){const o=t.lt;return`${s}<${Fa(o,i)}`}else if(W8(t)){const o=t.gt;return`${s}>${Fa(o,i)}`}else if(G8(t)){const o=t.lte;return`${s}<=${Fa(o,i)}`}else if(V8(t)){const o=t.gte;return`${s}>=${Fa(o,i)}`}else{if(X8(t))return`indexof([${EKe(t.oneOf,i).join(",")}], ${s}) !== -1`;if(yKe(t))return K8(s,t.valid);if(Y8(t)){const{range:o}=t,u=Ye(o)?{signal:`${o.signal}[0]`}:o[0],a=Ye(o)?{signal:`${o.signal}[1]`}:o[1];if(u!==null&&a!==null&&e)return"inrange("+s+", ["+Fa(u,i)+", "+Fa(a,i)+"])";const l=[];return u!==null&&l.push(`${s} >= ${Fa(u,i)}`),a!==null&&l.push(`${s} <= ${Fa(a,i)}`),l.length>0?l.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${sn(t)}`)}function K8(t,e=!0){return e?`isValid(${t}) && isFinite(+${t})`:`!isValid(${t}) || !isFinite(+${t})`}function AKe(t){var e;return Loe(t)&&t.timeUnit?Object.assign(Object.assign({},t),{timeUnit:(e=ji(t.timeUnit))===null||e===void 0?void 0:e.unit}):t}const _3={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function SKe(t){return t==="quantitative"||t==="temporal"}function $oe(t){return t==="ordinal"||t==="nominal"}const Rd=_3.quantitative,J8=_3.ordinal,I2=_3.temporal,Z8=_3.nominal,$2=_3.geojson;function vKe(t){if(t)switch(t=t.toLowerCase(),t){case"q":case Rd:return"quantitative";case"t":case I2:return"temporal";case"o":case J8:return"ordinal";case"n":case Z8:return"nominal";case $2:return"geojson"}}var _Ke=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const ys={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"},e7={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 CKe(t,e){const n=e7[t],r=e7[e];return n===r||n==="ordinal-position"&&r==="time"||r==="ordinal-position"&&n==="time"}const bKe={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 Boe(t){return bKe[t]}const koe=new Set(["linear","log","pow","sqrt","symlog"]),Poe=new Set([...koe,"time","utc"]);function Moe(t){return koe.has(t)}const joe=new Set(["quantile","quantize","threshold"]),TKe=new Set([...Poe,...joe,"sequential","identity"]),RKe=new Set(["ordinal","bin-ordinal","point","band"]);function Cr(t){return RKe.has(t)}function zs(t){return TKe.has(t)}function pu(t){return Poe.has(t)}function B2(t){return joe.has(t)}const OKe={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};function NKe(t){return!je(t)&&!!t.name}function Uoe(t){return t==null?void 0:t.param}function DKe(t){return t&&t.unionWith}function FKe(t){return Qe(t)&&"field"in t}const wKe=_Ke({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},["type","domain","range","rangeMax","rangeMin","scheme"]),LKe=be(wKe);function t7(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 pu(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return pu(t)||["point","band"].includes(t);case"paddingOuter":case"align":return["point","band"].includes(t);case"paddingInner":return t==="band";case"domainMax":case"domainMid":case"domainMin":case"clamp":return pu(t);case"nice":return pu(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return zs(t)&&!Tt(["log","time","utc","threshold","quantile"],t)}}function qoe(t,e){switch(e){case"interpolate":case"scheme":case"domainMid":return F2(t)?void 0:DXe(t);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}}function IKe(t,e){return Tt([J8,Z8],e)?t===void 0||Cr(t):e===I2?Tt([ys.TIME,ys.UTC,void 0],t):e===Rd?Moe(t)||B2(t)||t===void 0:!0}function $Ke(t,e,n=!1){if(!kc(t))return!1;switch(t){case yn:case _r:case Fc:case D2:case du:case ba:return pu(e)||e==="band"?!0:e==="point"?!n:!1;case Jl:case Ic:case Zl:case wc:case Lc:case Sd:return pu(e)||B2(e)||Tt(["band","point","ordinal"],e);case hs:case Oa:case Na:return e!=="band";case $c:case ps:return e==="ordinal"||B2(e)}}const Ui={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"},Hoe=Ui.arc,SN=Ui.area,vN=Ui.bar,BKe=Ui.image,_N=Ui.line,CN=Ui.point,kKe=Ui.rect,bN=Ui.rule,zoe=Ui.text,n7=Ui.tick,PKe=Ui.trail,r7=Ui.circle,i7=Ui.square,Qoe=Ui.geoshape;function Uc(t){return["line","area","trail"].includes(t)}function Goe(t){return["rect","bar","image","arc"].includes(t)}const MKe=new Set(be(Ui));function wa(t){return t.type}const jKe=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],UKe=["fill","fillOpacity"],qKe=[...jKe,...UKe],Woe=be({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),HKe={area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]},zKe={color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},Voe=be({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 k2(t){return t&&t.band!=null}const QKe={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Yoe=5,GKe={binSpacing:1,continuousBandSize:Yoe,timeUnitBandPosition:.5},WKe={binSpacing:0,continuousBandSize:Yoe,timeUnitBandPosition:.5},VKe={thickness:1};function YKe(t){return wa(t)?t.type:t}function s7(t){const{channel:e,channelDef:n,markDef:r,scale:i,config:s}=t,o=u7(t);return Le(n)&&!Zse(n.aggregate)&&i&&pu(i.get("type"))?XKe({fieldDef:n,channel:e,markDef:r,ref:o,config:s}):o}function XKe({fieldDef:t,channel:e,markDef:n,ref:r,config:i}){return Uc(n.type)?r:kt("invalid",n,i)===null?[KKe(t,e),r]:r}function KKe(t,e){const n=o7(t,!0),i=_d(e)==="y"?{field:{group:"height"}}:{value:0};return Object.assign({test:n},i)}function o7(t,e=!0){return K8(je(t)?t:$e(t,{expr:"datum"}),!e)}function JKe(t){const{datum:e}=t;return Td(e)?v3(e):`${sn(e)}`}function Od(t,e,n,r){const i={};if(e&&(i.scale=e),Ia(t)){const{datum:s}=t;Td(s)?i.signal=v3(s):Ye(s)?i.signal=s.signal:S3(s)?i.signal=s.expr:i.value=s}else i.field=$e(t,n);if(r){const{offset:s,band:o}=r;s&&(i.offset=s),o&&(i.band=o)}return i}function TN({scaleName:t,fieldOrDatumDef:e,fieldOrDatumDef2:n,offset:r,startSuffix:i,bandPosition:s=.5}){const o=0<s&&s<1?"datum":void 0,u=$e(e,{expr:o,suffix:i}),a=n!==void 0?$e(n,{expr:o}):$e(e,{suffix:"end",expr:o}),l={};if(s===0||s===1){l.scale=t;const c=s===0?u:a;l.field=c}else{const c=Ye(s)?`${s.signal} * ${u} + (1-${s.signal}) * ${a}`:`${s} * ${u} + ${1-s} * ${a}`;l.signal=`scale("${t}", ${c})`}return r&&(l.offset=r),l}function u7({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l,bandPosition:c}){var f;if(e){if(it(e)){const x=o==null?void 0:o.get("type");if(Ro(e)){c??(c=uue({fieldDef:e,fieldDef2:n,markDef:r,config:i}));const{bin:h,timeUnit:p,type:m}=e;if(Kt(h)||c&&p&&m===I2)return u!=null&&u.impute?Od(e,s,{binSuffix:"mid"},{offset:a}):c&&!Cr(x)?TN({scaleName:s,fieldOrDatumDef:e,bandPosition:c,offset:a}):Od(e,s,R3(e,t)?{binSuffix:"range"}:{},{offset:a});if(Mi(h)){if(Le(n))return TN({scaleName:s,fieldOrDatumDef:e,fieldOrDatumDef2:n,bandPosition:c,offset:a});Te(Toe(t===yn?xu:Ca))}}return Od(e,s,Cr(x)?{binSuffix:"range"}:{},{offset:a,band:x==="band"?(f=c??e.bandPosition)!==null&&f!==void 0?f:.5:void 0})}else if(gu(e)){const x=e.value,h=a?{offset:a}:{};return Object.assign(Object.assign({},C3(t,x)),h)}}return lt(l)&&(l=l()),l&&Object.assign(Object.assign({},l),a?{offset:a}:{})}function C3(t,e){return Tt(["x","x2"],t)&&e==="width"?{field:{group:"width"}}:Tt(["y","y2"],t)&&e==="height"?{field:{group:"height"}}:on(e)}function Nd(t){return t&&t!=="number"&&t!=="time"}function Xoe(t,e,n){return`${t}(${e}${n?`, ${sn(n)}`:""})`}const ZKe=" – ";function a7({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s}){var o,u;if(Nd(n))return l7({fieldOrDatumDef:t,format:e,formatType:n,expr:r,config:s});const a=Koe(t,r,i);if(j2(t)){const l=tJe(a,Le(t)?(o=ji(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0,e,s.timeFormat,Dd(t)&&((u=t.scale)===null||u===void 0?void 0:u.type)===ys.UTC);return l?{signal:l}:void 0}if(e=eue(d7(t),e,s),Le(t)&&Kt(t.bin)){const l=$e(t,{expr:r,binSuffix:"end"});return{signal:RN(a,l,e,n,s)}}else return e||d7(t)==="quantitative"?{signal:`${tue(a,e)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function Koe(t,e,n){return Le(t)?n?`${$e(t,{expr:e,suffix:"end"})}-${$e(t,{expr:e,suffix:"start"})}`:$e(t,{expr:e}):JKe(t)}function l7({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s,field:o}){if(o??(o=Koe(t,r,i)),Le(t)&&Kt(t.bin)){const u=$e(t,{expr:r,binSuffix:"end"});return{signal:RN(o,u,e,n,s)}}return{signal:Xoe(n,o,e)}}function Joe(t,e,n,r,i,s){var o;if(!Nd(r)){if(j2(t)){const u=Le(t)?(o=ji(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0;return eJe(n,u,i,s)}return eue(e,n,i)}}function Zoe(t,e,n){if(t&&(Ye(t)||t==="number"||t==="time"))return t;if(j2(e)&&n!=="time"&&n!=="utc")return"time"}function eue(t,e,n){if(je(e))return e;if(t===Rd)return n.numberFormat}function eJe(t,e,n,r){return t||(e?{signal:woe(e)}:r?void 0:n.timeFormat)}function tue(t,e){return`format(${t}, "${e||""}")`}function nue(t,e,n,r){var i;return Nd(n)?Xoe(n,t,e):tue(t,(i=je(e)?e:void 0)!==null&&i!==void 0?i:r.numberFormat)}function RN(t,e,n,r,i){const s=nue(t,n,r,i),o=nue(e,n,r,i);return`${K8(t,!1)} ? "null" : ${s} + "${ZKe}" + ${o}`}function tJe(t,e,n,r,i){return!e||n?(n=je(n)?n:r,`${i?"utc":"time"}Format(${t}, '${n}')`):pKe(e,t,i)}const ON="min",nJe={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function rue(t){return t in nJe}function iue(t){return!!t&&!!t.encoding}function La(t){return!!t&&(t.op==="count"||!!t.field)}function sue(t){return!!t&&_e(t)}function b3(t){return"row"in t||"column"in t}function c7(t){return!!t&&"header"in t}function NN(t){return"facet"in t}var f7=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function rJe(t){return t.param}function iJe(t){return t&&!je(t)&&"repeat"in t}function oue(t){const{field:e,timeUnit:n,bin:r,aggregate:i}=t;return Object.assign(Object.assign(Object.assign(Object.assign({},n?{timeUnit:n}:{}),r?{bin:r}:{}),i?{aggregate:i}:{}),{field:e})}function x7(t){return"sort"in t}function uue({fieldDef:t,fieldDef2:e,markDef:n,config:r}){if(it(t)&&t.bandPosition!==void 0)return t.bandPosition;if(Le(t)){const{timeUnit:i,bin:s}=t;if(i&&!e)return Goe(n.type)?0:bd("timeUnitBandPosition",n,r);if(Kt(s))return .5}}function aue({channel:t,fieldDef:e,fieldDef2:n,markDef:r,config:i,scaleType:s,useVlSizeChannel:o}){var u,a,l;const c=gs(t),f=kt(o?"size":c,r,i,{vgChannel:c});if(f!==void 0)return f;if(Le(e)){const{timeUnit:x,bin:h}=e;if(x&&!n)return{band:bd("timeUnitBandSize",r,i)};if(Kt(h)&&!Cr(s))return{band:1}}if(Goe(r.type))return s?Cr(s)?((u=i[r.type])===null||u===void 0?void 0:u.discreteBandSize)||{band:1}:(a=i[r.type])===null||a===void 0?void 0:a.continuousBandSize:(l=i[r.type])===null||l===void 0?void 0:l.discreteBandSize}function lue(t,e,n,r){return Kt(t.bin)||t.timeUnit&&Ro(t)&&t.type==="temporal"?uue({fieldDef:t,fieldDef2:e,markDef:n,config:r})!==void 0:!1}function DN(t){return t&&"condition"in t}function FN(t){const e=t&&t.condition;return!!e&&!_e(e)&&Le(e)}function T3(t){const e=t&&t.condition;return!!e&&!_e(e)&&it(e)}function sJe(t){const e=t&&t.condition;return!!e&&(_e(e)||gu(e))}function Le(t){return t&&(!!t.field||t.aggregate==="count")}function d7(t){return t&&t.type}function Ia(t){return t&&"datum"in t}function $a(t){return Ro(t)&&!wN(t)||h7(t)}function h7(t){return Ia(t)&&nn(t.datum)}function it(t){return Le(t)||Ia(t)}function Ro(t){return t&&("field"in t||t.aggregate==="count")&&"type"in t}function gu(t){return t&&"value"in t&&"value"in t}function Dd(t){return t&&("scale"in t||"sort"in t)}function p7(t){return t&&("axis"in t||"stack"in t||"impute"in t)}function cue(t){return t&&"legend"in t}function fue(t){return t&&("format"in t||"formatType"in t)}function oJe(t){return Co(t,["legend","axis","header","scale"])}function uJe(t){return"op"in t}function $e(t,e={}){var n,r,i;let s=t.field;const o=e.prefix;let u=e.suffix,a="";if(lJe(t))s=mYe("count");else{let l;if(!e.nofn)if(uJe(t))l=t.op;else{const{bin:c,aggregate:f,timeUnit:x}=t;Kt(c)?(l=eoe(c),u=((n=e.binSuffix)!==null&&n!==void 0?n:"")+((r=e.suffix)!==null&&r!==void 0?r:"")):f?Pc(f)?(a=`["${s}"]`,s=`argmax_${f.argmax}`):t0(f)?(a=`["${s}"]`,s=`argmin_${f.argmin}`):l=String(f):x&&(l=gKe(x),u=(!["range","mid"].includes(e.binSuffix)&&e.binSuffix||"")+((i=e.suffix)!==null&&i!==void 0?i:""))}l&&(s=s?`${l}_${s}`:l)}return u&&(s=`${s}_${u}`),o&&(s=`${o}_${s}`),e.forAs?Use(s):e.expr?dYe(s,e.expr)+a:fu(s)+a}function wN(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return Le(t)&&!!t.bin;case"temporal":return!1}throw new Error(Aoe(t.type))}function aJe(t){var e;return Dd(t)&&B2((e=t.scale)===null||e===void 0?void 0:e.type)}function lJe(t){return t.aggregate==="count"}function cJe(t,e){var n;const{field:r,bin:i,timeUnit:s,aggregate:o}=t;if(o==="count")return e.countTitle;if(Kt(i))return`${r} (binned)`;if(s){const u=(n=ji(s))===null||n===void 0?void 0:n.unit;if(u)return`${r} (${H8(u).join("-")})`}else if(o)return Pc(o)?`${r} for max ${o.argmax}`:t0(o)?`${r} for min ${o.argmin}`:`${aN(o)} of ${r}`;return r}function fJe(t){const{aggregate:e,bin:n,timeUnit:r,field:i}=t;if(Pc(e))return`${i} for argmax(${e.argmax})`;if(t0(e))return`${i} for argmin(${e.argmin})`;const s=ji(r),o=e||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||Kt(n)&&"bin";return o?`${o.toUpperCase()}(${i})`:i}const xue=(t,e)=>{switch(e.fieldTitle){case"plain":return t.field;case"functional":return fJe(t);default:return cJe(t,e)}};let due=xue;function hue(t){due=t}function xJe(){hue(xue)}function P2(t,e,{allowDisabling:n,includeDefault:r=!0}){var i,s;const o=(i=g7(t))===null||i===void 0?void 0:i.title;if(!Le(t))return o??t.title;const u=t,a=r?m7(u,e):void 0;return n?ir(o,u.title,a):(s=o??u.title)!==null&&s!==void 0?s:a}function g7(t){if(p7(t)&&t.axis)return t.axis;if(cue(t)&&t.legend)return t.legend;if(c7(t)&&t.header)return t.header}function m7(t,e){return due(t,e)}function LN(t){var e;if(fue(t)){const{format:n,formatType:r}=t;return{format:n,formatType:r}}else{const n=(e=g7(t))!==null&&e!==void 0?e:{},{format:r,formatType:i}=n;return{format:r,formatType:i}}}function dJe(t,e){var n;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(x7(t)&&_e(t.sort))return"ordinal";const{aggregate:r,bin:i,timeUnit:s}=t;if(s)return"temporal";if(i||r&&!Pc(r)&&!t0(r))return"quantitative";if(Dd(t)&&(!((n=t.scale)===null||n===void 0)&&n.type))switch(e7[t.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function Ba(t){if(Le(t))return t;if(FN(t))return t.condition}function sr(t){if(it(t))return t;if(T3(t))return t.condition}function pue(t,e,n,r={}){if(je(t)||nn(t)||Fp(t)){const i=je(t)?"string":nn(t)?"number":"boolean";return Te(mXe(e,i,t)),{value:t}}return it(t)?IN(t,e,n,r):T3(t)?Object.assign(Object.assign({},t),{condition:IN(t.condition,e,n,r)}):t}function IN(t,e,n,r){if(fue(t)){const{format:i,formatType:s}=t,o=f7(t,["format","formatType"]);if(Nd(s)&&!n.customFormatTypes)return Te(Eoe(e)),IN(o,e,n,r)}else{const i=p7(t)?"axis":cue(t)?"legend":c7(t)?"header":null;if(i&&t[i]){const s=t[i],{format:o,formatType:u}=s,a=f7(s,["format","formatType"]);if(Nd(u)&&!n.customFormatTypes)return Te(Eoe(e)),IN(Object.assign(Object.assign({},t),{[i]:a}),e,n,r)}}return Le(t)?y7(t,e,r):hJe(t)}function hJe(t){let e=t.type;if(e)return t;const{datum:n}=t;return e=nn(n)?"quantitative":je(n)?"nominal":Td(n)?"temporal":void 0,Object.assign(Object.assign({},t),{type:e})}function y7(t,e,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:i,bin:s,field:o}=t,u=Object.assign({},t);if(!n&&r&&!L8(r)&&!Pc(r)&&!t0(r)&&(Te(EXe(r)),delete u.aggregate),i&&(u.timeUnit=ji(i)),o&&(u.field=`${o}`),Kt(s)&&(u.bin=$N(s,e)),Mi(s)&&!kr(e)&&Te(JXe(e)),Ro(u)){const{type:a}=u,l=vKe(a);a!==l&&(u.type=l),a!=="quantitative"&&Zse(r)&&(Te(yXe(a,r)),u.type="quantitative")}else if(!Gse(e)){const a=dJe(u,e);u.type=a}if(Ro(u)){const{compatible:a,warning:l}=pJe(u,e)||{};a===!1&&Te(l)}if(x7(u)&&je(u.sort)){const{sort:a}=u;if(rue(a))return Object.assign(Object.assign({},u),{sort:{encoding:a}});const l=a.substr(1);if(a.charAt(0)==="-"&&rue(l))return Object.assign(Object.assign({},u),{sort:{encoding:l,order:"descending"}})}if(c7(u)){const{header:a}=u;if(a){const{orient:l}=a,c=f7(a,["orient"]);if(l)return Object.assign(Object.assign({},u),{header:Object.assign(Object.assign({},c),{labelOrient:a.labelOrient||l,titleOrient:a.titleOrient||l})})}}return u}function $N(t,e){return Fp(t)?{maxbins:toe(e)}:t==="binned"?{binned:!0}:!t.maxbins&&!t.step?Object.assign(Object.assign({},t),{maxbins:toe(e)}):t}const M2={compatible:!0};function pJe(t,e){const n=t.type;if(n==="geojson"&&e!=="shape")return{compatible:!1,warning:`Channel ${e} should not be used with a geojson data.`};switch(e){case Vl:case Yl:case cN:return wN(t)?M2:{compatible:!1,warning:CXe(e)};case yn:case _r:case Fc:case D2:case hs:case Oa:case Na:case y3:case A3:case fN:case vd:case xN:case dN:case Sd:case du:case ba:case hN:return M2;case Ra:case bo:case Ta:case hu:return n!==Rd?{compatible:!1,warning:`Channel ${e} should be used with a quantitative field only, not ${t.type} field.`}:M2;case Zl:case wc:case Lc:case Ic:case Jl:case Kl:case Xl:case xu:case Ca:return n==="nominal"&&!t.sort?{compatible:!1,warning:`Channel ${e} should not be used with an unsorted discrete field.`}:M2;case ps:case $c:return!wN(t)&&!aJe(t)?{compatible:!1,warning:bXe(e)}:M2;case E3:return t.type==="nominal"&&!("sort"in t)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:M2}}function j2(t){const{formatType:e}=LN(t);return e==="time"||!e&&gJe(t)}function gJe(t){return t&&(t.type==="temporal"||Le(t)&&!!t.timeUnit)}function BN(t,{timeUnit:e,type:n,wrapTime:r,undefinedIfExprNotRequired:i}){var s;const o=e&&((s=ji(e))===null||s===void 0?void 0:s.unit);let u=o||n==="temporal",a;return S3(t)?a=t.expr:Ye(t)?a=t.signal:Td(t)?(u=!0,a=v3(t)):(je(t)||nn(t))&&u&&(a=`datetime(${sn(t)})`,fKe(o)&&(nn(t)&&t<1e4||je(t)&&isNaN(Date.parse(t)))&&(a=v3({[o]:t}))),a?r&&u?`time(${a})`:a:i?void 0:sn(t)}function gue(t,e){const{type:n}=t;return e.map(r=>{const i=BN(r,{timeUnit:Le(t)?t.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function R3(t,e){return Kt(t.bin)?kc(e)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const mue={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 O3(t){return t&&t.condition}const yue=["domain","grid","labels","ticks","title"],mJe={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"},Eue={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},yJe=Object.assign(Object.assign({},Eue),{style:1,labelExpr:1,encoding:1});function Aue(t){return!!yJe[t]}const Sue=be({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 i0(t){return"mark"in t}class kN{constructor(e,n){this.name=e,this.run=n}hasMatchingType(e){return i0(e)?YKe(e.mark)===this.name:!1}}var EJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Fd(t,e){const n=t&&t[e];return n?_e(n)?O2(n,r=>!!r.field):Le(n)||FN(n):!1}function vue(t,e){const n=t&&t[e];return n?_e(n)?O2(n,r=>!!r.field):Le(n)||Ia(n)||T3(n):!1}function E7(t,e){if(kr(e)){const n=t[e];if((Le(n)||Ia(n))&&$oe(n.type)){const r=Wse(e);return vue(t,r)}}return!1}function A7(t){return O2(_Ye,e=>{if(Fd(t,e)){const n=t[e];if(_e(n))return O2(n,r=>!!r.aggregate);{const r=Ba(n);return r&&!!r.aggregate}}return!1})}function _ue(t,e){const n=[],r=[],i=[],s=[],o={};return S7(t,(u,a)=>{if(Le(u)){const{field:l,aggregate:c,bin:f,timeUnit:x}=u,h=EJe(u,["field","aggregate","bin","timeUnit"]);if(c||x||f){const p=g7(u),m=p==null?void 0:p.title;let g=$e(u,{forAs:!0});const y=Object.assign(Object.assign(Object.assign({},m?[]:{title:P2(u,e,{allowDisabling:!0})}),h),{field:g});if(c){let E;if(Pc(c)?(E="argmax",g=$e({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):t0(c)?(E="argmin",g=$e({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${g}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(E=c),E){const A={op:E,as:g};l&&(A.field=l),s.push(A)}}else if(n.push(g),Ro(u)&&Kt(f)){if(r.push({bin:f,field:l,as:g}),n.push($e(u,{binSuffix:"end"})),R3(u,a)&&n.push($e(u,{binSuffix:"range"})),kr(a)){const E={field:`${g}_end`};o[`${a}2`]=E}y.bin="binned",Gse(a)||(y.type=Rd)}else if(x){i.push({timeUnit:x,field:l,as:g});const E=Ro(u)&&u.type!==I2&&"time";E&&(a===y3||a===vd?y.formatType=E:LYe(a)?y.legend=Object.assign({formatType:E},y.legend):kr(a)&&(y.axis=Object.assign({formatType:E},y.axis)))}o[a]=y}else n.push(l),o[a]=t[a]}else o[a]=t[a]}),{bins:r,timeUnits:i,aggregate:s,groupby:n,encoding:o}}function AJe(t,e,n){const r=$Ye(e,n);if(r){if(r==="binned"){const i=t[e===xu?yn:_r];return!!(Le(i)&&Le(t[e])&&Mi(i.bin))}}else return!1;return!0}function SJe(t,e,n,r){const i={};for(const s of be(t))Qse(s)||Te(_Xe(s));for(let s of NYe){if(!t[s])continue;const o=t[s];if(w2(s)){const u=Vse(s),a=i[u];if(Le(a)){if(SKe(a.type)&&Le(o)){Te(pXe(u));continue}}else s=u,Te(gXe(u))}if(s==="angle"&&e==="arc"&&!t.theta&&(Te(hXe),s=du),!AJe(t,s,e)){Te(EN(s,e));continue}if(s===Jl&&e==="line"){const u=Ba(t[s]);if(u!=null&&u.aggregate){Te(SXe);continue}}if(s===hs&&(n?"fill"in t:"stroke"in t)){Te(Soe("encoding",{fill:"fill"in t,stroke:"stroke"in t}));continue}if(s===A3||s===E3&&!_e(o)&&!gu(o)||s===vd&&_e(o))o&&(i[s]=Pe(o).reduce((u,a)=>(Le(a)?u.push(y7(a,s)):Te(P8(a,s)),u),[]));else{if(s===vd&&o===null)i[s]=null;else if(!Le(o)&&!Ia(o)&&!gu(o)&&!DN(o)&&!Ye(o)){Te(P8(o,s));continue}i[s]=pue(o,s,r)}}return i}function PN(t,e){const n={};for(const r of be(t)){const i=pue(t[r],r,e,{compositeMark:!0});n[r]=i}return n}function vJe(t){const e=[];for(const n of be(t))if(Fd(t,n)){const r=t[n],i=Pe(r);for(const s of i)Le(s)?e.push(s):FN(s)&&e.push(s.condition)}return e}function S7(t,e,n){if(t)for(const r of be(t)){const i=t[r];if(_e(i))for(const s of i)e.call(n,s,r);else e.call(n,i,r)}}function _Je(t,e,n,r){return t?be(t).reduce((i,s)=>{const o=t[s];return _e(o)?o.reduce((u,a)=>e.call(r,u,a,s),i):e.call(r,i,o,s)},n):n}function Cue(t,e){return be(e).reduce((n,r)=>{switch(r){case yn:case _r:case xN:case hN:case dN:case xu:case Ca:case Fc:case D2:case du:case Kl:case ba:case Xl:case Ta:case Ra:case hu:case bo:case y3:case ps:case Sd:case vd:return n;case E3:if(t==="line"||t==="trail")return n;case A3:case fN:{const i=e[r];if(_e(i)||Le(i))for(const s of Pe(i))s.aggregate||n.push($e(s,{}));return n}case Jl:if(t==="trail")return n;case hs:case Oa:case Na:case Zl:case wc:case Lc:case $c:case Ic:{const i=Ba(e[r]);return i&&!i.aggregate&&n.push($e(i,{})),n}}},[])}var bue=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function CJe(t){const{tooltip:e}=t,n=bue(t,["tooltip"]);if(!e)return{filteredEncoding:n};let r,i;if(_e(e)){for(const s of e)s.aggregate?(r||(r=[]),r.push(s)):(i||(i=[]),i.push(s));r&&(n.tooltip=r)}else e.aggregate?n.tooltip=e:i=e;return _e(i)&&i.length===1&&(i=i[0]),{customTooltipWithoutAggregatedField:i,filteredEncoding:n}}function v7(t,e,n,r=!0){if("tooltip"in n)return{tooltip:n.tooltip};const i=t.map(({fieldPrefix:o,titlePrefix:u})=>{const a=r?` of ${_7(e)}`:"";return{field:o+e.field,type:e.type,title:Ye(u)?{signal:`${u}"${escape(a)}"`}:u+a}}),s=vJe(n).map(oJe);return{tooltip:[...i,...Wl(s,bt)]}}function _7(t){const{title:e,field:n}=t;return ir(e,n)}function C7(t,e,n,r,i){const{scale:s,axis:o}=n;return({partName:u,mark:a,positionPrefix:l,endPositionPrefix:c=void 0,extraEncoding:f={}})=>{const x=_7(n);return Tue(t,u,i,{mark:a,encoding:Object.assign(Object.assign(Object.assign({[e]:Object.assign(Object.assign(Object.assign({field:`${l}_${n.field}`,type:n.type},x!==void 0?{title:x}:{}),s!==void 0?{scale:s}:{}),o!==void 0?{axis:o}:{})},je(c)?{[`${e}2`]:{field:`${c}_${n.field}`}}:{}),r),f)})}}function Tue(t,e,n,r){const{clip:i,color:s,opacity:o}=t,u=t.type;return t[e]||t[e]===void 0&&n[e]?[Object.assign(Object.assign({},r),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n[e]),i?{clip:i}:{}),s?{color:s}:{}),o?{opacity:o}:{}),wa(r.mark)?r.mark:{type:r.mark}),{style:`${u}-${e}`}),Fp(t[e])?{}:t[e])})]:[]}function Rue(t,e,n){const{encoding:r}=t,i=e==="vertical"?"y":"x",s=r[i],o=r[`${i}2`],u=r[`${i}Error`],a=r[`${i}Error2`];return{continuousAxisChannelDef:MN(s,n),continuousAxisChannelDef2:MN(o,n),continuousAxisChannelDefError:MN(u,n),continuousAxisChannelDefError2:MN(a,n),continuousAxis:i}}function MN(t,e){if(t!=null&&t.aggregate){const{aggregate:n}=t,r=bue(t,["aggregate"]);return n!==e&&Te(KXe(n,e)),r}else return t}function Oue(t,e){const{mark:n,encoding:r}=t,{x:i,y:s}=r;if(wa(n)&&n.orient)return n.orient;if($a(i)){if($a(s)){const o=Le(i)&&i.aggregate,u=Le(s)&&s.aggregate;if(!o&&u===e)return"vertical";if(!u&&o===e)return"horizontal";if(o===e&&u===e)throw new Error("Both x and y cannot have aggregate");return j2(s)&&!j2(i)?"horizontal":"vertical"}return"horizontal"}else{if($a(s))return"vertical";throw new Error(`Need a valid continuous axis for ${e}s`)}}var jN=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const UN="boxplot",bJe=["box","median","outliers","rule","ticks"],TJe=new kN(UN,Due);function Nue(t){return nn(t)?"tukey":t}function Due(t,{config:e}){var n,r;t=Object.assign(Object.assign({},t),{encoding:PN(t.encoding,e)});const{mark:i,encoding:s,params:o,projection:u}=t,a=jN(t,["mark","encoding","params","projection"]),l=wa(i)?i:{type:i};o&&Te(goe("boxplot"));const c=(n=l.extent)!==null&&n!==void 0?n:e.boxplot.extent,f=kt("size",l,e),x=Nue(c),{bins:h,timeUnits:p,transform:m,continuousAxisChannelDef:g,continuousAxis:y,groupby:E,aggregate:A,encodingWithoutContinuousAxis:S,ticksOrient:v,boxOrient:_,customTooltipWithoutAggregatedField:C}=RJe(t,c,e),{color:b,size:O}=S,R=jN(S,["color","size"]),I=V=>C7(l,y,g,V,e.boxplot),M=I(R),z=I(S),Y=I(Object.assign(Object.assign({},R),O?{size:O}:{})),Q=v7([{fieldPrefix:x==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:x==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],g,S),oe={type:"tick",color:"black",opacity:1,orient:v,invalid:null,aria:!1},de=x==="min-max"?Q:v7([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,S),ae=[...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:de}),...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:de}),...M({partName:"ticks",mark:oe,positionPrefix:"lower_whisker",extraEncoding:de}),...M({partName:"ticks",mark:oe,positionPrefix:"upper_whisker",extraEncoding:de})],ie=[...x!=="tukey"?ae:[],...z({partName:"box",mark:Object.assign(Object.assign({type:"bar"},f?{size:f}:{}),{orient:_,invalid:null,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:Q}),...Y({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},Qe(e.boxplot.median)&&e.boxplot.median.color?{color:e.boxplot.median.color}:{}),f?{size:f}:{}),{orient:v,aria:!1}),positionPrefix:"mid_box",extraEncoding:Q})];if(x==="min-max")return Object.assign(Object.assign({},a),{transform:((r=a.transform)!==null&&r!==void 0?r:[]).concat(m),layer:ie});const le=`datum["lower_box_${g.field}"]`,xe=`datum["upper_box_${g.field}"]`,Ce=`(${xe} - ${le})`,D=`${le} - ${c} * ${Ce}`,k=`${xe} + ${c} * ${Ce}`,j=`datum["${g.field}"]`,W={joinaggregate:Fue(g.field),groupby:E},U={transform:[{filter:`(${D} <= ${j}) && (${j} <= ${k})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${g.field}`},{op:"max",field:g.field,as:`upper_whisker_${g.field}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${g.field}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${g.field}`},...A],groupby:E}],layer:ae},B=jN(R,["tooltip"]),{scale:T,axis:N}=g,$=_7(g),q=Co(N,["title"]),L=Tue(l,"outliers",e.boxplot,{transform:[{filter:`(${j} < ${D}) || (${j} > ${k})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[y]:Object.assign(Object.assign(Object.assign({field:g.field,type:g.type},$!==void 0?{title:$}:{}),T!==void 0?{scale:T}:{}),Wt(q)?{}:{axis:q})},B),b?{color:b}:{}),C?{tooltip:C}:{})})[0];let H;const P=[...h,...p,W];return L?H={transform:P,layer:[L,U]}:(H=U,H.transform.unshift(...P)),Object.assign(Object.assign({},a),{layer:[H,{transform:m,layer:ie}]})}function Fue(t){return[{op:"q1",field:t,as:`lower_box_${t}`},{op:"q3",field:t,as:`upper_box_${t}`}]}function RJe(t,e,n){const r=Oue(t,UN),{continuousAxisChannelDef:i,continuousAxis:s}=Rue(t,r,UN),o=i.field,u=Nue(e),a=[...Fue(o),{op:"median",field:o,as:`mid_box_${o}`},{op:"min",field:o,as:(u==="min-max"?"lower_whisker_":"min_")+o},{op:"max",field:o,as:(u==="min-max"?"upper_whisker_":"max_")+o}],l=u==="min-max"||u==="tukey"?[]:[{calculate:`datum["upper_box_${o}"] - datum["lower_box_${o}"]`,as:`iqr_${o}`},{calculate:`min(datum["upper_box_${o}"] + datum["iqr_${o}"] * ${e}, datum["max_${o}"])`,as:`upper_whisker_${o}`},{calculate:`max(datum["lower_box_${o}"] - datum["iqr_${o}"] * ${e}, datum["min_${o}"])`,as:`lower_whisker_${o}`}],c=t.encoding,f=s;c[f];const x=jN(c,[typeof f=="symbol"?f:f+""]),{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=CJe(x),{bins:m,timeUnits:g,aggregate:y,groupby:E,encoding:A}=_ue(p,n),S=r==="vertical"?"horizontal":"vertical",v=r,_=[...m,...g,{aggregate:[...y,...a],groupby:E},...l];return{bins:m,timeUnits:g,transform:_,groupby:E,aggregate:y,continuousAxisChannelDef:i,continuousAxis:s,encodingWithoutContinuousAxis:A,ticksOrient:S,boxOrient:v,customTooltipWithoutAggregatedField:h}}var wue=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const b7="errorbar",OJe=["ticks","rule"],NJe=new kN(b7,Lue);function Lue(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:PN(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,ticksOrient:o,markDef:u,outerSpec:a,tooltipEncoding:l}=Iue(t,b7,e);delete s.size;const c=C7(u,i,r,s,e.errorbar),f=u.thickness,x=u.size,h=Object.assign(Object.assign({type:"tick",orient:o,aria:!1},f!==void 0?{thickness:f}:{}),x!==void 0?{size:x}:{}),p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:Object.assign({type:"rule",ariaRoleDescription:"errorbar"},f!==void 0?{size:f}:{}),positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return Object.assign(Object.assign(Object.assign({},a),{transform:n}),p.length>1?{layer:p}:Object.assign({},p[0]))}function DJe(t,e){const{encoding:n}=t;if(FJe(n))return{orient:Oue(t,e),inputType:"raw"};const r=wJe(n),i=LJe(n),s=n.x,o=n.y;if(r){if(i)throw new Error(`${e} cannot be both type aggregated-upper-lower and aggregated-error`);const u=n.x2,a=n.y2;if(it(u)&&it(a))throw new Error(`${e} cannot have both x2 and y2`);if(it(u)){if($a(s))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${e}`)}else if(it(a)){if($a(o))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${e}`)}throw new Error("No ranged axis")}else{const u=n.xError,a=n.xError2,l=n.yError,c=n.yError2;if(it(a)&&!it(u))throw new Error(`${e} cannot have xError2 without xError`);if(it(c)&&!it(l))throw new Error(`${e} cannot have yError2 without yError`);if(it(u)&&it(l))throw new Error(`${e} cannot have both xError and yError with both are quantiative`);if(it(u)){if($a(s))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(it(l)){if($a(o))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 FJe(t){return(it(t.x)||it(t.y))&&!it(t.x2)&&!it(t.y2)&&!it(t.xError)&&!it(t.xError2)&&!it(t.yError)&&!it(t.yError2)}function wJe(t){return it(t.x2)||it(t.y2)}function LJe(t){return it(t.xError)||it(t.xError2)||it(t.yError)||it(t.yError2)}function Iue(t,e,n){var r;const{mark:i,encoding:s,params:o,projection:u}=t,a=wue(t,["mark","encoding","params","projection"]),l=wa(i)?i:{type:i};o&&Te(goe(e));const{orient:c,inputType:f}=DJe(t,e),{continuousAxisChannelDef:x,continuousAxisChannelDef2:h,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:m,continuousAxis:g}=Rue(t,c,e),{errorBarSpecificAggregate:y,postAggregateCalculates:E,tooltipSummary:A,tooltipTitleWithFieldName:S}=IJe(l,x,h,p,m,f,e,n),v=s,_=g;v[_];const C=g==="x"?"x2":"y2";v[C];const b=g==="x"?"xError":"yError";v[b];const O=g==="x"?"xError2":"yError2";v[O];const R=wue(v,[typeof _=="symbol"?_:_+"",typeof C=="symbol"?C:C+"",typeof b=="symbol"?b:b+"",typeof O=="symbol"?O:O+""]),{bins:I,timeUnits:M,aggregate:z,groupby:Y,encoding:Q}=_ue(R,n),oe=[...z,...y],de=f!=="raw"?[]:Y,ae=v7(A,x,Q,S);return{transform:[...(r=a.transform)!==null&&r!==void 0?r:[],...I,...M,...oe.length===0?[]:[{aggregate:oe,groupby:de}],...E],groupby:de,continuousAxisChannelDef:x,continuousAxis:g,encodingWithoutContinuousAxis:Q,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:l,outerSpec:a,tooltipEncoding:ae}}function IJe(t,e,n,r,i,s,o,u){let a=[],l=[];const c=e.field;let f,x=!1;if(s==="raw"){const h=t.center?t.center:t.extent?t.extent==="iqr"?"median":"mean":u.errorbar.center,p=t.extent?t.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(p==="iqr")&&Te(XXe(h,p,o)),p==="stderr"||p==="stdev")a=[{op:p,field:c,as:`extent_${c}`},{op:h,field:c,as:`center_${c}`}],l=[{calculate:`datum["center_${c}"] + datum["extent_${c}"]`,as:`upper_${c}`},{calculate:`datum["center_${c}"] - datum["extent_${c}"]`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:aN(h)},{fieldPrefix:"upper_",titlePrefix:$ue(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:$ue(h,p,"-")}],x=!0;else{let m,g,y;p==="ci"?(m="mean",g="ci0",y="ci1"):(m="median",g="q1",y="q3"),a=[{op:g,field:c,as:`lower_${c}`},{op:y,field:c,as:`upper_${c}`},{op:m,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:P2({field:c,aggregate:y,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:P2({field:c,aggregate:g,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:P2({field:c,aggregate:m,type:"quantitative"},u,{allowDisabling:!1})}]}}else{(t.center||t.extent)&&Te(YXe(t.center,t.extent)),s==="aggregated-upper-lower"?(f=[],l=[{calculate:`datum["${n.field}"]`,as:`upper_${c}`},{calculate:`datum["${c}"]`,as:`lower_${c}`}]):s==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:c}],l=[{calculate:`datum["${c}"] + datum["${r.field}"]`,as:`upper_${c}`}],i?l.push({calculate:`datum["${c}"] + datum["${i.field}"]`,as:`lower_${c}`}):l.push({calculate:`datum["${c}"] - datum["${r.field}"]`,as:`lower_${c}`}));for(const h of l)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:N2(N2(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:a,tooltipSummary:f,tooltipTitleWithFieldName:x}}function $ue(t,e,n){return`${aN(t)} ${n} ${e}`}const T7="errorband",$Je=["band","borders"],BJe=new kN(T7,Bue);function Bue(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:PN(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,markDef:o,outerSpec:u,tooltipEncoding:a}=Iue(t,T7,e),l=o,c=C7(l,i,r,s,e.errorband),f=t.encoding.x!==void 0&&t.encoding.y!==void 0;let x={type:f?"area":"rect"},h={type:f?"line":"rule"};const p=Object.assign(Object.assign({},l.interpolate?{interpolate:l.interpolate}:{}),l.tension&&l.interpolate?{tension:l.tension}:{});return f?(x=Object.assign(Object.assign(Object.assign({},x),p),{ariaRoleDescription:"errorband"}),h=Object.assign(Object.assign(Object.assign({},h),p),{aria:!1})):l.interpolate?Te(boe("interpolate")):l.tension&&Te(boe("tension")),Object.assign(Object.assign({},u),{transform:n,layer:[...c({partName:"band",mark:x,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:a})]})}const kue={};function R7(t,e,n){const r=new kN(t,e);kue[t]={normalizer:r,parts:n}}function kJe(){return be(kue)}R7(UN,Due,bJe),R7(b7,Lue,OJe),R7(T7,Bue,$Je);const PJe=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Pue={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"},Mue={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"},MJe=be(Pue),jJe=be(Mue),jue=be({header:1,headerRow:1,headerColumn:1,headerFacet:1}),Uue=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],UJe={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},qJe={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},N3="_vgsid_",HJe={point:{on:"click",fields:[N3],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 O7(t){return!!t&&(t==="legend"||!!t.legend)}function N7(t){return O7(t)&&Qe(t)}function D7(t){return!!t.select}var zJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function que(t){const e=[];for(const n of t||[]){if(D7(n))continue;const{expr:r,bind:i}=n,s=zJe(n,["expr","bind"]);if(i&&r){const o=Object.assign(Object.assign({},s),{bind:i,init:r});e.push(o)}else{const o=Object.assign(Object.assign(Object.assign({},s),r?{update:r}:{}),i?{bind:i}:{});e.push(o)}}return e}function QJe(t){return qN(t)||w7(t)||F7(t)}function F7(t){return"concat"in t}function qN(t){return"vconcat"in t}function w7(t){return"hconcat"in t}function Hue({step:t,offsetIsDiscrete:e}){var n;return e?(n=t.for)!==null&&n!==void 0?n:"offset":"position"}function ka(t){return Qe(t)&&t.step!==void 0}function zue(t){return t.view||t.width||t.height}const Que=20,GJe=be({align:1,bounds:1,center:1,columns:1,spacing:1});function WJe(t,e,n){var r,i;const s=n[e],o={},{spacing:u,columns:a}=s;u!==void 0&&(o.spacing=u),a!==void 0&&(NN(t)&&!b3(t.facet)||F7(t))&&(o.columns=a),qN(t)&&(o.columns=1);for(const l of GJe)if(t[l]!==void 0)if(l==="spacing"){const c=t[l];o[l]=nn(c)?c:{row:(r=c.row)!==null&&r!==void 0?r:u,column:(i=c.column)!==null&&i!==void 0?i:u}}else o[l]=t[l];return o}var VJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function L7(t,e){var n;return(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"continuousWidth":"continuousHeight"]}function HN(t,e){const n=zN(t,e);return ka(n)?n.step:Gue}function zN(t,e){var n;const r=(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"discreteWidth":"discreteHeight"];return ir(r,{step:t.step})}const Gue=20,YJe={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:Gue},mark:zKe,arc:{},area:{},bar:GKe,circle:{},geoshape:{},image:{},line:{},point:{},rect:WKe,rule:{color:"black"},square:{},text:{color:"black"},tick:VKe,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:OKe,projection:{},legend:UJe,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:HJe,style:{},title:{},facet:{spacing:Que},concat:{spacing:Que}},s0=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Wue={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},Vue={blue:s0[0],orange:s0[1],red:s0[2],teal:s0[3],green:s0[4],yellow:s0[5],purple:s0[6],pink:s0[7],brown:s0[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 XJe(t={}){return{signals:[{name:"color",value:Qe(t)?Object.assign(Object.assign({},Vue),t):Vue}],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"}]}}}function KJe(t){return{signals:[{name:"fontSize",value:Qe(t)?Object.assign(Object.assign({},Wue),t):Wue}],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"}}}}}function JJe(t){return{text:{font:t},style:{"guide-label":{font:t},"guide-title":{font:t},"group-title":{font:t},"group-subtitle":{font:t}}}}function Yue(t){const e=be(t||{}),n={};for(const r of e){const i=t[r];n[r]=O3(i)?roe(i):Hs(i)}return n}function ZJe(t){const e=be(t),n={};for(const r of e)n[r]=Yue(t[r]);return n}const eZe=[...Voe,...Sue,...jue,"background","padding","legend","lineBreak","scale","style","title","view"];function Xue(t={}){const{color:e,font:n,fontSize:r,selection:i}=t,s=VJe(t,["color","font","fontSize","selection"]),o=p5({},ot(YJe),n?JJe(n):{},e?XJe(e):{},r?KJe(r):{},s||{});i&&Ub(o,"selection",i,!0);const u=Co(o,eZe);for(const a of["background","lineBreak","padding"])o[a]&&(u[a]=Hs(o[a]));for(const a of Voe)o[a]&&(u[a]=ms(o[a]));for(const a of Sue)o[a]&&(u[a]=Yue(o[a]));for(const a of jue)o[a]&&(u[a]=ms(o[a]));return o.legend&&(u.legend=ms(o.legend)),o.scale&&(u.scale=ms(o.scale)),o.style&&(u.style=ZJe(o.style)),o.title&&(u.title=ms(o.title)),o.view&&(u.view=ms(o.view)),u}const tZe=new Set(["view",...MKe]),nZe=["color","fontSize","background","padding","facet","concat","numberFormat","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],rZe=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},HKe);function iZe(t){t=ot(t);for(const e of nZe)delete t[e];if(t.axis)for(const e in t.axis)O3(t.axis[e])&&delete t.axis[e];if(t.legend)for(const e of PJe)delete t.legend[e];if(t.mark){for(const e of Woe)delete t.mark[e];t.mark.tooltip&&Qe(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(que(t.params)),delete t.params);for(const e of tZe){for(const r of Woe)delete t[e][r];const n=rZe[e];if(n)for(const r of n)delete t[e][r];oZe(t,e)}for(const e of kJe())delete t[e];sZe(t);for(const e in t)Qe(t[e])&&Wt(t[e])&&delete t[e];return Wt(t)?void 0:t}function sZe(t){const{titleMarkConfig:e,subtitleMarkConfig:n,subtitle:r}=noe(t.title);Wt(e)||(t.style["group-title"]=Object.assign(Object.assign({},t.style["group-title"]),e)),Wt(n)||(t.style["group-subtitle"]=Object.assign(Object.assign({},t.style["group-subtitle"]),n)),Wt(r)?delete t.title:t.title=r}function oZe(t,e,n,r){const i=r?t[e][r]:t[e];e==="view"&&(n="cell");const s=Object.assign(Object.assign({},i),t.style[n??e]);Wt(s)||(t.style[n??e]=s),r||delete t[e]}function QN(t){return"layer"in t}function uZe(t){return"repeat"in t}function aZe(t){return!_e(t.repeat)&&t.repeat.layer}var lZe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class I7{map(e,n){return NN(e)?this.mapFacet(e,n):uZe(e)?this.mapRepeat(e,n):w7(e)?this.mapHConcat(e,n):qN(e)?this.mapVConcat(e,n):F7(e)?this.mapConcat(e,n):this.mapLayerOrUnit(e,n)}mapLayerOrUnit(e,n){if(QN(e))return this.mapLayer(e,n);if(i0(e))return this.mapUnit(e,n);throw new Error(B8(e))}mapLayer(e,n){return Object.assign(Object.assign({},e),{layer:e.layer.map(r=>this.mapLayerOrUnit(r,n))})}mapHConcat(e,n){return Object.assign(Object.assign({},e),{hconcat:e.hconcat.map(r=>this.map(r,n))})}mapVConcat(e,n){return Object.assign(Object.assign({},e),{vconcat:e.vconcat.map(r=>this.map(r,n))})}mapConcat(e,n){const{concat:r}=e,i=lZe(e,["concat"]);return Object.assign(Object.assign({},i),{concat:r.map(s=>this.map(s,n))})}mapFacet(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}mapRepeat(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}}const cZe={zero:1,center:1,normalize:1};function fZe(t){return t in cZe}const xZe=new Set([Hoe,vN,SN,bN,CN,r7,i7,_N,zoe,n7]),dZe=new Set([vN,SN,Hoe]);function U2(t){return Le(t)&&d7(t)==="quantitative"&&!t.bin}function Kue(t,e){var n,r;const i=e==="x"?"y":"radius",s=t[e],o=t[i];if(Le(s)&&Le(o))if(U2(s)&&U2(o)){if(s.stack)return e;if(o.stack)return i;const u=Le(s)&&!!s.aggregate,a=Le(o)&&!!o.aggregate;if(u!==a)return u?e:i;{const l=(n=s.scale)===null||n===void 0?void 0:n.type,c=(r=o.scale)===null||r===void 0?void 0:r.type;if(l&&l!=="linear")return i;if(c&&c!=="linear")return e}}else{if(U2(s))return e;if(U2(o))return i}else{if(U2(s))return e;if(U2(o))return i}}function hZe(t){switch(t){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function Jue(t,e,n={}){var r,i;const s=wa(t)?t.type:t;if(!xZe.has(s))return null;const o=Kue(e,"x")||Kue(e,"theta");if(!o)return null;const u=e[o],a=Le(u)?$e(u,{}):void 0,l=hZe(o),c=[],f=new Set;if(e[l]){const p=e[l],m=Le(p)?$e(p,{}):void 0;m&&m!==a&&(c.push(l),f.add(m));const g=l==="x"?"xOffset":"yOffset",y=e[g],E=Le(y)?$e(y,{}):void 0;E&&E!==a&&(c.push(g),f.add(E))}const x=DYe.reduce((p,m)=>{if(m!=="tooltip"&&Fd(e,m)){const g=e[m];for(const y of Pe(g)){const E=Ba(y);if(E.aggregate)continue;const A=$e(E,{});(!A||!f.has(A))&&p.push({channel:m,fieldDef:E})}}return p},[]);let h;if(u.stack!==void 0?Fp(u.stack)?h=u.stack?"zero":null:h=u.stack:dZe.has(s)&&(h="zero"),!h||!fZe(h)||A7(e)&&x.length===0)return null;if(!((r=u==null?void 0:u.scale)===null||r===void 0)&&r.type&&((i=u==null?void 0:u.scale)===null||i===void 0?void 0:i.type)!==ys.LINEAR){if(n.disallowNonLinearStack)return null;Te(GXe(u.scale.type))}return it(e[e0(o)])?(u.stack!==void 0&&Te(QXe(o)),null):(Le(u)&&u.aggregate&&!qYe.has(u.aggregate)&&Te(WXe(u.aggregate)),{groupbyChannels:c,groupbyFields:f,fieldChannel:o,impute:u.impute===null?!1:Uc(s),stackBy:x,offset:h})}var Zue=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function pZe(t){const e=Zue(t,["point","line"]);return be(e).length>1?e:e.type}function gZe(t){for(const e of["line","area","rule","trail"])t[e]&&(t=Object.assign(Object.assign({},t),{[e]:Co(t[e],["point","line"])}));return t}function $7(t,e={},n){return t.point==="transparent"?{opacity:0}:t.point?Qe(t.point)?t.point:{}:t.point!==void 0?null:e.point||n.shape?Qe(e.point)?e.point:{}:void 0}function eae(t,e={}){return t.line?t.line===!0?{}:t.line:t.line!==void 0?null:e.line?e.line===!0?{}:e.line:void 0}class mZe{constructor(){this.name="path-overlay"}hasMatchingType(e,n){if(i0(e)){const{mark:r,encoding:i}=e,s=wa(r)?r:{type:r};switch(s.type){case"line":case"rule":case"trail":return!!$7(s,n[s.type],i);case"area":return!!$7(s,n[s.type],i)||!!eae(s,n[s.type])}}return!1}run(e,n,r){const{config:i}=n,{params:s,projection:o,mark:u,encoding:a}=e,l=Zue(e,["params","projection","mark","encoding"]),c=PN(a,i),f=wa(u)?u:{type:u},x=$7(f,i[f.type],c),h=f.type==="area"&&eae(f,i[f.type]),p=[Object.assign(Object.assign({},s?{params:s}:{}),{mark:pZe(Object.assign(Object.assign({},f.type==="area"&&f.opacity===void 0&&f.fillOpacity===void 0?{opacity:.7}:{}),f)),encoding:Co(c,["shape"])})],m=Jue(f,c);let g=c;if(m){const{fieldChannel:y,offset:E}=m;g=Object.assign(Object.assign({},c),{[y]:Object.assign(Object.assign({},c[y]),E?{stack:E}:{})})}return h&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"line"},p3(f,["clip","interpolate","tension","tooltip"])),h),encoding:g})),x&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},p3(f,["clip","tooltip"])),x),encoding:g})),r(Object.assign(Object.assign({},l),{layer:p}),Object.assign(Object.assign({},n),{config:gZe(i)}))}}var yZe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function EZe(t,e){return e?b3(t)?iae(t,e):tae(t,e):t}function B7(t,e){return e?iae(t,e):t}function k7(t,e,n){const r=e[t];if(iJe(r)){if(r.repeat in n)return Object.assign(Object.assign({},e),{[t]:n[r.repeat]});Te(uXe(r.repeat));return}return e}function tae(t,e){if(t=k7("field",t,e),t!==void 0){if(t===null)return null;if(x7(t)&&La(t.sort)){const n=k7("field",t.sort,e);t=Object.assign(Object.assign({},t),n?{sort:n}:{})}return t}}function nae(t,e){if(Le(t))return tae(t,e);{const n=k7("datum",t,e);return n!==t&&!n.type&&(n.type="nominal"),n}}function rae(t,e){if(it(t)){const n=nae(t,e);if(n)return n;if(DN(t))return{condition:t.condition}}else{if(T3(t)){const n=nae(t.condition,e);return n?Object.assign(Object.assign({},t),{condition:n}):yZe(t,["condition"])}return t}}function iae(t,e){const n={};for(const r in t)if(Je(t,r)){const i=t[r];if(_e(i))n[r]=i.map(s=>rae(s,e)).filter(s=>s);else{const s=rae(i,e);s!==void 0&&(n[r]=s)}}return n}class AZe{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(i0(e)){const{encoding:n,mark:r}=e;if(r==="line"||wa(r)&&r.type==="line")for(const i of RYe){const s=_d(i),o=n[s];if(n[i]&&(Le(o)&&!Mi(o.bin)||Ia(o)))return!0}}return!1}run(e,n,r){const{encoding:i,mark:s}=e;return Te(OXe(!!i.x2,!!i.y2)),r(Object.assign(Object.assign({},e),{mark:Qe(s)?Object.assign(Object.assign({},s),{type:"rule"}):"rule"}),n)}}var qc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class SZe extends I7{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[TJe,NJe,BJe,new mZe,new AZe]}map(e,n){if(i0(e)){const r=Fd(e.encoding,Vl),i=Fd(e.encoding,Yl),s=Fd(e.encoding,cN);if(r||i||s)return this.mapFacetedUnit(e,n)}return super.map(e,n)}mapUnit(e,n){const{parentEncoding:r,parentProjection:i}=n,s=B7(e.encoding,n.repeater),o=Object.assign(Object.assign({},e),s?{encoding:s}:{});if(r||i)return this.mapUnitWithParentEncodingOrProjection(o,n);const u=this.mapLayerOrUnit.bind(this);for(const a of this.nonFacetUnitNormalizers)if(a.hasMatchingType(o,n.config))return a.run(o,n,u);return o}mapRepeat(e,n){return aZe(e)?this.mapLayerRepeat(e,n):this.mapNonLayerRepeat(e,n)}mapLayerRepeat(e,n){const{repeat:r,spec:i}=e,s=qc(e,["repeat","spec"]),{row:o,column:u,layer:a}=r,{repeater:l={},repeaterPrefix:c=""}=n;return o||u?this.mapRepeat(Object.assign(Object.assign({},e),{repeat:Object.assign(Object.assign({},o?{row:o}:{}),u?{column:u}:{}),spec:{repeat:{layer:a},spec:i}}),n):Object.assign(Object.assign({},s),{layer:a.map(f=>{const x=Object.assign(Object.assign({},l),{layer:f}),h=`${(i.name||"")+c}child__layer_${mn(f)}`,p=this.mapLayerOrUnit(i,Object.assign(Object.assign({},n),{repeater:x,repeaterPrefix:h}));return p.name=h,p})})}mapNonLayerRepeat(e,n){var r;const{repeat:i,spec:s,data:o}=e,u=qc(e,["repeat","spec","data"]);!_e(i)&&e.columns&&(e=Co(e,["columns"]),Te(moe("repeat")));const a=[],{repeater:l={},repeaterPrefix:c=""}=n,f=!_e(i)&&i.row||[l?l.row:null],x=!_e(i)&&i.column||[l?l.column:null],h=_e(i)&&i||[l?l.repeat:null];for(const m of h)for(const g of f)for(const y of x){const E={repeat:m,row:g,column:y,layer:l.layer},A=(s.name||"")+c+"child__"+(_e(i)?`${mn(m)}`:(i.row?`row_${mn(g)}`:"")+(i.column?`column_${mn(y)}`:"")),S=this.map(s,Object.assign(Object.assign({},n),{repeater:E,repeaterPrefix:A}));S.name=A,a.push(Co(S,["data"]))}const p=_e(i)?e.columns:i.column?i.column.length:1;return Object.assign(Object.assign({data:(r=s.data)!==null&&r!==void 0?r:o,align:"all"},u),{columns:p,concat:a})}mapFacet(e,n){const{facet:r}=e;return b3(r)&&e.columns&&(e=Co(e,["columns"]),Te(moe("facet"))),super.mapFacet(e,n)}mapUnitWithParentEncodingOrProjection(e,n){const{encoding:r,projection:i}=e,{parentEncoding:s,parentProjection:o,config:u}=n,a=oae({parentProjection:o,projection:i}),l=sae({parentEncoding:s,encoding:B7(r,n.repeater)});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),a?{projection:a}:{}),l?{encoding:l}:{}),{config:u})}mapFacetedUnit(e,n){const r=e.encoding,{row:i,column:s,facet:o}=r,u=qc(r,["row","column","facet"]),{mark:a,width:l,projection:c,height:f,view:x,params:h,encoding:p}=e,m=qc(e,["mark","width","projection","height","view","params","encoding"]),{facetMapping:g,layout:y}=this.getFacetMappingAndLayout({row:i,column:s,facet:o},n),E=B7(u,n.repeater);return this.mapFacet(Object.assign(Object.assign(Object.assign({},m),y),{facet:g,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},l?{width:l}:{}),f?{height:f}:{}),x?{view:x}:{}),c?{projection:c}:{}),{mark:a,encoding:E}),h?{params:h}:{})}),n)}getFacetMappingAndLayout(e,n){var r;const{row:i,column:s,facet:o}=e;if(i||s){o&&Te(TXe([...i?[Vl]:[],...s?[Yl]:[]]));const u={},a={};for(const l of[Vl,Yl]){const c=e[l];if(c){const f=qc(c,["align","center","spacing","columns"]);u[l]=f;for(const x of["align","center","spacing"])c[x]!==void 0&&((r=a[x])!==null&&r!==void 0||(a[x]={}),a[x][l]=c[x])}}return{facetMapping:u,layout:a}}else{const{align:u,center:a,spacing:l,columns:c}=o,f=qc(o,["align","center","spacing","columns"]);return{facetMapping:EZe(f,n.repeater),layout:Object.assign(Object.assign(Object.assign(Object.assign({},u?{align:u}:{}),a?{center:a}:{}),l?{spacing:l}:{}),c?{columns:c}:{})}}}mapLayer(e,n){var{parentEncoding:r,parentProjection:i}=n,s=qc(n,["parentEncoding","parentProjection"]);const{encoding:o,projection:u}=e,a=qc(e,["encoding","projection"]),l=Object.assign(Object.assign({},s),{parentEncoding:sae({parentEncoding:r,encoding:o,layer:!0}),parentProjection:oae({parentProjection:i,projection:u})});return super.mapLayer(a,l)}}function sae({parentEncoding:t,encoding:e={},layer:n}){let r={};if(t){const i=new Set([...be(t),...be(e)]);for(const s of i){const o=e[s],u=t[s];if(it(o)){const a=Object.assign(Object.assign({},u),o);r[s]=a}else T3(o)?r[s]=Object.assign(Object.assign({},o),{condition:Object.assign(Object.assign({},u),o.condition)}):o||o===null?r[s]=o:(n||gu(u)||Ye(u)||it(u)||_e(u))&&(r[s]=u)}}else r=e;return!r||Wt(r)?void 0:r}function oae(t){const{parentProjection:e,projection:n}=t;return e&&n&&Te(dXe({parentProjection:e,projection:n})),n??e}function P7(t){return"filter"in t}function vZe(t){return(t==null?void 0:t.stop)!==void 0}function uae(t){return"lookup"in t}function _Ze(t){return"data"in t}function CZe(t){return"param"in t}function bZe(t){return"pivot"in t}function TZe(t){return"density"in t}function RZe(t){return"quantile"in t}function OZe(t){return"regression"in t}function NZe(t){return"loess"in t}function DZe(t){return"sample"in t}function FZe(t){return"window"in t}function wZe(t){return"joinaggregate"in t}function LZe(t){return"flatten"in t}function IZe(t){return"calculate"in t}function aae(t){return"bin"in t}function $Ze(t){return"impute"in t}function BZe(t){return"timeUnit"in t}function kZe(t){return"aggregate"in t}function PZe(t){return"stack"in t}function MZe(t){return"fold"in t}function jZe(t){return t.map(e=>P7(e)?{filter:R2(e.filter,AKe)}:e)}var Hc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class UZe extends I7{map(e,n){var r,i;return(r=n.emptySelections)!==null&&r!==void 0||(n.emptySelections={}),(i=n.selectionPredicates)!==null&&i!==void 0||(n.selectionPredicates={}),e=lae(e,n),super.map(e,n)}mapLayerOrUnit(e,n){if(e=lae(e,n),e.encoding){const r={};for(const[i,s]of Ad(e.encoding))r[i]=cae(s,n);e=Object.assign(Object.assign({},e),{encoding:r})}return super.mapLayerOrUnit(e,n)}mapUnit(e,n){const r=e,{selection:i}=r,s=Hc(r,["selection"]);return i?Object.assign(Object.assign({},s),{params:Ad(i).map(([o,u])=>{var a;const l=u,{init:c,bind:f,empty:x}=l,h=Hc(l,["init","bind","empty"]);h.type==="single"?(h.type="point",h.toggle=!1):h.type==="multi"&&(h.type="point"),n.emptySelections[o]=x!=="none";for(const p of Pi((a=n.selectionPredicates[o])!==null&&a!==void 0?a:{}))p.empty=x!=="none";return{name:o,value:c,select:h,bind:f}})}):e}}function lae(t,e){const{transform:n}=t,r=Hc(t,["transform"]);if(n){const i=n.map(s=>{if(P7(s))return{filter:M7(s,e)};if(aae(s)&&Cd(s.bin))return Object.assign(Object.assign({},s),{bin:fae(s.bin)});if(uae(s)){const o=s.from,{selection:u}=o,a=Hc(o,["selection"]);return u?Object.assign(Object.assign({},s),{from:Object.assign({param:u},a)}):s}return s});return Object.assign(Object.assign({},r),{transform:i})}return t}function cae(t,e){var n,r;const i=ot(t);if(Le(i)&&Cd(i.bin)&&(i.bin=fae(i.bin)),Dd(i)&&(!((r=(n=i.scale)===null||n===void 0?void 0:n.domain)===null||r===void 0)&&r.selection)){const s=i.scale.domain,{selection:o}=s,u=Hc(s,["selection"]);i.scale.domain=Object.assign(Object.assign({},u),o?{param:o}:{})}if(DN(i))if(_e(i.condition))i.condition=i.condition.map(s=>{const{selection:o,param:u,test:a}=s,l=Hc(s,["selection","param","test"]);return u?s:Object.assign(Object.assign({},l),{test:M7(s,e)})});else{const s=cae(i.condition,e),{selection:o,param:u,test:a}=s,l=Hc(s,["selection","param","test"]);i.condition=u?i.condition:Object.assign(Object.assign({},l),{test:M7(i.condition,e)})}return i}function fae(t){const e=t.extent;if(e!=null&&e.selection){const{selection:n}=e,r=Hc(e,["selection"]);return Object.assign(Object.assign({},t),{extent:Object.assign(Object.assign({},r),{param:n})})}return t}function M7(t,e){const n=r=>R2(r,i=>{var s,o,u;const a=(s=e.emptySelections[i])!==null&&s!==void 0?s:!0,l={param:i,empty:a};return(o=(u=e.selectionPredicates)[i])!==null&&o!==void 0||(u[i]=[]),e.selectionPredicates[i].push(l),l});return t.selection?n(t.selection):R2(t.test||t.filter,r=>r.selection?n(r.selection):r)}class j7 extends I7{map(e,n){var r;const i=(r=n.selections)!==null&&r!==void 0?r:[];if(e.params&&!i0(e)){const s=[];for(const o of e.params)D7(o)?i.push(o):s.push(o);e.params=s}return n.selections=i,super.map(e,xae(e,n))}mapUnit(e,n){var r;const i=n.selections;if(!i||!i.length)return e;const s=((r=n.path)!==null&&r!==void 0?r:[]).concat(e.name),o=[];for(const u of i)if(!u.views||!u.views.length)o.push(u);else for(const a of u.views)(je(a)&&(a===e.name||s.indexOf(a)>=0)||_e(a)&&a.map(l=>s.indexOf(l)).every((l,c,f)=>l!==-1&&(c===0||l>f[c-1])))&&o.push(u);return o.length&&(e.params=o),e}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=j7.prototype[t];j7.prototype[t]=function(n,r){return e.call(this,n,xae(n,r))}}function xae(t,e){var n;return t.name?Object.assign(Object.assign({},e),{path:((n=e.path)!==null&&n!==void 0?n:[]).concat(t.name)}):e}function qZe(t,e){e===void 0&&(e=Xue(t.config));const n=GZe(t,e),{width:r,height:i}=t,s=WZe(n,{width:r,height:i,autosize:t.autosize},e);return Object.assign(Object.assign({},n),s?{autosize:s}:{})}const HZe=new SZe,zZe=new UZe,QZe=new j7;function GZe(t,e={}){const n={config:e};return QZe.map(HZe.map(zZe.map(t,n),n),n)}function dae(t){return je(t)?{type:t}:t??{}}function WZe(t,e,n){let{width:r,height:i}=e;const s=i0(t)||QN(t),o={};s?r=="container"&&i=="container"?(o.type="fit",o.contains="padding"):r=="container"?(o.type="fit-x",o.contains="padding"):i=="container"&&(o.type="fit-y",o.contains="padding"):(r=="container"&&(Te(xoe("width")),r=void 0),i=="container"&&(Te(xoe("height")),i=void 0));const u=Object.assign(Object.assign(Object.assign({type:"pad"},o),n?dae(n.autosize):{}),dae(t.autosize));if(u.type==="fit"&&!s&&(Te(KYe),u.type="pad"),r=="container"&&!(u.type=="fit"||u.type=="fit-x")&&Te(doe("width")),i=="container"&&!(u.type=="fit"||u.type=="fit-y")&&Te(doe("height")),!Gl(u,{type:"pad"}))return u}function VZe(t){return t==="fit"||t==="fit-x"||t==="fit-y"}function YZe(t){return t?`fit-${pN(t)}`:"fit"}const XZe=["background","padding"];function hae(t,e){const n={};for(const r of XZe)t&&t[r]!==void 0&&(n[r]=Hs(t[r]));return e&&(n.params=t.params),n}class o0{constructor(e={},n={}){this.explicit=e,this.implicit=n}clone(){return new o0(ot(this.explicit),ot(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return ir(this.explicit[e],this.implicit[e])}getWithExplicit(e){return this.explicit[e]!==void 0?{explicit:!0,value:this.explicit[e]}:this.implicit[e]!==void 0?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,{value:n,explicit:r}){n!==void 0&&this.set(e,n,r)}set(e,n,r){return delete this[r?"implicit":"explicit"][e],this[r?"explicit":"implicit"][e]=n,this}copyKeyFromSplit(e,{explicit:n,implicit:r}){n[e]!==void 0?this.set(e,n[e],!0):r[e]!==void 0&&this.set(e,r[e],!1)}copyKeyFromObject(e,n){n[e]!==void 0&&this.set(e,n[e],!0)}copyAll(e){for(const n of be(e.combine())){const r=e.getWithExplicit(n);this.setWithExplicit(n,r)}}}function Pa(t){return{explicit:!0,value:t}}function Qs(t){return{explicit:!1,value:t}}function pae(t){return(e,n,r,i)=>{const s=t(e.value,n.value);return s>0?e:s<0?n:GN(e,n,r,i)}}function GN(t,e,n,r){return t.explicit&&e.explicit&&Te(PXe(n,r,t.value,e.value)),t}function zc(t,e,n,r,i=GN){return t===void 0||t.value===void 0?e:t.explicit&&!e.explicit?t:e.explicit&&!t.explicit?e:Gl(t.value,e.value)?t:i(t,e,n,r)}class KZe extends o0{constructor(e={},n={},r=!1){super(e,n),this.explicit=e,this.implicit=n,this.parseNothing=r}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}function q2(t){return"url"in t}function D3(t){return"values"in t}function gae(t){return"name"in t&&!q2(t)&&!D3(t)&&!Qc(t)}function Qc(t){return t&&(mae(t)||yae(t)||U7(t))}function mae(t){return"sequence"in t}function yae(t){return"sphere"in t}function U7(t){return"graticule"in t}var Jt;(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"})(Jt||(Jt={}));var JZe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function H2(t,e=!0,n=Ai){if(_e(t)){const r=t.map(i=>H2(i,e,n));return e?`[${r.join(", ")}]`:r}else if(Td(t))return n(e?v3(t):lKe(t));return e?n(sn(t)):t}function ZZe(t,e){var n;for(const r of Pi((n=t.component.selection)!==null&&n!==void 0?n:{})){const i=r.name;let s=`${i}${Vc}, ${r.resolve==="global"?"true":`{unit: ${G2(t)}}`}`;for(const o of KN)o.defined(r)&&(o.signals&&(e=o.signals(t,r,e)),o.modifyExpr&&(s=o.modifyExpr(t,r,s)));e.push({name:i+Iet,on:[{events:{signal:r.name+Vc},update:`modify(${Fe(r.name+wd)}, ${s})`}]})}return q7(e)}function eet(t,e){if(t.component.selection&&be(t.component.selection).length){const n=Fe(t.getName("cell"));e.unshift({name:"facet",value:{},on:[{events:hd("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return q7(e)}function tet(t,e){var n;let r=!1;for(const i of Pi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=i.name,o=Fe(s+wd);if(e.filter(a=>a.name===s).length===0){const a=i.resolve==="global"?"union":i.resolve,l=i.type==="point"?", true, true)":")";e.push({name:i.name,update:`${Uae}(${o}, ${Fe(a)}${l}`})}r=!0;for(const a of KN)a.defined(i)&&a.topLevelSignals&&(e=a.topLevelSignals(t,i,e))}return r&&e.filter(s=>s.name==="unit").length===0&&e.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]}),q7(e)}function net(t,e){var n;const r=[...e];for(const i of Pi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s={name:i.name+wd};if(i.init){const u=i.project.items.map(a=>JZe(a,["signals"]));s.values=i.init.map(a=>({unit:G2(t,{escape:!1}),fields:u,values:H2(a,!1)}))}r.filter(u=>u.name===i.name+wd).length||r.push(s)}return r}function Eae(t,e){var n;for(const r of Pi((n=t.component.selection)!==null&&n!==void 0?n:{}))for(const i of KN)i.defined(r)&&i.marks&&(e=i.marks(t,r,e));return e}function ret(t,e){for(const n of t.children)zn(n)&&(e=Eae(n,e));return e}function iet(t,e,n,r){const i=Gae(t,e.param,e);return{signal:zs(n.get("type"))&&_e(r)&&r[0]>r[1]?`isValid(${i}) && reverse(${i})`:i}}function q7(t){return t.map(e=>(e.on&&!e.on.length&&delete e.on,e))}class Ut{constructor(e,n){this.debugName=n,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,n){if(this._children.includes(e)){Te(cXe);return}n!==void 0?this._children.splice(n,0,e):this._children.push(e)}removeChild(e){const n=this._children.indexOf(e);return this._children.splice(n,1),n}remove(){let e=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,e++)}insertAsParentOf(e){const n=e.parent;n.removeChild(this),this.parent=n,e.parent=this}swapWithParent(){const e=this._parent,n=e.parent;for(const r of this._children)r.parent=e;this._children=[],e.removeChild(this),e.parent.removeChild(e),this.parent=n,e.parent=this}}class qi extends Ut{constructor(e,n,r,i){super(e,n),this.type=r,this.refCounts=i,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}clone(){const e=new this.constructor;return e.debugName=`clone_${this.debugName}`,e._source=this._source,e._name=`clone_${this._name}`,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${gYe()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var Aae=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Ma extends Ut{constructor(e,n){super(e),this.formula=n}clone(){return new Ma(null,ot(this.formula))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s)=>{const{field:o,timeUnit:u}=s;if(u){const a=$e(s,{forAs:!0});i[bt({as:a,field:o,timeUnit:u})]={as:a,field:o,timeUnit:u}}return i},{});return Wt(r)?null:new Ma(e,r)}static makeFromTransform(e,n){const r=Object.assign({},n),{timeUnit:i}=r,s=Aae(r,["timeUnit"]),o=ji(i),u=Object.assign(Object.assign({},s),{timeUnit:o});return new Ma(e,{[bt(u)]:u})}merge(e){this.formula=Object.assign({},this.formula);for(const n in e.formula)this.formula[n]||(this.formula[n]=e.formula[n]);for(const n of e.children)e.removeChild(n),n.parent=this;e.remove()}removeFormulas(e){const n={};for(const[r,i]of Ad(this.formula))e.has(i.as)||(n[r]=i);this.formula=n}producedFields(){return new Set(Pi(this.formula).map(e=>e.as))}dependentFields(){return new Set(Pi(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${bt(this.formula)}`}assemble(){const e=[];for(const n of Pi(this.formula)){const{field:r,as:i,timeUnit:s}=n,o=ji(s),{unit:u,utc:a}=o,l=Aae(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:fu(r),type:"timeunit"},u?{units:H8(u)}:{}),a?{timezone:"utc"}:{}),l),{as:[i,`${i}_end`]}))}return e}}var set=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const F3="_tuple_fields";class oet{constructor(...e){this.items=e,this.hasChannel={},this.hasField={}}}const uet={defined:()=>!0,parse:(t,e,n)=>{var r;const i=e.name,s=(r=e.project)!==null&&r!==void 0?r:e.project=new oet,o={},u={},a=new Set,l=(m,g)=>{const y=g==="visual"?m.channel:m.field;let E=mn(`${i}_${y}`);for(let A=1;a.has(E);A++)E=mn(`${i}_${y}_${A}`);return a.add(E),{[g]:E}},c=e.type,f=t.config.selection[c],x=n.value!==void 0?Pe(n.value):null;let{fields:h,encodings:p}=Qe(n.select)?n.select:{};if(!h&&!p&&x){for(const m of x)if(Qe(m))for(const g of be(m))TYe(g)?(p||(p=[])).push(g):c==="interval"?(Te(oXe),p=f.encodings):(h||(h=[])).push(g)}!h&&!p&&(p=f.encodings,"fields"in f&&(h=f.fields));for(const m of p??[]){const g=t.fieldDef(m);if(g){let y=g.field;if(g.aggregate){Te(JYe(m,g.aggregate));continue}else if(!y){Te(poe(m));continue}if(g.timeUnit){y=t.vgField(m);const E={timeUnit:g.timeUnit,as:y,field:g.field};u[bt(E)]=E}if(!o[y]){let E="E";if(c==="interval"){const S=t.getScaleComponent(m).get("type");zs(S)&&(E="R")}else g.bin&&(E="R-RE");const A={field:y,channel:m,type:E};A.signals=Object.assign(Object.assign({},l(A,"data")),l(A,"visual")),s.items.push(o[y]=A),s.hasField[y]=s.hasChannel[m]=o[y]}}else Te(poe(m))}for(const m of h??[]){if(s.hasField[m])continue;const g={type:"E",field:m};g.signals=Object.assign({},l(g,"data")),s.items.push(g),s.hasField[m]=g}x&&(e.init=x.map(m=>s.items.map(g=>Qe(m)?m[g.channel]!==void 0?m[g.channel]:m[g.field]:m))),Wt(u)||(s.timeUnit=new Ma(null,u))},signals:(t,e,n)=>{const r=e.name+F3;return n.filter(s=>s.name===r).length>0?n:n.concat({name:r,value:e.project.items.map(s=>{const o=set(s,["signals","hasLegend"]);return o.field=fu(o.field),o})})}},Gc={defined:t=>t.type==="interval"&&t.resolve==="global"&&t.bind&&t.bind==="scales",parse:(t,e)=>{const n=e.scales=[];for(const r of e.project.items){const i=r.channel;if(!kc(i))continue;const s=t.getScaleComponent(i),o=s?s.get("type"):void 0;if(!s||!zs(o)){Te(tXe);continue}s.set("selectionExtent",{param:e.name,field:r.field},!0),n.push(r)}},topLevelSignals:(t,e,n)=>{const r=e.scales.filter(o=>n.filter(u=>u.name===o.signals.data).length===0);if(!t.parent||z7(t)||r.length===0)return n;const i=n.filter(o=>o.name===e.name)[0];let s=i.update;if(s.indexOf(Uae)>=0)i.update=`{${r.map(o=>`${Fe(fu(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const u=`${Fe(fu(o.field))}: ${o.signals.data}`;s.includes(u)||(s=`${s.substring(0,s.length-1)}, ${u}}`)}i.update=s}return n.concat(r.map(o=>({name:o.signals.data})))},signals:(t,e,n)=>{if(t.parent&&!z7(t))for(const r of e.scales){const i=n.filter(s=>s.name===r.signals.data)[0];i.push="outer",delete i.value,delete i.update}return n}};function H7(t,e){return`domain(${Fe(t.scaleName(e))})`}function z7(t){var e;return t.parent&&Z2(t.parent)&&((e=!t.parent.parent)!==null&&e!==void 0?e:z7(t.parent.parent))}var aet=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const z2="_brush",Q7="_scale_trigger",cet={defined:t=>t.type==="interval",signals:(t,e,n)=>{const r=e.name,i=r+F3,s=Gc.defined(e),o=e.init?e.init[0]:null,u=[],a=[];if(e.translate&&!s){const c=`!event.item || event.item.mark.name !== ${Fe(r+z2)}`;Sae(e,(f,x)=>{var h,p;const m=Pe((h=(p=x.between[0]).filter)!==null&&h!==void 0?h:p.filter=[]);return m.includes(c)||m.push(c),f})}e.project.items.forEach((c,f)=>{const x=c.channel;if(x!==yn&&x!==_r){Te("Interval selections only support x and y encoding channels.");return}const h=o?o[f]:null,p=fet(t,e,c,h),m=c.signals.data,g=c.signals.visual,y=Fe(t.scaleName(x)),E=t.getScaleComponent(x).get("type"),A=zs(E)?"+":"";n.push(...p),u.push(m),a.push({scaleName:t.scaleName(x),expr:`(!isArray(${m}) || (${A}invert(${y}, ${g})[0] === ${A}${m}[0] && ${A}invert(${y}, ${g})[1] === ${A}${m}[1]))`})}),!s&&a.length&&n.push({name:r+Q7,value:{},on:[{events:a.map(c=>({scale:c.scaleName})),update:`${a.map(c=>c.expr).join(" && ")} ? ${r+Q7} : {}`}]});const l=`unit: ${G2(t)}, fields: ${i}, values`;return n.concat(Object.assign(Object.assign({name:r+Vc},o?{init:`{${l}: ${H2(o)}}`}:{}),u.length?{on:[{events:[{signal:u.join(" || ")}],update:`${u.join(" && ")} ? {${l}: [${u}]} : null`}]}:{}))},marks:(t,e,n)=>{const r=e.name,{x:i,y:s}=e.project.hasChannel,o=i==null?void 0:i.signals.visual,u=s==null?void 0:s.signals.visual,a=`data(${Fe(e.name+wd)})`;if(Gc.defined(e)||!i&&!s)return n;const l={x:i!==void 0?{signal:`${o}[0]`}:{value:0},y:s!==void 0?{signal:`${u}[0]`}:{value:0},x2:i!==void 0?{signal:`${o}[1]`}:{field:{group:"width"}},y2:s!==void 0?{signal:`${u}[1]`}:{field:{group:"height"}}};if(e.resolve==="global")for(const g of be(l))l[g]=[Object.assign({test:`${a}.length && ${a}[0].unit === ${G2(t)}`},l[g]),{value:0}];const c=e.mark,{fill:f,fillOpacity:x,cursor:h}=c,p=aet(c,["fill","fillOpacity","cursor"]),m=be(p).reduce((g,y)=>(g[y]=[{test:[i!==void 0&&`${o}[0] !== ${o}[1]`,s!==void 0&&`${u}[0] !== ${u}[1]`].filter(E=>E).join(" && "),value:p[y]},{value:null}],g),{});return[{name:`${r+z2}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:x}},update:l}},...n,{name:r+z2,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},h?{cursor:{value:h}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},l),m)}}]}};function fet(t,e,n,r){const i=n.channel,s=n.signals.visual,o=n.signals.data,u=Gc.defined(e),a=Fe(t.scaleName(i)),l=t.getScaleComponent(i),c=l?l.get("type"):void 0,f=m=>`scale(${a}, ${m})`,x=t.getSizeSignalRef(i===yn?"width":"height").signal,h=`${i}(unit)`,p=Sae(e,(m,g)=>[...m,{events:g.between[0],update:`[${h}, ${h}]`},{events:g,update:`[${s}[0], clamp(${h}, 0, ${x})]`}]);return p.push({events:{signal:e.name+Q7},update:zs(c)?`[${f(`${o}[0]`)}, ${f(`${o}[1]`)}]`:"[0, 0]"}),u?[{name:o,on:[]}]:[Object.assign(Object.assign({name:s},r?{init:H2(r,!0,f)}:{value:[]}),{on:p}),Object.assign(Object.assign({name:o},r?{init:H2(r)}:{}),{on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]})]}function Sae(t,e){return t.events.reduce((n,r)=>r.between?e(n,r):(Te(`${r} is not an ordered event stream for interval selections.`),n),[])}const xet={defined:t=>t.type==="point",signals:(t,e,n)=>{var r;const i=e.name,s=i+F3,o=e.project,u="(item().isVoronoi ? datum.datum : datum)",a=o.items.map(h=>{const p=t.fieldDef(h.channel);return p!=null&&p.bin?`[${u}[${Fe(t.vgField(h.channel,{}))}], ${u}[${Fe(t.vgField(h.channel,{binSuffix:"end"}))}]]`:`${u}[${Fe(h.field)}]`}).join(", "),l=`unit: ${G2(t)}, fields: ${s}, values`,c=e.events,f=Pi((r=t.component.selection)!==null&&r!==void 0?r:{}).reduce((h,p)=>p.type==="interval"?h.concat(p.name+z2):h,[]).map(h=>`indexof(item().mark.name, '${h}') < 0`).join(" && "),x=`datum && item().mark.marktype !== 'group'${f?` && ${f}`:""}`;return n.concat([{name:i+Vc,on:c?[{events:c,update:`${x} ? {${l}: [${a}]} : null`,force:!0}]:[]}])}};function Q2(t,e,n,r){const i=DN(e)&&e.condition,s=r(e);if(i){const u=Pe(i).map(a=>{const l=r(a);if(rJe(a)){const{param:c,empty:f}=a,x=Qae(t,{param:c,empty:f});return Object.assign({test:x},l)}else{const c=JN(t,a.test);return Object.assign({test:c},l)}});return{[n]:[...u,...s!==void 0?[s]:[]]}}else return s!==void 0?{[n]:s}:{}}function G7(t,e="text"){const n=t.encoding[e];return Q2(t,n,e,r=>WN(r,t.config))}function WN(t,e,n="datum"){if(t){if(gu(t))return on(t.value);if(it(t)){const{format:r,formatType:i}=LN(t);return a7({fieldOrDatumDef:t,format:r,formatType:i,expr:n,config:e})}}}function vae(t,e={}){const{encoding:n,markDef:r,config:i,stack:s}=t,o=n.tooltip;if(_e(o))return{tooltip:Cae({tooltip:o},s,i,e)};{const u=e.reactiveGeom?"datum.datum":"datum";return Q2(t,o,"tooltip",a=>{const l=WN(a,i,u);if(l)return l;if(a===null)return;let c=kt("tooltip",r,i);if(c===!0&&(c={content:"encoding"}),je(c))return{value:c};if(Qe(c))return Ye(c)?c:c.content==="encoding"?Cae(n,s,i,e):{signal:u}})}}function _ae(t,e,n,{reactiveGeom:r}={}){const i={},s=r?"datum.datum":"datum",o=[];function u(l,c){const f=_d(c),x=Ro(l)?l:Object.assign(Object.assign({},l),{type:t[f].type}),h=x.title||m7(x,n),p=Pe(h).join(", ");let m;if(kr(c)){const g=c==="x"?"x2":"y2",y=Ba(t[g]);if(Mi(x.bin)&&y){const E=$e(x,{expr:s}),A=$e(y,{expr:s}),{format:S,formatType:v}=LN(x);m=RN(E,A,S,v,n),i[g]=!0}else if(e&&e.fieldChannel===c&&e.offset==="normalize"){const{format:E,formatType:A}=LN(x);m=a7({fieldOrDatumDef:x,format:E,formatType:A,expr:s,config:n,normalizeStack:!0}).signal}}m??(m=WN(x,n,s).signal),o.push({channel:c,key:p,value:m})}S7(t,(l,c)=>{Le(l)?u(l,c):FN(l)&&u(l.condition,c)});const a={};for(const{channel:l,key:c,value:f}of o)!i[l]&&!a[c]&&(a[c]=f);return a}function Cae(t,e,n,{reactiveGeom:r}={}){const i=_ae(t,e,n,{reactiveGeom:r}),s=Ad(i).map(([o,u])=>`"${o}": ${u}`);return s.length>0?{signal:`{${s.join(", ")}}`}:void 0}function det(t){const{markDef:e,config:n}=t,r=kt("aria",e,n);return r===!1?{}:Object.assign(Object.assign(Object.assign({},r?{aria:r}:{}),het(t)),pet(t))}function het(t){const{mark:e,markDef:n,config:r}=t;if(r.aria===!1)return{};const i=kt("ariaRoleDescription",n,r);return i!=null?{ariaRoleDescription:{value:i}}:e in VYe?{}:{ariaRoleDescription:{value:e}}}function pet(t){const{encoding:e,markDef:n,config:r,stack:i}=t,s=e.description;if(s)return Q2(t,s,"description",a=>WN(a,t.config));const o=kt("description",n,r);if(o!=null)return{description:on(o)};if(r.aria===!1)return{};const u=_ae(e,i,r);if(!Wt(u))return{description:{signal:Ad(u).map(([a,l],c)=>`"${c>0?"; ":""}${a}: " + (${l})`).join(" + ")}}}function br(t,e,n={}){const{markDef:r,encoding:i,config:s}=e,{vgChannel:o}=n;let{defaultRef:u,defaultValue:a}=n;u===void 0&&(a??(a=kt(t,r,s,{vgChannel:o,ignoreVgConfig:!0})),a!==void 0&&(u=on(a)));const l=i[t];return Q2(e,l,o??t,c=>u7({channel:t,channelDef:c,markDef:r,config:s,scaleName:e.scaleName(t),scale:e.getScaleComponent(t),stack:null,defaultRef:u}))}function bae(t,e={filled:void 0}){var n,r,i,s;const{markDef:o,encoding:u,config:a}=t,{type:l}=o,c=(n=e.filled)!==null&&n!==void 0?n:kt("filled",o,a),f=Tt(["bar","point","circle","square","geoshape"],l)?"transparent":void 0,x=(i=(r=kt(c===!0?"color":void 0,o,a,{vgChannel:"fill"}))!==null&&r!==void 0?r:a.mark[c===!0&&"color"])!==null&&i!==void 0?i:f,h=(s=kt(c===!1?"color":void 0,o,a,{vgChannel:"stroke"}))!==null&&s!==void 0?s:a.mark[c===!1&&"color"],p=c?"fill":"stroke",m=Object.assign(Object.assign({},x?{fill:on(x)}:{}),h?{stroke:on(h)}:{});return o.color&&(c?o.fill:o.stroke)&&Te(Soe("property",{fill:"fill"in o,stroke:"stroke"in o})),Object.assign(Object.assign(Object.assign(Object.assign({},m),br("color",t,{vgChannel:p,defaultValue:c?x:h})),br("fill",t,{defaultValue:u.fill?x:void 0})),br("stroke",t,{defaultValue:u.stroke?h:void 0}))}function get(t){const{encoding:e,mark:n}=t,r=e.order;return!Uc(n)&&gu(r)?Q2(t,r,"zindex",i=>on(i.value)):{}}function w3({channel:t,markDef:e,encoding:n={},model:r,bandPosition:i}){const s=`${t}Offset`,o=e[s],u=n[s];if((s==="xOffset"||s==="yOffset")&&u)return{offsetType:"encoding",offset:u7({channel:s,channelDef:u,markDef:e,config:r==null?void 0:r.config,scaleName:r.scaleName(s),scale:r.getScaleComponent(s),stack:null,defaultRef:on(o),bandPosition:i})};const a=e[s];return a?{offsetType:"visual",offset:a}:{}}function ai(t,e,{defaultPos:n,vgChannel:r}){const{encoding:i,markDef:s,config:o,stack:u}=e,a=i[t],l=i[e0(t)],c=e.scaleName(t),f=e.getScaleComponent(t),{offset:x,offsetType:h}=w3({channel:t,markDef:s,encoding:i,model:e,bandPosition:.5}),p=W7({model:e,defaultPos:n,channel:t,scaleName:c,scale:f}),m=!a&&kr(t)&&(i.latitude||i.longitude)?{field:e.getName(t)}:met({channel:t,channelDef:a,channel2Def:l,markDef:s,config:o,scaleName:c,scale:f,stack:u,offset:x,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return m?{[r||t]:m}:void 0}function met(t){const{channel:e,channelDef:n,scaleName:r,stack:i,offset:s,markDef:o}=t;if(it(n)&&i&&e===i.fieldChannel){if(Le(n)){let u=n.bandPosition;if(u===void 0&&o.type==="text"&&(e==="radius"||e==="theta")&&(u=.5),u!==void 0)return TN({scaleName:r,fieldOrDatumDef:n,startSuffix:"start",bandPosition:u,offset:s})}return Od(n,r,{suffix:"end"},{offset:s})}return s7(t)}function W7({model:t,defaultPos:e,channel:n,scaleName:r,scale:i}){const{markDef:s,config:o}=t;return()=>{const u=_d(n),a=Bc(n),l=kt(n,s,o,{vgChannel:a});if(l!==void 0)return C3(n,l);switch(e){case"zeroOrMin":case"zeroOrMax":if(r){const c=i.get("type");if(!Tt([ys.LOG,ys.TIME,ys.UTC],c)){if(i.domainDefinitelyIncludesZero())return{scale:r,value:0}}}if(e==="zeroOrMin")return u==="y"?{field:{group:"height"}}:{value:0};switch(u){case"radius":return{signal:`min(${t.width.signal},${t.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":{const c=t[gs(n)];return Object.assign(Object.assign({},c),{mult:.5})}}}}const yet={left:"x",center:"xc",right:"x2"},Eet={top:"y",middle:"yc",bottom:"y2"};function Tae(t,e,n,r="middle"){if(t==="radius"||t==="theta")return Bc(t);const i=t==="x"?"align":"baseline",s=kt(i,e,n);let o;return Ye(s)?(Te(RXe(i)),o=void 0):o=s,t==="x"?yet[o||(r==="top"?"left":"center")]:Eet[o||r]}function VN(t,e,{defaultPos:n,defaultPos2:r,range:i}){return i?Rae(t,e,{defaultPos:n,defaultPos2:r}):ai(t,e,{defaultPos:n})}function Rae(t,e,{defaultPos:n,defaultPos2:r}){const{markDef:i,config:s}=e,o=e0(t),u=gs(t),a=Aet(e,r,o),l=a[u]?Tae(t,i,s):Bc(t);return Object.assign(Object.assign({},ai(t,e,{defaultPos:n,vgChannel:l})),a)}function Aet(t,e,n){const{encoding:r,mark:i,markDef:s,stack:o,config:u}=t,a=_d(n),l=gs(n),c=Bc(n),f=r[a],x=t.scaleName(a),h=t.getScaleComponent(a),{offset:p}=n in r||n in s?w3({channel:n,markDef:s,encoding:r,model:t}):w3({channel:a,markDef:s,encoding:r,model:t});if(!f&&(n==="x2"||n==="y2")&&(r.latitude||r.longitude)){const g=gs(n),y=t.markDef[g];return y!=null?{[g]:{value:y}}:{[c]:{field:t.getName(n)}}}const m=vet({channel:n,channelDef:f,channel2Def:r[n],markDef:s,config:u,scaleName:x,scale:h,stack:o,offset:p,defaultRef:void 0});return m!==void 0?{[c]:m}:YN(n,s)||YN(n,{[n]:yN(n,s,u.style),[l]:yN(l,s,u.style)})||YN(n,u[i])||YN(n,u.mark)||{[c]:W7({model:t,defaultPos:e,channel:n,scaleName:x,scale:h})()}}function vet({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l}){return it(e)&&u&&t.charAt(0)===u.fieldChannel.charAt(0)?Od(e,s,{suffix:"start"},{offset:a}):s7({channel:t,channelDef:n,scaleName:s,scale:o,stack:u,markDef:r,config:i,offset:a,defaultRef:l})}function YN(t,e){const n=gs(t),r=Bc(t);if(e[r]!==void 0)return{[r]:C3(t,e[r])};if(e[t]!==void 0)return{[r]:C3(t,e[t])};if(e[n]){const i=e[n];if(k2(i))Te(AXe(n));else return{[n]:C3(t,i)}}}function Wc(t,e){var n,r;const{config:i,encoding:s,markDef:o}=t,u=o.type,a=e0(e),l=gs(e),c=s[e],f=s[a],x=t.getScaleComponent(e),h=x?x.get("type"):void 0,p=o.orient,m=(r=(n=s[l])!==null&&n!==void 0?n:s.size)!==null&&r!==void 0?r:kt("size",o,i,{vgChannel:l}),g=u==="bar"&&(e==="x"?p==="vertical":p==="horizontal");return Le(c)&&(Kt(c.bin)||Mi(c.bin)||c.timeUnit&&!f)&&!(m&&!k2(m))&&!Cr(h)?bet({fieldDef:c,fieldDef2:f,channel:e,model:t}):(it(c)&&Cr(h)||g)&&!f?Cet(c,e,t):Rae(e,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function _et(t,e,n,r,i){if(k2(i))if(n){const o=n.get("type");if(o==="band")return{scale:e,band:i.band};i.band!==1&&(Te(FXe(o)),i=void 0)}else return{mult:i.band,field:{group:t}};else{if(Ye(i))return i;if(i)return{value:i}}if(n){const o=n.get("range");if(jc(o)&&nn(o.step))return{value:o.step-2}}return{value:HN(r.view,t)-2}}function Cet(t,e,n){const{markDef:r,encoding:i,config:s,stack:o}=n,u=r.orient,a=n.scaleName(e),l=n.getScaleComponent(e),c=gs(e),f=e0(e),x=OYe(e),h=n.scaleName(x),p=u==="horizontal"&&e==="y"||u==="vertical"&&e==="x";let m;(i.size||r.size)&&(p?m=br("size",n,{vgChannel:c,defaultRef:on(r.size)}):Te($Xe(r.type)));const g=aue({channel:e,fieldDef:t,markDef:r,config:s,scaleType:l==null?void 0:l.get("type"),useVlSizeChannel:p});m=m||{[c]:_et(c,h||a,l,s,g)};const y=(l==null?void 0:l.get("type"))!=="band"||!("band"in m[c])?"middle":"top",E=Tae(e,r,s,y),A=E==="xc"||E==="yc",{offset:S,offsetType:v}=w3({channel:e,markDef:r,encoding:i,model:n,bandPosition:A?.5:0}),_=s7({channel:e,channelDef:t,markDef:r,config:s,scaleName:a,scale:l,stack:o,offset:S,defaultRef:W7({model:n,defaultPos:"mid",channel:e,scaleName:a,scale:l}),bandPosition:A?v==="encoding"?0:.5:Ye(g)?{signal:`(1-${g})/2`}:k2(g)?(1-g.band)/2:0});if(c)return Object.assign({[E]:_},m);{const C=Bc(f),b=m[c],O=S?Object.assign(Object.assign({},b),{offset:S}):b;return{[E]:_,[C]:_e(_)?[_[0],Object.assign(Object.assign({},_[1]),{offset:O})]:Object.assign(Object.assign({},_),{offset:O})}}}function L3(t,e,n,r,i){if(Hse(t))return 0;const s=t==="x"||t==="y2"?-e/2:e/2;if(Ye(n)||Ye(i)||Ye(r)){const o=r0(n),u=r0(i),a=r0(r),l=a?`${a} + `:"",c=o?`(${o} ? -1 : 1) * `:"",f=u?`(${u} + ${s})`:s;return{signal:l+c+f}}else return i=i||0,r+(n?-i-s:+i+s)}function bet({fieldDef:t,fieldDef2:e,channel:n,model:r}){var i,s,o;const{config:u,markDef:a,encoding:l}=r,c=r.getScaleComponent(n),f=r.scaleName(n),x=c?c.get("type"):void 0,h=c.get("reverse"),p=aue({channel:n,fieldDef:t,markDef:a,config:u,scaleType:x}),m=(i=r.component.axes[n])===null||i===void 0?void 0:i[0],g=(s=m==null?void 0:m.get("translate"))!==null&&s!==void 0?s:.5,y=kr(n)&&(o=kt("binSpacing",a,u))!==null&&o!==void 0?o:0,E=e0(n),A=Bc(n),S=Bc(E),{offset:v}=w3({channel:n,markDef:a,encoding:l,model:r,bandPosition:0}),_=Ye(p)?{signal:`(1-${p.signal})/2`}:k2(p)?(1-p.band)/2:.5;if(Kt(t.bin)||t.timeUnit)return{[S]:Oae({fieldDef:t,scaleName:f,bandPosition:_,offset:L3(E,y,h,g,v)}),[A]:Oae({fieldDef:t,scaleName:f,bandPosition:Ye(_)?{signal:`1-${_.signal}`}:1-_,offset:L3(n,y,h,g,v)})};if(Mi(t.bin)){const C=Od(t,f,{},{offset:L3(E,y,h,g,v)});if(Le(e))return{[S]:C,[A]:Od(e,f,{},{offset:L3(n,y,h,g,v)})};if(Cd(t.bin)&&t.bin.step)return{[S]:C,[A]:{signal:`scale("${f}", ${$e(t,{expr:"datum"})} + ${t.bin.step})`,offset:L3(n,y,h,g,v)}}}Te(Toe(E))}function Oae({fieldDef:t,scaleName:e,bandPosition:n,offset:r}){return TN({scaleName:e,fieldOrDatumDef:t,bandPosition:n,offset:r})}const Tet=new Set(["aria","width","height"]);function Oo(t,e){const{fill:n=void 0,stroke:r=void 0}=e.color==="include"?bae(t):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Ret(t.markDef,e)),Nae(t,"fill",n)),Nae(t,"stroke",r)),br("opacity",t)),br("fillOpacity",t)),br("strokeOpacity",t)),br("strokeWidth",t)),br("strokeDash",t)),get(t)),vae(t)),G7(t,"href")),det(t))}function Nae(t,e,n){const{config:r,mark:i,markDef:s}=t;if(kt("invalid",s,r)==="hide"&&n&&!Uc(i)){const u=Oet(t,{invalid:!0,channels:gN});if(u)return{[e]:[{test:u,value:null},...Pe(n)]}}return n?{[e]:n}:{}}function Ret(t,e){return WYe.reduce((n,r)=>(!Tet.has(r)&&t[r]!==void 0&&e[r]!=="ignore"&&(n[r]=on(t[r])),n),{})}function Oet(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&zs(a)&&(s[l]=!0)}return s},{}),i=be(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>o7(o,e)).join(` ${s} `)}}function V7(t){const{config:e,markDef:n}=t;if(kt("invalid",n,e)){const i=Net(t,{channels:Da});if(i)return{defined:{signal:i}}}return{}}function Net(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&zs(a)&&(s[l]=!0)}return s},{}),i=be(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>o7(o,e)).join(` ${s} `)}}function Dae(t,e){if(e!==void 0)return{[t]:on(e)}}const Y7="voronoi",Fae={defined:t=>t.type==="point"&&t.nearest,parse:(t,e)=>{if(e.events)for(const n of e.events)n.markname=t.getName(Y7)},marks:(t,e,n)=>{const{x:r,y:i}=e.project.hasChannel,s=t.mark;if(Uc(s))return Te(ZYe(s)),n;const o={name:t.getName(Y7),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},vae(t,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let u=0,a=!1;return n.forEach((l,c)=>{var f;const x=(f=l.name)!==null&&f!==void 0?f:"";x===t.component.mark[0].name?u=c:x.indexOf(Y7)>=0&&(a=!0)}),a||n.splice(u+1,0,o),n}},wae={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!O7(t.bind),parse:(t,e,n)=>qae(e,n),topLevelSignals:(t,e,n)=>{const r=e.name,i=e.project,s=e.bind,o=e.init&&e.init[0],u=Fae.defined(e)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((a,l)=>{var c,f;const x=mn(`${r}_${a.field}`);n.filter(p=>p.name===x).length||n.unshift(Object.assign(Object.assign({name:x},o?{init:H2(o[l])}:{value:null}),{on:e.events?[{events:e.events,update:`datum && item().mark.marktype !== 'group' ? ${u}[${Fe(a.field)}] : null`}]:[],bind:(f=(c=s[a.field])!==null&&c!==void 0?c:s[a.channel])!==null&&f!==void 0?f:s}))}),n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.filter(l=>l.name===r+Vc)[0],o=r+F3,u=i.items.map(l=>mn(`${r}_${l.field}`)),a=u.map(l=>`${l} !== null`).join(" && ");return u.length&&(s.update=`${a} ? {fields: ${o}, values: [${u.join(", ")}]} : null`),delete s.value,delete s.on,n}},XN="_toggle",Lae={defined:t=>t.type==="point"&&!!t.toggle,signals:(t,e,n)=>n.concat({name:e.name+XN,value:!1,on:[{events:e.events,update:e.toggle}]}),modifyExpr:(t,e)=>{const n=e.name+Vc,r=e.name+XN;return`${r} ? null : ${n}, `+(e.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${G2(t)}}, `)+`${r} ? ${n} : null`}},Det={defined:t=>t.clear!==void 0&&t.clear!==!1,parse:(t,e)=>{e.clear&&(e.clear=je(e.clear)?hd(e.clear,"view"):e.clear)},topLevelSignals:(t,e,n)=>{if(wae.defined(e))for(const r of e.project.items){const i=n.findIndex(s=>s.name===mn(`${e.name}_${r.field}`));i!==-1&&n[i].on.push({events:e.clear,update:"null"})}return n},signals:(t,e,n)=>{function r(i,s){i!==-1&&n[i].on&&n[i].on.push({events:e.clear,update:s})}if(e.type==="interval")for(const i of e.project.items){const s=n.findIndex(o=>o.name===i.signals.visual);if(r(s,"[0, 0]"),s===-1){const o=n.findIndex(u=>u.name===i.signals.data);r(o,"null")}}else{let i=n.findIndex(s=>s.name===e.name+Vc);r(i,"null"),Lae.defined(e)&&(i=n.findIndex(s=>s.name===e.name+XN),r(i,"false"))}return n}},Iae={defined:t=>{const e=t.resolve==="global"&&t.bind&&O7(t.bind),n=t.project.items.length===1&&t.project.items[0].field!==N3;return e&&!n&&Te(nXe),e&&n},parse:(t,e,n)=>{var r;const i=ot(n);if(i.select=je(i.select)?{type:i.select,toggle:e.toggle}:Object.assign(Object.assign({},i.select),{toggle:e.toggle}),qae(e,i),Qe(n.select)&&(n.select.on||n.select.clear)){const u='event.item && indexof(event.item.mark.role, "legend") < 0';for(const a of e.events)a.filter=Pe((r=a.filter)!==null&&r!==void 0?r:[]),a.filter.includes(u)||a.filter.push(u)}const s=N7(e.bind)?e.bind.legend:"click",o=je(s)?hd(s,"view"):Pe(s);e.bind={legend:{merge:o}}},topLevelSignals:(t,e,n)=>{const r=e.name,i=N7(e.bind)&&e.bind.legend,s=o=>u=>{const a=ot(u);return a.markname=o,a};for(const o of e.project.items){if(!o.hasLegend)continue;const u=`${mn(o.field)}_legend`,a=`${r}_${u}`;if(n.filter(c=>c.name===a).length===0){const c=i.merge.map(s(`${u}_symbols`)).concat(i.merge.map(s(`${u}_labels`))).concat(i.merge.map(s(`${u}_entries`)));n.unshift(Object.assign(Object.assign({name:a},e.init?{}:{value:null}),{on:[{events:c,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${a}`,force:!0}]}))}}return n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.find(x=>x.name===r+Vc),o=r+F3,u=i.items.filter(x=>x.hasLegend).map(x=>mn(`${r}_${mn(x.field)}_legend`)),l=`${u.map(x=>`${x} !== null`).join(" && ")} ? {fields: ${o}, values: [${u.join(", ")}]} : null`;e.events&&u.length>0?s.on.push({events:u.map(x=>({signal:x})),update:l}):u.length>0&&(s.update=l,delete s.value,delete s.on);const c=n.find(x=>x.name===r+XN),f=N7(e.bind)&&e.bind.legend;return c&&(e.events?c.on.push(Object.assign(Object.assign({},c.on[0]),{events:f})):c.on[0].events=f),n}};function Fet(t,e,n){var r,i,s,o;const u=(r=t.fieldDef(e))===null||r===void 0?void 0:r.field;for(const a of Pi((i=t.component.selection)!==null&&i!==void 0?i:{})){const l=(s=a.project.hasField[u])!==null&&s!==void 0?s:a.project.hasChannel[e];if(l&&Iae.defined(a)){const c=(o=n.get("selections"))!==null&&o!==void 0?o:[];c.push(a.name),n.set("selections",c,!1),l.hasLegend=!0}}}const $ae="_translate_anchor",Bae="_translate_delta",wet={defined:t=>t.type==="interval"&&t.translate,signals:(t,e,n)=>{const r=e.name,i=Gc.defined(e),s=r+$ae,{x:o,y:u}=e.project.hasChannel;let a=hd(e.translate,"scope");return i||(a=a.map(l=>(l.between[0].markname=r+z2,l))),n.push({name:s,value:{},on:[{events:a.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(o!==void 0?`, extent_x: ${i?H7(t,yn):`slice(${o.signals.visual})`}`:"")+(u!==void 0?`, extent_y: ${i?H7(t,_r):`slice(${u.signals.visual})`}`:"")+"}"}]},{name:r+Bae,value:{},on:[{events:a,update:`{x: ${s}.x - x(unit), y: ${s}.y - y(unit)}`}]}),o!==void 0&&kae(t,e,o,"width",n),u!==void 0&&kae(t,e,u,"height",n),n}};function kae(t,e,n,r,i){var s,o;const u=e.name,a=u+$ae,l=u+Bae,c=n.channel,f=Gc.defined(e),x=i.filter(C=>C.name===n.signals[f?"data":"visual"])[0],h=t.getSizeSignalRef(r).signal,p=t.getScaleComponent(c),m=p.get("type"),g=p.get("reverse"),y=f?c===yn?g?"":"-":g?"-":"":"",E=`${a}.extent_${c}`,A=`${y}${l}.${c} / ${f?`${h}`:`span(${E})`}`,S=f?m==="log"?"panLog":m==="symlog"?"panSymlog":m==="pow"?"panPow":"panLinear":"panLinear",v=f?m==="pow"?`, ${(s=p.get("exponent"))!==null&&s!==void 0?s:1}`:m==="symlog"?`, ${(o=p.get("constant"))!==null&&o!==void 0?o:1}`:"":"",_=`${S}(${E}, ${A}${v})`;x.on.push({events:{signal:l},update:f?_:`clampRange(${_}, 0, ${h})`})}const Pae="_zoom_anchor",Mae="_zoom_delta",Let={defined:t=>t.type==="interval"&&t.zoom,signals:(t,e,n)=>{const r=e.name,i=Gc.defined(e),s=r+Mae,{x:o,y:u}=e.project.hasChannel,a=Fe(t.scaleName(yn)),l=Fe(t.scaleName(_r));let c=hd(e.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+z2,f))),n.push({name:r+Pae,on:[{events:c,update:i?"{"+[a?`x: invert(${a}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>!!f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:s,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),o!==void 0&&jae(t,e,o,"width",n),u!==void 0&&jae(t,e,u,"height",n),n}};function jae(t,e,n,r,i){var s,o;const u=e.name,a=n.channel,l=Gc.defined(e),c=i.filter(S=>S.name===n.signals[l?"data":"visual"])[0],f=t.getSizeSignalRef(r).signal,x=t.getScaleComponent(a),h=x.get("type"),p=l?H7(t,a):c.name,m=u+Mae,g=`${u}${Pae}.${a}`,y=l?h==="log"?"zoomLog":h==="symlog"?"zoomSymlog":h==="pow"?"zoomPow":"zoomLinear":"zoomLinear",E=l?h==="pow"?`, ${(s=x.get("exponent"))!==null&&s!==void 0?s:1}`:h==="symlog"?`, ${(o=x.get("constant"))!==null&&o!==void 0?o:1}`:"":"",A=`${y}(${p}, ${g}, ${m}${E})`;c.on.push({events:{signal:m},update:l?A:`clampRange(${A}, 0, ${f})`})}const wd="_store",Vc="_tuple",Iet="_modify",Uae="vlSelectionResolve",KN=[xet,cet,uet,Lae,wae,Gc,Iae,Det,wet,Let,Fae];function $et(t){let e=t.parent;for(;e&&!Eu(e);)e=e.parent;return e}function G2(t,{escape:e}={escape:!0}){let n=e?Fe(t.name):t.name;const r=$et(t);if(r){const{facet:i}=r;for(const s of To)i[s]&&(n+=` + '__facet_${s}_' + (facet[${Fe(r.vgField(s))}])`)}return n}function X7(t){var e;return Pi((e=t.component.selection)!==null&&e!==void 0?e:{}).reduce((n,r)=>n||r.project.items.some(i=>i.field===N3),!1)}function qae(t,e){(je(e.select)||!e.select.on)&&delete t.events,(je(e.select)||!e.select.clear)&&delete t.clear,(je(e.select)||!e.select.toggle)&&delete t.toggle}function K7(t){const e=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(e.push(...K7(t.object)),e.push(...K7(t.property))),e)}function Hae(t){return t.object.type==="MemberExpression"?Hae(t.object):t.object.name==="datum"}function zae(t){const e=_re(t),n=new Set;return e.visit(r=>{r.type==="MemberExpression"&&Hae(r)&&n.add(K7(r).slice(1).join("."))}),n}class W2 extends Ut{constructor(e,n,r){super(e),this.model=n,this.filter=r,this.expr=JN(this.model,this.filter,this),this._dependentFields=zae(this.expr)}clone(){return new W2(null,this.model,ot(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Bet(t,e){var n;const r={},i=t.config.selection;if(!e||!e.length)return r;for(const s of e){const o=mn(s.name),u=s.select,a=je(u)?u:u.type,l=Qe(u)?ot(u):{type:a},c=i[a];for(const x in c)x==="fields"||x==="encodings"||(x==="mark"&&(l[x]=Object.assign(Object.assign({},c[x]),l[x])),(l[x]===void 0||l[x]===!0)&&(l[x]=(n=c[x])!==null&&n!==void 0?n:l[x]));const f=r[o]=Object.assign(Object.assign({},l),{name:o,type:a,init:s.value,bind:s.bind,events:je(l.on)?hd(l.on,"scope"):Pe(ot(l.on))});for(const x of KN)x.defined(f)&&x.parse&&x.parse(t,f,s)}return r}function Qae(t,e,n,r="datum"){const i=je(e)?e:e.param,s=mn(i),o=Fe(s+wd);let u;try{u=t.getSelectionComponent(s,i)}catch{return`!!${s}`}if(u.project.timeUnit){const c=n??t.component.data.raw,f=u.project.timeUnit.clone();c.parent?f.insertAsParentOf(c):c.parent=f}const a=`vlSelectionTest(${o}, ${r}${u.resolve==="global"?")":`, ${Fe(u.resolve)})`}`,l=`length(data(${o}))`;return e.empty===!1?`${l} && ${a}`:`!${l} || ${a}`}function Gae(t,e,n){const r=mn(e),i=n.encoding;let s=n.field,o;try{o=t.getSelectionComponent(r,e)}catch{return r}if(!i&&!s)s=o.project.items[0].field,o.project.items.length>1&&Te(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${Fe(s)}.`);else if(i&&!s){const u=o.project.items.filter(a=>a.channel===i);!u.length||u.length>1?(s=o.project.items[0].field,Te((u.length?"Multiple ":"No ")+`matching ${Fe(i)} encoding found for selection ${Fe(n.param)}. Using "field": ${Fe(s)}.`)):s=u[0].field}return`${o.name}[${Fe(fu(s))}]`}function ket(t,e){var n;for(const[r,i]of Ad((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=t.getName(`lookup_${r}`);t.component.data.outputNodes[s]=i.materialized=new qi(new W2(e,t,{param:r}),s,Jt.Lookup,t.component.data.outputNodeRefCounts)}}function JN(t,e,n){return uN(e,r=>je(r)?r:mKe(r)?Qae(t,r,n):Ioe(r))}var ZN=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Pet(t,e){if(t)return _e(t)&&!Mc(t)?t.map(n=>m7(n,e)).join(", "):t}function J7(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function I3(t,e,n,r={header:!1}){var i,s;const o=t.combine(),{disable:u,orient:a,scale:l,labelExpr:c,title:f,zindex:x}=o,h=ZN(o,["disable","orient","scale","labelExpr","title","zindex"]);if(!u){for(const p in h){const m=mJe[p],g=h[p];if(m&&m!==e&&m!=="both")delete h[p];else if(O3(g)){const{condition:y}=g,E=ZN(g,["condition"]),A=Pe(y),S=mue[p];if(S){const{vgProp:v,part:_}=S,C=[...A.map(b=>{const{test:O}=b,R=ZN(b,["test"]);return Object.assign({test:JN(null,O)},R)}),E];J7(h,_,v,C),delete h[p]}else if(S===null){const v={signal:A.map(_=>{const{test:C}=_,b=ZN(_,["test"]);return`${JN(null,C)} ? ${soe(b)} : `}).join("")+soe(E)};h[p]=v}}else if(Ye(g)){const y=mue[p];if(y){const{vgProp:E,part:A}=y;J7(h,A,E,g),delete h[p]}}Tt(["labelAlign","labelBaseline"],p)&&h[p]===null&&delete h[p]}if(e==="grid"){if(!h.grid)return;if(h.encode){const{grid:p}=h.encode;h.encode=Object.assign({},p?{grid:p}:{}),Wt(h.encode)&&delete h.encode}return Object.assign(Object.assign({scale:l,orient:a},h),{domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:ir(x,0)})}else{if(!r.header&&t.mainExtracted)return;if(c!==void 0){let m=c;!((s=(i=h.encode)===null||i===void 0?void 0:i.labels)===null||s===void 0)&&s.update&&Ye(h.encode.labels.update.text)&&(m=N2(c,"datum.label",h.encode.labels.update.text.signal)),J7(h,"labels","text",{signal:m})}if(h.labelAlign===null&&delete h.labelAlign,h.encode){for(const m of yue)t.hasAxisPart(m)||delete h.encode[m];Wt(h.encode)&&delete h.encode}const p=Pet(f,n);return Object.assign(Object.assign(Object.assign(Object.assign({scale:l,orient:a,grid:!1},p?{title:p}:{}),h),n.aria===!1?{aria:!1}:{}),{zindex:ir(x,0)})}}}function Wae(t){const{axes:e}=t.component,n=[];for(const r of Da)if(e[r]){for(const i of e[r])if(!i.get("disable")&&!i.get("gridScale")){const s=r==="x"?"height":"width",o=t.getSizeSignalRef(s).signal;s!==o&&n.push({name:s,update:o})}}return n}function Met(t,e){const{x:n=[],y:r=[]}=t;return[...n.map(i=>I3(i,"grid",e)),...r.map(i=>I3(i,"grid",e)),...n.map(i=>I3(i,"main",e)),...r.map(i=>I3(i,"main",e))].filter(i=>i)}function Vae(t,e,n,r){return Object.assign.apply(null,[{},...t.map(i=>{if(i==="axisOrient"){const s=n==="x"?"bottom":"left",o=e[n==="x"?"axisBottom":"axisLeft"]||{},u=e[n==="x"?"axisTop":"axisRight"]||{},a=new Set([...be(o),...be(u)]),l={};for(const c of a.values())l[c]={signal:`${r.signal} === "${s}" ? ${r0(o[c])} : ${r0(u[c])}`};return l}return e[i]})])}function jet(t,e,n,r){const i=e==="band"?["axisDiscrete","axisBand"]:e==="point"?["axisDiscrete","axisPoint"]:Moe(e)?["axisQuantitative"]:e==="time"||e==="utc"?["axisTemporal"]:[],s=t==="x"?"axisX":"axisY",o=Ye(n)?"axisOrient":`axis${aN(n)}`,u=[...i,...i.map(l=>s+l.substr(4))],a=["axis",o,s];return{vlOnlyAxisConfig:Vae(u,r,t,n),vgAxisConfig:Vae(a,r,t,n),axisConfigStyle:Uet([...a,...u],r)}}function Uet(t,e){var n;const r=[{}];for(const i of t){let s=(n=e[i])===null||n===void 0?void 0:n.style;if(s){s=Pe(s);for(const o of s)r.push(e.style[o])}}return Object.assign.apply(null,r)}function Z7(t,e,n,r={}){var i;const s=uoe(t,n,e);if(s!==void 0)return{configFrom:"style",configValue:s};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((i=r[o])===null||i===void 0?void 0:i[t])!==void 0)return{configFrom:o,configValue:r[o][t]};return{}}const Yae={scale:({model:t,channel:e})=>t.scaleName(e),format:({fieldOrDatumDef:t,config:e,axis:n})=>{const{format:r,formatType:i}=n;return Joe(t,t.type,r,i,e,!0)},formatType:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return Zoe(r,e,n)},grid:({fieldOrDatumDef:t,axis:e,scaleType:n})=>{var r;return(r=e.grid)!==null&&r!==void 0?r:qet(n,t)},gridScale:({model:t,channel:e})=>Het(t,e),labelAlign:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelAlign||Kae(e,n,r),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelBaseline||Xae(e,n,r),labelFlush:({axis:t,fieldOrDatumDef:e,channel:n})=>{var r;return(r=t.labelFlush)!==null&&r!==void 0?r:Qet(e.type,n)},labelOverlap:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{var r;return(r=t.labelOverlap)!==null&&r!==void 0?r:Get(e.type,n,Le(e)&&!!e.timeUnit,Le(e)?e.sort:void 0)},orient:({orient:t})=>t,tickCount:({channel:t,model:e,axis:n,fieldOrDatumDef:r,scaleType:i})=>{var s;const o=t==="x"?"width":t==="y"?"height":void 0,u=o?e.getSizeSignalRef(o):void 0;return(s=n.tickCount)!==null&&s!==void 0?s:Vet({fieldOrDatumDef:r,scaleType:i,size:u,values:n.values})},title:({axis:t,model:e,channel:n})=>{if(t.title!==void 0)return t.title;const r=Jae(e,n);if(r!==void 0)return r;const i=e.typedFieldDef(n),s=n==="x"?"x2":"y2",o=e.fieldDef(s);return loe(i?[oue(i)]:[],Le(o)?[oue(o)]:[])},values:({axis:t,fieldOrDatumDef:e})=>Yet(t,e),zindex:({axis:t,fieldOrDatumDef:e,mark:n})=>{var r;return(r=t.zindex)!==null&&r!==void 0?r:Xet(n,e)}};function qet(t,e){return!Cr(t)&&Le(e)&&!Kt(e==null?void 0:e.bin)&&!Mi(e==null?void 0:e.bin)}function Het(t,e){const n=e==="x"?"y":"x";if(t.getScaleComponent(n))return t.scaleName(n)}function zet(t,e,n,r,i){const s=e==null?void 0:e.labelAngle;if(s!==void 0)return Ye(s)?s:lN(s);{const{configValue:o}=Z7("labelAngle",r,e==null?void 0:e.style,i);return o!==void 0?lN(o):n===yn&&Tt([Z8,J8],t.type)&&!(Le(t)&&t.timeUnit)?270:void 0}}function eP(t){return`(((${t.signal} % 360) + 360) % 360)`}function Xae(t,e,n,r){if(t!==void 0)if(n==="x"){if(Ye(t)){const i=eP(t),s=Ye(e)?`(${e.signal} === "top")`:e==="top";return{signal:`(45 < ${i} && ${i} < 135) || (225 < ${i} && ${i} < 315) ? "middle" :(${i} <= 45 || 315 <= ${i}) === ${s} ? "bottom" : "top"`}}if(45<t&&t<135||225<t&&t<315)return"middle";if(Ye(e)){const i=t<=45||315<=t?"===":"!==";return{signal:`${e.signal} ${i} "top" ? "bottom" : "top"`}}return(t<=45||315<=t)==(e==="top")?"bottom":"top"}else{if(Ye(t)){const i=eP(t),s=Ye(e)?`(${e.signal} === "left")`:e==="left";return{signal:`${i} <= 45 || 315 <= ${i} || (135 <= ${i} && ${i} <= 225) ? ${r?'"middle"':"null"} : (45 <= ${i} && ${i} <= 135) === ${s} ? "top" : "bottom"`}}if(t<=45||315<=t||135<=t&&t<=225)return r?"middle":null;if(Ye(e)){const i=45<=t&&t<=135?"===":"!==";return{signal:`${e.signal} ${i} "left" ? "top" : "bottom"`}}return(45<=t&&t<=135)==(e==="left")?"top":"bottom"}}function Kae(t,e,n){if(t===void 0)return;const r=n==="x",i=r?0:90,s=r?"bottom":"left";if(Ye(t)){const o=eP(t),u=Ye(e)?`(${e.signal} === "${s}")`:e===s;return{signal:`(${i?`(${o} + 90)`:o} % 180 === 0) ? ${r?null:'"center"'} :(${i} < ${o} && ${o} < ${180+i}) === ${u} ? "left" : "right"`}}if((t+i)%180===0)return r?null:"center";if(Ye(e)){const o=i<t&&t<180+i?"===":"!==";return{signal:`${`${e.signal} ${o} "${s}"`} ? "left" : "right"`}}return(i<t&&t<180+i)==(e===s)?"left":"right"}function Qet(t,e){if(e==="x"&&Tt(["quantitative","temporal"],t))return!0}function Get(t,e,n,r){if(n&&!Qe(r)||t!=="nominal"&&t!=="ordinal")return e==="log"||e==="symlog"?"greedy":!0}function Wet(t){return t==="x"?"bottom":"left"}function Vet({fieldOrDatumDef:t,scaleType:e,size:n,values:r}){var i;if(!r&&!Cr(e)&&e!=="log"){if(Le(t)){if(Kt(t.bin))return{signal:`ceil(${n.signal}/10)`};if(t.timeUnit&&Tt(["month","hours","day","quarter"],(i=ji(t.timeUnit))===null||i===void 0?void 0:i.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function Jae(t,e){const n=e==="x"?"x2":"y2",r=t.fieldDef(e),i=t.fieldDef(n),s=r?r.title:void 0,o=i?i.title:void 0;if(s&&o)return coe(s,o);if(s)return s;if(o)return o;if(s!==void 0)return s;if(o!==void 0)return o}function Yet(t,e){const n=t.values;if(_e(n))return gue(e,n);if(Ye(n))return n}function Xet(t,e){return t==="rect"&&wN(e)?1:0}class V2 extends Ut{constructor(e,n){super(e),this.transform=n,this._dependentFields=zae(this.transform.calculate)}clone(){return new V2(null,ot(this.transform))}static parseAllForSortIndex(e,n){return n.forEachFieldDef((r,i)=>{if(Dd(r)&&sue(r.sort)){const{field:s,timeUnit:o}=r,u=r.sort,a=u.map((l,c)=>`${Ioe({field:s,timeUnit:o,equal:l})} ? ${c} : `).join("")+u.length;e=new V2(e,{calculate:a,as:Y2(r,i,{forAs:!0})})}}),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${bt(this.transform)}`}}function Y2(t,e,n){return $e(t,Object.assign({prefix:e,suffix:"sort_index"},n??{}))}function eD(t,e){return Tt(["top","bottom"],e)?"column":Tt(["left","right"],e)||t==="row"?"row":"column"}function X2(t,e,n,r){const i=r==="row"?n.headerRow:r==="column"?n.headerColumn:n.headerFacet;return ir((e||{})[t],i[t],n.header[t])}function tD(t,e,n,r){const i={};for(const s of t){const o=X2(s,e||{},n,r);o!==void 0&&(i[s]=o)}return i}const tP=["row","column"],nP=["header","footer"];function Ket(t,e){const n=t.component.layoutHeaders[e].title,r=t.config?t.config:void 0,i=t.component.layoutHeaders[e].facetFieldDef?t.component.layoutHeaders[e].facetFieldDef:void 0,{titleAnchor:s,titleAngle:o,titleOrient:u}=tD(["titleAnchor","titleAngle","titleOrient"],i.header,r,e),a=eD(e,u),l=lN(o);return{name:`${e}-title`,type:"group",role:`${a}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:n},e==="row"?{orient:"left"}:{}),{style:"guide-title"}),ele(l,a)),Zae(a,l,s)),tle(r,i,e,MJe,Pue))}}function Zae(t,e,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const r=Kae(e,t==="row"?"left":"top",t==="row"?"y":"x");return r?{align:r}:{}}function ele(t,e){const n=Xae(t,e==="row"?"left":"top",e==="row"?"y":"x",!0);return n?{baseline:n}:{}}function Jet(t,e){const n=t.component.layoutHeaders[e],r=[];for(const i of nP)if(n[i])for(const s of n[i]){const o=ett(t,e,i,n,s);o!=null&&r.push(o)}return r}function Zet(t,e){var n;const{sort:r}=t;return La(r)?{field:$e(r,{expr:"datum"}),order:(n=r.order)!==null&&n!==void 0?n:"ascending"}:_e(r)?{field:Y2(t,e,{expr:"datum"}),order:"ascending"}:{field:$e(t,{expr:"datum"}),order:r??"ascending"}}function rP(t,e,n){const{format:r,formatType:i,labelAngle:s,labelAnchor:o,labelOrient:u,labelExpr:a}=tD(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,n,e),l=a7({fieldOrDatumDef:t,format:r,formatType:i,expr:"parent",config:n}).signal,c=eD(e,u);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:a?N2(N2(a,"datum.label",l),"datum.value",$e(t,{expr:"parent"})):l}},e==="row"?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),ele(s,c)),Zae(c,s,o)),tle(n,t,e,jJe,Mue))}function ett(t,e,n,r,i){if(i){let s=null;const{facetFieldDef:o}=r,u=t.config?t.config:void 0;if(o&&i.labels){const{labelOrient:f}=tD(["labelOrient"],o.header,u,e);(e==="row"&&!Tt(["top","bottom"],f)||e==="column"&&!Tt(["left","right"],f))&&(s=rP(o,e,u))}const a=Eu(t)&&!b3(t.facet),l=i.axes,c=(l==null?void 0:l.length)>0;if(s||c){const f=e==="row"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName(`${e}_${n}`),type:"group",role:`${e}-${n}`},r.facetFieldDef?{from:{data:t.getName(`${e}_domain`)},sort:Zet(o,e)}:{}),c&&a?{from:{data:t.getName(`facet_domain_${e}`)}}:{}),s?{title:s}:{}),i.sizeSignal?{encode:{update:{[f]:i.sizeSignal}}}:{}),c?{axes:l}:{})}}return null}const ttt={column:{start:0,end:1},row:{start:1,end:0}};function ntt(t,e){return ttt[e][t]}function rtt(t,e){const n={};for(const r of To){const i=t[r];if(i!=null&&i.facetFieldDef){const{titleAnchor:s,titleOrient:o}=tD(["titleAnchor","titleOrient"],i.facetFieldDef.header,e,r),u=eD(r,o),a=ntt(s,u);a!==void 0&&(n[u]=a)}}return Wt(n)?void 0:n}function tle(t,e,n,r,i){const s={};for(const o of r){if(!i[o])continue;const u=X2(o,e==null?void 0:e.header,t,n);u!==void 0&&(s[i[o]]=u)}return s}function iP(t){return[...nD(t,"width"),...nD(t,"height"),...nD(t,"childWidth"),...nD(t,"childHeight")]}function nD(t,e){const n=e==="width"?"x":"y",r=t.component.layoutSize.get(e);if(!r||r==="merged")return[];const i=t.getSizeSignalRef(e).signal;if(r==="step"){const s=t.getScaleComponent(n);if(s){const o=s.get("type"),u=s.get("range");if(Cr(o)&&jc(u)){const a=t.scaleName(n);return Eu(t.parent)&&t.parent.component.resolve.scale[n]==="independent"?[nle(a,u)]:[nle(a,u),{name:i,update:rle(a,s,`domain('${a}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(r=="container"){const s=i.endsWith("width"),o=s?"containerSize()[0]":"containerSize()[1]",u=L7(t.config.view,s?"width":"height"),a=`isFinite(${o}) ? ${o} : ${u}`;return[{name:i,init:a,on:[{update:a,events:"window:resize"}]}]}else return[{name:i,value:r}]}function nle(t,e){const n=`${t}_step`;return Ye(e.step)?{name:n,update:e.step.signal}:{name:n,value:e.step}}function rle(t,e,n){const r=e.get("type"),i=e.get("padding"),s=ir(e.get("paddingOuter"),i);let o=e.get("paddingInner");return o=r==="band"?o!==void 0?o:i:1,`bandspace(${n}, ${r0(o)}, ${r0(s)}) * ${t}_step`}function ile(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function sle(t,e){return be(t).reduce((n,r)=>{const i=t[r];return Object.assign(Object.assign({},n),Q2(e,i,r,s=>on(s.value)))},{})}function ole(t,e){if(Eu(e))return t==="theta"?"independent":"shared";if(Z2(e))return"shared";if(AP(e))return kr(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function sP(t,e){const n=t.scale[e],r=kr(e)?"axis":"legend";return n==="independent"?(t[r][e]==="shared"&&Te(jXe(e)),"independent"):t[r][e]||"shared"}const itt=Object.assign(Object.assign({},qJe),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),ule=be(itt);class stt extends o0{}const ale={symbols:ott,gradient:utt,labels:att,entries:ltt};function ott(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i,legendType:s}){var o,u,a,l,c,f,x,h;if(s!=="symbol")return;const{markDef:p,encoding:m,config:g,mark:y}=n,E=p.filled&&y!=="trail";let A=Object.assign(Object.assign({},XYe({},n,qKe)),bae(n,{filled:E}));const S=(o=i.get("symbolOpacity"))!==null&&o!==void 0?o:g.legend.symbolOpacity,v=(u=i.get("symbolFillColor"))!==null&&u!==void 0?u:g.legend.symbolFillColor,_=(a=i.get("symbolStrokeColor"))!==null&&a!==void 0?a:g.legend.symbolStrokeColor,C=S===void 0?(l=lle(m.opacity))!==null&&l!==void 0?l:p.opacity:void 0;if(A.fill){if(r==="fill"||E&&r===hs)delete A.fill;else if(A.fill.field)v?delete A.fill:(A.fill=on((c=g.legend.symbolBaseFillColor)!==null&&c!==void 0?c:"black"),A.fillOpacity=on(C??1));else if(_e(A.fill)){const b=(h=(x=oP((f=m.fill)!==null&&f!==void 0?f:m.color))!==null&&x!==void 0?x:p.fill)!==null&&h!==void 0?h:E&&p.color;b&&(A.fill=on(b))}}if(A.stroke){if(r==="stroke"||!E&&r===hs)delete A.stroke;else if(A.stroke.field||_)delete A.stroke;else if(_e(A.stroke)){const b=ir(oP(m.stroke||m.color),p.stroke,E?p.color:void 0);b&&(A.stroke={value:b})}}if(r!==Zl){const b=Le(e)&&fle(n,i,e);b?A.opacity=[Object.assign({test:b},on(C??1)),on(g.legend.unselectedOpacity)]:C&&(A.opacity=on(C))}return A=Object.assign(Object.assign({},A),t),Wt(A)?void 0:A}function utt(t,{model:e,legendType:n,legendCmpt:r}){var i;if(n!=="gradient")return;const{config:s,markDef:o,encoding:u}=e;let a={};const c=((i=r.get("gradientOpacity"))!==null&&i!==void 0?i:s.legend.gradientOpacity)===void 0?lle(u.opacity)||o.opacity:void 0;return c&&(a.opacity=on(c)),a=Object.assign(Object.assign({},a),t),Wt(a)?void 0:a}function att(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i}){const s=n.legend(r)||{},o=n.config,u=Le(e)?fle(n,i,e):void 0,a=u?[{test:u,value:1},{value:o.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=s,f=Nd(c)?l7({fieldOrDatumDef:e,field:"datum.value",format:l,formatType:c,config:o}):void 0,x=Object.assign(Object.assign(Object.assign({},a?{opacity:a}:{}),f?{text:f}:{}),t);return Wt(x)?void 0:x}function ltt(t,{legendCmpt:e}){const n=e.get("selections");return n!=null&&n.length?Object.assign(Object.assign({},t),{fill:{value:"transparent"}}):t}function lle(t){return cle(t,(e,n)=>Math.max(e,n.value))}function oP(t){return cle(t,(e,n)=>ir(e,n.value))}function cle(t,e){if(sJe(t))return Pe(t.condition).reduce(e,t.value);if(gu(t))return t.value}function fle(t,e,n){const r=e.get("selections");if(!(r!=null&&r.length))return;const i=Fe(n.field);return r.map(s=>`(!length(data(${Fe(mn(s)+wd)})) || (${s}[${i}] && indexof(${s}[${i}], datum.value) >= 0))`).join(" || ")}const xle={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:e,config:n})=>{const{format:r,formatType:i}=e;return Joe(t,t.type,r,i,n,!1)},formatType:({legend:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return Zoe(r,e,n)},gradientLength:t=>{var e,n;const{legend:r,legendConfig:i}=t;return(n=(e=r.gradientLength)!==null&&e!==void 0?e:i.gradientLength)!==null&&n!==void 0?n:gtt(t)},labelOverlap:({legend:t,legendConfig:e,scaleType:n})=>{var r,i;return(i=(r=t.labelOverlap)!==null&&r!==void 0?r:e.labelOverlap)!==null&&i!==void 0?i:mtt(n)},symbolType:({legend:t,markDef:e,channel:n,encoding:r})=>{var i;return(i=t.symbolType)!==null&&i!==void 0?i:ftt(e.type,n,r.shape,e.shape)},title:({fieldOrDatumDef:t,config:e})=>P2(t,e,{allowDisabling:!0}),type:({legendType:t,scaleType:e,channel:n})=>{if(F2(n)&&pu(e)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:e})=>ctt(e,t)};function ctt(t,e){const n=t.values;if(_e(n))return gue(e,n);if(Ye(n))return n}function ftt(t,e,n,r){var i;if(e!=="shape"){const s=(i=oP(n))!==null&&i!==void 0?i:r;if(s)return s}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"}}function xtt(t){const{legend:e}=t;return ir(e.type,dtt(t))}function dtt({channel:t,timeUnit:e,scaleType:n}){if(F2(t)){if(Tt(["quarter","month","day"],e))return"symbol";if(pu(n))return"gradient"}return"symbol"}function htt({legendConfig:t,legendType:e,orient:n,legend:r}){var i,s;return(s=(i=r.direction)!==null&&i!==void 0?i:t[e?"gradientDirection":"symbolDirection"])!==null&&s!==void 0?s:ptt(n,e)}function ptt(t,e){switch(t){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return e==="gradient"?"horizontal":void 0}}function gtt({legendConfig:t,model:e,direction:n,orient:r,scaleType:i}){const{gradientHorizontalMaxLength:s,gradientHorizontalMinLength:o,gradientVerticalMaxLength:u,gradientVerticalMinLength:a}=t;if(pu(i))return n==="horizontal"?r==="top"||r==="bottom"?dle(e,"width",o,s):o:dle(e,"height",a,u)}function dle(t,e,n,r){return{signal:`clamp(${t.getSizeSignalRef(e).signal}, ${n}, ${r})`}}function mtt(t){if(Tt(["quantile","threshold","log","symlog"],t))return"greedy"}function hle(t){const e=zn(t)?ytt(t):vtt(t);return t.component.legends=e,e}function ytt(t){const{encoding:e}=t,n={};for(const r of[hs,...Uue]){const i=sr(e[r]);!i||!t.getScaleComponent(r)||r===ps&&Le(i)&&i.type===$2||(n[r]=Stt(t,r))}return n}function Ett(t,e){const n=t.scaleName(e);if(t.mark==="trail"){if(e==="color")return{stroke:n};if(e==="size")return{strokeWidth:n}}return e==="color"?t.markDef.filled?{fill:n}:{stroke:n}:{[e]:n}}function Att(t,e,n,r){switch(e){case"disable":return n!==void 0;case"values":return!!(n!=null&&n.values);case"title":if(e==="title"&&t===(r==null?void 0:r.title))return!0}return t===(n||{})[e]}function Stt(t,e){var n,r,i;let s=t.legend(e);const{markDef:o,encoding:u,config:a}=t,l=a.legend,c=new stt({},Ett(t,e));Fet(t,e,c);const f=s!==void 0?!s:l.disable;if(c.set("disable",f,s!==void 0),f)return c;s=s||{};const x=t.getScaleComponent(e).get("type"),h=sr(u[e]),p=Le(h)?(n=ji(h.timeUnit))===null||n===void 0?void 0:n.unit:void 0,m=s.orient||a.legend.orient||"right",g=xtt({legend:s,channel:e,timeUnit:p,scaleType:x}),y=htt({legend:s,legendType:g,orient:m,legendConfig:l}),E={legend:s,channel:e,model:t,markDef:o,encoding:u,fieldOrDatumDef:h,legendConfig:l,config:a,scaleType:x,orient:m,legendType:g,direction:y};for(const C of ule){if(g==="gradient"&&C.startsWith("symbol")||g==="symbol"&&C.startsWith("gradient"))continue;const b=C in xle?xle[C](E):s[C];if(b!==void 0){const O=Att(b,C,s,t.fieldDef(e));(O||a.legend[C]===void 0)&&c.set(C,b,O)}}const A=(r=s==null?void 0:s.encoding)!==null&&r!==void 0?r:{},S=c.get("selections"),v={},_={fieldOrDatumDef:h,model:t,channel:e,legendCmpt:c,legendType:g};for(const C of["labels","legend","title","symbols","gradient","entries"]){const b=sle((i=A[C])!==null&&i!==void 0?i:{},t),O=C in ale?ale[C](b,_):b;O!==void 0&&!Wt(O)&&(v[C]=Object.assign(Object.assign(Object.assign({},S!=null&&S.length&&Le(h)?{name:`${mn(h.field)}_legend_${C}`}:{}),S!=null&&S.length?{interactive:!!S}:{}),{update:O}))}return Wt(v)||c.set("encode",v,!!(s!=null&&s.encoding)),c}function vtt(t){const{legends:e,resolve:n}=t.component;for(const r of t.children){hle(r);for(const i of be(r.component.legends))n.legend[i]=sP(t.component.resolve,i),n.legend[i]==="shared"&&(e[i]=ple(e[i],r.component.legends[i]),e[i]||(n.legend[i]="independent",delete e[i]))}for(const r of be(e))for(const i of t.children)i.component.legends[r]&&n.legend[r]==="shared"&&delete i.component.legends[r];return e}function ple(t,e){var n,r,i,s;if(!t)return e.clone();const o=t.getWithExplicit("orient"),u=e.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;let a=!1;for(const l of ule){const c=zc(t.getWithExplicit(l),e.getWithExplicit(l),l,"legend",(f,x)=>{switch(l){case"symbolType":return _tt(f,x);case"title":return foe(f,x);case"type":return a=!0,Qs("symbol")}return GN(f,x,l,"legend")});t.setWithExplicit(l,c)}return a&&(!((r=(n=t.implicit)===null||n===void 0?void 0:n.encode)===null||r===void 0)&&r.gradient&&C8(t.implicit,["encode","gradient"]),!((s=(i=t.explicit)===null||i===void 0?void 0:i.encode)===null||s===void 0)&&s.gradient&&C8(t.explicit,["encode","gradient"])),t}function _tt(t,e){return e.value==="circle"?e:t}var Ctt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function btt(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function gle(t){const e=t.component.legends,n={};for(const i of be(e)){const s=t.getScaleComponent(i),o=sn(s.get("domains"));if(n[o])for(const u of n[o])ple(u,e[i])||n[o].push(e[i]);else n[o]=[e[i].clone()]}return Pi(n).flat().map(i=>Ttt(i,t.config)).filter(i=>i!==void 0)}function Ttt(t,e){var n,r,i;const s=t.combine(),{disable:o,labelExpr:u,selections:a}=s,l=Ctt(s,["disable","labelExpr","selections"]);if(!o){if(e.aria===!1&&l.aria==null&&(l.aria=!1),!((n=l.encode)===null||n===void 0)&&n.symbols){const c=l.encode.symbols.update;c.fill&&c.fill.value!=="transparent"&&!c.stroke&&!l.stroke&&(c.stroke={value:"transparent"});for(const f of Uue)l[f]&&delete c[f]}if(l.title||delete l.title,u!==void 0){let c=u;!((i=(r=l.encode)===null||r===void 0?void 0:r.labels)===null||i===void 0)&&i.update&&Ye(l.encode.labels.update.text)&&(c=N2(u,"datum.label",l.encode.labels.update.text.signal)),btt(l,"labels","text",{signal:c})}return l}}function Rtt(t){return Z2(t)||AP(t)?Ott(t):mle(t)}function Ott(t){return t.children.reduce((e,n)=>e.concat(n.assembleProjections()),mle(t))}function mle(t){const e=t.component.projection;if(!e||e.merged)return[];const n=e.combine(),{name:r}=n;if(e.data){const i={signal:`[${e.size.map(o=>o.signal).join(", ")}]`},s=e.data.reduce((o,u)=>{const a=Ye(u)?u.signal:`data('${t.lookupDataSource(u)}')`;return Tt(o,a)||o.push(a),o},[]);if(s.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:r,size:i,fit:{signal:s.length>1?`[${s.join(", ")}]`:s[0]}},n)]}else return[Object.assign(Object.assign({name:r},{translate:{signal:"[width / 2, height / 2]"}}),n)]}const Ntt=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class yle extends o0{constructor(e,n,r,i){super(Object.assign({},n),{name:e}),this.specifiedProjection=n,this.size=r,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function Ele(t){t.component.projection=zn(t)?Dtt(t):Ltt(t)}function Dtt(t){var e;if(t.hasProjection){const n=ms(t.specifiedProjection),r=!(n&&(n.scale!=null||n.translate!=null)),i=r?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,s=r?Ftt(t):void 0,o=new yle(t.projectionName(!0),Object.assign(Object.assign({},(e=ms(t.config.projection))!==null&&e!==void 0?e:{}),n??{}),i,s);return o.get("type")||o.set("type","equalEarth",!1),o}}function Ftt(t){const e=[],{encoding:n}=t;for(const r of[[Ra,Ta],[bo,hu]])(sr(n[r[0]])||sr(n[r[1]]))&&e.push({signal:t.getName(`geojson_${e.length}`)});return t.channelHasField(ps)&&t.typedFieldDef(ps).type===$2&&e.push({signal:t.getName(`geojson_${e.length}`)}),e.length===0&&e.push(t.requestDataName(Jt.Main)),e}function wtt(t,e){const n=Bse(Ntt,i=>!!(!Je(t.explicit,i)&&!Je(e.explicit,i)||Je(t.explicit,i)&&Je(e.explicit,i)&&Gl(t.get(i),e.get(i))));if(Gl(t.size,e.size)){if(n)return t;if(Gl(t.explicit,{}))return e;if(Gl(e.explicit,{}))return t}return null}function Ltt(t){if(t.children.length===0)return;let e;for(const r of t.children)Ele(r);const n=Bse(t.children,r=>{const i=r.component.projection;if(i)if(e){const s=wtt(e,i);return s&&(e=s),!!s}else return e=i,!0;else return!0});if(e&&n){const r=t.projectionName(!0),i=new yle(r,e.specifiedProjection,e.size,ot(e.data));for(const s of t.children){const o=s.component.projection;o&&(o.isFit&&i.data.push(...s.component.projection.data),s.renameProjection(o.get("name"),r),o.merged=!0)}return i}}var Itt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function $tt(t,e,n,r){var i,s;if(R3(e,n)){const o=zn(t)?(s=(i=t.axis(n))!==null&&i!==void 0?i:t.legend(n))!==null&&s!==void 0?s:{}:{},u=$e(e,{expr:"datum"}),a=$e(e,{expr:"datum",binSuffix:"end"});return{formulaAs:$e(e,{binSuffix:"range",forAs:!0}),formula:RN(u,a,o.format,o.formatType,r)}}return{}}function Ale(t,e){return`${eoe(t)}_${e}`}function Btt(t,e){return{signal:t.getName(`${e}_bins`),extentSignal:t.getName(`${e}_extent`)}}function uP(t,e,n){var r;const i=(r=$N(n,void 0))!==null&&r!==void 0?r:{},s=Ale(i,e);return t.getName(`${s}_bins`)}function ktt(t){return"as"in t}function Sle(t,e,n){let r,i;ktt(t)?r=je(t.as)?[t.as,`${t.as}_end`]:[t.as[0],t.as[1]]:r=[$e(t,{forAs:!0}),$e(t,{binSuffix:"end",forAs:!0})];const s=Object.assign({},$N(e,void 0)),o=Ale(s,t.field),{signal:u,extentSignal:a}=Btt(n,o);if(mN(s.extent)){const c=s.extent;i=Gae(n,c.param,c),delete s.extent}const l=Object.assign(Object.assign(Object.assign({bin:s,field:t.field,as:[r]},u?{signal:u}:{}),a?{extentSignal:a}:{}),i?{span:i}:{});return{key:o,binComponent:l}}class ja extends Ut{constructor(e,n){super(e),this.bins=n}clone(){return new ja(null,ot(this.bins))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s,o)=>{if(Ro(s)&&Kt(s.bin)){const{key:u,binComponent:a}=Sle(s,s.bin,n);i[u]=Object.assign(Object.assign(Object.assign({},a),i[u]),$tt(n,s,o,n.config))}return i},{});return Wt(r)?null:new ja(e,r)}static makeFromTransform(e,n,r){const{key:i,binComponent:s}=Sle(n,n.bin,r);return new ja(e,{[i]:s})}merge(e,n){for(const r of be(e.bins))r in this.bins?(n(e.bins[r].signal,this.bins[r].signal),this.bins[r].as=Wl([...this.bins[r].as,...e.bins[r].as],bt)):this.bins[r]=e.bins[r];for(const r of e.children)e.removeChild(r),r.parent=this;e.remove()}producedFields(){return new Set(Pi(this.bins).map(e=>e.as).flat(2))}dependentFields(){return new Set(Pi(this.bins).map(e=>e.field))}hash(){return`Bin ${bt(this.bins)}`}assemble(){return Pi(this.bins).flatMap(e=>{const n=[],[r,...i]=e.as,s=e.bin,{extent:o}=s,u=Itt(s,["extent"]),a=Object.assign(Object.assign(Object.assign({type:"bin",field:fu(e.field),as:r,signal:e.signal},mN(o)?{extent:null}:{extent:o}),e.span?{span:{signal:`span(${e.span})`}}:{}),u);!o&&e.extentSignal&&(n.push({type:"extent",field:fu(e.field),signal:e.extentSignal}),a.extent={signal:e.extentSignal}),n.push(a);for(const l of i)for(let c=0;c<2;c++)n.push({type:"formula",expr:$e({field:r[c]},{expr:"datum"}),as:l[c]});return e.formula&&n.push({type:"formula",expr:e.formula,as:e.formulaAs}),n})}}function Ptt(t,e,n,r){var i;const s=zn(r)?r.encoding[e0(e)]:void 0;if(Ro(n)&&zn(r)&&lue(n,s,r.markDef,r.config))t.add($e(n,{})),t.add($e(n,{suffix:"end"})),n.bin&&R3(n,e)&&t.add($e(n,{binSuffix:"range"}));else if(SYe(e)){const o=AYe(e);t.add(r.getName(o))}else t.add($e(n));return Dd(n)&&FKe((i=n.scale)===null||i===void 0?void 0:i.range)&&t.add(n.scale.range.field),t}function Mtt(t,e){var n;for(const r of be(e)){const i=e[r];for(const s of be(i))r in t?t[r][s]=new Set([...(n=t[r][s])!==null&&n!==void 0?n:[],...i[s]]):t[r]={[s]:i[s]}}}class mu extends Ut{constructor(e,n,r){super(e),this.dimensions=n,this.measures=r}clone(){return new mu(null,new Set(this.dimensions),ot(this.measures))}get groupBy(){return this.dimensions}static makeFromEncoding(e,n){let r=!1;n.forEachFieldDef(o=>{o.aggregate&&(r=!0)});const i={},s=new Set;return!r||(n.forEachFieldDef((o,u)=>{var a,l,c,f;const{aggregate:x,field:h}=o;if(x)if(x==="count")(a=i["*"])!==null&&a!==void 0||(i["*"]={}),i["*"].count=new Set([$e(o,{forAs:!0})]);else{if(t0(x)||Pc(x)){const p=t0(x)?"argmin":"argmax",m=x[p];(l=i[m])!==null&&l!==void 0||(i[m]={}),i[m][p]=new Set([$e({op:p,field:m},{forAs:!0})])}else(c=i[h])!==null&&c!==void 0||(i[h]={}),i[h][x]=new Set([$e(o,{forAs:!0})]);kc(u)&&n.scaleDomain(u)==="unaggregated"&&((f=i[h])!==null&&f!==void 0||(i[h]={}),i[h].min=new Set([$e({field:h,aggregate:"min"},{forAs:!0})]),i[h].max=new Set([$e({field:h,aggregate:"max"},{forAs:!0})]))}else Ptt(s,u,o,n)}),s.size+be(i).length===0)?null:new mu(e,s,i)}static makeFromTransform(e,n){var r,i,s;const o=new Set,u={};for(const a of n.aggregate){const{op:l,field:c,as:f}=a;l&&(l==="count"?((r=u["*"])!==null&&r!==void 0||(u["*"]={}),u["*"].count=new Set([f||$e(a,{forAs:!0})])):((i=u[c])!==null&&i!==void 0||(u[c]={}),u[c][l]=new Set([f||$e(a,{forAs:!0})])))}for(const a of(s=n.groupby)!==null&&s!==void 0?s:[])o.add(a);return o.size+be(u).length===0?null:new mu(e,o,u)}merge(e){return xYe(this.dimensions,e.dimensions)?(Mtt(this.measures,e.measures),!0):(nKe("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...be(this.measures)])}producedFields(){const e=new Set;for(const n of be(this.measures))for(const r of be(this.measures[n])){const i=this.measures[n][r];i.size===0?e.add(`${r}_${n}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${bt({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],n=[],r=[];for(const s of be(this.measures))for(const o of be(this.measures[s]))for(const u of this.measures[s][o])r.push(u),e.push(o),n.push(s==="*"?null:fu(s));return{type:"aggregate",groupby:[...this.dimensions].map(fu),ops:e,fields:n,as:r}}}class K2 extends Ut{constructor(e,n,r,i){super(e),this.model=n,this.name=r,this.data=i;for(const s of To){const o=n.facet[s];if(o){const{bin:u,sort:a}=o;this[s]=Object.assign({name:n.getName(`${s}_domain`),fields:[$e(o),...Kt(u)?[$e(o,{binSuffix:"end"})]:[]]},La(a)?{sortField:a}:_e(a)?{sortIndexField:Y2(o,s)}:{})}}this.childModel=n.child}hash(){let e="Facet";for(const n of To)this[n]&&(e+=` ${n.charAt(0)}:${bt(this[n])}`);return e}get fields(){var e;const n=[];for(const r of To)!((e=this[r])===null||e===void 0)&&e.fields&&n.push(...this[r].fields);return n}dependentFields(){const e=new Set(this.fields);for(const n of To)this[n]&&(this[n].sortField&&e.add(this[n].sortField.field),this[n].sortIndexField&&e.add(this[n].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const n of Da){const r=this.childModel.component.scales[n];if(r&&!r.merged){const i=r.get("type"),s=r.get("range");if(Cr(i)&&jc(s)){const o=iD(this.childModel,n),u=mP(o);u?e[n]=u:Te(k8(n))}}}return e}assembleRowColumnHeaderData(e,n,r){const i={row:"y",column:"x",facet:void 0}[e],s=[],o=[],u=[];i&&r&&r[i]&&(n?(s.push(`distinct_${r[i]}`),o.push("max")):(s.push(r[i]),o.push("distinct")),u.push(`distinct_${r[i]}`));const{sortField:a,sortIndexField:l}=this[e];if(a){const{op:c=ON,field:f}=a;s.push(f),o.push(c),u.push($e(a,{forAs:!0}))}else l&&(s.push(l),o.push("max"),u.push(l));return{name:this[e].name,source:n??this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},s.length?{fields:s,ops:o,as:u}:{})]}}assembleFacetHeaderData(e){var n,r;const{columns:i}=this.model.layout,{layoutHeaders:s}=this.model.component,o=[],u={};for(const c of tP){for(const f of nP){const x=(n=s[c]&&s[c][f])!==null&&n!==void 0?n:[];for(const h of x)if(((r=h.axes)===null||r===void 0?void 0:r.length)>0){u[c]=!0;break}}if(u[c]){const f=`length(data("${this.facet.name}"))`,x=c==="row"?i?{signal:`ceil(${f} / ${i})`}:1:i?{signal:`min(${f}, ${i})`}:{signal:f};o.push({name:`${this.facet.name}_${c}`,transform:[{type:"sequence",start:0,stop:x}]})}}const{row:a,column:l}=u;return(a||l)&&o.unshift(this.assembleRowColumnHeaderData("facet",null,e)),o}assemble(){var e,n;const r=[];let i=null;const s=this.getChildIndependentFieldsWithStep(),{column:o,row:u,facet:a}=this;if(o&&u&&(s.x||s.y)){i=`cross_${this.column.name}_${this.row.name}`;const l=[].concat((e=s.x)!==null&&e!==void 0?e:[],(n=s.y)!==null&&n!==void 0?n:[]),c=l.map(()=>"distinct");r.push({name:i,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:l,ops:c}]})}for(const l of[Yl,Vl])this[l]&&r.push(this.assembleRowColumnHeaderData(l,i,s));if(a){const l=this.assembleFacetHeaderData(s);l&&r.push(...l)}return r}}function vle(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function jtt(t,e){const n=jse(t);if(e==="number")return`toNumber(${n})`;if(e==="boolean")return`toBoolean(${n})`;if(e==="string")return`toString(${n})`;if(e==="date")return`toDate(${n})`;if(e==="flatten")return n;if(e.startsWith("date:")){const r=vle(e.slice(5,e.length));return`timeParse(${n},'${r}')`}else if(e.startsWith("utc:")){const r=vle(e.slice(4,e.length));return`utcParse(${n},'${r}')`}else return Te(lXe(e)),null}function Utt(t){const e={};return sN(t.filter,n=>{var r;if(Loe(n)){let i=null;z8(n)?i=Hs(n.equal):G8(n)?i=Hs(n.lte):Q8(n)?i=Hs(n.lt):W8(n)?i=Hs(n.gt):V8(n)?i=Hs(n.gte):Y8(n)?i=n.range[0]:X8(n)&&(i=((r=n.oneOf)!==null&&r!==void 0?r:n.in)[0]),i&&(Td(i)?e[n.field]="date":nn(i)?e[n.field]="number":je(i)&&(e[n.field]="string")),n.timeUnit&&(e[n.field]="date")}}),e}function qtt(t){const e={};function n(r){j2(r)?e[r.field]="date":r.type==="quantitative"&&UYe(r.aggregate)?e[r.field]="number":g3(r.field)>1?r.field in e||(e[r.field]="flatten"):Dd(r)&&La(r.sort)&&g3(r.sort.field)>1&&(r.sort.field in e||(e[r.sort.field]="flatten"))}if((zn(t)||Eu(t))&&t.forEachFieldDef((r,i)=>{if(Ro(r))n(r);else{const s=_d(i),o=t.fieldDef(s);n(Object.assign(Object.assign({},r),{type:o.type}))}}),zn(t)){const{mark:r,markDef:i,encoding:s}=t;if(Uc(r)&&!t.encoding.order){const o=i.orient==="horizontal"?"y":"x",u=s[o];Le(u)&&u.type==="quantitative"&&!(u.field in e)&&(e[u.field]="number")}}return e}function Htt(t){const e={};if(zn(t)&&t.component.selection)for(const n of be(t.component.selection)){const r=t.component.selection[n];for(const i of r.project.items)!i.channel&&g3(i.field)>1&&(e[i.field]="flatten")}return e}class li extends Ut{constructor(e,n){super(e),this._parse=n}clone(){return new li(null,ot(this._parse))}hash(){return`Parse ${bt(this._parse)}`}static makeExplicit(e,n,r){var i;let s={};const o=n.data;return!Qc(o)&&(!((i=o==null?void 0:o.format)===null||i===void 0)&&i.parse)&&(s=o.format.parse),this.makeWithAncestors(e,s,{},r)}static makeWithAncestors(e,n,r,i){for(const u of be(r)){const a=i.getWithExplicit(u);a.value!==void 0&&(a.explicit||a.value===r[u]||a.value==="derived"||r[u]==="flatten"?delete r[u]:Te(yoe(u,r[u],a.value)))}for(const u of be(n)){const a=i.get(u);a!==void 0&&(a===n[u]?delete n[u]:Te(yoe(u,n[u],a)))}const s=new o0(n,r);i.copyAll(s);const o={};for(const u of be(s.combine())){const a=s.get(u);a!==null&&(o[u]=a)}return be(o).length===0||i.parseNothing?null:new li(e,o)}get parse(){return this._parse}merge(e){this._parse=Object.assign(Object.assign({},this._parse),e.parse),e.remove()}assembleFormatParse(){const e={};for(const n of be(this._parse)){const r=this._parse[n];g3(n)===1&&(e[n]=r)}return e}producedFields(){return new Set(be(this._parse))}dependentFields(){return new Set(be(this._parse))}assembleTransforms(e=!1){return be(this._parse).filter(n=>e?g3(n)>1:!0).map(n=>{const r=jtt(n,this._parse[n]);return r?{type:"formula",expr:r,as:Use(n)}:null}).filter(n=>n!==null)}}class Yc extends Ut{clone(){return new Yc(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([N3])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:N3}}}class $3 extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new $3(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${bt(this.params)}`}assemble(){return Object.assign({type:"graticule"},this.params===!0?{}:this.params)}}class B3 extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new B3(null,this.params)}dependentFields(){return new Set}producedFields(){var e;return new Set([(e=this.params.as)!==null&&e!==void 0?e:"data"])}hash(){return`Hash ${bt(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class Ld extends Ut{constructor(e){super(null),e??(e={name:"source"});let n;if(Qc(e)||(n=e.format?Object.assign({},Co(e.format,["parse"])):{}),D3(e))this._data={values:e.values};else if(q2(e)){if(this._data={url:e.url},!n.type){let r=/(?:\.([^.]+))?$/.exec(e.url)[1];Tt(["json","csv","tsv","dsv","topojson"],r)||(r="json"),n.type=r}}else yae(e)?this._data={values:[{type:"Sphere"}]}:(gae(e)||Qc(e))&&(this._data={});this._generator=Qc(e),e.name&&(this._name=e.name),n&&!Wt(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(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}}var _le=function(t,e,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(t,n):i?i.value=n:e.set(t,n),n},ztt=function(t,e,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(t):r?r.value:e.get(t)},k3;function aP(t){return t instanceof Ld||t instanceof $3||t instanceof B3}class lP{constructor(){k3.set(this,void 0),_le(this,k3,!1,"f")}setModified(){_le(this,k3,!0,"f")}get modifiedFlag(){return ztt(this,k3,"f")}}k3=new WeakMap;class Id extends lP{getNodeDepths(e,n,r){r.set(e,n);for(const i of e.children)this.getNodeDepths(i,n+1,r);return r}optimize(e){const r=[...this.getNodeDepths(e,0,new Map).entries()].sort((i,s)=>s[1]-i[1]);for(const i of r)this.run(i[0]);return this.modifiedFlag}}class cP extends lP{optimize(e){this.run(e);for(const n of e.children)this.optimize(n);return this.modifiedFlag}}class Qtt extends cP{mergeNodes(e,n){const r=n.shift();for(const i of n)e.removeChild(i),i.parent=r,i.remove()}run(e){const n=e.children.map(i=>i.hash()),r={};for(let i=0;i<n.length;i++)r[n[i]]===void 0?r[n[i]]=[e.children[i]]:r[n[i]].push(e.children[i]);for(const i of be(r))r[i].length>1&&(this.setModified(),this.mergeNodes(e,r[i]))}}class Gtt extends cP{constructor(e){super(),this.requiresSelectionId=e&&X7(e)}run(e){e instanceof Yc&&(this.requiresSelectionId&&(aP(e.parent)||e.parent instanceof mu||e.parent instanceof li)||(this.setModified(),e.remove()))}}class Wtt extends lP{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,n){let r=new Set;e instanceof Ma&&(r=e.producedFields(),kse(r,n)&&(this.setModified(),e.removeFormulas(n),e.producedFields.length===0&&e.remove()));for(const i of e.children)this.run(i,new Set([...n,...r]))}}class Vtt extends cP{constructor(){super()}run(e){e instanceof qi&&!e.isRequired()&&(this.setModified(),e.remove())}}class Ytt extends Id{run(e){if(!aP(e)&&!(e.numChildren()>1)){for(const n of e.children)if(n instanceof li)if(e instanceof li)this.setModified(),e.merge(n);else{if(Mse(e.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class Xtt extends Id{run(e){const n=[...e.children],r=e.children.filter(i=>i instanceof li);if(e.numChildren()>1&&r.length>=1){const i={},s=new Set;for(const o of r){const u=o.parse;for(const a of be(u))a in i?i[a]!==u[a]&&s.add(a):i[a]=u[a]}for(const o of s)delete i[o];if(!Wt(i)){this.setModified();const o=new li(e,i);for(const u of n){if(u instanceof li)for(const a of be(i))delete u.parse[a];e.removeChild(u),u.parent=o,u instanceof li&&be(u.parse).length===0&&u.remove()}}}}}class Ktt extends Id{run(e){e instanceof qi||e.numChildren()>0||e instanceof K2||e instanceof Ld||(this.setModified(),e.remove())}}class Jtt extends Id{run(e){const n=e.children.filter(i=>i instanceof Ma),r=n.pop();for(const i of n)this.setModified(),r.merge(i)}}class Ztt extends Id{run(e){const n=e.children.filter(i=>i instanceof mu),r={};for(const i of n){const s=bt(i.groupBy);s in r||(r[s]=[]),r[s].push(i)}for(const i of be(r)){const s=r[i];if(s.length>1){const o=s.pop();for(const u of s)o.merge(u)&&(e.removeChild(u),u.parent=o,u.remove(),this.setModified())}}}}class ent extends Id{constructor(e){super(),this.model=e}run(e){const n=!(aP(e)||e instanceof W2||e instanceof li||e instanceof Yc),r=[],i=[];for(const s of e.children)s instanceof ja&&(n&&!Mse(e.producedFields(),s.dependentFields())?r.push(s):i.push(s));if(r.length>0){const s=r.pop();for(const o of r)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof ja?e.merge(s,this.model.renameSignal.bind(this.model)):s.swapWithParent()}if(i.length>1){const s=i.pop();for(const o of i)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified()}}}class tnt extends Id{run(e){const n=[...e.children];if(!O2(n,o=>o instanceof qi)||e.numChildren()<=1)return;const i=[];let s;for(const o of n)if(o instanceof qi){let u=o;for(;u.numChildren()===1;){const[a]=u.children;if(a instanceof qi)u=a;else break}i.push(...u.children),s?(e.removeChild(o),o.parent=s.parent,s.parent.removeChild(s),s.parent=u,this.setModified()):s=u}else i.push(o);if(i.length){this.setModified();for(const o of i)o.parent.removeChild(o),o.parent=s}}}class $d extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new $d(null,ot(this.transform))}addDimensions(e){this.transform.groupby=Wl(this.transform.groupby.concat(e),n=>n)}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`JoinAggregateTransform ${bt(this.transform)}`}assemble(){const e=[],n=[],r=[];for(const s of this.transform.joinaggregate)n.push(s.op),r.push(this.getDefaultName(s)),e.push(s.field===void 0?null:s.field);const i=this.transform.groupby;return Object.assign({type:"joinaggregate",as:r,ops:n,fields:e},i!==void 0?{groupby:i}:{})}}function nnt(t){return t.stack.stackBy.reduce((e,n)=>{const r=n.fieldDef,i=$e(r);return i&&e.push(i),e},[])}function rnt(t){return _e(t)&&t.every(e=>je(e))&&t.length>1}class u0 extends Ut{constructor(e,n){super(e),this._stack=n}clone(){return new u0(null,ot(this._stack))}static makeFromTransform(e,n){const{stack:r,groupby:i,as:s,offset:o="zero"}=n,u=[],a=[];if(n.sort!==void 0)for(const f of n.sort)u.push(f.field),a.push(ir(f.order,"ascending"));const l={field:u,order:a};let c;return rnt(s)?c=s:je(s)?c=[s,`${s}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new u0(e,{dimensionFieldDefs:[],stackField:r,groupby:i,offset:o,sort:l,facetby:[],as:c})}static makeFromEncoding(e,n){const r=n.stack,{encoding:i}=n;if(!r)return null;const{groupbyChannels:s,fieldChannel:o,offset:u,impute:a}=r,l=s.map(h=>{const p=i[h];return Ba(p)}).filter(h=>!!h),c=nnt(n),f=n.encoding.order;let x;return _e(f)||Le(f)?x=aoe(f):x=c.reduce((h,p)=>(h.field.push(p),h.order.push(o==="y"?"descending":"ascending"),h),{field:[],order:[]}),new u0(e,{dimensionFieldDefs:l,stackField:n.vgField(o),facetby:[],stackby:c,sort:x,offset:u,impute:a,as:[n.vgField(o,{suffix:"start",forAs:!0}),n.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${bt(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:n,groupby:r}=this._stack;return e.length>0?e.map(i=>i.bin?n?[$e(i,{binSuffix:"mid"})]:[$e(i,{}),$e(i,{binSuffix:"end"})]:[$e(i)]).flat():r??[]}assemble(){const e=[],{facetby:n,dimensionFieldDefs:r,stackField:i,stackby:s,sort:o,offset:u,impute:a,as:l}=this._stack;if(a)for(const c of r){const{bandPosition:f=.5,bin:x}=c;if(x){const h=$e(c,{expr:"datum"}),p=$e(c,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${f}*${h}+${1-f}*${p}`,as:$e(c,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...s,...n],key:$e(c,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:i,sort:o,as:l,offset:u}),e}}class J2 extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new J2(null,ot(this.transform))}addDimensions(e){this.transform.groupby=Wl(this.transform.groupby.concat(e),n=>n)}dependentFields(){var e,n;const r=new Set;return((e=this.transform.groupby)!==null&&e!==void 0?e:[]).forEach(r.add,r),((n=this.transform.sort)!==null&&n!==void 0?n:[]).forEach(i=>r.add(i.field)),this.transform.window.map(i=>i.field).filter(i=>i!==void 0).forEach(r.add,r),r}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`WindowTransform ${bt(this.transform)}`}assemble(){var e;const n=[],r=[],i=[],s=[];for(const x of this.transform.window)r.push(x.op),i.push(this.getDefaultName(x)),s.push(x.param===void 0?null:x.param),n.push(x.field===void 0?null:x.field);const o=this.transform.frame,u=this.transform.groupby;if(o&&o[0]===null&&o[1]===null&&r.every(x=>L8(x)))return Object.assign({type:"joinaggregate",as:i,ops:r,fields:n},u!==void 0?{groupby:u}:{});const a=[],l=[];if(this.transform.sort!==void 0)for(const x of this.transform.sort)a.push(x.field),l.push((e=x.order)!==null&&e!==void 0?e:"ascending");const c={field:a,order:l},f=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:s,as:i,ops:r,fields:n,sort:c},f!==void 0?{ignorePeers:f}:{}),u!==void 0?{groupby:u}:{}),o!==void 0?{frame:o}:{})}}function int(t){function e(n){if(!(n instanceof K2)){const r=n.clone();if(r instanceof qi){const i=xP+r.getSource();r.setSource(i),t.model.component.data.outputNodes[i]=r}else(r instanceof mu||r instanceof u0||r instanceof J2||r instanceof $d)&&r.addDimensions(t.fields);for(const i of n.children.flatMap(e))i.parent=r;return[r]}return n.children.flatMap(e)}return e}function fP(t){if(t instanceof K2)if(t.numChildren()===1&&!(t.children[0]instanceof qi)){const e=t.children[0];(e instanceof mu||e instanceof u0||e instanceof J2||e instanceof $d)&&e.addDimensions(t.fields),e.swapWithParent(),fP(t)}else{const e=t.model.component.data.main;Cle(e);const n=int(t),r=t.children.map(n).flat();for(const i of r)i.parent=e}else t.children.map(fP)}function Cle(t){if(t instanceof qi&&t.type===Jt.Main&&t.numChildren()===1){const e=t.children[0];e instanceof K2||(e.swapWithParent(),Cle(t))}}const xP="scale_",rD=5;function dP(t){for(const e of t){for(const n of e.children)if(n.parent!==e)return!1;if(!dP(e.children))return!1}return!0}function yu(t,e){let n=!1;for(const r of e)n=t.optimize(r)||n;return n}function ble(t,e,n){let r=t.sources,i=!1;return i=yu(new Vtt,r)||i,i=yu(new Gtt(e),r)||i,r=r.filter(s=>s.numChildren()>0),i=yu(new Ktt,r)||i,r=r.filter(s=>s.numChildren()>0),n||(i=yu(new Ytt,r)||i,i=yu(new ent(e),r)||i,i=yu(new Wtt,r)||i,i=yu(new Xtt,r)||i,i=yu(new Ztt,r)||i,i=yu(new Jtt,r)||i,i=yu(new Qtt,r)||i,i=yu(new tnt,r)||i),t.sources=r,i}function snt(t,e){dP(t.sources);let n=0,r=0;for(let i=0;i<rD&&ble(t,e,!0);i++)n++;t.sources.map(fP);for(let i=0;i<rD&&ble(t,e,!1);i++)r++;dP(t.sources),Math.max(n,r)===rD&&Te(`Maximum optimization runs(${rD}) reached.`)}class Es{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,n){return new Es(()=>e(n))}}var ont=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Tle(t){zn(t)?unt(t):ant(t)}function unt(t){const e=t.component.scales;for(const n of be(e)){const r=cnt(t,n);if(e[n].setWithExplicit("domains",r),xnt(t,n),t.component.data.isFaceted){let s=t;for(;!Eu(s)&&s.parent;)s=s.parent;if(s.component.resolve.scale[n]==="shared")for(const u of r.value)n0(u)&&(u.data=xP+u.data.replace(xP,""))}}}function ant(t){for(const n of t.children)Tle(n);const e=t.component.scales;for(const n of be(e)){let r,i=null;for(const s of t.children){const o=s.component.scales[n];if(o){r===void 0?r=o.getWithExplicit("domains"):r=zc(r,o.getWithExplicit("domains"),"domains","scale",gP);const u=o.get("selectionExtent");i&&u&&i.param!==u.param&&Te(sXe),i=u}}e[n].setWithExplicit("domains",r),i&&e[n].set("selectionExtent",i,!0)}}function lnt(t,e,n,r){if(t==="unaggregated"){const{valid:i,reason:s}=Rle(e,n);if(!i){Te(s);return}}else if(t===void 0&&r.useUnaggregatedDomain){const{valid:i}=Rle(e,n);if(i)return"unaggregated"}return t}function cnt(t,e){const n=t.getScaleComponent(e).get("type"),{encoding:r}=t,i=lnt(t.scaleDomain(e),t.typedFieldDef(e),n,t.config.scale);return i!==t.scaleDomain(e)&&(t.specifiedScales[e]=Object.assign(Object.assign({},t.specifiedScales[e]),{domain:i})),e==="x"&&sr(r.x2)?sr(r.x)?zc(Xc(n,i,t,"x"),Xc(n,i,t,"x2"),"domain","scale",gP):Xc(n,i,t,"x2"):e==="y"&&sr(r.y2)?sr(r.y)?zc(Xc(n,i,t,"y"),Xc(n,i,t,"y2"),"domain","scale",gP):Xc(n,i,t,"y2"):Xc(n,i,t,e)}function fnt(t,e,n){return t.map(r=>({signal:`{data: ${BN(r,{timeUnit:n,type:e})}}`}))}function hP(t,e,n){var r;const i=(r=ji(n))===null||r===void 0?void 0:r.unit;return e==="temporal"||i?fnt(t,e,i):[t]}function Xc(t,e,n,r){const{encoding:i}=n,s=sr(i[r]),{type:o}=s,u=s.timeUnit;if(DKe(e)){const f=Xc(t,void 0,n,r),x=hP(e.unionWith,o,u);return Pa([...f.value,...x])}else{if(Ye(e))return Pa([e]);if(e&&e!=="unaggregated"&&!Uoe(e))return Pa(hP(e,o,u))}const a=n.stack;if(a&&r===a.fieldChannel){if(a.offset==="normalize")return Qs([[0,1]]);const f=n.requestDataName(Jt.Main);return Qs([{data:f,field:n.vgField(r,{suffix:"start"})},{data:f,field:n.vgField(r,{suffix:"end"})}])}const l=kc(r)&&Le(s)?dnt(n,r,t):void 0;if(Ia(s)){const f=hP([s.datum],o,u);return Qs(f)}const c=s;if(e==="unaggregated"){const f=n.requestDataName(Jt.Main),{field:x}=s;return Qs([{data:f,field:$e({field:x,aggregate:"min"})},{data:f,field:$e({field:x,aggregate:"max"})}])}else if(Kt(c.bin)){if(Cr(t))return Qs(t==="bin-ordinal"?[]:[{data:oN(l)?n.requestDataName(Jt.Main):n.requestDataName(Jt.Raw),field:n.vgField(r,R3(c,r)?{binSuffix:"range"}:{}),sort:l===!0||!Qe(l)?{field:n.vgField(r,{}),op:"min"}:l}]);{const{bin:f}=c;if(Kt(f)){const x=uP(n,c.field,f);return Qs([new Es(()=>{const h=n.getSignalName(x);return`[${h}.start, ${h}.stop]`})])}else return Qs([{data:n.requestDataName(Jt.Main),field:n.vgField(r,{})}])}}else if(c.timeUnit&&Tt(["time","utc"],t)&&lue(c,zn(n)?n.encoding[e0(r)]:void 0,n.markDef,n.config)){const f=n.requestDataName(Jt.Main);return Qs([{data:f,field:n.vgField(r)},{data:f,field:n.vgField(r,{suffix:"end"})}])}else return Qs(l?[{data:oN(l)?n.requestDataName(Jt.Main):n.requestDataName(Jt.Raw),field:n.vgField(r),sort:l}]:[{data:n.requestDataName(Jt.Main),field:n.vgField(r)}])}function pP(t,e){const{op:n,field:r,order:i}=t;return Object.assign(Object.assign({op:n??(e?"sum":ON)},r?{field:fu(r)}:{}),i?{order:i}:{})}function xnt(t,e){var n;const r=t.component.scales[e],i=t.specifiedScales[e].domain,s=(n=t.fieldDef(e))===null||n===void 0?void 0:n.bin,o=Uoe(i)&&i,u=Cd(s)&&mN(s.extent)&&s.extent;(o||u)&&r.set("selectionExtent",o??u,!0)}function dnt(t,e,n){if(!Cr(n))return;const r=t.fieldDef(e),i=r.sort;if(sue(i))return{op:"min",field:Y2(r,e),order:"ascending"};const{stack:s}=t,o=s?new Set([...s.groupbyFields,...s.stackBy.map(u=>u.fieldDef.field)]):void 0;if(La(i)){const u=s&&!o.has(i.field);return pP(i,u)}else if(iue(i)){const{encoding:u,order:a}=i,l=t.fieldDef(u),{aggregate:c,field:f}=l,x=s&&!o.has(f);if(t0(c)||Pc(c))return pP({field:$e(l),order:a},x);if(L8(c)||!c)return pP({op:c,field:f,order:a},x)}else{if(i==="descending")return{op:"min",field:t.vgField(e),order:"descending"};if(Tt(["ascending",void 0],i))return!0}}function Rle(t,e){const{aggregate:n,type:r}=t;return n?je(n)&&!HYe.has(n)?{valid:!1,reason:LXe(n)}:r==="quantitative"&&e==="log"?{valid:!1,reason:IXe(t)}:{valid:!0}:{valid:!1,reason:wXe(t)}}function gP(t,e,n,r){return t.explicit&&e.explicit&&Te(MXe(n,r,t.value,e.value)),{explicit:t.explicit,value:[...t.value,...e.value]}}function hnt(t){const e=Wl(t.map(o=>n0(o)?ont(o,["sort"]):o),bt),n=Wl(t.map(o=>{if(n0(o)){const u=o.sort;return u!==void 0&&!oN(u)&&("op"in u&&u.op==="count"&&delete u.field,u.order==="ascending"&&delete u.order),u}}).filter(o=>o!==void 0),bt);if(e.length===0)return;if(e.length===1){const o=t[0];if(n0(o)&&n.length>0){let u=n[0];if(n.length>1)Te(Coe),u=!0;else if(Qe(u)&&"field"in u){const a=u.field;o.field===a&&(u=u.order?{order:u.order}:!0)}return Object.assign(Object.assign({},o),{sort:u})}return o}const r=Wl(n.map(o=>oN(o)||!("op"in o)||je(o.op)&&o.op in MYe?o:(Te(UXe(o)),!0)),bt);let i;r.length===1?i=r[0]:r.length>1&&(Te(Coe),i=!0);const s=Wl(t.map(o=>n0(o)?o.data:null),o=>o);return s.length===1&&s[0]!==null?Object.assign({data:s[0],fields:e.map(u=>u.field)},i?{sort:i}:{}):Object.assign({fields:e},i?{sort:i}:{})}function mP(t){if(n0(t)&&je(t.field))return t.field;if(QYe(t)){let e;for(const n of t.fields)if(n0(n)&&je(n.field)){if(!e)e=n.field;else if(e!==n.field)return Te(qXe),e}return Te(HXe),e}else if(GYe(t)){Te(zXe);const e=t.fields[0];return je(e)?e:void 0}}function iD(t,e){const r=t.component.scales[e].get("domains").map(i=>(n0(i)&&(i.data=t.lookupDataSource(i.data)),i));return hnt(r)}var pnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Ole(t){return Z2(t)||AP(t)?t.children.reduce((e,n)=>e.concat(Ole(n)),Nle(t)):Nle(t)}function Nle(t){return be(t.component.scales).reduce((e,n)=>{const r=t.component.scales[n];if(r.merged)return e;const i=r.combine(),{name:s,type:o,selectionExtent:u,domains:a,range:l,reverse:c}=i,f=pnt(i,["name","type","selectionExtent","domains","range","reverse"]),x=gnt(i.range,s,n,t),h=iD(t,n),p=u?iet(t,u,r,h):null;return e.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:s,type:o},h?{domain:h}:{}),p?{domainRaw:p}:{}),{range:x}),c!==void 0?{reverse:c}:{}),f)),e},[])}function gnt(t,e,n,r){if(kr(n)){if(jc(t))return{step:{signal:`${e}_step`}}}else if(Qe(t)&&n0(t))return Object.assign(Object.assign({},t),{data:r.lookupDataSource(t.data)});return t}class Dle extends o0{constructor(e,n){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:O2(this.get("domains"),e=>_e(e)&&e.length===2&&e[0]<=0&&e[1]>=0)}}const mnt=["range","scheme"];function ynt(t){const e=t.component.scales;for(const n of gN){const r=e[n];if(!r)continue;const i=Ent(n,t);r.setWithExplicit("range",i)}}function Fle(t,e){const n=t.fieldDef(e);if(n!=null&&n.bin){const{bin:r,field:i}=n,s=gs(e),o=t.getName(s);if(Qe(r)&&r.binned&&r.step!==void 0)return new Es(()=>{const u=t.scaleName(e),a=`(domain("${u}")[1] - domain("${u}")[0]) / ${r.step}`;return`${t.getSignalName(o)} / (${a})`});if(Kt(r)){const u=uP(t,i,r);return new Es(()=>{const a=t.getSignalName(u),l=`(${a}.stop - ${a}.start) / ${a}.step`;return`${t.getSignalName(o)} / (${l})`})}}}function Ent(t,e){const n=e.specifiedScales[t],{size:r}=e,s=e.getScaleComponent(t).get("type");for(const f of mnt)if(n[f]!==void 0){const x=t7(s,f),h=qoe(t,f);if(!x)Te(voe(s,f,t));else if(h)Te(h);else switch(f){case"range":{const p=n.range;if(_e(p)){if(kr(t))return Pa(p.map(m=>{if(m==="width"||m==="height"){const g=e.getName(m),y=e.getSignalName.bind(e);return Es.fromName(y,g)}return m}))}else if(Qe(p))return Pa({data:e.requestDataName(Jt.Main),field:p.field,sort:{op:"min",field:e.vgField(t)}});return Pa(p)}case"scheme":return Pa(Ant(n[f]))}}const o=t===yn||t==="xOffset"?"width":"height",u=r[o];if(ka(u)){if(kr(t))if(Cr(s)){const f=wle(u,e,t);if(f)return Pa({step:f})}else Te(_oe(o));else if(w2(t)){const f=t===Fc?"x":"y";if(e.getScaleComponent(f).get("type")==="band"){const p=Lle(u,s);if(p)return Pa(p)}}}const{rangeMin:a,rangeMax:l}=n,c=Snt(t,e);return(a!==void 0||l!==void 0)&&t7(s,"rangeMin")&&_e(c)&&c.length===2?Pa([a??c[0],l??c[1]]):Qs(c)}function Ant(t){return NKe(t)?Object.assign({scheme:t.name},Co(t,["name"])):{scheme:t}}function Snt(t,e){const{size:n,config:r,mark:i,encoding:s}=e,o=e.getSignalName.bind(e),{type:u}=sr(s[t]),l=e.getScaleComponent(t).get("type"),{domain:c,domainMid:f}=e.specifiedScales[t];switch(t){case yn:case _r:{if(Tt(["point","band"],l)){const p=Ile(t,n,r.view);if(ka(p))return{step:wle(p,e,t)}}const x=gs(t),h=e.getName(x);return t===_r&&zs(l)?[Es.fromName(o,h),0]:[0,Es.fromName(o,h)]}case Fc:case D2:return vnt(t,e,l);case Jl:{const x=e.component.scales[t].get("zero"),h=$le(i,x,r),p=bnt(i,n,e,r);return B2(l)?Cnt(h,p,_nt(l,r,c,t)):[h,p]}case du:return[0,Math.PI*2];case Sd:return[0,360];case ba:return[0,new Es(()=>{const x=e.getSignalName("width"),h=e.getSignalName("height");return`min(${x},${h})/2`})];case Ic:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case $c:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case ps:return"symbol";case hs:case Oa:case Na:return l==="ordinal"?u==="nominal"?"category":"ordinal":f!==void 0?"diverging":i==="rect"||i==="geoshape"?"heatmap":"ramp";case Zl:case wc:case Lc:return[r.scale.minOpacity,r.scale.maxOpacity]}}function wle(t,e,n){var r,i,s,o,u;const{encoding:a}=e,l=e.getScaleComponent(n),c=Wse(n),f=a[c];if(Hue({step:t,offsetIsDiscrete:it(f)&&$oe(f.type)})==="offset"&&vue(a,c)){const h=e.getScaleComponent(c);let m=`domain('${e.scaleName(c)}').length`;if(h.get("type")==="band"){const y=(i=(r=h.get("paddingInner"))!==null&&r!==void 0?r:h.get("padding"))!==null&&i!==void 0?i:0,E=(o=(s=h.get("paddingOuter"))!==null&&s!==void 0?s:h.get("padding"))!==null&&o!==void 0?o:0;m=`bandspace(${m}, ${y}, ${E})`}const g=(u=l.get("paddingInner"))!==null&&u!==void 0?u:l.get("padding");return{signal:`${t.step} * ${m} / (1-${YYe(g)})`}}else return t.step}function Lle(t,e){if(Hue({step:t,offsetIsDiscrete:Cr(e)})==="offset")return{step:t.step}}function vnt(t,e,n){const r=t===Fc?"x":"y",s=e.getScaleComponent(r).get("type"),o=e.scaleName(r);if(s==="band"){const u=Ile(r,e.size,e.config.view);if(ka(u)){const a=Lle(u,n);if(a)return a}return[0,{signal:`bandwidth('${o}')`}]}else return lYe(`Cannot use ${t} scale if ${r} scale is not discrete.`)}function Ile(t,e,n){const r=t===yn?"width":"height",i=e[r];return i||zN(n,r)}function _nt(t,e,n,r){switch(t){case"quantile":return e.scale.quantileCount;case"quantize":return e.scale.quantizeCount;case"threshold":return n!==void 0&&_e(n)?n.length+1:(Te(ZXe(r)),3)}}function Cnt(t,e,n){const r=()=>{const i=r0(e),s=r0(t),o=`(${i} - ${s}) / (${n} - 1)`;return`sequence(${s}, ${i} + ${o}, ${o})`};return Ye(e)?new Es(r):{signal:r()}}function $le(t,e,n){if(e)return Ye(e)?{signal:`${e.signal} ? 0 : ${$le(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(EN("size",t))}const Ble=.95;function bnt(t,e,n,r){const i={x:Fle(n,"x"),y:Fle(n,"y")};switch(t){case"bar":case"tick":{if(r.scale.maxBandSize!==void 0)return r.scale.maxBandSize;const s=kle(e,i,r.view);return nn(s)?s-1:new Es(()=>`${s.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 s=kle(e,i,r.view);return nn(s)?Math.pow(Ble*s,2):new Es(()=>`pow(${Ble} * ${s.signal}, 2)`)}}throw new Error(EN("size",t))}function kle(t,e,n){const r=ka(t.width)?t.width.step:HN(n,"width"),i=ka(t.height)?t.height.step:HN(n,"height");return e.x||e.y?new Es(()=>`min(${[e.x?e.x.signal:r,e.y?e.y.signal:i].join(", ")})`):Math.min(r,i)}function Ple(t,e){zn(t)?Tnt(t,e):Ule(t,e)}function Tnt(t,e){const n=t.component.scales,{config:r,encoding:i,markDef:s,specifiedScales:o}=t;for(const u of be(n)){const a=o[u],l=n[u],c=t.getScaleComponent(u),f=sr(i[u]),x=a[e],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=t7(h,e),y=qoe(u,e);if(x!==void 0&&(g?y&&Te(y):Te(voe(h,e,u))),g&&y===void 0)if(x!==void 0){const E=f.timeUnit,A=f.type;switch(e){case"domainMax":case"domainMin":Td(a[e])||A==="temporal"||E?l.set(e,{signal:BN(a[e],{type:A,timeUnit:E})},!0):l.set(e,a[e],!0);break;default:l.copyKeyFromObject(e,a)}}else{const E=e in Mle?Mle[e]({model:t,channel:u,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:m,domain:a.domain,domainMin:a.domainMin,domainMax:a.domainMax,markDef:s,config:r,hasNestedOffsetScale:E7(i,u)}):r.scale[e];E!==void 0&&l.set(e,E,!1)}}}const Mle={bins:({model:t,fieldOrDatumDef:e})=>Le(e)?Rnt(t,e):void 0,interpolate:({channel:t,fieldOrDatumDef:e})=>Ont(t,e.type),nice:({scaleType:t,channel:e,domain:n,domainMin:r,domainMax:i,fieldOrDatumDef:s})=>Nnt(t,e,n,r,i,s),padding:({channel:t,scaleType:e,fieldOrDatumDef:n,markDef:r,config:i})=>Dnt(t,e,i.scale,n,r,i.bar),paddingInner:({scalePadding:t,channel:e,markDef:n,scaleType:r,config:i,hasNestedOffsetScale:s})=>Fnt(t,e,n.type,r,i.scale,s),paddingOuter:({scalePadding:t,channel:e,scaleType:n,scalePaddingInner:r,config:i,hasNestedOffsetScale:s})=>wnt(t,e,n,r,i.scale,s),reverse:({fieldOrDatumDef:t,scaleType:e,channel:n,config:r})=>{const i=Le(t)?t.sort:void 0;return Lnt(e,i,n,r.scale)},zero:({channel:t,fieldOrDatumDef:e,domain:n,markDef:r,scaleType:i})=>Int(t,e,n,r,i)};function jle(t){zn(t)?ynt(t):Ule(t,"range")}function Ule(t,e){const n=t.component.scales;for(const r of t.children)e==="range"?jle(r):Ple(r,e);for(const r of be(n)){let i;for(const s of t.children){const o=s.component.scales[r];if(o){const u=o.getWithExplicit(e);i=zc(i,u,e,"scale",pae((a,l)=>{switch(e){case"range":return a.step&&l.step?a.step-l.step:0}return 0}))}}n[r].setWithExplicit(e,i)}}function Rnt(t,e){const n=e.bin;if(Kt(n)){const r=uP(t,e.field,n);return new Es(()=>t.getSignalName(r))}else if(Mi(n)&&Cd(n)&&n.step!==void 0)return{step:n.step}}function Ont(t,e){if(Tt([hs,Oa,Na],t)&&e!=="nominal")return"hcl"}function Nnt(t,e,n,r,i,s){var o;if(!(!((o=Ba(s))===null||o===void 0)&&o.bin||_e(n)||i!=null||r!=null||Tt([ys.TIME,ys.UTC],t)))return kr(e)?!0:void 0}function Dnt(t,e,n,r,i,s){if(kr(t)){if(pu(e)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:o,orient:u}=i;if(o==="bar"&&!(Le(r)&&(r.bin||r.timeUnit))&&(u==="vertical"&&t==="x"||u==="horizontal"&&t==="y"))return s.continuousBandSize}if(e===ys.POINT)return n.pointPadding}}function Fnt(t,e,n,r,i,s=!1){if(t===void 0){if(kr(e)){const{bandPaddingInner:o,barBandPaddingInner:u,rectBandPaddingInner:a,bandWithNestedOffsetPaddingInner:l}=i;return s?l:ir(o,n==="bar"?u:a)}else if(w2(e)&&r===ys.BAND)return i.offsetBandPaddingInner}}function wnt(t,e,n,r,i,s=!1){if(t===void 0){if(kr(e)){const{bandPaddingOuter:o,bandWithNestedOffsetPaddingOuter:u}=i;if(s)return u;if(n===ys.BAND)return ir(o,Ye(r)?{signal:`${r.signal}/2`}:r/2)}else if(w2(e)){if(n===ys.POINT)return .5;if(n===ys.BAND)return i.offsetBandPaddingOuter}}}function Lnt(t,e,n,r){if(n==="x"&&r.xReverse!==void 0)return zs(t)&&e==="descending"?Ye(r.xReverse)?{signal:`!${r.xReverse.signal}`}:!r.xReverse:r.xReverse;if(zs(t)&&e==="descending")return!0}function Int(t,e,n,r,i){if(!!n&&n!=="unaggregated"&&zs(i)){if(_e(n)){const o=n[0],u=n[n.length-1];if(o<=0&&u>=0)return!0}return!1}if(t==="size"&&e.type==="quantitative"&&!B2(i))return!0;if(!(Le(e)&&e.bin)&&Tt([...Da,...FYe],t)){const{orient:o,type:u}=r;return!(Tt(["bar","area","line","trail"],u)&&(o==="horizontal"&&t==="y"||o==="vertical"&&t==="x"))}return!1}function $nt(t,e,n,r,i=!1){const s=Bnt(e,n,r,i),{type:o}=t;return kc(e)?o!==void 0?$Ke(e,o)?Le(n)&&!IKe(o,n.type)?(Te(kXe(o,s)),s):o:(Te(BXe(e,o,s)),s):s:null}function Bnt(t,e,n,r){var i;switch(e.type){case"nominal":case"ordinal":{if(F2(t)||w8(t)==="discrete")return t==="shape"&&e.type==="ordinal"&&Te(M8(t,"ordinal")),"ordinal";if(kr(t)||w2(t)){if(Tt(["rect","bar","image","rule"],n.type)||r)return"band"}else if(n.type==="arc"&&t in F8)return"band";const s=n[gs(t)];return k2(s)||p7(e)&&(!((i=e.axis)===null||i===void 0)&&i.tickBand)?"band":"point"}case"temporal":return F2(t)?"time":w8(t)==="discrete"?(Te(M8(t,"temporal")),"ordinal"):Le(e)&&e.timeUnit&&ji(e.timeUnit).utc?"utc":"time";case"quantitative":return F2(t)?Le(e)&&Kt(e.bin)?"bin-ordinal":"linear":w8(t)==="discrete"?(Te(M8(t,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(Aoe(e.type))}function knt(t,{ignoreRange:e}={}){qle(t),Tle(t);for(const n of LKe)Ple(t,n);e||jle(t)}function qle(t){zn(t)?t.component.scales=Pnt(t):t.component.scales=jnt(t)}function Pnt(t){const{encoding:e,mark:n,markDef:r}=t,i={};for(const s of gN){const o=sr(e[s]);if(o&&n===Qoe&&s===ps&&o.type===$2)continue;let u=o&&o.scale;if(w2(s)){const a=Vse(s);if(!E7(e,a)){u&&Te(vXe(s));continue}}if(o&&u!==null&&u!==!1){u??(u={});const a=E7(e,s),l=$nt(u,s,o,r,a);i[s]=new Dle(t.scaleName(`${s}`,!0),{value:l,explicit:u.type===l})}}return i}const Mnt=pae((t,e)=>Boe(t)-Boe(e));function jnt(t){var e,n;const r=t.component.scales={},i={},s=t.component.resolve;for(const o of t.children){qle(o);for(const u of be(o.component.scales))if((e=(n=s.scale)[u])!==null&&e!==void 0||(n[u]=ole(u,t)),s.scale[u]==="shared"){const a=i[u],l=o.component.scales[u].getWithExplicit("type");a?CKe(a.value,l.value)?i[u]=zc(a,l,"type","scale",Mnt):(s.scale[u]="independent",delete i[u]):i[u]=l}}for(const o of be(i)){const u=t.scaleName(o,!0),a=i[o];r[o]=new Dle(u,a);for(const l of t.children){const c=l.component.scales[o];c&&(l.renameScale(c.get("name"),u),c.merged=!0)}}return r}var yP=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class EP{constructor(){this.nameMap={}}rename(e,n){this.nameMap[e]=n}has(e){return this.nameMap[e]!==void 0}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function zn(t){return(t==null?void 0:t.type)==="unit"}function Eu(t){return(t==null?void 0:t.type)==="facet"}function AP(t){return(t==null?void 0:t.type)==="concat"}function Z2(t){return(t==null?void 0:t.type)==="layer"}class SP{constructor(e,n,r,i,s,o,u){var a,l;this.type=n,this.parent=r,this.config=s,this.correctDataNames=c=>{var f,x,h;return!((f=c.from)===null||f===void 0)&&f.data&&(c.from.data=this.lookupDataSource(c.from.data)),!((h=(x=c.from)===null||x===void 0?void 0:x.facet)===null||h===void 0)&&h.data&&(c.from.facet.data=this.lookupDataSource(c.from.facet.data)),c},this.parent=r,this.config=s,this.view=ms(u),this.name=(a=e.name)!==null&&a!==void 0?a:i,this.title=Mc(e.title)?{text:e.title}:e.title?ms(e.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new EP,this.projectionNameMap=r?r.projectionNameMap:new EP,this.signalNameMap=r?r.signalNameMap:new EP,this.data=e.data,this.description=e.description,this.transforms=jZe((l=e.transform)!==null&&l!==void 0?l:[]),this.layout=n==="layer"||n==="unit"?{}:WJe(e,n,s),this.component={data:{sources:r?r.component.data.sources:[],outputNodes:r?r.component.data.outputNodes:{},outputNodeRefCounts:r?r.component.data.outputNodeRefCounts:{},isFaceted:NN(e)||(r==null?void 0:r.component.data.isFaceted)&&e.data===void 0},layoutSize:new o0,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},o?ot(o):{}),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(){knt(this)}parseProjection(){Ele(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){hle(this)}assembleEncodeFromView(e){const n=yP(e,["style"]),r={};for(const i of be(n)){const s=n[i];s!==void 0&&(r[i]=on(s))}return r}assembleGroupEncodeEntry(e){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!e&&(this.description&&(n.description=on(this.description)),this.type==="unit"||this.type==="layer")?Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},n??{}):Wt(n)?void 0:n}assembleLayout(){if(!this.layout)return;const e=this.layout,{spacing:n}=e,r=yP(e,["spacing"]),{component:i,config:s}=this,o=rtt(i.layoutHeaders,s);return Object.assign(Object.assign(Object.assign({padding:n},this.assembleDefaultLayout()),r),o?{titleBand:o}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let n=[];for(const r of To)e[r].title&&n.push(Ket(this,r));for(const r of tP)n=n.concat(Jet(this,r));return n}assembleAxes(){return Met(this.component.axes,this.config)}assembleLegends(){return gle(this)}assembleProjections(){return Rtt(this)}assembleTitle(){var e,n,r;const i=(e=this.title)!==null&&e!==void 0?e:{},{encoding:s}=i,o=yP(i,["encoding"]),u=Object.assign(Object.assign(Object.assign({},noe(this.config.title).nonMarkTitleProperties),o),s?{encode:{update:s}}:{});if(u.text)return Tt(["unit","layer"],this.type)?Tt(["middle",void 0],u.anchor)&&((n=u.frame)!==null&&n!==void 0||(u.frame="group")):(r=u.anchor)!==null&&r!==void 0||(u.anchor="start"),Wt(u)?void 0:u}assembleGroup(e=[]){const n={};e=e.concat(this.assembleSignals()),e.length>0&&(n.signals=e);const r=this.assembleLayout();r&&(n.layout=r),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||Eu(this.parent)?Ole(this):[];i.length>0&&(n.scales=i);const s=this.assembleAxes();s.length>0&&(n.axes=s);const o=this.assembleLegends();return o.length>0&&(n.legends=o),n}getName(e){return mn((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(Jt[e].toLowerCase())}requestDataName(e){const n=this.getDataName(e),r=this.component.data.outputNodeRefCounts;return r[n]=(r[n]||0)+1,n}getSizeSignalRef(e){if(Eu(this.parent)){const n=ile(e),r=pN(n),i=this.component.scales[r];if(i&&!i.merged){const s=i.get("type"),o=i.get("range");if(Cr(s)&&jc(o)){const u=i.get("name"),a=iD(this,r),l=mP(a);if(l){const c=$e({aggregate:"distinct",field:l},{expr:"datum"});return{signal:rle(u,i,c)}}else return Te(k8(r)),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const n=this.component.data.outputNodes[e];return n?n.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,n){this.signalNameMap.rename(e,n)}renameScale(e,n){this.scaleNameMap.rename(e,n)}renameProjection(e,n){this.projectionNameMap.rename(e,n)}scaleName(e,n){if(n)return this.getName(e);if(Qse(e)&&kc(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e)))return this.scaleNameMap.get(this.getName(e))}projectionName(e){if(e)return this.getName("projection");if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection")))return this.projectionNameMap.get(this.getName("projection"))}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const n=this.component.scales[e];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(e):void 0}getSelectionComponent(e,n){let r=this.component.selection[e];if(!r&&this.parent&&(r=this.parent.getSelectionComponent(e,n)),!r)throw new Error(eXe(n));return r}hasAxisOrientSignalRef(){var e,n;return((e=this.component.axes.x)===null||e===void 0?void 0:e.some(r=>r.hasOrientSignalRef()))||((n=this.component.axes.y)===null||n===void 0?void 0:n.some(r=>r.hasOrientSignalRef()))}}class Hle extends SP{vgField(e,n={}){const r=this.fieldDef(e);if(r)return $e(r,n)}reduceFieldDef(e,n){return _Je(this.getMapping(),(r,i,s)=>{const o=Ba(i);return o?e(r,o,s):r},n)}forEachFieldDef(e,n){S7(this.getMapping(),(r,i)=>{const s=Ba(r);s&&e(s,i)},n)}}var Unt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class sD extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ot(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"value",(s=o[1])!==null&&s!==void 0?s:"density"]}clone(){return new sD(null,ot(this.transform))}dependentFields(){var e;return new Set([this.transform.density,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${bt(this.transform)}`}assemble(){const e=this.transform,{density:n}=e,r=Unt(e,["density"]);return Object.assign({type:"kde",field:n},r)}}class P3 extends Ut{constructor(e,n){super(e),this.filter=n}clone(){return new P3(null,Object.assign({},this.filter))}static make(e,n){const{config:r,mark:i,markDef:s}=n;if(kt("invalid",s,r)!=="filter")return null;const u=n.reduceFieldDef((a,l,c)=>{const f=kc(c)&&n.getScaleComponent(c);if(f){const x=f.get("type");zs(x)&&l.aggregate!=="count"&&!Uc(i)&&(a[l.field]=l)}return a},{});return be(u).length?new P3(e,u):null}dependentFields(){return new Set(be(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${bt(this.filter)}`}assemble(){const e=be(this.filter).reduce((n,r)=>{const i=this.filter[r],s=$e(i,{expr:"datum"});return i!==null&&(i.type==="temporal"?n.push(`(isDate(${s}) || (isValid(${s}) && isFinite(+${s})))`):i.type==="quantitative"&&(n.push(`isValid(${s})`),n.push(`isFinite(+${s})`))),n},[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}class oD extends Ut{constructor(e,n){super(e),this.transform=n,this.transform=ot(n);const{flatten:r,as:i=[]}=this.transform;this.transform.as=r.map((s,o)=>{var u;return(u=i[o])!==null&&u!==void 0?u:s})}clone(){return new oD(this.parent,ot(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${bt(this.transform)}`}assemble(){const{flatten:e,as:n}=this.transform;return{type:"flatten",fields:e,as:n}}}class uD extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ot(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"key",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new uD(null,ot(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${bt(this.transform)}`}assemble(){const{fold:e,as:n}=this.transform;return{type:"fold",fields:e,as:n}}}class eg extends Ut{constructor(e,n,r,i){super(e),this.fields=n,this.geojson=r,this.signal=i}clone(){return new eg(null,ot(this.fields),this.geojson,this.signal)}static parseAll(e,n){if(n.component.projection&&!n.component.projection.isFit)return e;let r=0;for(const i of[[Ra,Ta],[bo,hu]]){const s=i.map(o=>{const u=sr(n.encoding[o]);return Le(u)?u.field:Ia(u)?{expr:`${u.datum}`}:gu(u)?{expr:`${u.value}`}:void 0});(s[0]||s[1])&&(e=new eg(e,s,null,n.getName(`geojson_${r++}`)))}if(n.channelHasField(ps)){const i=n.typedFieldDef(ps);i.type===$2&&(e=new eg(e,null,i.field,n.getName(`geojson_${r++}`)))}return e}dependentFields(){var e;const n=((e=this.fields)!==null&&e!==void 0?e:[]).filter(je);return new Set([...this.geojson?[this.geojson]:[],...n])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${bt(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})]}}class M3 extends Ut{constructor(e,n,r,i){super(e),this.projection=n,this.fields=r,this.as=i}clone(){return new M3(null,this.projection,ot(this.fields),ot(this.as))}static parseAll(e,n){if(!n.projectionName())return e;for(const r of[[Ra,Ta],[bo,hu]]){const i=r.map(o=>{const u=sr(n.encoding[o]);return Le(u)?u.field:Ia(u)?{expr:`${u.datum}`}:gu(u)?{expr:`${u.value}`}:void 0}),s=r[0]===bo?"2":"";(i[0]||i[1])&&(e=new M3(e,n.projectionName(),i,[n.getName(`x${s}`),n.getName(`y${s}`)]))}return e}dependentFields(){return new Set(this.fields.filter(je))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${bt(this.fields)} ${bt(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Bd extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new Bd(null,ot(this.transform))}dependentFields(){var e;return new Set([this.transform.impute,this.transform.key,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:n=0,stop:r,step:i}=e;return{signal:`sequence(${[n,r,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,n){return new Bd(e,n)}static makeFromEncoding(e,n){const r=n.encoding,i=r.x,s=r.y;if(Le(i)&&Le(s)){const o=i.impute?i:s.impute?s:void 0;if(o===void 0)return;const u=i.impute?s:s.impute?i:void 0,{method:a,value:l,frame:c,keyvals:f}=o.impute,x=Cue(n.mark,r);return new Bd(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:o.field,key:u.field},a?{method:a}:{}),l!==void 0?{value:l}:{}),c?{frame:c}:{}),f!==void 0?{keyvals:f}:{}),x.length?{groupby:x}:{}))}return null}hash(){return`Impute ${bt(this.transform)}`}assemble(){const{impute:e,key:n,keyvals:r,method:i,groupby:s,value:o,frame:u=[null,null]}=this.transform,a=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:e,key:n},r?{keyvals:vZe(r)?this.processSequence(r):r}:{}),{method:"value"}),s?{groupby:s}:{}),{value:!i||i==="value"?o:null});if(i&&i!=="value"){const l=Object.assign({type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:u,ignorePeers:!1},s?{groupby:s}:{}),c={type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e};return[a,l,c]}else return[a]}}var qnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class aD extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ot(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.loess]}clone(){return new aD(null,ot(this.transform))}dependentFields(){var e;return new Set([this.transform.loess,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${bt(this.transform)}`}assemble(){const e=this.transform,{loess:n,on:r}=e,i=qnt(e,["loess","on"]);return Object.assign({type:"loess",x:r,y:n},i)}}class j3 extends Ut{constructor(e,n,r){super(e),this.transform=n,this.secondary=r}clone(){return new j3(null,ot(this.transform),this.secondary)}static make(e,n,r,i){const s=n.component.data.sources,{from:o}=r;let u=null;if(_Ze(o)){let a=Wle(o.data,s);a||(a=new Ld(o.data),s.push(a));const l=n.getName(`lookup_${i}`);u=new qi(a,l,Jt.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=u}else if(CZe(o)){const a=o.param;r=Object.assign({as:a},r);let l;try{l=n.getSelectionComponent(mn(a),a)}catch{throw new Error(rXe(a))}if(u=l.materialized,!u)throw new Error(iXe(a))}return new j3(e,r,u.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?Pe(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${bt({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e=Object.assign({values:this.transform.from.fields},this.transform.as?{as:Pe(this.transform.as)}:{});else{let n=this.transform.as;je(n)||(Te(xXe),n="_lookup"),e={as:[n]}}return Object.assign(Object.assign({type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup]},e),this.transform.default?{default:this.transform.default}:{})}}var Hnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class lD extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ot(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"prob",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new lD(null,ot(this.transform))}dependentFields(){var e;return new Set([this.transform.quantile,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${bt(this.transform)}`}assemble(){const e=this.transform,{quantile:n}=e,r=Hnt(e,["quantile"]);return Object.assign({type:"quantile",field:n},r)}}var znt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class cD extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ot(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.regression]}clone(){return new cD(null,ot(this.transform))}dependentFields(){var e;return new Set([this.transform.regression,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${bt(this.transform)}`}assemble(){const e=this.transform,{regression:n,on:r}=e,i=znt(e,["regression","on"]);return Object.assign({type:"regression",x:r,y:n},i)}}class fD extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new fD(null,ot(this.transform))}addDimensions(e){var n;this.transform.groupby=Wl(((n=this.transform.groupby)!==null&&n!==void 0?n:[]).concat(e),r=>r)}producedFields(){}dependentFields(){var e;return new Set([this.transform.pivot,this.transform.value,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}hash(){return`PivotTransform ${bt(this.transform)}`}assemble(){const{pivot:e,value:n,groupby:r,limit:i,op:s}=this.transform;return Object.assign(Object.assign(Object.assign({type:"pivot",field:e,value:n},i!==void 0?{limit:i}:{}),s!==void 0?{op:s}:{}),r!==void 0?{groupby:r}:{})}}class xD extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new xD(null,ot(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${bt(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function zle(t){let e=0;function n(r,i){var s;if(r instanceof Ld&&!r.isGenerator&&!q2(r.data)&&(t.push(i),i={name:null,source:i.name,transform:[]}),r instanceof li&&(r.parent instanceof Ld&&!i.source?(i.format=Object.assign(Object.assign({},(s=i.format)!==null&&s!==void 0?s:{}),{parse:r.assembleFormatParse()}),i.transform.push(...r.assembleTransforms(!0))):i.transform.push(...r.assembleTransforms())),r instanceof K2){i.name||(i.name=`data_${e++}`),!i.source||i.transform.length>0?(t.push(i),r.data=i.name):r.data=i.source,t.push(...r.assemble());return}switch((r instanceof $3||r instanceof B3||r instanceof P3||r instanceof W2||r instanceof V2||r instanceof M3||r instanceof mu||r instanceof j3||r instanceof J2||r instanceof $d||r instanceof uD||r instanceof oD||r instanceof sD||r instanceof aD||r instanceof lD||r instanceof cD||r instanceof Yc||r instanceof xD||r instanceof fD)&&i.transform.push(r.assemble()),(r instanceof ja||r instanceof Ma||r instanceof Bd||r instanceof u0||r instanceof eg)&&i.transform.push(...r.assemble()),r instanceof qi&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof qi?r.setSource(i.name):(i.name||(i.name=`data_${e++}`),r.setSource(i.name),r.numChildren()===1&&(t.push(i),i={name:null,source:i.name,transform:[]}))),r.numChildren()){case 0:r instanceof qi&&(!i.source||i.transform.length>0)&&t.push(i);break;case 1:n(r.children[0],i);break;default:{i.name||(i.name=`data_${e++}`);let o=i.name;!i.source||i.transform.length>0?t.push(i):o=i.source;for(const u of r.children)n(u,{name:null,source:o,transform:[]});break}}}return n}function Qnt(t){const e=[],n=zle(e);for(const r of t.children)n(r,{source:t.name,name:null,transform:[]});return e}function Gnt(t,e){var n,r;const i=[],s=zle(i);let o=0;for(const a of t.sources){a.hasName()||(a.dataName=`source_${o++}`);const l=a.assemble();s(a,l)}for(const a of i)a.transform.length===0&&delete a.transform;let u=0;for(const[a,l]of i.entries())((n=l.transform)!==null&&n!==void 0?n:[]).length===0&&!l.source&&i.splice(u++,0,i.splice(a,1)[0]);for(const a of i)for(const l of(r=a.transform)!==null&&r!==void 0?r:[])l.type==="lookup"&&(l.from=t.outputNodes[l.from].getSource());for(const a of i)a.name in e&&(a.values=e[a.name]);return i}function Wnt(t){return t==="top"||t==="left"||Ye(t)?"header":"footer"}function Vnt(t){for(const e of To)Ynt(t,e);Gle(t,"x"),Gle(t,"y")}function Ynt(t,e){var n;const{facet:r,config:i,child:s,component:o}=t;if(t.channelHasField(e)){const u=r[e],a=X2("title",null,i,e);let l=P2(u,i,{allowDisabling:!0,includeDefault:a===void 0||!!a});s.component.layoutHeaders[e].title&&(l=_e(l)?l.join(", "):l,l+=` / ${s.component.layoutHeaders[e].title}`,s.component.layoutHeaders[e].title=null);const c=X2("labelOrient",u.header,i,e),f=u.header!==null?ir((n=u.header)===null||n===void 0?void 0:n.labels,i.header.labels,!0):!1,x=Tt(["bottom","right"],c)?"footer":"header";o.layoutHeaders[e]={title:u.header!==null?l:null,facetFieldDef:u,[x]:e==="facet"?[]:[Qle(t,e,f)]}}}function Qle(t,e,n){const r=e==="row"?"height":"width";return{labels:n,sizeSignal:t.child.component.layoutSize.get(r)?t.child.getSizeSignalRef(r):void 0,axes:[]}}function Gle(t,e){var n;const{child:r}=t;if(r.component.axes[e]){const{layoutHeaders:i,resolve:s}=t.component;if(s.axis[e]=sP(s,e),s.axis[e]==="shared"){const o=e==="x"?"column":"row",u=i[o];for(const a of r.component.axes[e]){const l=Wnt(a.get("orient"));(n=u[l])!==null&&n!==void 0||(u[l]=[Qle(t,o,!1)]);const c=I3(a,"main",t.config,{header:!0});c&&u[l][0].axes.push(c),a.mainExtracted=!0}}}}function Xnt(t){vP(t),dD(t,"width"),dD(t,"height")}function Knt(t){vP(t);const e=t.layout.columns===1?"width":"childWidth",n=t.layout.columns===void 0?"height":"childHeight";dD(t,e),dD(t,n)}function vP(t){for(const e of t.children)e.parseLayoutSize()}function dD(t,e){var n;const r=ile(e),i=pN(r),s=t.component.resolve,o=t.component.layoutSize;let u;for(const a of t.children){const l=a.component.layoutSize.getWithExplicit(r),c=(n=s.scale[i])!==null&&n!==void 0?n:ole(i,t);if(c==="independent"&&l.value==="step"){u=void 0;break}if(u){if(c==="independent"&&u.value!==l.value){u=void 0;break}u=zc(u,l,r,"")}else u=l}if(u){for(const a of t.children)t.renameSignal(a.getName(r),t.getName(e)),a.component.layoutSize.set(r,"merged",!1);o.setWithExplicit(e,u)}else o.setWithExplicit(e,{explicit:!1,value:void 0})}function Jnt(t){const{size:e,component:n}=t;for(const r of Da){const i=gs(r);if(e[i]){const s=e[i];n.layoutSize.set(i,ka(s)?"step":s,!0)}else{const s=Znt(t,i);n.layoutSize.set(i,s,!1)}}}function Znt(t,e){const n=e==="width"?"x":"y",r=t.config,i=t.getScaleComponent(n);if(i){const s=i.get("type"),o=i.get("range");if(Cr(s)){const u=zN(r.view,e);return jc(o)||ka(u)?"step":u}else return L7(r.view,e)}else{if(t.hasProjection||t.mark==="arc")return L7(r.view,e);{const s=zN(r.view,e);return ka(s)?s.step:s}}}function _P(t,e,n){return $e(e,Object.assign({suffix:`by_${$e(t)}`},n??{}))}class U3 extends Hle{constructor(e,n,r,i){super(e,"facet",n,r,i,e.resolve),this.child=OP(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!b3(e))return{facet:this.initFacetFieldDef(e,"facet")};const n=be(e),r={};for(const i of n){if(![Vl,Yl].includes(i)){Te(EN(i,"facet"));break}const s=e[i];if(s.field===void 0){Te(P8(s,i));break}r[i]=this.initFacetFieldDef(s,i)}return r}initFacetFieldDef(e,n){const r=y7(e,n);return r.header?r.header=ms(r.header):r.header===null&&(r.header=null),r}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=hD(this),this.child.parseData()}parseLayoutSize(){vP(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),Vnt(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){var e,n,r;const i={};for(const s of To)for(const o of nP){const u=this.component.layoutHeaders[s],a=u[o],{facetFieldDef:l}=u;if(l){const c=X2("titleOrient",l.header,this.config,s);if(["right","bottom"].includes(c)){const f=eD(s,c);(e=i.titleAnchor)!==null&&e!==void 0||(i.titleAnchor={}),i.titleAnchor[f]="end"}}if(a!=null&&a[0]){const c=s==="row"?"height":"width",f=o==="header"?"headerBand":"footerBand";s!=="facet"&&!this.child.component.layoutSize.get(c)&&((n=i[f])!==null&&n!==void 0||(i[f]={}),i[f][s]=.5),u.title&&((r=i.offset)!==null&&r!==void 0||(i.offset={}),i.offset[s==="row"?"rowTitle":"columnTitle"]=10)}}return i}assembleDefaultLayout(){const{column:e,row:n}=this.facet,r=e?this.columnDistinctSignal():n?1:void 0;let i="all";return(!n&&this.component.resolve.scale.x==="independent"||!e&&this.component.resolve.scale.y==="independent")&&(i="none"),Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),r?{columns:r}:{}),{bounds:"full",align:i})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof U3))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof U3?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:$e(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(e)):super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],n=[],r=[];if(this.child instanceof U3){if(this.child.channelHasField("column")){const i=$e(this.child.facet.column);e.push(i),n.push("distinct"),r.push(`distinct_${i}`)}}else for(const i of Da){const s=this.child.component.scales[i];if(s&&!s.merged){const o=s.get("type"),u=s.get("range");if(Cr(o)&&jc(u)){const a=iD(this.child,i),l=mP(a);l?(e.push(l),n.push("distinct"),r.push(`distinct_${l}`)):Te(k8(i))}}}return{fields:e,ops:n,as:r}}assembleFacet(){const{name:e,data:n}=this.component.data.facetRoot,{row:r,column:i}=this.facet,{fields:s,ops:o,as:u}=this.getCardinalityAggregateForChild(),a=[];for(const c of To){const f=this.facet[c];if(f){a.push($e(f));const{bin:x,sort:h}=f;if(Kt(x)&&a.push($e(f,{binSuffix:"end"})),La(h)){const{field:p,op:m=ON}=h,g=_P(f,h);r&&i?(s.push(g),o.push("max"),u.push(g)):(s.push(p),o.push(m),u.push(g))}else if(_e(h)){const p=Y2(f,c);s.push(p),o.push("max"),u.push(p)}}}const l=!!r&&!!i;return Object.assign({name:e,data:n,groupby:a},l||s.length>0?{aggregate:Object.assign(Object.assign({},l?{cross:l}:{}),s.length?{fields:s,ops:o,as:u}:{})}:{})}facetSortFields(e){const{facet:n}=this,r=n[e];return r?La(r.sort)?[_P(r,r.sort,{expr:"datum"})]:_e(r.sort)?[Y2(r,e,{expr:"datum"})]:[$e(r,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:n}=this,r=n[e];if(r){const{sort:i}=r;return[(La(i)?i.order:!_e(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:n,config:r}=this;if(n.facet)return rP(n.facet,"facet",r);const i={row:["top","bottom"],column:["left","right"]};for(const s of tP)if(n[s]){const o=X2("labelOrient",(e=n[s])===null||e===void 0?void 0:e.header,r,s);if(i[s].includes(o))return rP(n[s],s,r)}}assembleMarks(){const{child:e}=this,n=this.component.data.facetRoot,r=Qnt(n),i=e.assembleGroupEncodeEntry(!1),s=this.assembleLabelTitle()||e.assembleTitle(),o=e.assembleGroupStyle();return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},s?{title:s}:{}),o?{style:o}:{}),{from:{facet:this.assembleFacet()},sort:{field:To.map(a=>this.facetSortFields(a)).flat(),order:To.map(a=>this.facetSortOrder(a)).flat()}}),r.length>0?{data:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup(eet(this,[])))]}getMapping(){return this.facet}}function ert(t,e){const{row:n,column:r}=e;if(n&&r){let i=null;for(const s of[n,r])if(La(s.sort)){const{field:o,op:u=ON}=s.sort;t=i=new $d(t,{joinaggregate:[{op:u,field:o,as:_P(s,s.sort,{forAs:!0})}],groupby:[$e(s)]})}return i}return null}function Wle(t,e){var n,r,i,s;for(const o of e){const u=o.data;if(t.name&&o.hasName()&&t.name!==o.dataName)continue;const a=(n=t.format)===null||n===void 0?void 0:n.mesh,l=(r=u.format)===null||r===void 0?void 0:r.feature;if(a&&l)continue;const c=(i=t.format)===null||i===void 0?void 0:i.feature;if((c||l)&&c!==l)continue;const f=(s=u.format)===null||s===void 0?void 0:s.mesh;if(!((a||f)&&a!==f)){if(D3(t)&&D3(u)){if(Gl(t.values,u.values))return o}else if(q2(t)&&q2(u)){if(t.url===u.url)return o}else if(gae(t)&&t.name===o.dataName)return o}}return null}function trt(t,e){if(t.data||!t.parent){if(t.data===null){const r=new Ld({values:[]});return e.push(r),r}const n=Wle(t.data,e);if(n)return Qc(t.data)||(n.data.format=cYe({},t.data.format,n.data.format)),!n.hasName()&&t.data.name&&(n.dataName=t.data.name),n;{const r=new Ld(t.data);return e.push(r),r}}else return t.parent.component.data.facetRoot?t.parent.component.data.facetRoot:t.parent.component.data.main}function nrt(t,e,n){var r,i;let s=0;for(const o of e.transforms){let u,a;if(IZe(o))a=t=new V2(t,o),u="derived";else if(P7(o)){const l=Utt(o);a=t=(r=li.makeWithAncestors(t,{},l,n))!==null&&r!==void 0?r:t,t=new W2(t,e,o.filter)}else if(aae(o))a=t=ja.makeFromTransform(t,o,e),u="number";else if(BZe(o))u="date",n.getWithExplicit(o.field).value===void 0&&(t=new li(t,{[o.field]:u}),n.set(o.field,u,!1)),a=t=Ma.makeFromTransform(t,o);else if(kZe(o))a=t=mu.makeFromTransform(t,o),u="number",X7(e)&&(t=new Yc(t));else if(uae(o))a=t=j3.make(t,e,o,s++),u="derived";else if(FZe(o))a=t=new J2(t,o),u="number";else if(wZe(o))a=t=new $d(t,o),u="number";else if(PZe(o))a=t=u0.makeFromTransform(t,o),u="derived";else if(MZe(o))a=t=new uD(t,o),u="derived";else if(LZe(o))a=t=new oD(t,o),u="derived";else if(bZe(o))a=t=new fD(t,o),u="derived";else if(DZe(o))t=new xD(t,o);else if($Ze(o))a=t=Bd.makeFromTransform(t,o),u="derived";else if(TZe(o))a=t=new sD(t,o),u="derived";else if(RZe(o))a=t=new lD(t,o),u="derived";else if(OZe(o))a=t=new cD(t,o),u="derived";else if(NZe(o))a=t=new aD(t,o),u="derived";else{Te(fXe(o));continue}if(a&&u!==void 0)for(const l of(i=a.producedFields())!==null&&i!==void 0?i:[])n.set(l,u,!1)}return t}function hD(t){var e,n,r,i,s,o,u,a,l,c;let f=trt(t,t.component.data.sources);const{outputNodes:x,outputNodeRefCounts:h}=t.component.data,p=t.data,g=!(p&&(Qc(p)||q2(p)||D3(p)))&&t.parent?t.parent.component.data.ancestorParse.clone():new KZe;Qc(p)?(mae(p)?f=new B3(f,p.sequence):U7(p)&&(f=new $3(f,p.graticule)),g.parseNothing=!0):((e=p==null?void 0:p.format)===null||e===void 0?void 0:e.parse)===null&&(g.parseNothing=!0),f=(n=li.makeExplicit(f,t,g))!==null&&n!==void 0?n:f,f=new Yc(f);const y=t.parent&&Z2(t.parent);(zn(t)||Eu(t))&&y&&(f=(r=ja.makeFromEncoding(f,t))!==null&&r!==void 0?r:f),t.transforms.length>0&&(f=nrt(f,t,g));const E=Htt(t),A=qtt(t);f=(i=li.makeWithAncestors(f,{},Object.assign(Object.assign({},E),A),g))!==null&&i!==void 0?i:f,zn(t)&&(f=eg.parseAll(f,t),f=M3.parseAll(f,t)),(zn(t)||Eu(t))&&(y||(f=(s=ja.makeFromEncoding(f,t))!==null&&s!==void 0?s:f),f=(o=Ma.makeFromEncoding(f,t))!==null&&o!==void 0?o:f,f=V2.parseAllForSortIndex(f,t));const S=t.getDataName(Jt.Raw),v=new qi(f,S,Jt.Raw,h);if(x[S]=v,f=v,zn(t)){const O=mu.makeFromEncoding(f,t);O&&(f=O,X7(t)&&(f=new Yc(f))),f=(u=Bd.makeFromEncoding(f,t))!==null&&u!==void 0?u:f,f=(a=u0.makeFromEncoding(f,t))!==null&&a!==void 0?a:f}zn(t)&&(f=(l=P3.make(f,t))!==null&&l!==void 0?l:f);const _=t.getDataName(Jt.Main),C=new qi(f,_,Jt.Main,h);x[_]=C,f=C,zn(t)&&ket(t,C);let b=null;if(Eu(t)){const O=t.getName("facet");f=(c=ert(f,t.facet))!==null&&c!==void 0?c:f,b=new K2(f,t,O,C.getSource()),x[O]=b}return Object.assign(Object.assign({},t.component.data),{outputNodes:x,outputNodeRefCounts:h,raw:v,main:C,facetRoot:b,ancestorParse:g})}class rrt extends SP{constructor(e,n,r,i){var s,o,u,a;super(e,"concat",n,r,i,e.resolve),(((o=(s=e.resolve)===null||s===void 0?void 0:s.axis)===null||o===void 0?void 0:o.x)==="shared"||((a=(u=e.resolve)===null||u===void 0?void 0:u.axis)===null||a===void 0?void 0:a.y)==="shared")&&Te(aXe),this.children=this.getChildren(e).map((l,c)=>OP(l,this,this.getName(`concat_${c}`),void 0,i))}parseData(){this.component.data=hD(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of be(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}getChildren(e){return qN(e)?e.vconcat:w7(e)?e.hconcat:e.concat}parseLayoutSize(){Knt(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.forEach(e=>e.assembleSignals()),[]}assembleLayoutSignals(){const e=iP(this);for(const n of this.children)e.push(...n.assembleLayoutSignals());return e}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleMarks(){return this.children.map(e=>{const n=e.assembleTitle(),r=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:e.getName("group")},n?{title:n}:{}),r?{style:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup())})}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return Object.assign(Object.assign({},e!=null?{columns:e}:{}),{bounds:"full",align:"each"})}}function irt(t){return t===!1||t===null}const srt=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},Eue),{labelExpr:1,encode:1}),Vle=be(srt);class CP extends o0{constructor(e={},n={},r=!1){super(),this.explicit=e,this.implicit=n,this.mainExtracted=r}clone(){return new CP(ot(this.explicit),ot(this.implicit),this.mainExtracted)}hasAxisPart(e){return e==="axis"?!0:e==="grid"||e==="title"?!!this.get(e):!irt(this.get(e))}hasOrientSignalRef(){return Ye(this.explicit.orient)}}function ort(t,e,n){var r;const{encoding:i,config:s}=t,o=(r=sr(i[e]))!==null&&r!==void 0?r:sr(i[e0(e)]),u=t.axis(e)||{},{format:a,formatType:l}=u;return Nd(l)?Object.assign({text:l7({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:l,config:s})},n):n}function urt(t){return Da.reduce((e,n)=>(t.component.scales[n]&&(e[n]=[hrt(n,t)]),e),{})}const art={bottom:"top",top:"bottom",left:"right",right:"left"};function lrt(t){var e;const{axes:n,resolve:r}=t.component,i={top:0,bottom:0,right:0,left:0};for(const s of t.children){s.parseAxesAndHeaders();for(const o of be(s.component.axes))r.axis[o]=sP(t.component.resolve,o),r.axis[o]==="shared"&&(n[o]=crt(n[o],s.component.axes[o]),n[o]||(r.axis[o]="independent",delete n[o]))}for(const s of Da){for(const o of t.children)if(o.component.axes[s]){if(r.axis[s]==="independent"){n[s]=((e=n[s])!==null&&e!==void 0?e:[]).concat(o.component.axes[s]);for(const u of o.component.axes[s]){const{value:a,explicit:l}=u.getWithExplicit("orient");if(!Ye(a)){if(i[a]>0&&!l){const c=art[a];i[a]>i[c]&&u.set("orient",c,!1)}i[a]++}}}delete o.component.axes[s]}if(r.axis[s]==="independent"&&n[s]&&n[s].length>1)for(const o of n[s])o.get("grid")&&!o.explicit.grid&&(o.implicit.grid=!1)}}function crt(t,e){if(t){if(t.length!==e.length)return;const n=t.length;for(let r=0;r<n;r++){const i=t[r],s=e[r];if(!!i!=!!s)return;if(i&&s){const o=i.getWithExplicit("orient"),u=s.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;t[r]=frt(i,s)}}}else return e.map(n=>n.clone());return t}function frt(t,e){for(const n of Vle){const r=zc(t.getWithExplicit(n),e.getWithExplicit(n),n,"axis",(i,s)=>{switch(n){case"title":return foe(i,s);case"gridScale":return{explicit:i.explicit,value:ir(i.value,s.value)}}return GN(i,s,n,"axis")});t.setWithExplicit(n,r)}return t}function xrt(t,e,n,r,i){if(e==="disable")return n!==void 0;switch(n=n||{},e){case"titleAngle":case"labelAngle":return t===(Ye(n.labelAngle)?n.labelAngle:lN(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(t===Jae(r,i))return!0}return t===n[e]}const drt=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function hrt(t,e){var n,r,i;let s=e.axis(t);const o=new CP,u=sr(e.encoding[t]),{mark:a,config:l}=e,c=(s==null?void 0:s.orient)||((n=l[t==="x"?"axisX":"axisY"])===null||n===void 0?void 0:n.orient)||((r=l.axis)===null||r===void 0?void 0:r.orient)||Wet(t),f=e.getScaleComponent(t).get("type"),x=jet(t,f,c,e.config),h=s!==void 0?!s:Z7("disable",l.style,s==null?void 0:s.style,x).configValue;if(o.set("disable",h,s!==void 0),h)return o;s=s||{};const p=zet(u,s,t,l.style,x),m={fieldOrDatumDef:u,axis:s,channel:t,model:e,scaleType:f,orient:c,labelAngle:p,mark:a,config:l};for(const E of Vle){const A=E in Yae?Yae[E](m):Aue(E)?s[E]:void 0,S=A!==void 0,v=xrt(A,E,s,e,t);if(S&&v)o.set(E,A,v);else{const{configValue:_=void 0,configFrom:C=void 0}=Aue(E)&&E!=="values"?Z7(E,l.style,s.style,x):{},b=_!==void 0;S&&!b?o.set(E,A,v):(C!=="vgAxisConfig"||drt.has(E)&&b||O3(_)||Ye(_))&&o.set(E,_,!1)}}const g=(i=s.encoding)!==null&&i!==void 0?i:{},y=yue.reduce((E,A)=>{var S;if(!o.hasAxisPart(A))return E;const v=sle((S=g[A])!==null&&S!==void 0?S:{},e),_=A==="labels"?ort(e,t,v):v;return _!==void 0&&!Wt(_)&&(E[A]={update:_}),E},{});return Wt(y)||o.set("encode",y,!!s.encoding||s.labelAngle!==void 0),o}function prt({encoding:t,size:e}){for(const n of Da){const r=gs(n);ka(e[r])&&$a(t[n])&&(delete e[r],Te(_oe(r)))}return e}function grt(t,e,n){const r=ms(t),i=kt("orient",r,n);if(r.orient=Art(r.type,e,i),i!==void 0&&i!==r.orient&&Te(NXe(r.orient,i)),r.type==="bar"&&r.orient){const u=kt("cornerRadiusEnd",r,n);if(u!==void 0){const a=r.orient==="horizontal"&&e.x2||r.orient==="vertical"&&e.y2?["cornerRadius"]:QKe[r.orient];for(const l of a)r[l]=u;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}return kt("opacity",r,n)===void 0&&(r.opacity=yrt(r.type,e)),kt("cursor",r,n)===void 0&&(r.cursor=mrt(r,e,n)),r}function mrt(t,e,n){return e.href||t.href||kt("href",t,n)?"pointer":t.cursor}function yrt(t,e){if(Tt([CN,n7,r7,i7],t)&&!A7(e))return .7}function Ert(t,e,{graticule:n}){if(n)return!1;const r=bd("filled",t,e),i=t.type;return ir(r,i!==CN&&i!==_N&&i!==bN)}function Art(t,e,n){switch(t){case CN:case r7:case i7:case zoe:case kKe:case BKe:return}const{x:r,y:i,x2:s,y2:o}=e;switch(t){case vN:if(Le(r)&&(Mi(r.bin)||Le(i)&&i.aggregate&&!r.aggregate))return"vertical";if(Le(i)&&(Mi(i.bin)||Le(r)&&r.aggregate&&!i.aggregate))return"horizontal";if(o||s){if(n)return n;if(!s&&(Le(r)&&r.type===Rd&&!Kt(r.bin)||h7(r)))return"horizontal";if(!o&&(Le(i)&&i.type===Rd&&!Kt(i.bin)||h7(i)))return"vertical"}case bN:if(s&&!(Le(r)&&Mi(r.bin))&&o&&!(Le(i)&&Mi(i.bin)))return;case SN:if(o)return Le(i)&&Mi(i.bin)?"horizontal":"vertical";if(s)return Le(r)&&Mi(r.bin)?"vertical":"horizontal";if(t===bN){if(r&&!i)return"vertical";if(i&&!r)return"horizontal"}case _N:case n7:{const u=$a(r),a=$a(i);if(n)return n;if(u&&!a)return t!=="tick"?"horizontal":"vertical";if(!u&&a)return t!=="tick"?"vertical":"horizontal";if(u&&a){const l=r,c=i,f=l.type===I2,x=c.type===I2;return f&&!x?t!=="tick"?"vertical":"horizontal":!f&&x?t!=="tick"?"horizontal":"vertical":!l.aggregate&&c.aggregate?t!=="tick"?"vertical":"horizontal":l.aggregate&&!c.aggregate&&t!=="tick"?"horizontal":"vertical"}else return}}return"vertical"}const Srt={vgMark:"arc",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ai("x",t,{defaultPos:"mid"})),ai("y",t,{defaultPos:"mid"})),Wc(t,"radius")),Wc(t,"theta"))},vrt={vgMark:"area",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),VN("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"})),VN("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"})),V7(t))},_rt={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Wc(t,"x")),Wc(t,"y"))},Crt={vgMark:"shape",encodeEntry:t=>Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),postEncodingTransform:t=>{const{encoding:e}=t,n=e.shape;return[Object.assign({type:"geoshape",projection:t.projectionName()},n&&Le(n)&&n.type===$2?{field:$e(n,{expr:"datum"})}:{})]}},brt={vgMark:"image",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),Wc(t,"x")),Wc(t,"y")),G7(t,"url"))},Trt={vgMark:"line",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ai("x",t,{defaultPos:"mid"})),ai("y",t,{defaultPos:"mid"})),br("size",t,{vgChannel:"strokeWidth"})),V7(t))},Rrt={vgMark:"trail",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ai("x",t,{defaultPos:"mid"})),ai("y",t,{defaultPos:"mid"})),br("size",t)),V7(t))};function bP(t,e){const{config:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ai("x",t,{defaultPos:"mid"})),ai("y",t,{defaultPos:"mid"})),br("size",t)),br("angle",t)),Ort(t,n,e))}function Ort(t,e,n){return n?{shape:{value:n}}:br("shape",t)}const Nrt={vgMark:"symbol",encodeEntry:t=>bP(t)},Drt={vgMark:"symbol",encodeEntry:t=>bP(t,"circle")},Frt={vgMark:"symbol",encodeEntry:t=>bP(t,"square")},wrt={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Wc(t,"x")),Wc(t,"y"))},Lrt={vgMark:"rule",encodeEntry:t=>{const{markDef:e}=t,n=e.orient;return!t.encoding.x&&!t.encoding.y&&!t.encoding.latitude&&!t.encoding.longitude?{}:Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),VN("x",t,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"})),VN("y",t,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"})),br("size",t,{vgChannel:"strokeWidth"}))}},Irt={vgMark:"text",encodeEntry:t=>{const{config:e,encoding:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),ai("x",t,{defaultPos:"mid"})),ai("y",t,{defaultPos:"mid"})),G7(t)),br("size",t,{vgChannel:"fontSize"})),br("angle",t)),Dae("align",$rt(t.markDef,n,e))),Dae("baseline",Brt(t.markDef,n,e))),ai("radius",t,{defaultPos:null})),ai("theta",t,{defaultPos:null}))}};function $rt(t,e,n){if(kt("align",t,n)===void 0)return"center"}function Brt(t,e,n){if(kt("baseline",t,n)===void 0)return"middle"}const krt={vgMark:"rect",encodeEntry:t=>{const{config:e,markDef:n}=t,r=n.orient,i=r==="horizontal"?"width":"height",s=r==="horizontal"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),ai("x",t,{defaultPos:"mid",vgChannel:"xc"})),ai("y",t,{defaultPos:"mid",vgChannel:"yc"})),br("size",t,{defaultValue:Prt(t),vgChannel:i})),{[s]:on(kt("thickness",n,e))})}};function Prt(t){var e;const{config:n,markDef:r}=t,{orient:i}=r,s=i==="horizontal"?"width":"height",o=t.getScaleComponent(i==="horizontal"?"x":"y"),u=(e=kt("size",r,n,{vgChannel:s}))!==null&&e!==void 0?e:n.tick.bandSize;if(u!==void 0)return u;{const a=o?o.get("range"):void 0;return a&&jc(a)&&nn(a.step)?a.step*3/4:HN(n.view,s)*3/4}}const pD={arc:Srt,area:vrt,bar:_rt,circle:Drt,geoshape:Crt,image:brt,line:Trt,point:Nrt,rect:wrt,rule:Lrt,square:Frt,text:Irt,tick:krt,trail:Rrt};function Mrt(t){if(Tt([_N,SN,PKe],t.mark)){const e=Cue(t.mark,t.encoding);if(e.length>0)return jrt(t,e)}else if(t.mark===vN){const e=I8.some(n=>kt(n,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&e)return Urt(t)}return TP(t)}const Yle="faceted_path_";function jrt(t,e){return[{name:t.getName("pathgroup"),type:"group",from:{facet:{name:Yle+t.requestDataName(Jt.Main),data:t.requestDataName(Jt.Main),groupby:e}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:TP(t,{fromPrefix:Yle})}]}const Xle="stack_group_";function Urt(t){var e;const[n]=TP(t,{fromPrefix:Xle}),r=t.scaleName(t.stack.fieldChannel),i=(c={})=>t.vgField(t.stack.fieldChannel,c),s=(c,f)=>{const x=[i({prefix:"min",suffix:"start",expr:f}),i({prefix:"max",suffix:"start",expr:f}),i({prefix:"min",suffix:"end",expr:f}),i({prefix:"max",suffix:"end",expr:f})];return`${c}(${x.map(h=>`scale('${r}',${h})`).join(",")})`};let o,u;t.stack.fieldChannel==="x"?(o=Object.assign(Object.assign({},p3(n.encode.update,["y","yc","y2","height",...I8])),{x:{signal:s("min","datum")},x2:{signal:s("max","datum")},clip:{value:!0}}),u={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update=Object.assign(Object.assign({},Co(n.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(o=Object.assign(Object.assign({},p3(n.encode.update,["x","xc","x2","width"])),{y:{signal:s("min","datum")},y2:{signal:s("max","datum")},clip:{value:!0}}),u={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update=Object.assign(Object.assign({},Co(n.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const c of I8){const f=bd(c,t.markDef,t.config);n.encode.update[c]?(o[c]=n.encode.update[c],delete n.encode.update[c]):f&&(o[c]=on(f)),f&&(n.encode.update[c]={value:0})}const a=[];if(((e=t.stack.groupbyChannels)===null||e===void 0?void 0:e.length)>0)for(const c of t.stack.groupbyChannels){const f=t.fieldDef(c),x=$e(f);x&&a.push(x),(f!=null&&f.bin||f!=null&&f.timeUnit)&&a.push($e(f,{binSuffix:"end"}))}return o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((c,f)=>{if(n.encode.update[f])return Object.assign(Object.assign({},c),{[f]:n.encode.update[f]});{const x=bd(f,t.markDef,t.config);return x!==void 0?Object.assign(Object.assign({},c),{[f]:on(x)}):c}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:t.requestDataName(Jt.Main),name:Xle+t.requestDataName(Jt.Main),groupby:a,aggregate:{fields:[i({suffix:"start"}),i({suffix:"start"}),i({suffix:"end"}),i({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:u},marks:[n]}]}]}function qrt(t){var e;const{encoding:n,stack:r,mark:i,markDef:s,config:o}=t,u=n.order;if(!(!_e(u)&&gu(u)&&$se(u.value)||!u&&$se(kt("order",s,o)))){if((_e(u)||Le(u))&&!r)return aoe(u,{expr:"datum"});if(Uc(i)){const a=s.orient==="horizontal"?"y":"x",l=n[a];if(Le(l)){const c=l.sort;if(_e(c))return{field:$e(l,{prefix:a,suffix:"sort_index",expr:"datum"})};if(La(c))return{field:$e({aggregate:A7(t.encoding)?c.op:void 0,field:c.field},{expr:"datum"})};if(iue(c)){const f=t.fieldDef(c.encoding);return{field:$e(f,{expr:"datum"}),order:c.order}}else return c===null?void 0:{field:$e(l,{binSuffix:!((e=t.stack)===null||e===void 0)&&e.impute?"mid":void 0,expr:"datum"})}}return}}}function TP(t,e={fromPrefix:""}){const{mark:n,markDef:r,encoding:i,config:s}=t,o=ir(r.clip,Hrt(t),zrt(t)),u=ooe(r),a=i.key,l=qrt(t),c=Qrt(t),f=kt("aria",r,s),x=pD[n].postEncodingTransform?pD[n].postEncodingTransform(t):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName("marks"),type:pD[n].vgMark},o?{clip:!0}:{}),u?{style:u}:{}),a?{key:a.field}:{}),l?{sort:l}:{}),c||{}),f===!1?{aria:f}:{}),{from:{data:e.fromPrefix+t.requestDataName(Jt.Main)},encode:{update:pD[n].encodeEntry(t)}}),x?{transform:x}:{})]}function Hrt(t){const e=t.getScaleComponent("x"),n=t.getScaleComponent("y");return e!=null&&e.get("selectionExtent")||n!=null&&n.get("selectionExtent")?!0:void 0}function zrt(t){const e=t.component.projection;return e&&!e.isFit?!0:void 0}function Qrt(t){if(!t.component.selection)return null;const e=be(t.component.selection).length;let n=e,r=t.parent;for(;r&&n===0;)n=be(r.component.selection).length,r=r.parent;return n?{interactive:e>0||!!t.encoding.tooltip}:null}class Kle extends Hle{constructor(e,n,r,i={},s){var o;super(e,"unit",n,r,s,void 0,zue(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const u=wa(e.mark)?Object.assign({},e.mark):{type:e.mark},a=u.type;u.filled===void 0&&(u.filled=Ert(u,s,{graticule:e.data&&U7(e.data)}));const l=this.encoding=SJe(e.encoding||{},a,u.filled,s);this.markDef=grt(u,l,s),this.size=prt({encoding:l,size:zue(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=Jue(a,l),this.specifiedScales=this.initScales(a,l),this.specifiedAxes=this.initAxes(l),this.specifiedLegends=this.initLegends(l),this.specifiedProjection=e.projection,this.selection=((o=e.params)!==null&&o!==void 0?o:[]).filter(c=>D7(c))}get hasProjection(){const{encoding:e}=this,n=this.mark===Qoe,r=e&&vYe.some(i=>it(e[i]));return n||r}scaleDomain(e){const n=this.specifiedScales[e];return n?n.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,n){return gN.reduce((r,i)=>{var s;const o=sr(n[i]);return o&&(r[i]=this.initScale((s=o.scale)!==null&&s!==void 0?s:{})),r},{})}initScale(e){const{domain:n,range:r}=e,i=ms(e);return _e(n)&&(i.domain=n.map(Hs)),_e(r)&&(i.range=r.map(Hs)),i}initAxes(e){return Da.reduce((n,r)=>{const i=e[r];if(it(i)||r===yn&&it(e.x2)||r===_r&&it(e.y2)){const s=it(i)?i.axis:void 0;n[r]=s&&this.initAxis(Object.assign({},s))}return n},{})}initAxis(e){const n=be(e),r={};for(const i of n){const s=e[i];r[i]=O3(s)?roe(s):Hs(s)}return r}initLegends(e){return wYe.reduce((n,r)=>{const i=sr(e[r]);if(i&&IYe(r)){const s=i.legend;n[r]=s&&ms(s)}return n},{})}parseData(){this.component.data=hD(this)}parseLayoutSize(){Jnt(this)}parseSelections(){this.component.selection=Bet(this,this.selection)}parseMarkGroup(){this.component.mark=Mrt(this)}parseAxesAndHeaders(){this.component.axes=urt(this)}assembleSelectionTopLevelSignals(e){return tet(this,e)}assembleSignals(){return[...Wae(this),...ZZe(this,[])]}assembleSelectionData(e){return net(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return iP(this)}assembleMarks(){var e;let n=(e=this.component.mark)!==null&&e!==void 0?e:[];return(!this.parent||!Z2(this.parent))&&(n=Eae(this,n)),n.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};if(e!==void 0)return e;if(this.encoding.x||this.encoding.y)return"cell"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return Fd(this.encoding,e)}fieldDef(e){const n=this.encoding[e];return Ba(n)}typedFieldDef(e){const n=this.fieldDef(e);return Ro(n)?n:null}}class RP extends SP{constructor(e,n,r,i,s){super(e,"layer",n,r,s,e.resolve,e.view);const o=Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{});this.children=e.layer.map((u,a)=>{if(QN(u))return new RP(u,this,this.getName(`layer_${a}`),o,s);if(i0(u))return new Kle(u,this,this.getName(`layer_${a}`),o,s);throw new Error(B8(u))})}parseData(){this.component.data=hD(this);for(const e of this.children)e.parseData()}parseLayoutSize(){Xnt(this)}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of be(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){lrt(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleSignals()),Wae(this))}assembleLayoutSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleLayoutSignals()),iP(this))}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleGroupStyle(){const e=new Set;for(const r of this.children)for(const i of Pe(r.assembleGroupStyle()))e.add(i);const n=Array.from(e);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const n of this.children)if(e=n.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return ret(this,this.children.flatMap(e=>e.assembleMarks()))}assembleLegends(){return this.children.reduce((e,n)=>e.concat(n.assembleLegends()),gle(this))}}function OP(t,e,n,r,i){if(NN(t))return new U3(t,e,n,i);if(QN(t))return new RP(t,e,n,r,i);if(i0(t))return new Kle(t,e,n,r,i);if(QJe(t))return new rrt(t,e,n,i);throw new Error(B8(t))}var Grt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Wrt(t,e={}){e.logger&&eKe(e.logger),e.fieldTitle&&hue(e.fieldTitle);try{const n=Xue(p5(e.config,t.config)),r=qZe(t,n),i=OP(r,null,"",void 0,n);return i.parse(),snt(i.component.data,i),{spec:Yrt(i,Vrt(t,r.autosize,n,i),t.datasets,t.usermeta),normalized:r}}finally{e.logger&&tKe(),e.fieldTitle&&xJe()}}function Vrt(t,e,n,r){const i=r.component.layoutSize.get("width"),s=r.component.layoutSize.get("height");if(e===void 0?(e={type:"pad"},r.hasAxisOrientSignalRef()&&(e.resize=!0)):je(e)&&(e={type:e}),i&&s&&VZe(e.type)){if(i==="step"&&s==="step")Te(hoe()),e.type="pad";else if(i==="step"||s==="step"){const o=i==="step"?"width":"height";Te(hoe(pN(o)));const u=o==="width"?"height":"width";e.type=YZe(u)}}return Object.assign(Object.assign(Object.assign({},be(e).length===1&&e.type?e.type==="pad"?{}:{autosize:e.type}:{autosize:e}),hae(n,!1)),hae(t,!0))}function Yrt(t,e,n={},r){const i=t.config?iZe(t.config):void 0,s=[].concat(t.assembleSelectionData([]),Gnt(t.component.data,n)),o=t.assembleProjections(),u=t.assembleTitle(),a=t.assembleGroupStyle(),l=t.assembleGroupEncodeEntry(!0);let c=t.assembleLayoutSignals();c=c.filter(h=>(h.name==="width"||h.name==="height")&&h.value!==void 0?(e[h.name]=+h.value,!1):!0);const{params:f}=e,x=Grt(e,["params"]);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},t.description?{description:t.description}:{}),x),u?{title:u}:{}),a?{style:a}:{}),l?{encode:{update:l}}:{}),{data:s}),o.length>0?{projections:o}:{}),t.assembleGroup([...c,...t.assembleSelectionTopLevelSignals([]),...que(f)])),i?{config:i}:{}),r?{usermeta:r}:{})}var Xrt=wo("<div>");function Krt(t){let e,n=null;return TD(()=>{n&&n.finalize();const r=t.type==="vega-lite"?Wrt(t.spec).spec:t.spec;n=new xie(IVe(r)).initialize(e).renderer("svg").hover(),n.run()}),TD(()=>{n&&(t.width&&n.width(t.width),t.height&&n.height(t.height),n.run())}),(()=>{var r=Xrt(),i=e;return typeof i=="function"?F0e(i,r):e=r,r})()}function Jrt(t){const{field:e,data:n}=t,r=t.metadata.field(e).vegaChartProps,i=structuredClone(r.spec);return i.data[0].values=n,Qn(Krt,{spec:i,type:"vega",get width(){return r.plotWidth},get height(){return r.plotHeight}})}const Zrt=32,eit=384,Jle=12,tit=28;function nit(t){const e={};for(const[n,r]of Object.entries(t.fields)){const i=r.field,s={metadata:r,width:i.isExplore()?0:rit(i,t),height:null},{tag:o}=i.tagParse();if(gy(o,"bar","bar_chart")&&i.isExploreField())s.width=r.vegaChartProps.totalWidth,s.height=r.vegaChartProps.totalHeight;else if(gy(o,"list","list_detail")&&i.isExploreField())s.width=320;else if(o.has("image")){const l=o.text("width"),c=o.text("height");l!=null&&l.endsWith("px")&&(s.width=parseInt(l)),c!=null&&c.endsWith("px")&&(s.height=parseInt(c))}else!i.isExplore()&&i.isAtomicField()&&(s.height=tit);const u=o.numeric("width"),a=o.numeric("height");u&&(s.width=u),a&&(s.height=a),e[n]=s}return e}function rit(t,e){const n=bx(t),r=e.fields[n];let i=0;if(t.isAtomicField()){const s="12px Inter, sans-serif",o=my(t.name,s);if(t.isAtomicField()&&t.isString())i=Math.max(my(r.maxString,s),o)+Jle;else if(t.isAtomicField()&&t.isNumber()){const u=r.max===null?"∅":Lse(t,r.max);i=Math.max(my(u,s),o)+Jle}else i=130;i=bFe(Zrt,eit,i)}return i}const Zle=PP(),q3=()=>MP(Zle);var iit=wo("<div class=cell-wrapper><div class=cell-gutter></div><div class=cell-content></div><div class=cell-gutter>"),sit=wo("<th class=column-cell>"),oit=wo("<td class=column-cell>"),uit=wo("<div class=sticky-header><div class=sticky-header-content>"),ait=wo("<div class=malloy-table><table><thead><tr></tr></thead><tbody>"),lit=wo("<tr>");const e0e=t=>{const e=()=>{const n=q3().layout,r=n[bx(t.field)].width,i=n[bx(t.field)].height;let s="";return t.isHeader||typeof r<"u"&&(s+=`width: ${r}px; min-width: ${r}px; max-width: ${r}px;`,typeof i=="number"&&(s+=`height: ${i}px;`)),s};return(()=>{var n=iit(),r=n.firstChild,i=r.nextSibling,s=i.nextSibling;return Hi(i,()=>t.value),l0(o=>{var u=!!t.hideStartGutter,a=!!t.isHeader,l=e(),c=!!t.hideEndGutter;return u!==o.e&&r.classList.toggle("hide-gutter-border",o.e=u),a!==o.t&&i.classList.toggle("header",o.t=a),o.a=KP(i,l,o.a),c!==o.o&&s.classList.toggle("hide-gutter-border",o.o=c),o},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()},cit=t=>{const e=h5(t.field),n=h5(t.field.parentExplore),r=!t.field.parentExplore.isExploreField(),i=e&&(n||r),s=d5(t.field),o=d5(t.field.parentExplore),u=s&&(o||r);return(()=>{var a=sit();return Hi(a,Qn(e0e,{get field(){return t.field},get value(){return t.field.name},hideStartGutter:i,hideEndGutter:u,isHeader:!0})),l0(()=>a.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),a})()},fit=t=>{const e=q3();let n="",r="";return{renderValue:n,renderAs:r}=gD({field:t.field,dataColumn:t.row.cell(t.field),resultMetadata:Ase(),tag:t.field.tagParse().tag,customProps:{table:{pinnedHeader:e.pinnedHeader,rowLimit:e.pinnedHeader?1:1/0}}}),e.pinnedHeader&&r!=="table"&&(n=""),(()=>{var i=oit();return Hi(i,Qn(N0e,{get children(){return[Qn(XP,{when:r==="table",children:n}),Qn(XP,{when:!0,get children(){return Qn(e0e,{get field(){return t.field},value:n,get hideStartGutter(){return h5(t.field)},get hideEndGutter(){return d5(t.field)}})}})]}})),l0(()=>i.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),i})()},xit=t=>{const e=DD({rowLimit:1/0,pinnedHeader:!1},t),n=q3(),[r,i]=bD(!1),s=u=>{const a=u.target;i(a.scrollTop>0)},o=Ys(()=>{const u=[];let a=0;for(const l of e.data){if(a>=e.rowLimit)break;u.push(l),a++}return u});return(()=>{var u=ait(),a=u.firstChild,l=a.firstChild,c=l.firstChild,f=l.nextSibling;return u.addEventListener("scroll",s),Hi(u,Qn(YP,{get when(){return n.root},get children(){var x=uit(),h=x.firstChild;return Hi(h,Qn(t0e,{get data(){return e.data},rowLimit:1,pinnedHeader:!0})),x}}),a),Hi(c,()=>e.data.field.allFields.map(x=>Qn(cit,{field:x}))),Hi(f,Qn(VP,{get each(){return o()},children:x=>(()=>{var h=lit();return Hi(h,()=>e.data.field.allFields.map(p=>Qn(fit,{field:p,row:x}))),h})()})),l0(x=>{var h=!!n.root,p=!!n.pinnedHeader,m=!!r();return h!==x.e&&u.classList.toggle("root",x.e=h),p!==x.t&&u.classList.toggle("pinned-header",x.t=p),m!==x.a&&u.classList.toggle("scrolled",x.a=m),x},{e:void 0,t:void 0,a:void 0}),u})()},t0e=t=>{const e=Ase(),n=!!q3(),r=Ys(()=>{if(n){const i=q3();return{root:!1,pinnedHeader:t.pinnedHeader??i.pinnedHeader,layout:i.layout}}return{root:!0,pinnedHeader:t.pinnedHeader??!1,layout:nit(e)}});return Qn(Zle.Provider,{get value(){return r()},get children(){return Qn(xit,t)}})};var dit=wo("<div style=text-wrap:wrap;>"),hit=wo("<span>");function pit(t){if(t.dataColumn.isNull())return"∅";const e=t.tag.tag("list"),n=t.tag.tag("list_detail");if(!e&&!n)throw new Error("Missing tag for List renderer");if(!t.field.isExplore())throw new Error("List renderer: Field must be ExploreField");if(!t.dataColumn.isArray())throw new Error("List renderer: DataColumn must be DataArray");const r=t.field.allFields.filter(u=>{const{tag:a}=u.tagParse();return!a.has("hidden")})[0],i=!!n,s=t.field.allFields.filter(u=>{const{tag:a}=u.tagParse();return!a.has("hidden")})[1],o=[];for(const u of t.dataColumn)o.push(u);return(()=>{var u=dit();return Hi(u,Qn(VP,{each:o,children:(a,l)=>(()=>{var c=hit();return Hi(c,()=>gD({field:r,dataColumn:a.cell(r),resultMetadata:t.resultMetadata,tag:r.tagParse().tag}).renderValue,null),Hi(c,()=>i&&s&&"("+gD({field:s,dataColumn:a.cell(s),resultMetadata:t.resultMetadata,tag:s.tagParse().tag}).renderValue+")",null),Hi(c,()=>l()<o.length-1&&", ",null),c})()})),u})()}var git=wo("<img>");function mit(t){const e=t.tag.tag("image");if(!e)throw new Error("Missing tag for Image renderer");if(!t.field.isAtomicField())throw new Error("Image renderer: Field must be AtomicField");if(!t.dataColumn.isString())throw new Error("Image renderer: DataColumn must be DataString");const n=e.text("width"),r=e.text("height"),i={};n&&(i.width=n),r&&(i.height=r);let s;const o=e.tag("alt");o&&(s=Tse({tag:o,data:t.dataColumn})??o.text());let u;return t.dataColumn.isNull()||(u=t.dataColumn.value),(()=>{var a=git();return KP(a,i),rA(a,"src",u),rA(a,"alt",s),a})()}function gD(t){const{field:e,dataColumn:n,resultMetadata:r,tag:i,customProps:s={}}=t,o=TFe(e,i);let u="";const a=s[o]||{};switch(o){case"cell":{const l=n.value;GW(e,l)?u=Lse(e,l):l===null?u="∅":WW(e,l)&&(u=l);break}case"link":{u=rYe(e,n);break}case"list":{u=pit(t);break}case"image":{u=mit(t);break}case"chart":{u=Qn(Jrt,DD({field:e,get data(){return r.getData(n)},metadata:r},a));break}case"table":{u=Qn(t0e,DD({data:n},a));break}default:try{u=String(n.value)}catch{console.warn("Couldnt get value for ",e,n)}}return{renderAs:o,renderValue:u}}function yit(t,{element:e}){const n=Ys(()=>t.result?t.result:t.queryResult&&t.modelDef?new ZP.Result(t.queryResult,t.modelDef):null);return Qn(YP,{get when(){return n()},get children(){return Qn(Eit,{get result(){return n()},element:e})}})}function Eit(t){const e=Ys(()=>MVe(t.result)),n=()=>{const i=t.result.modelTag,s=t.result.tagParse().tag,o=i.tag("theme"),u=s.tag("theme");return{modelTag:i,resultTag:s,modelTheme:o,localTheme:u}};TD(()=>{if(t.element){const i=Ait(n().modelTheme,n().localTheme);for(const[s,o]of Object.entries(i))t.element.style.setProperty(s,o)}});const r=()=>gD({field:t.result.resultExplore,dataColumn:t.result.data,resultMetadata:e(),tag:n().resultTag});return Qn(Ese.Provider,{get value(){return e()},get children(){return r().renderValue}})}function No(t,...e){let n;for(const r of e)if(n=r==null?void 0:r.text(t),typeof n<"u")break;return n??`var(--malloy-theme--${t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()})`}function Ait(t,e){const n={},r=No("tableRowHeight",e,t),i=No("tableBodyColor",e,t),s=No("tableFontSize",e,t),o=No("tableHeaderColor",e,t),u=No("tableHeaderWeight",e,t),a=No("tableBodyWeight",e,t),l=No("tableBorder",e,t),c=No("tableBackground",e,t),f=No("tableGutterSize",e,t),x=No("tablePinnedBackground",e,t),h=No("tablePinnedBorder",e,t),p=No("fontFamily",e,t);return n["--malloy-render--table-row-height"]=r,n["--malloy-render--table-body-color"]=i,n["--malloy-render--table-font-size"]=s,n["--malloy-render--font-family"]=p,n["--malloy-render--table-header-color"]=o,n["--malloy-render--table-header-weight"]=u,n["--malloy-render--table-body-weight"]=a,n["--malloy-render--table-border"]=l,n["--malloy-render--table-background"]=c,n["--malloy-render--table-gutter-size"]=f,n["--malloy-render--table-pinned-background"]=x,n["--malloy-render--table-pinned-border"]=h,n}const Sit=`:host {
1338
+ `)}function cie(t){return"["+t.map(fie).join(", ")+"]"}function fie(t){return _e(t)?"[…]":Qe(t)&&!Ox(t)?"{…}":t}function xie(t,e){const n=this;if(e=e||{},jy.call(n),e.loader&&n.loader(e.loader),e.logger&&n.logger(e.logger),e.logLevel!=null&&n.logLevel(e.logLevel),e.locale||t.locale){const s=ct({},t.locale,e.locale);n.locale(_Y(s.number,s.time))}n._el=null,n._elBind=null,n._renderType=e.renderer||nd.Canvas,n._scenegraph=new AZ;const r=n._scenegraph.root;n._renderer=null,n._tooltip=e.tooltip||FQe,n._redraw=!0,n._handler=new dR().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=Jze(t.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=vQe(n,t,e.expr);n._runtime=i,n._signals=i.signals,n._bind=(t.bindings||[]).map(s=>({state:null,param:ct({},s)})),i.root&&i.root.set(r),r.source=i.data.root.input,n.pulse(i.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=aie(n,n._width),n._viewHeight=lie(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,CQe(n),Uze(n),qze(n),n.description(t.description),e.hover&&n.hover(),e.container&&n.initialize(e.container,e.bind)}function $O(t,e){return Je(t._signals,e)?t._signals[e]:ve("Unrecognized signal name: "+Fe(e))}function die(t,e){const n=(t._targets||[]).filter(r=>r._update&&r._update.handler===e);return n.length?n[0]:null}function hie(t,e,n,r){let i=die(n,r);return i||(i=Hk(t,()=>r(e,n.value)),i.handler=r,t.on(n,null,i)),t}function pie(t,e,n){const r=die(e,n);return r&&e._targets.remove(r),t}De(xie,jy,{async evaluate(t,e,n){if(await jy.prototype.evaluate.call(this,t,e),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,Gze(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&lT(this,n),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const e=t!=null?t+"":null;return e!==this._desc&&Yre(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 r=$O(this,t);return arguments.length===1?r.value:this.update(r,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",iie(t)):iie(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?(mB(t)||ve("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&&(jy.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch($O(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:bQe,addEventListener(t,e,n){let r=e;return n&&n.trap===!1||(r=Hk(this,e),r.raw=e),this._handler.on(t,r),this},removeEventListener(t,e){for(var n=this._handler.handlers(t),r=n.length,i,s;--r>=0;)if(s=n[r].type,i=n[r].handler,t===s&&(e===i||e===i.raw)){this._handler.off(s,i);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 hie(this,t,$O(this,t),e)},removeSignalListener(t,e){return pie(this,$O(this,t),e)},addDataListener(t,e){return hie(this,t,DO(this,t).values,e)},removeDataListener(t,e){return pie(this,DO(this,t).values,e)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const e=qk(this,null);this._globalCursor=!!t,e&&qk(this,e)}return this}else return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:DQe,events:eQe,finalize:nQe,hover:tQe,data:Hze,change:FO,insert:zze,remove:Qze,scale:_Qe,initialize:gQe,toImageURL:yQe,toCanvas:AQe,toSVG:SQe,getState:TQe,setState:NQe});const IQe="view",BO="[",kO="]",gie="{",mie="}",$Qe=":",yie=",",BQe="@",kQe=">",PQe=/[[\]{}]/,MQe={"*":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 Eie,Aie;function hd(t,e,n){return Eie=e||IQe,Aie=n||MQe,Sie(t.trim()).map(Wk)}function jQe(t){return Aie[t]}function o3(t,e,n,r,i){const s=t.length;let o=0,u;for(;e<s;++e){if(u=t[e],!o&&u===n)return e;i&&i.indexOf(u)>=0?--o:r&&r.indexOf(u)>=0&&++o}return e}function Sie(t){const e=[],n=t.length;let r=0,i=0;for(;i<n;)i=o3(t,i,yie,BO+gie,kO+mie),e.push(t.substring(r,i).trim()),r=++i;if(e.length===0)throw"Empty event selector: "+t;return e}function Wk(t){return t[0]==="["?UQe(t):qQe(t)}function UQe(t){const e=t.length;let n=1,r;if(n=o3(t,n,kO,BO,kO),n===e)throw"Empty between selector: "+t;if(r=Sie(t.substring(1,n)),r.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(n+1).trim(),t[0]!==kQe)throw"Expected '>' after between selector: "+t;r=r.map(Wk);const i=Wk(t.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)}function qQe(t){const e={source:Eie},n=[];let r=[0,0],i=0,s=0,o=t.length,u=0,a,l;if(t[o-1]===mie){if(u=t.lastIndexOf(gie),u>=0){try{r=HQe(t.substring(u+1,o-1))}catch{throw"Invalid throttle specification: "+t}t=t.slice(0,u).trim(),o=t.length}else throw"Unmatched right brace: "+t;u=0}if(!o)throw t;if(t[0]===BQe&&(i=++u),a=o3(t,u,$Qe),a<o&&(n.push(t.substring(s,a).trim()),s=u=++a),u=o3(t,u,BO),u===o)n.push(t.substring(s,o).trim());else if(n.push(t.substring(s,u).trim()),l=[],s=++u,s===o)throw"Unmatched left bracket: "+t;for(;u<o;){if(u=o3(t,u,kO),u===o)throw"Unmatched left bracket: "+t;if(l.push(t.substring(s,u).trim()),u<o-1&&t[++u]!==BO)throw"Expected left bracket: "+t;s=++u}if(!(o=n.length)||PQe.test(n[o-1]))throw"Invalid event selector: "+t;return o>1?(e.type=n[1],i?e.markname=n[0].slice(1):jQe(n[0])?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)),l!=null&&(e.filter=l),r[0]&&(e.throttle=r[0]),r[1]&&(e.debounce=r[1]),e}function HQe(t){const e=t.split(yie);if(!t.length||e.length>2)throw t;return e.map(n=>{const r=+n;if(r!==r)throw t;return r})}function zQe(t){return Qe(t)?t:{type:t||"pad"}}const u3=t=>+t||0,QQe=t=>({top:t,bottom:t,left:t,right:t});function GQe(t){return Qe(t)?t.signal?t:{top:u3(t.top),bottom:u3(t.bottom),left:u3(t.left),right:u3(t.right)}:QQe(u3(t))}const Sr=t=>Qe(t)&&!_e(t)?ct({},t):{value:t};function vie(t,e,n,r){return n!=null?(Qe(n)&&!_e(n)||_e(n)&&n.length&&Qe(n[0])?t.update[e]=n:t[r||"enter"][e]={value:n},1):0}function Br(t,e,n){for(const r in e)vie(t,r,e[r]);for(const r in n)vie(t,r,n[r],"update")}function E2(t,e,n){for(const r in e)n&&Je(n,r)||(t[r]=ct(t[r]||{},e[r]));return t}function A2(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}const Vk="mark",Yk="frame",Xk="scope",WQe="axis",VQe="axis-domain",YQe="axis-grid",XQe="axis-label",KQe="axis-tick",JQe="axis-title",ZQe="legend",eGe="legend-band",tGe="legend-entry",nGe="legend-gradient",_ie="legend-label",rGe="legend-symbol",iGe="legend-title",sGe="title",oGe="title-text",uGe="title-subtitle";function aGe(t,e,n,r,i){const s={},o={};let u,a,l,c;a="lineBreak",e==="text"&&i[a]!=null&&!A2(a,t)&&Kk(s,a,i[a]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===Yk?i.group:n===Vk?ct({},i.mark,i[e]):null;for(a in c)l=A2(a,t)||(a==="fill"||a==="stroke")&&(A2("fill",t)||A2("stroke",t)),l||Kk(s,a,c[a]);Pe(r).forEach(f=>{const x=i.style&&i.style[f];for(const h in x)A2(h,t)||Kk(s,h,x[h])}),t=ct({},t);for(a in s)c=s[a],c.signal?(u=u||{})[a]=c:o[a]=c;return t.enter=ct(o,t.enter),u&&(t.update=ct(u,t.update)),t}function Kk(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}const Cie=t=>je(t)?Fe(t):t.signal?`(${t.signal})`:bie(t);function PO(t){if(t.gradient!=null)return cGe(t);let e=t.signal?`(${t.signal})`:t.color?lGe(t.color):t.field!=null?bie(t.field):t.value!==void 0?Fe(t.value):void 0;return t.scale!=null&&(e=fGe(t,e)),e===void 0&&(e=null),t.exponent!=null&&(e=`pow(${e},${jO(t.exponent)})`),t.mult!=null&&(e+=`*${jO(t.mult)}`),t.offset!=null&&(e+=`+${jO(t.offset)}`),t.round&&(e=`round(${e})`),e}const MO=(t,e,n,r)=>`(${t}(${[e,n,r].map(PO).join(",")})+'')`;function lGe(t){return t.c?MO("hcl",t.h,t.c,t.l):t.h||t.s?MO("hsl",t.h,t.s,t.l):t.l||t.a?MO("lab",t.l,t.a,t.b):t.r||t.g||t.b?MO("rgb",t.r,t.g,t.b):null}function cGe(t){const e=[t.start,t.stop,t.count].map(n=>n==null?null:Fe(n));for(;e.length&&_t(e)==null;)e.pop();return e.unshift(Cie(t.gradient)),`gradient(${e.join(",")})`}function jO(t){return Qe(t)?"("+PO(t)+")":t}function bie(t){return Tie(Qe(t)?t:{datum:t})}function Tie(t){let e,n,r;if(t.signal)e="datum",r=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?(r=t.parent,e+=".datum"):r=t.group}else t.datum?(e="datum",r=t.datum):ve("Invalid field reference: "+Fe(t));return t.signal||(r=je(r)?El(r).map(Fe).join("]["):Tie(r)),e+"["+r+"]"}function fGe(t,e){const n=Cie(t.scale);return t.range!=null?e=`lerp(_range(${n}), ${+t.range})`:(e!==void 0&&(e=`_scale(${n}, ${e})`),t.band&&(e=(e?e+"+":"")+`_bandwidth(${n})`+(+t.band==1?"":"*"+jO(t.band)),t.extra&&(e=`(datum.extra ? _scale(${n}, datum.extra.value) : ${e})`)),e==null&&(e="0")),e}function xGe(t){let e="";return t.forEach(n=>{const r=PO(n);e+=n.test?`(${n.test})?${r}:`:r}),_t(e)===":"&&(e+="null"),e}function Rie(t,e,n,r,i,s){const o={};s=s||{},s.encoders={$encode:o},t=aGe(t,e,n,r,i.config);for(const u in t)o[u]=dGe(t[u],e,s,i);return s}function dGe(t,e,n,r){const i={},s={};for(const o in t)t[o]!=null&&(i[o]=pGe(hGe(t[o]),r,n,s));return{$expr:{marktype:e,channels:i},$fields:Object.keys(s),$output:Object.keys(t)}}function hGe(t){return _e(t)?xGe(t):PO(t)}function pGe(t,e,n,r){const i=_a(t,e);return i.$fields.forEach(s=>r[s]=1),ct(n,i.$params),i.$expr}const gGe="outer",mGe=["value","update","init","react","bind"];function Oie(t,e){ve(t+' for "outer" push: '+Fe(e))}function Nie(t,e){const n=t.name;if(t.push===gGe)e.signals[n]||Oie("No prior signal definition",n),mGe.forEach(r=>{t[r]!==void 0&&Oie("Invalid property ",r)});else{const r=e.addSignal(n,t.value);t.react===!1&&(r.react=!1),t.bind&&e.addBinding(n,t.bind)}}function Jk(t,e,n,r){this.id=-1,this.type=t,this.value=e,this.params=n,r&&(this.parent=r)}function UO(t,e,n,r){return new Jk(t,e,n,r)}function qO(t,e){return UO("operator",t,e)}function Ke(t){const e={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(e),e}function a3(t,e){return e?{$field:t,$name:e}:{$field:t}}const Zk=a3("key");function Die(t,e){return{$compare:t,$order:e}}function yGe(t,e){const n={$key:t};return e&&(n.$flat=!0),n}const EGe="ascending",AGe="descending";function SGe(t){return Qe(t)?(t.order===AGe?"-":"+")+HO(t.op,t.field):""}function HO(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}const e8="scope",t8="view";function nr(t){return t&&t.signal}function vGe(t){return t&&t.expr}function zO(t){if(nr(t))return!0;if(Qe(t)){for(const e in t)if(zO(t[e]))return!0}return!1}function uu(t,e){return t??e}function pd(t){return t&&t.signal||t}const Fie="timer";function l3(t,e){return(t.merge?CGe:t.stream?bGe:t.type?TGe:ve("Invalid stream specification: "+Fe(t)))(t,e)}function _Ge(t){return t===e8?t8:t||t8}function CGe(t,e){const n=t.merge.map(i=>l3(i,e)),r=n8({merge:n},t,e);return e.addStream(r).id}function bGe(t,e){const n=l3(t.stream,e),r=n8({stream:n},t,e);return e.addStream(r).id}function TGe(t,e){let n;t.type===Fie?(n=e.event(Fie,t.throttle),t={between:t.between,filter:t.filter}):n=e.event(_Ge(t.source),t.type);const r=n8({stream:n},t,e);return Object.keys(r).length===1?n:e.addStream(r).id}function n8(t,e,n){let r=e.between;return r&&(r.length!==2&&ve('Stream "between" parameter must have 2 entries: '+Fe(e)),t.between=[l3(r[0],n),l3(r[1],n)]),r=e.filter?[].concat(e.filter):[],(e.marktype||e.markname||e.markrole)&&r.push(RGe(e.marktype,e.markname,e.markrole)),e.source===e8&&r.push("inScope(event.item)"),r.length&&(t.filter=_a("("+r.join(")&&(")+")",n).$expr),(r=e.throttle)!=null&&(t.throttle=+r),(r=e.debounce)!=null&&(t.debounce=+r),e.consume&&(t.consume=!0),t}function RGe(t,e,n){const r="event.item";return r+(t&&t!=="*"?"&&"+r+".mark.marktype==='"+t+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(e?"&&"+r+".mark.name==='"+e+"'":"")}const OGe={code:"_.$value",ast:{type:"Identifier",value:"value"}};function NGe(t,e,n){const r=t.encode,i={target:n};let s=t.events,o=t.update,u=[];s||ve("Signal update missing events specification."),je(s)&&(s=hd(s,e.isSubscope()?e8:t8)),s=Pe(s).filter(a=>a.signal||a.scale?(u.push(a),0):1),u.length>1&&(u=[FGe(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),r!=null&&(o&&ve("Signal encode and update are mutually exclusive."),o="encode(item(),"+Fe(r)+")"),i.update=je(o)?_a(o,e):o.expr!=null?_a(o.expr,e):o.value!=null?o.value:o.signal!=null?{$expr:OGe,$params:{$value:e.signalRef(o.signal)}}:ve("Invalid signal update specification."),t.force&&(i.options={force:!0}),u.forEach(a=>e.addUpdate(ct(DGe(a,e),i)))}function DGe(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):l3(t,e)}}function FGe(t){return{signal:"["+t.map(e=>e.scale?'scale("'+e.scale+'")':e.signal)+"]"}}function wGe(t,e){const n=e.getSignal(t.name);let r=t.update;t.init&&(r?ve("Signals can not include both init and update expressions."):(r=t.init,n.initonly=!0)),r&&(r=_a(r,e),n.update=r.$expr,n.params=r.$params),t.on&&t.on.forEach(i=>NGe(i,e,n.id))}const jt=t=>(e,n,r)=>UO(t,n,e||void 0,r),wie=jt("aggregate"),LGe=jt("axisticks"),Lie=jt("bound"),au=jt("collect"),Iie=jt("compare"),IGe=jt("datajoin"),$ie=jt("encode"),$Ge=jt("expression"),BGe=jt("facet"),kGe=jt("field"),PGe=jt("key"),MGe=jt("legendentries"),jGe=jt("load"),UGe=jt("mark"),qGe=jt("multiextent"),HGe=jt("multivalues"),zGe=jt("overlap"),QGe=jt("params"),Bie=jt("prefacet"),GGe=jt("projection"),WGe=jt("proxy"),VGe=jt("relay"),kie=jt("render"),YGe=jt("scale"),gd=jt("sieve"),XGe=jt("sortitems"),Pie=jt("viewlayout"),KGe=jt("values");let JGe=0;const Mie={min:"min",max:"max",count:"sum"};function ZGe(t,e){const n=t.type||"linear";AJ(n)||ve("Unrecognized scale type: "+Fe(n)),e.addScale(t.name,{type:n,domain:void 0})}function eWe(t,e){const n=e.getScale(t.name).params;let r;n.domain=jie(t.domain,t,e),t.range!=null&&(n.range=qie(t,e,n)),t.interpolate!=null&&cWe(t.interpolate,n),t.nice!=null&&(n.nice=lWe(t.nice)),t.bins!=null&&(n.bins=aWe(t.bins,e));for(r in t)Je(n,r)||r==="name"||(n[r]=So(t[r],e))}function So(t,e){return Qe(t)?t.signal?e.signalRef(t.signal):ve("Unsupported object: "+Fe(t)):t}function QO(t,e){return t.signal?e.signalRef(t.signal):t.map(n=>So(n,e))}function GO(t){ve("Can not find data set: "+Fe(t))}function jie(t,e,n){if(!t){(e.domainMin!=null||e.domainMax!=null)&&ve("No scale domain defined for domainMin/domainMax to override.");return}return t.signal?n.signalRef(t.signal):(_e(t)?tWe:t.fields?rWe:nWe)(t,e,n)}function tWe(t,e,n){return t.map(r=>So(r,n))}function nWe(t,e,n){const r=n.getData(t.data);return r||GO(t.data),Kp(e.type)?r.valuesRef(n,t.field,Uie(t.sort,!1)):_J(e.type)?r.domainRef(n,t.field):r.extentRef(n,t.field)}function rWe(t,e,n){const r=t.data,i=t.fields.reduce((s,o)=>(o=je(o)?{data:r,field:o}:_e(o)||o.signal?iWe(o,n):o,s.push(o),s),[]);return(Kp(e.type)?sWe:_J(e.type)?oWe:uWe)(t,n,i)}function iWe(t,e){const n="_:vega:_"+JGe++,r=au({});if(_e(t))r.value={$ingest:t};else if(t.signal){const i="setdata("+Fe(n)+","+t.signal+")";r.params.input=e.signalRef(i)}return e.addDataPipeline(n,[r,gd({})]),{data:n,field:"data"}}function sWe(t,e,n){const r=Uie(t.sort,!0);let i,s;const o=n.map(l=>{const c=e.getData(l.data);return c||GO(l.data),c.countsRef(e,l.field,r)}),u={groupby:Zk,pulse:o};r&&(i=r.op||"count",s=r.field?HO(i,r.field):"count",u.ops=[Mie[i]],u.fields=[e.fieldRef(s)],u.as=[s]),i=e.add(wie(u));const a=e.add(au({pulse:Ke(i)}));return s=e.add(KGe({field:Zk,sort:e.sortRef(r),pulse:Ke(a)})),Ke(s)}function Uie(t,e){return t&&(!t.field&&!t.op?Qe(t)?t.field="key":t={field:"key"}:!t.field&&t.op!=="count"?ve("No field provided for sort aggregate op: "+t.op):e&&t.field&&t.op&&!Mie[t.op]&&ve("Multiple domain scales can not be sorted using "+t.op)),t}function oWe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||GO(i.data),s.domainRef(e,i.field)});return Ke(e.add(HGe({values:r})))}function uWe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||GO(i.data),s.extentRef(e,i.field)});return Ke(e.add(qGe({extents:r})))}function aWe(t,e){return t.signal||_e(t)?QO(t,e):e.objectProperty(t)}function lWe(t){return Qe(t)?{interval:So(t.interval),step:So(t.step)}:So(t)}function cWe(t,e){e.interpolate=So(t.type||t),t.gamma!=null&&(e.interpolateGamma=So(t.gamma))}function qie(t,e,n){const r=e.config.range;let i=t.range;if(i.signal)return e.signalRef(i.signal);if(je(i)){if(r&&Je(r,i))return t=ct({},t,{range:r[i]}),qie(t,e,n);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=Kp(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:ve("Unrecognized scale range value: "+Fe(i))}else if(i.scheme){n.scheme=_e(i.scheme)?QO(i.scheme,e):So(i.scheme,e),i.extent&&(n.schemeExtent=QO(i.extent,e)),i.count&&(n.schemeCount=So(i.count,e));return}else if(i.step){n.rangeStep=So(i.step,e);return}else{if(Kp(t.type)&&!_e(i))return jie(i,t,e);_e(i)||ve("Unsupported range type: "+Fe(i))}return i.map(s=>(_e(s)?QO:So)(s,e))}function fWe(t,e){const n=e.config.projection||{},r={};for(const i in t)i!=="name"&&(r[i]=r8(t[i],i,e));for(const i in n)r[i]==null&&(r[i]=r8(n[i],i,e));e.addProjection(t.name,r)}function r8(t,e,n){return _e(t)?t.map(r=>r8(r,e,n)):Qe(t)?t.signal?n.signalRef(t.signal):e==="fit"?t:ve("Unsupported parameter object: "+Fe(t)):t}const lu="top",S2="left",v2="right",Dc="bottom",Hie="center",xWe="vertical",dWe="start",hWe="middle",pWe="end",i8="index",s8="label",gWe="offset",_2="perc",mWe="perc2",vo="value",c3="guide-label",o8="guide-title",yWe="group-title",EWe="group-subtitle",zie="symbol",WO="gradient",u8="discrete",a8="size",l8=[a8,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],f3={name:1,style:1,interactive:1},Ct={value:0},_o={value:1},VO="group",Qie="rect",c8="rule",AWe="symbol",md="text";function x3(t){return t.type=VO,t.interactive=t.interactive||!1,t}function ds(t,e){const n=(r,i)=>uu(t[r],uu(e[r],i));return n.isVertical=r=>xWe===uu(t.direction,e.direction||(r?e.symbolDirection:e.gradientDirection)),n.gradientLength=()=>uu(t.gradientLength,e.gradientLength||e.gradientWidth),n.gradientThickness=()=>uu(t.gradientThickness,e.gradientThickness||e.gradientHeight),n.entryColumns=()=>uu(t.columns,uu(e.columns,+n.isVertical(!0))),n}function Gie(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 SWe(t,e,n){const r=e.config.style[n];return r&&r[t]}function YO(t,e,n){return`item.anchor === '${dWe}' ? ${t} : item.anchor === '${pWe}' ? ${e} : ${n}`}const f8=YO(Fe(S2),Fe(v2),Fe(Hie));function vWe(t){const e=t("tickBand");let n=t("tickOffset"),r,i;return e?e.signal?(r={signal:`(${e.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${e.signal}) === 'extent'`},Qe(n)||(n={signal:`(${e.signal}) === 'extent' ? 0 : ${n}`})):e==="extent"?(r=1,i=!0,n=0):(r=.5,i=!1):(r=t("bandPosition"),i=t("tickExtra")),{extra:i,band:r,offset:n}}function Wie(t,e){return e?t?Qe(t)?Object.assign({},t,{offset:Wie(t.offset,e)}):{value:t,offset:e}:e:t}function qs(t,e){return e?(t.name=e.name,t.style=e.style||t.style,t.interactive=!!e.interactive,t.encode=E2(t.encode,e,f3)):t.interactive=!1,t}function _We(t,e,n,r){const i=ds(t,n),s=i.isVertical(),o=i.gradientThickness(),u=i.gradientLength();let a,l,c,f,x;s?(l=[0,1],c=[0,0],f=o,x=u):(l=[0,0],c=[1,0],f=u,x=o);const h={enter:a={opacity:Ct,x:Ct,y:Ct,width:Sr(f),height:Sr(x)},update:ct({},a,{opacity:_o,fill:{gradient:e,start:l,stop:c}}),exit:{opacity:Ct}};return Br(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),qs({type:Qie,role:nGe,encode:h},r)}function CWe(t,e,n,r,i){const s=ds(t,n),o=s.isVertical(),u=s.gradientThickness(),a=s.gradientLength();let l,c,f,x,h="";o?(l="y",f="y2",c="x",x="width",h="1-"):(l="x",f="x2",c="y",x="height");const p={opacity:Ct,fill:{scale:e,field:vo}};p[l]={signal:h+"datum."+_2,mult:a},p[c]=Ct,p[f]={signal:h+"datum."+mWe,mult:a},p[x]=Sr(u);const m={enter:p,update:ct({},p,{opacity:_o}),exit:{opacity:Ct}};return Br(m,{stroke:s("gradientStrokeColor"),strokeWidth:s("gradientStrokeWidth")},{opacity:s("gradientOpacity")}),qs({type:Qie,role:eGe,key:vo,from:i,encode:m},r)}const bWe=`datum.${_2}<=0?"${S2}":datum.${_2}>=1?"${v2}":"${Hie}"`,TWe=`datum.${_2}<=0?"${Dc}":datum.${_2}>=1?"${lu}":"${hWe}"`;function Vie(t,e,n,r){const i=ds(t,e),s=i.isVertical(),o=Sr(i.gradientThickness()),u=i.gradientLength();let a=i("labelOverlap"),l,c,f,x,h="";const p={enter:l={opacity:Ct},update:c={opacity:_o,text:{field:s8}},exit:{opacity:Ct}};return Br(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:uu(t.labelLimit,e.gradientLabelLimit)}),s?(l.align={value:"left"},l.baseline=c.baseline={signal:TWe},f="y",x="x",h="1-"):(l.align=c.align={signal:bWe},l.baseline={value:"top"},f="x",x="y"),l[f]=c[f]={signal:h+"datum."+_2,mult:u},l[x]=c[x]=o,o.offset=uu(t.labelOffset,e.gradientLabelOffset)||0,a=a?{separation:i("labelSeparation"),method:a,order:"datum."+i8}:void 0,qs({type:md,role:_ie,style:c3,key:vo,from:r,encode:p,overlap:a},n)}function RWe(t,e,n,r,i){const s=ds(t,e),o=n.entries,u=!!(o&&o.interactive),a=o?o.name:void 0,l=s("clipHeight"),c=s("symbolOffset"),f={data:"value"},x=`(${i}) ? datum.${gWe} : datum.${a8}`,h=l?Sr(l):{field:a8},p=`datum.${i8}`,m=`max(1, ${i})`;let g,y,E,A,S;h.mult=.5,g={enter:y={opacity:Ct,x:{signal:x,mult:.5,offset:c},y:h},update:E={opacity:_o,x:y.x,y:y.y},exit:{opacity:Ct}};let v=null,_=null;t.fill||(v=e.symbolBaseFillColor,_=e.symbolBaseStrokeColor),Br(g,{fill:s("symbolFillColor",v),shape:s("symbolType"),size:s("symbolSize"),stroke:s("symbolStrokeColor",_),strokeDash:s("symbolDash"),strokeDashOffset:s("symbolDashOffset"),strokeWidth:s("symbolStrokeWidth")},{opacity:s("symbolOpacity")}),l8.forEach(R=>{t[R]&&(E[R]=y[R]={scale:t[R],field:vo})});const C=qs({type:AWe,role:rGe,key:vo,from:f,clip:l?!0:void 0,encode:g},n.symbols),b=Sr(c);b.offset=s("labelOffset"),g={enter:y={opacity:Ct,x:{signal:x,offset:b},y:h},update:E={opacity:_o,text:{field:s8},x:y.x,y:y.y},exit:{opacity:Ct}},Br(g,{align:s("labelAlign"),baseline:s("labelBaseline"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontStyle:s("labelFontStyle"),fontWeight:s("labelFontWeight"),limit:s("labelLimit")});const O=qs({type:md,role:_ie,style:c3,key:vo,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!l},width:Ct,height:l?Sr(l):Ct,opacity:Ct},exit:{opacity:Ct},update:E={opacity:_o,row:{signal:null},column:{signal:null}}},s.isVertical(!0)?(A=`ceil(item.mark.items.length / ${m})`,E.row.signal=`${p}%${A}`,E.column.signal=`floor(${p} / ${A})`,S={field:["row",p]}):(E.row.signal=`floor(${p} / ${m})`,E.column.signal=`${p} % ${m}`,S={field:p}),E.column.signal=`(${i})?${E.column.signal}:${p}`,r={facet:{data:r,name:"value",groupby:i8}},x3({role:Xk,from:r,encode:E2(g,o,f3),marks:[C,O],name:a,interactive:u,sort:S})}function OWe(t,e){const n=ds(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const x8='item.orient === "left"',d8='item.orient === "right"',XO=`(${x8} || ${d8})`,NWe=`datum.vgrad && ${XO}`,DWe=YO('"top"','"bottom"','"middle"'),FWe=YO('"right"','"left"','"center"'),wWe=`datum.vgrad && ${d8} ? (${FWe}) : (${XO} && !(datum.vgrad && ${x8})) ? "left" : ${f8}`,LWe=`item._anchor || (${XO} ? "middle" : "start")`,IWe=`${NWe} ? (${x8} ? -90 : 90) : 0`,$We=`${XO} ? (datum.vgrad ? (${d8} ? "bottom" : "top") : ${DWe}) : "top"`;function BWe(t,e,n,r){const i=ds(t,e),s={enter:{opacity:Ct},update:{opacity:_o,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Ct}};return Br(s,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:LWe},angle:{signal:IWe},align:{signal:wWe},baseline:{signal:$We},text:t.title,fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),baseline:i("titleBaseline")}),qs({type:md,role:iGe,style:o8,from:r,encode:s},n)}function kWe(t,e){let n;return Qe(t)&&(t.signal?n=t.signal:t.path?n="pathShape("+Yie(t.path)+")":t.sphere&&(n="geoShape("+Yie(t.sphere)+', {type: "Sphere"})')),n?e.signalRef(n):!!t}function Yie(t){return Qe(t)&&t.signal?t.signal:Fe(t)}function Xie(t){const e=t.role||"";return!e.indexOf("axis")||!e.indexOf("legend")||!e.indexOf("title")?e:t.type===VO?Xk:e||Vk}function PWe(t){return{marktype:t.type,name:t.name||void 0,role:t.role||Xie(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function MWe(t,e){return t&&t.signal?e.signalRef(t.signal):t!==!1}function h8(t,e){const n=N5e(t.type);n||ve("Unrecognized transform type: "+Fe(t.type));const r=UO(n.type.toLowerCase(),null,Kie(n,t,e));return t.signal&&e.addSignal(t.signal,e.proxy(r)),r.metadata=n.metadata||{},r}function Kie(t,e,n){const r={},i=t.params.length;for(let s=0;s<i;++s){const o=t.params[s];r[o.name]=jWe(o,e,n)}return r}function jWe(t,e,n){const r=t.type,i=e[t.name];if(r==="index")return UWe(t,e,n);if(i===void 0){t.required&&ve("Missing required "+Fe(e.type)+" parameter: "+Fe(t.name));return}else{if(r==="param")return qWe(t,e,n);if(r==="projection")return n.projectionRef(e[t.name])}return t.array&&!nr(i)?i.map(s=>Jie(t,s,n)):Jie(t,i,n)}function Jie(t,e,n){const r=t.type;if(nr(e))return ese(r)?ve("Expression references can not be signals."):p8(r)?n.fieldRef(e):tse(r)?n.compareRef(e):n.signalRef(e.signal);{const i=t.expr||p8(r);return i&&HWe(e)?n.exprRef(e.expr,e.as):i&&zWe(e)?a3(e.field,e.as):ese(r)?_a(e,n):QWe(r)?Ke(n.getData(e).values):p8(r)?a3(e):tse(r)?n.compareRef(e):e}}function UWe(t,e,n){return je(e.from)||ve('Lookup "from" parameter must be a string literal.'),n.getData(e.from).lookupRef(n,e.key)}function qWe(t,e,n){const r=e[t.name];return t.array?(_e(r)||ve("Expected an array of sub-parameters. Instead: "+Fe(r)),r.map(i=>Zie(t,i,n))):Zie(t,r,n)}function Zie(t,e,n){const r=t.params.length;let i;for(let o=0;o<r;++o){i=t.params[o];for(const u in i.key)if(i.key[u]!==e[u]){i=null;break}if(i)break}i||ve("Unsupported parameter: "+Fe(e));const s=ct(Kie(i,e,n),i.key);return Ke(n.add(QGe(s)))}const HWe=t=>t&&t.expr,zWe=t=>t&&t.field,QWe=t=>t==="data",ese=t=>t==="expr",p8=t=>t==="field",tse=t=>t==="compare";function GWe(t,e,n){let r,i,s,o,u;return t?(r=t.facet)&&(e||ve("Only group marks can be faceted."),r.field!=null?o=u=KO(r,n):(t.data?u=Ke(n.getData(t.data).aggregate):(s=h8(ct({type:"aggregate",groupby:Pe(r.groupby)},r.aggregate),n),s.params.key=n.keyRef(r.groupby),s.params.pulse=KO(r,n),o=u=Ke(n.add(s))),i=n.keyRef(r.groupby,!0))):o=Ke(n.add(au(null,[{}]))),o||(o=KO(t,n)),{key:i,pulse:o,parent:u}}function KO(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:Ke(e.getData(t.data).output)}function yd(t,e,n,r,i){this.scope=t,this.input=e,this.output=n,this.values=r,this.aggregate=i,this.index={}}yd.fromEntries=function(t,e){const n=e.length,r=e[n-1],i=e[n-2];let s=e[0],o=null,u=1;for(s&&s.type==="load"&&(s=e[1]),t.add(e[0]);u<n;++u)e[u].params.pulse=Ke(e[u-1]),t.add(e[u]),e[u].type==="aggregate"&&(o=e[u]);return new yd(t,s,i,r,o)};function nse(t){return je(t)?t:null}function rse(t,e,n){const r=HO(n.op,n.field);let i;if(e.ops){for(let s=0,o=e.as.length;s<o;++s)if(e.as[s]===r)return}else e.ops=["count"],e.fields=[null],e.as=["count"];n.op&&(e.ops.push((i=n.op.signal)?t.signalRef(i):n.op),e.fields.push(t.fieldRef(n.field)),e.as.push(r))}function d3(t,e,n,r,i,s,o){const u=e[n]||(e[n]={}),a=SGe(s);let l=nse(i),c,f;if(l!=null&&(t=e.scope,l=l+(a?"|"+a:""),c=u[l]),!c){const x=s?{field:Zk,pulse:e.countsRef(t,i,s)}:{field:t.fieldRef(i),pulse:Ke(e.output)};a&&(x.sort=t.sortRef(s)),f=t.add(UO(r,void 0,x)),o&&(e.index[i]=f),c=Ke(f),l!=null&&(u[l]=c)}return c}yd.prototype={countsRef(t,e,n){const r=this,i=r.counts||(r.counts={}),s=nse(e);let o,u,a;return s!=null&&(t=r.scope,o=i[s]),o?n&&n.field&&rse(t,o.agg.params,n):(a={groupby:t.fieldRef(e,"key"),pulse:Ke(r.output)},n&&n.field&&rse(t,a,n),u=t.add(wie(a)),o=t.add(au({pulse:Ke(u)})),o={agg:u,ref:Ke(o)},s!=null&&(i[s]=o)),o.ref},tuplesRef(){return Ke(this.values)},extentRef(t,e){return d3(t,this,"extent","extent",e,!1)},domainRef(t,e){return d3(t,this,"domain","values",e,!1)},valuesRef(t,e,n){return d3(t,this,"vals","values",e,n||!0)},lookupRef(t,e){return d3(t,this,"lookup","tupleindex",e,!1)},indataRef(t,e){return d3(t,this,"indata","tupleindex",e,!0,!0)}};function WWe(t,e,n){const r=t.from.facet,i=r.name,s=KO(r,e);let o;r.name||ve("Facet must have a name: "+Fe(r)),r.data||ve("Facet must reference a data set: "+Fe(r)),r.field?o=e.add(Bie({field:e.fieldRef(r.field),pulse:s})):r.groupby?o=e.add(BGe({key:e.keyRef(r.groupby),group:Ke(e.proxy(n.parent)),pulse:s})):ve("Facet must specify groupby or field: "+Fe(r));const u=e.fork(),a=u.add(au()),l=u.add(gd({pulse:Ke(a)}));u.addData(i,new yd(u,a,a,l)),u.addSignal("parent",null),o.params.subflow={$subflow:u.parse(t).toRuntime()}}function VWe(t,e,n){const r=e.add(Bie({pulse:n.pulse})),i=e.fork();i.add(gd()),i.addSignal("parent",null),r.params.subflow={$subflow:i.parse(t).toRuntime()}}function ise(t,e,n){const r=t.remove,i=t.insert,s=t.toggle,o=t.modify,u=t.values,a=e.add(qO()),l="if("+t.trigger+',modify("'+n+'",'+[i,r,s,o,u].map(f=>f??"null").join(",")+"),0)",c=_a(l,e);a.update=c.$expr,a.params=c.$params}function JO(t,e){const n=Xie(t),r=t.type===VO,i=t.from&&t.from.facet,s=t.overlap;let o=t.layout||n===Xk||n===Yk,u,a,l,c,f,x,h;const p=n===Vk||o||i,m=GWe(t.from,r,e);a=e.add(IGe({key:m.key||(t.key?a3(t.key):void 0),pulse:m.pulse,clean:!r}));const g=Ke(a);a=l=e.add(au({pulse:g})),a=e.add(UGe({markdef:PWe(t),interactive:MWe(t.interactive,e),clip:kWe(t.clip,e),context:{$context:!0},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:Ke(a)}));const y=Ke(a);a=c=e.add($ie(Rie(t.encode,t.type,n,t.style,e,{mod:!1,pulse:y}))),a.params.parent=e.encode(),t.transform&&t.transform.forEach(_=>{const C=h8(_,e),b=C.metadata;(b.generates||b.changes)&&ve("Mark transforms should not generate new data."),b.nomod||(c.params.mod=!0),C.params.pulse=Ke(a),e.add(a=C)}),t.sort&&(a=e.add(XGe({sort:e.compareRef(t.sort),pulse:Ke(a)})));const E=Ke(a);(i||o)&&(o=e.add(Pie({layout:e.objectProperty(t.layout),legends:e.legends,mark:y,pulse:E})),x=Ke(o));const A=e.add(Lie({mark:y,pulse:x||E}));h=Ke(A),r&&(p&&(u=e.operators,u.pop(),o&&u.pop()),e.pushState(E,x||h,g),i?WWe(t,e,m):p?VWe(t,e,m):e.parse(t),e.popState(),p&&(o&&u.push(o),u.push(A))),s&&(h=YWe(s,h,e));const S=e.add(kie({pulse:h})),v=e.add(gd({pulse:Ke(S)},void 0,e.parent()));t.name!=null&&(f=t.name,e.addData(f,new yd(e,l,S,v)),t.on&&t.on.forEach(_=>{(_.insert||_.remove||_.toggle)&&ve("Marks only support modify triggers."),ise(_,e,f)}))}function YWe(t,e,n){const r=t.method,i=t.bound,s=t.separation,o={separation:nr(s)?n.signalRef(s.signal):s,method:nr(r)?n.signalRef(r.signal):r,pulse:e};if(t.order&&(o.sort=n.compareRef({field:t.order})),i){const u=i.tolerance;o.boundTolerance=nr(u)?n.signalRef(u.signal):+u,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return Ke(n.add(zGe(o)))}function XWe(t,e){const n=e.config.legend,r=t.encode||{},i=ds(t,n),s=r.legend||{},o=s.name||void 0,u=s.interactive,a=s.style,l={};let c=0,f,x,h;l8.forEach(A=>t[A]?(l[A]=t[A],c=c||t[A]):0),c||ve("Missing valid scale for legend.");const p=KWe(t,e.scaleType(c)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=Ke(e.add(au(null,[m]))),y={enter:{x:{value:0},y:{value:0}}},E=Ke(e.add(MGe(x={type:p,scale:e.scaleRef(c),count:e.objectProperty(i("tickCount")),limit:e.property(i("symbolLimit")),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)})));return p===WO?(h=[_We(t,c,n,r.gradient),Vie(t,n,r.labels,E)],x.count=x.count||e.signalRef(`max(2,2*floor((${pd(i.gradientLength())})/100))`)):p===u8?h=[CWe(t,c,n,r.gradient,E),Vie(t,n,r.labels,E)]:(f=OWe(t,n),h=[RWe(t,n,r,E,pd(f.columns))],x.size=eVe(t,e,h[0].marks)),h=[x3({role:tGe,from:g,encode:y,marks:h,layout:f,interactive:u})],m.title&&h.push(BWe(t,n,r.title,g)),JO(x3({role:ZQe,from:g,encode:E2(ZWe(i,t,n),s,f3),marks:h,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:u,style:a}),e)}function KWe(t,e){let n=t.type||zie;return!t.type&&JWe(t)===1&&(t.fill||t.stroke)&&(n=b$(e)?WO:T$(e)?u8:zie),n!==WO?n:T$(e)?u8:WO}function JWe(t){return l8.reduce((e,n)=>e+(t[n]?1:0),0)}function ZWe(t,e,n){const r={enter:{},update:{}};return Br(r,{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}),r}function eVe(t,e,n){const r=pd(sse("size",t,n)),i=pd(sse("strokeWidth",t,n)),s=pd(tVe(n[1].encode,e,c3));return _a(`max(ceil(sqrt(${r})+${i}),${s})`,e)}function sse(t,e,n){return e[t]?`scale("${e[t]}",datum)`:Gie(t,n[0].encode)}function tVe(t,e,n){return Gie("fontSize",t)||SWe("fontSize",e,n)}const nVe=`item.orient==="${S2}"?-90:item.orient==="${v2}"?90:0`;function rVe(t,e){t=je(t)?{text:t}:t;const n=ds(t,e.config.title),r=t.encode||{},i=r.group||{},s=i.name||void 0,o=i.interactive,u=i.style,a=[],l={},c=Ke(e.add(au(null,[l])));return a.push(oVe(t,n,iVe(t),c)),t.subtitle&&a.push(uVe(t,n,r.subtitle,c)),JO(x3({role:sGe,from:c,encode:sVe(n,i),marks:a,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:s,interactive:o,style:u}),e)}function iVe(t){const e=t.encode;return e&&e.title||ct({name:t.name,interactive:t.interactive,style:t.style},e)}function sVe(t,e){const n={enter:{},update:{}};return Br(n,{orient:t("orient"),anchor:t("anchor"),align:{signal:f8},angle:{signal:nVe},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),E2(n,e,f3)}function oVe(t,e,n,r){const i={value:0},s=t.text,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Br(o,{text:s,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")}),qs({type:md,role:oGe,style:yWe,from:r,encode:o},n)}function uVe(t,e,n,r){const i={value:0},s=t.subtitle,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Br(o,{text:s,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")}),qs({type:md,role:uGe,style:EWe,from:r,encode:o},n)}function aVe(t,e){const n=[];t.transform&&t.transform.forEach(r=>{n.push(h8(r,e))}),t.on&&t.on.forEach(r=>{ise(r,e,t.name)}),e.addDataPipeline(t.name,lVe(t,e,n))}function lVe(t,e,n){const r=[];let i=null,s=!1,o=!1,u,a,l,c,f;for(t.values?nr(t.values)||zO(t.format)?(r.push(ose(e,t)),r.push(i=Ed())):r.push(i=Ed({$ingest:t.values,$format:t.format})):t.url?zO(t.url)||zO(t.format)?(r.push(ose(e,t)),r.push(i=Ed())):r.push(i=Ed({$request:t.url,$format:t.format})):t.source&&(i=u=Pe(t.source).map(x=>Ke(e.getData(x).output)),r.push(null)),a=0,l=n.length;a<l;++a)c=n[a],f=c.metadata,!i&&!f.source&&r.push(i=Ed()),r.push(c),f.generates&&(o=!0),f.modifies&&!o&&(s=!0),f.source?i=c:f.changes&&(i=null);return u&&(l=u.length-1,r[0]=VGe({derive:s,pulse:l?u:u[0]}),(s||l)&&r.splice(1,0,Ed())),i||r.push(Ed()),r.push(gd({})),r}function Ed(t){const e=au({},t);return e.metadata={source:!0},e}function ose(t,e){return jGe({url:e.url?t.property(e.url):void 0,async:e.async?t.property(e.async):void 0,values:e.values?t.property(e.values):void 0,format:t.objectProperty(e.format)})}const use=t=>t===Dc||t===lu,ZO=(t,e,n)=>nr(t)?dVe(t.signal,e,n):t===S2||t===lu?e:n,vr=(t,e,n)=>nr(t)?fVe(t.signal,e,n):use(t)?e:n,cu=(t,e,n)=>nr(t)?xVe(t.signal,e,n):use(t)?n:e,ase=(t,e,n)=>nr(t)?hVe(t.signal,e,n):t===lu?{value:e}:{value:n},cVe=(t,e,n)=>nr(t)?pVe(t.signal,e,n):t===v2?{value:e}:{value:n},fVe=(t,e,n)=>lse(`${t} === '${lu}' || ${t} === '${Dc}'`,e,n),xVe=(t,e,n)=>lse(`${t} !== '${lu}' && ${t} !== '${Dc}'`,e,n),dVe=(t,e,n)=>g8(`${t} === '${S2}' || ${t} === '${lu}'`,e,n),hVe=(t,e,n)=>g8(`${t} === '${lu}'`,e,n),pVe=(t,e,n)=>g8(`${t} === '${v2}'`,e,n),lse=(t,e,n)=>(e=e!=null?Sr(e):e,n=n!=null?Sr(n):n,cse(e)&&cse(n)?(e=e?e.signal||Fe(e.value):null,n=n?n.signal||Fe(n.value):null,{signal:`${t} ? (${e}) : (${n})`}):[ct({test:t},e)].concat(n||[])),cse=t=>t==null||Object.keys(t).length===1,g8=(t,e,n)=>({signal:`${t} ? (${C2(e)}) : (${C2(n)})`}),gVe=(t,e,n,r,i)=>({signal:(r!=null?`${t} === '${S2}' ? (${C2(r)}) : `:"")+(n!=null?`${t} === '${Dc}' ? (${C2(n)}) : `:"")+(i!=null?`${t} === '${v2}' ? (${C2(i)}) : `:"")+(e!=null?`${t} === '${lu}' ? (${C2(e)}) : `:"")+"(null)"}),C2=t=>nr(t)?t.signal:t==null?null:Fe(t),mVe=(t,e)=>e===0?0:nr(t)?{signal:`(${t.signal}) * ${e}`}:{value:t*e},b2=(t,e)=>{const n=t.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+e.signal}:t};function T2(t,e,n,r){let i;if(e&&Je(e,t))return e[t];if(Je(n,t))return n[t];if(t.startsWith("title")){switch(t){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=t[5].toLowerCase()+t.slice(6)}return r[o8][i]}else if(t.startsWith("label")){switch(t){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=t[5].toLowerCase()+t.slice(6)}return r[c3][i]}return null}function fse(t){const e={};for(const n of t)if(n)for(const r in n)e[r]=1;return Object.keys(e)}function yVe(t,e){var n=e.config,r=n.style,i=n.axis,s=e.scaleType(t.scale)==="band"&&n.axisBand,o=t.orient,u,a,l;if(nr(o)){const f=fse([n.axisX,n.axisY]),x=fse([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);u={};for(l of f)u[l]=vr(o,T2(l,n.axisX,i,r),T2(l,n.axisY,i,r));a={};for(l of x)a[l]=gVe(o.signal,T2(l,n.axisTop,i,r),T2(l,n.axisBottom,i,r),T2(l,n.axisLeft,i,r),T2(l,n.axisRight,i,r))}else u=o===lu||o===Dc?n.axisX:n.axisY,a=n["axis"+o[0].toUpperCase()+o.slice(1)];return u||a||s?ct({},i,u,a,s):i}function EVe(t,e,n,r){const i=ds(t,e),s=t.orient;let o,u;const a={enter:o={opacity:Ct},update:u={opacity:_o},exit:{opacity:Ct}};Br(a,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const l=xse(t,0),c=xse(t,1);return o.x=u.x=vr(s,l,Ct),o.x2=u.x2=vr(s,c),o.y=u.y=cu(s,l,Ct),o.y2=u.y2=cu(s,c),qs({type:c8,role:VQe,from:r,encode:a},n)}function xse(t,e){return{scale:t.scale,range:e}}function AVe(t,e,n,r,i){const s=ds(t,e),o=t.orient,u=t.gridScale,a=ZO(o,1,-1),l=SVe(t.offset,a);let c,f,x;const h={enter:c={opacity:Ct},update:x={opacity:_o},exit:f={opacity:Ct}};Br(h,{stroke:s("gridColor"),strokeCap:s("gridCap"),strokeDash:s("gridDash"),strokeDashOffset:s("gridDashOffset"),strokeOpacity:s("gridOpacity"),strokeWidth:s("gridWidth")});const p={scale:t.scale,field:vo,band:i.band,extra:i.extra,offset:i.offset,round:s("tickRound")},m=vr(o,{signal:"height"},{signal:"width"}),g=u?{scale:u,range:0,mult:a,offset:l}:{value:0,offset:l},y=u?{scale:u,range:1,mult:a,offset:l}:ct(m,{mult:a,offset:l});return c.x=x.x=vr(o,p,g),c.y=x.y=cu(o,p,g),c.x2=x.x2=cu(o,y),c.y2=x.y2=vr(o,y),f.x=vr(o,p),f.y=cu(o,p),qs({type:c8,role:YQe,key:vo,from:r,encode:h},n)}function SVe(t,e){if(e!==1)if(!Qe(t))t=nr(e)?{signal:`(${e.signal}) * (${t||0})`}:e*(t||0);else{let n=t=ct({},t);for(;n.mult!=null;)if(Qe(n.mult))n=n.mult=ct({},n.mult);else return n.mult=nr(e)?{signal:`(${n.mult}) * (${e.signal})`}:n.mult*e,t;n.mult=e}return t}function vVe(t,e,n,r,i,s){const o=ds(t,e),u=t.orient,a=ZO(u,-1,1);let l,c,f;const x={enter:l={opacity:Ct},update:f={opacity:_o},exit:c={opacity:Ct}};Br(x,{stroke:o("tickColor"),strokeCap:o("tickCap"),strokeDash:o("tickDash"),strokeDashOffset:o("tickDashOffset"),strokeOpacity:o("tickOpacity"),strokeWidth:o("tickWidth")});const h=Sr(i);h.mult=a;const p={scale:t.scale,field:vo,band:s.band,extra:s.extra,offset:s.offset,round:o("tickRound")};return f.y=l.y=vr(u,Ct,p),f.y2=l.y2=vr(u,h),c.x=vr(u,p),f.x=l.x=cu(u,Ct,p),f.x2=l.x2=cu(u,h),c.y=cu(u,p),qs({type:c8,role:KQe,key:vo,from:r,encode:x},n)}function m8(t,e,n,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+e+","+n+","+r+","+i+")"}}function _Ve(t,e,n,r,i,s){const o=ds(t,e),u=t.orient,a=t.scale,l=ZO(u,-1,1),c=pd(o("labelFlush")),f=pd(o("labelFlushOffset")),x=o("labelAlign"),h=o("labelBaseline");let p=c===0||!!c,m;const g=Sr(i);g.mult=l,g.offset=Sr(o("labelPadding")||0),g.offset.mult=l;const y={scale:a,field:vo,band:.5,offset:Wie(s.offset,o("labelOffset"))},E=vr(u,p?m8(a,c,'"left"','"right"','"center"'):{value:"center"},cVe(u,"left","right")),A=vr(u,ase(u,"bottom","top"),p?m8(a,c,'"top"','"bottom"','"middle"'):{value:"middle"}),S=m8(a,c,`-(${f})`,f,0);p=p&&f;const v={opacity:Ct,x:vr(u,y,g),y:cu(u,y,g)},_={enter:v,update:m={opacity:_o,text:{field:s8},x:v.x,y:v.y,align:E,baseline:A},exit:{opacity:Ct,x:v.x,y:v.y}};Br(_,{dx:!x&&p?vr(u,S):null,dy:!h&&p?cu(u,S):null}),Br(_,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:x,baseline:h});const C=o("labelBound");let b=o("labelOverlap");return b=b||C?{separation:o("labelSeparation"),method:b,order:"datum.index",bound:C?{scale:a,orient:u,tolerance:C}:null}:void 0,m.align!==E&&(m.align=b2(m.align,E)),m.baseline!==A&&(m.baseline=b2(m.baseline,A)),qs({type:md,role:XQe,style:c3,key:vo,from:r,encode:_,overlap:b},n)}function CVe(t,e,n,r){const i=ds(t,e),s=t.orient,o=ZO(s,-1,1);let u,a;const l={enter:u={opacity:Ct,anchor:Sr(i("titleAnchor",null)),align:{signal:f8}},update:a=ct({},u,{opacity:_o,text:Sr(t.title)}),exit:{opacity:Ct}},c={signal:`lerp(range("${t.scale}"), ${YO(0,1,.5)})`};return a.x=vr(s,c),a.y=cu(s,c),u.angle=vr(s,Ct,mVe(o,90)),u.baseline=vr(s,ase(s,Dc,lu),{value:Dc}),a.angle=u.angle,a.baseline=u.baseline,Br(l,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),bVe(i,s,l,n),l.update.align=b2(l.update.align,u.align),l.update.angle=b2(l.update.angle,u.angle),l.update.baseline=b2(l.update.baseline,u.baseline),qs({type:md,role:JQe,style:o8,from:r,encode:l},n)}function bVe(t,e,n,r){const i=(u,a)=>u!=null?(n.update[a]=b2(Sr(u),n.update[a]),!1):!A2(a,r),s=i(t("titleX"),"x"),o=i(t("titleY"),"y");n.enter.auto=o===s?Sr(o):vr(e,Sr(o),Sr(s))}function TVe(t,e){const n=yVe(t,e),r=t.encode||{},i=r.axis||{},s=i.name||void 0,o=i.interactive,u=i.style,a=ds(t,n),l=vWe(a),c={scale:t.scale,ticks:!!a("ticks"),labels:!!a("labels"),grid:!!a("grid"),domain:!!a("domain"),title:t.title!=null},f=Ke(e.add(au({},[c]))),x=Ke(e.add(LGe({scale:e.scaleRef(t.scale),extra:e.property(l.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(AVe(t,n,r.grid,x,l)),c.ticks&&(p=a("tickSize"),h.push(vVe(t,n,r.ticks,x,p,l))),c.labels&&(p=c.ticks?p:0,h.push(_Ve(t,n,r.labels,x,p,l))),c.domain&&h.push(EVe(t,n,r.domain,f)),c.title&&h.push(CVe(t,n,r.title,f)),JO(x3({role:WQe,from:f,encode:E2(RVe(a,t),i,f3),marks:h,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:s,interactive:o,style:u}),e)}function RVe(t,e){const n={enter:{},update:{}};return Br(n,{orient:t("orient"),offset:t("offset")||0,position:uu(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 dse(t,e,n){const r=Pe(t.signals),i=Pe(t.scales);return n||r.forEach(s=>Nie(s,e)),Pe(t.projections).forEach(s=>fWe(s,e)),i.forEach(s=>ZGe(s,e)),Pe(t.data).forEach(s=>aVe(s,e)),i.forEach(s=>eWe(s,e)),(n||r).forEach(s=>wGe(s,e)),Pe(t.axes).forEach(s=>TVe(s,e)),Pe(t.marks).forEach(s=>JO(s,e)),Pe(t.legends).forEach(s=>XWe(s,e)),t.title&&rVe(t.title,e),e.parseLambdas(),e}const OVe=t=>E2({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function NVe(t,e){const n=e.config,r=Ke(e.root=e.add(qO())),i=DVe(t,n);i.forEach(l=>Nie(l,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 s=e.add(au()),o=e.add($ie(Rie(OVe(t.encode),VO,Yk,t.style,e,{pulse:Ke(s)}))),u=e.add(Pie({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:r,pulse:Ke(o)}));e.operators.pop(),e.pushState(Ke(o),Ke(u),null),dse(t,e,i),e.operators.push(u);let a=e.add(Lie({mark:r,pulse:Ke(u)}));return a=e.add(kie({pulse:Ke(a)})),a=e.add(gd({pulse:Ke(a)})),e.addData("root",new yd(e,s,s,a)),e}function h3(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function DVe(t,e){const n=o=>uu(t[o],e[o]),r=[h3("background",n("background")),h3("autosize",zQe(n("autosize"))),h3("padding",GQe(n("padding"))),h3("width",n("width")||0),h3("height",n("height")||0)],i=r.reduce((o,u)=>(o[u.name]=u,o),{}),s={};return Pe(t.signals).forEach(o=>{Je(i,o.name)?o=ct(i[o.name],o):r.push(o),s[o.name]=o}),Pe(e.signals).forEach(o=>{!Je(s,o.name)&&!Je(i,o.name)&&r.push(o)}),r}function hse(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 pse(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}hse.prototype=pse.prototype={parse(t){return dse(t,this)},fork(){return new pse(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 Jk?Ke(t):t;return this.add(WGe({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;this.root&&(this.root.root=!0);for(t in this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function n(r,i,s){let o,u;r&&(o=r.data||(r.data={}),u=o[i]||(o[i]=[]),u.push(s))}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 r in e.index)n(e.index[r],t,"index:"+r)}return this},pushState(t,e,n){this._encode.push(Ke(this.add(gd({pulse:t})))),this._parent.push(e),this._lookup.push(n?Ke(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return _t(this._parent)},encode(){return _t(this._encode)},lookup(){return _t(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,e){if(je(t))return a3(t,e);t.signal||ve("Unsupported field reference: "+Fe(t));const n=t.signal;let r=this.field[n];if(!r){const i={name:this.signalRef(n)};e&&(i.as=e),this.field[n]=r=Ke(this.add(kGe(i)))}return r},compareRef(t){let e=!1;const n=s=>nr(s)?(e=!0,this.signalRef(s.signal)):vGe(s)?(e=!0,this.exprRef(s.expr)):s,r=Pe(t.field).map(n),i=Pe(t.order).map(n);return e?Ke(this.add(Iie({fields:r,orders:i}))):Die(r,i)},keyRef(t,e){let n=!1;const r=s=>nr(s)?(n=!0,Ke(i[s.signal])):s,i=this.signals;return t=Pe(t).map(r),n?Ke(this.add(PGe({fields:t,flat:e}))):yGe(t,e)},sortRef(t){if(!t)return t;const e=HO(t.op,t.field),n=t.order||EGe;return n.signal?Ke(this.add(Iie({fields:e,orders:this.signalRef(n.signal)}))):Die(e,n)},event(t,e){const n=t+":"+e;if(!this.events[n]){const r=this.id();this.streams.push({id:r,source:t,type:e}),this.events[n]=r}return this.events[n]},hasOwnSignal(t){return Je(this.signals,t)},addSignal(t,e){this.hasOwnSignal(t)&&ve("Duplicate signal name: "+Fe(t));const n=e instanceof Jk?e:this.add(qO(e));return this.signals[t]=n},getSignal(t){return this.signals[t]||ve("Unrecognized signal name: "+Fe(t)),this.signals[t]},signalRef(t){return this.signals[t]?Ke(this.signals[t]):(Je(this.lambdas,t)||(this.lambdas[t]=this.add(qO(null))),Ke(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let e=0,n=t.length;e<n;++e){const r=t[e],i=_a(r,this),s=this.lambdas[r];s.params=i.$params,s.update=i.$expr}},property(t){return t&&t.signal?this.signalRef(t.signal):t},objectProperty(t){return!t||!Qe(t)?t:this.signalRef(t.signal||y8(t))},exprRef(t,e){const n={expr:_a(t,this)};return e&&(n.expr.$name=e),Ke(this.add($Ge(n)))},addBinding(t,e){this.bindings||ve("Nested signals do not support binding: "+Fe(t)),this.bindings.push(ct({signal:t},e))},addScaleProj(t,e){Je(this.scales,t)&&ve("Duplicate scale or projection name: "+Fe(t)),this.scales[t]=this.add(e)},addScale(t,e){this.addScaleProj(t,YGe(e))},addProjection(t,e){this.addScaleProj(t,GGe(e))},getScale(t){return this.scales[t]||ve("Unrecognized scale name: "+Fe(t)),this.scales[t]},scaleRef(t){return Ke(this.getScale(t))},scaleType(t){return this.getScale(t).params.type},projectionRef(t){return this.scaleRef(t)},projectionType(t){return this.scaleType(t)},addData(t,e){return Je(this.data,t)&&ve("Duplicate data set name: "+Fe(t)),this.data[t]=e},getData(t){return this.data[t]||ve("Undefined data set name: "+Fe(t)),this.data[t]},addDataPipeline(t,e){return Je(this.data,t)&&ve("Duplicate data set name: "+Fe(t)),this.addData(t,yd.fromEntries(this,e))}};function y8(t){return(_e(t)?FVe:wVe)(t)}function FVe(t){const e=t.length;let n="[";for(let r=0;r<e;++r){const i=t[r];n+=(r>0?",":"")+(Qe(i)?i.signal||y8(i):Fe(i))}return n+"]"}function wVe(t){let e="{",n=0,r,i;for(r in t)i=t[r],e+=(++n>1?",":"")+Fe(r)+":"+(Qe(i)?i.signal||y8(i):Fe(i));return e+"}"}function LVe(){const t="sans-serif",r="#4c78a8",i="#000",s="#888",o="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:r},area:{fill:r},image:null,line:{stroke:r,strokeWidth:2},path:{stroke:r},rect:{fill:r},rule:{stroke:i},shape:{stroke:r},symbol:{fill:r,size:64},text:{fill:i,font:t,fontSize:11},trail:{fill:r,size:2},style:{"guide-label":{fill:i,font:t,fontSize:10},"guide-title":{fill:i,font:t,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:t,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,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:o},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:s,grid:!1,gridWidth:1,gridColor:o,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:s,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:o,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:s,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"]}}}function IVe(t,e,n){return Qe(t)||ve("Input Vega specification must be an object."),e=p5(LVe(),e,t.config),NVe(t,new hse(e,n)).toRuntime()}ct(qy,PIe,p7e,j7e,bMe,E9e,Gje,bje,Vje,mUe,RUe,IUe);const $Ve={spark:[180,1],xs:[170,2],sm:[216,3],md:[256,4],lg:[472,7],xl:[508,10],"2xl":[730,14]},eN=28;function BVe(t,e){const n=t.allFields.at(0),r=t.allFields.at(1),{tag:i}=t.tagParse();let s=0,o=0;const u=i.numeric("size","width"),a=i.numeric("size","height");let l=i.text("size");u&&a?(s=u,o=a):(l=l||"md",[s,o]=$Ve[l],o=o*eN);let c=0,f=0,x=-90,h="right",p="middle",m=0,g=0;const y=l!=="spark",E=l!=="spark",A=e.fields[bx(t)];let S=l!=="spark"?eN-1:0,v;const _=bx(r),C=e.fields[_].max,b=Dt("linear")().domain([0,C]).nice().range([o,0]),O=b.domain();if(E){const z=b.domain().at(1),Q=_Y().format(",")(z);f=my(Q,"Inter, sans-serif 12px")+5+31;const ae=Math.ceil(o/40),ie=b.ticks(ae);if(ie.at(-1)<z){const le=(z-ie.at(-1))/z,xe=o/(1-le);S=S-(xe-o),o=xe,v=ae}}if(y){const z=bx(n),Y=e.fields[z].maxString,Q=my(Y,"Inter, sans-serif 12px"),oe=.3;g=22+15,c=Math.min(Q,oe*o),m=c;const ae=(s-f)/A.maxRecordCt;ae>c&&(x=0,m=ae,h=void 0,p="top")}const R=o+c+g,I=Math.ceil(R/eN)*eN;g+=I-R;const M=i.text("size")==="spark";return{plotWidth:s,plotHeight:o,xAxis:{labelAngle:x,labelAlign:h,labelBaseline:p,labelSize:m,height:c,titleSize:g,hidden:M},yAxis:{width:f,tickCount:v,hidden:M},yScale:{domain:O},padding:M?{top:0,left:0,bottom:0,right:0}:{top:S+1,left:f,bottom:c+g,right:0},xField:n,yField:r,get totalWidth(){return this.plotWidth+this.padding.left+this.padding.right},get totalHeight(){return this.plotHeight+this.padding.top+this.padding.bottom}}}const tN="#727883",nN="#E5E7EB";function kVe(t,e){const n=BVe(e.field,e.metadata),r={$schema:"https://vega.github.io/schema/vega/v5.json",width:n.plotWidth,height:n.plotHeight,config:{axisY:{gridColor:nN,tickColor:nN,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelColor:tN,labelPadding:5,titleColor:tN,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10,labelOverlap:!1},axisX:{gridColor:nN,tickColor:nN,tickSize:0,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelPadding:5,labelColor:tN,titleColor:tN,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10},view:{strokeWidth:0}},data:[{name:"table",values:[]}],marks:[],scales:[],legends:[],axes:[],autosize:{type:"none",resize:!0,contains:"content"},padding:n.padding},i={name:"xscale",type:t.x.type==="nominal"?"band":"linear",domain:{data:"table",field:t.x.fields.at(0)},range:"width"};i.type==="band"&&(i.paddingInner=.1,i.paddingOuter=.05,i.round=!0);const s={name:"yscale",type:t.y.type==="nominal"?"band":"linear",domain:n.yScale.domain??{data:"table",fields:t.y.fields},range:"height"};s.type==="linear"&&(s.nice=!0),r.scales.push(i),r.scales.push(s);for(const o of t.marks){const u={},a={name:o.id,source:"table",transform:[]};if(r.data.push(a),o.type==="bar_y"){u.type="rect",u.from={data:o.id};const l=o.x??t.x.fields.at(0),c=o.y??t.y.fields.at(0);u.encode={enter:{x:{scale:"xscale",field:l,band:.1},width:{scale:"xscale",band:.8},y:{scale:"yscale",field:c},y2:{scale:"yscale",value:0},fill:{value:"#53B2C8"}}},r.marks.push(u)}}return n.xAxis.hidden||r.axes.push({orient:"bottom",scale:"xscale",title:t.x.fields.join(", "),labelAngle:n.xAxis.labelAngle,labelLimit:n.xAxis.labelSize,labelAlign:n.xAxis.labelAlign,labelBaseline:n.xAxis.labelBaseline,maxExtent:n.xAxis.height}),n.yAxis.hidden||r.axes.push({orient:"left",scale:"yscale",grid:!0,maxExtent:n.yAxis.width,labelLimit:n.yAxis.width+10,tickCount:n.yAxis.tickCount??{signal:"ceil(height/40)"},title:[...new Set(s.domain.fields)].filter(o=>typeof o=="string").join(", ")}),{spec:r,plotWidth:n.plotWidth,plotHeight:n.plotHeight,totalWidth:n.totalWidth,totalHeight:n.totalHeight}}function PVe(){const t=new WeakMap;return{get:e=>{if(!t.has(e)&&e.isArray()){const n=[];for(const r of e)n.push(r.toObject());t.set(e,n)}return t.get(e)}}}function MVe(t){const e=new WeakMap,n=u=>{if(e.has(u))return e.get(u);const a=bx(u);return e.set(u,a),a},r=PVe(),i={fields:{},fieldKeyMap:e,getFieldKey:n,field:u=>i.fields[n(u)],getData:r.get},s=t.data.field,o=i.getFieldKey(s);return i.fields[o]={field:s,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},gse(t.data.field,i),mse(t.data,i),Object.values(i.fields).forEach(u=>{const a=u.field;a.isExploreField()?yse(a,a.tagParse().tag,i):a.isExplore()&&yse(a,t.tagParse().tag,i)}),i}function gse(t,e){for(const n of t.allFields){const r=e.getFieldKey(n);e.fields[r]={field:n,min:null,max:null,minString:null,maxString:null,values:new Set,maxRecordCt:null},n.isExploreField()&&gse(n,e)}}const mse=(t,e)=>{let n=0;for(const s of t){n++;for(const o of t.field.allFields){const u=o.isAtomicField()?s.cell(o).value:void 0,a=e.field(o);if(GW(o,u)){const l=u;a.min=Math.min(a.min??l,l),a.max=Math.max(a.max??l,l)}else if(WW(o,u)){const l=u;a.values.add(l),(!a.minString||a.minString.length>l.length)&&(a.minString=l),(!a.maxString||a.maxString.length<l.length)&&(a.maxString=l)}else if(o.isExploreField()){const l=s.cell(o);mse(l,e)}}}const r=t.field,i=e.field(r);i.maxRecordCt=Math.max(i.maxRecordCt??n,n)};function yse(t,e,n){const r=n.field(t);if(gy(e,"bar","bar_chart")){const i=OFe(t,e);r.vegaChartProps=kVe(i,{field:t,metadata:n})}}const Ese=PP(),Ase=()=>{const t=MP(Ese);if(!t)throw Error("useResultContext must be used within a ResultContext.Provider");return t};var rN=(t=>(t.Dollars="usd",t.Euros="euro",t.Pounds="pound",t))(rN||{}),rr=(t=>(t.Nanoseconds="nanoseconds",t.Microseconds="microseconds",t.Milliseconds="milliseconds",t.Seconds="seconds",t.Minutes="minutes",t.Hours="hours",t.Days="days",t))(rr||{});function jVe(t){return Object.values(rr).includes(t)}var Sse={exports:{}};(function(t){var e={},n=function(i){i.version="0.11.2";function s(T){for(var N="",$=T.length-1;$>=0;)N+=T.charAt($--);return N}function o(T,N){for(var $="";$.length<N;)$+=T;return $}function u(T,N){var $=""+T;return $.length>=N?$:o("0",N-$.length)+$}function a(T,N){var $=""+T;return $.length>=N?$:o(" ",N-$.length)+$}function l(T,N){var $=""+T;return $.length>=N?$:$+o(" ",N-$.length)}function c(T,N){var $=""+Math.round(T);return $.length>=N?$:o("0",N-$.length)+$}function f(T,N){var $=""+T;return $.length>=N?$:o("0",N-$.length)+$}var x=Math.pow(2,32);function h(T,N){if(T>x||T<-x)return c(T,N);var $=Math.round(T);return f($,N)}function p(T,N){return N=N||0,T.length>=7+N&&(T.charCodeAt(N)|32)===103&&(T.charCodeAt(N+1)|32)===101&&(T.charCodeAt(N+2)|32)===110&&(T.charCodeAt(N+3)|32)===101&&(T.charCodeAt(N+4)|32)===114&&(T.charCodeAt(N+5)|32)===97&&(T.charCodeAt(N+6)|32)===108}var m=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],g=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function y(T){T[0]="General",T[1]="0",T[2]="0.00",T[3]="#,##0",T[4]="#,##0.00",T[9]="0%",T[10]="0.00%",T[11]="0.00E+00",T[12]="# ?/?",T[13]="# ??/??",T[14]="m/d/yy",T[15]="d-mmm-yy",T[16]="d-mmm",T[17]="mmm-yy",T[18]="h:mm AM/PM",T[19]="h:mm:ss AM/PM",T[20]="h:mm",T[21]="h:mm:ss",T[22]="m/d/yy h:mm",T[37]="#,##0 ;(#,##0)",T[38]="#,##0 ;[Red](#,##0)",T[39]="#,##0.00;(#,##0.00)",T[40]="#,##0.00;[Red](#,##0.00)",T[45]="mm:ss",T[46]="[h]:mm:ss",T[47]="mmss.0",T[48]="##0.0E+0",T[49]="@",T[56]='"上午/下午 "hh"時"mm"分"ss"秒 "'}var E={};y(E);var A=[],S=0;for(S=5;S<=8;++S)A[S]=32+S;for(S=23;S<=26;++S)A[S]=0;for(S=27;S<=31;++S)A[S]=14;for(S=50;S<=58;++S)A[S]=14;for(S=59;S<=62;++S)A[S]=S-58;for(S=67;S<=68;++S)A[S]=S-58;for(S=72;S<=75;++S)A[S]=S-58;for(S=67;S<=68;++S)A[S]=S-57;for(S=76;S<=78;++S)A[S]=S-56;for(S=79;S<=81;++S)A[S]=S-34;var v=[];v[5]=v[63]='"$"#,##0_);\\("$"#,##0\\)',v[6]=v[64]='"$"#,##0_);[Red]\\("$"#,##0\\)',v[7]=v[65]='"$"#,##0.00_);\\("$"#,##0.00\\)',v[8]=v[66]='"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',v[41]='_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',v[42]='_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',v[43]='_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',v[44]='_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)';function _(T,N,$){for(var q=T<0?-1:1,L=T*q,H=0,P=1,V=0,fe=1,te=0,X=0,ue=Math.floor(L);te<N&&(ue=Math.floor(L),V=ue*P+H,X=ue*te+fe,!(L-ue<5e-8));)L=1/(L-ue),H=P,P=V,fe=te,te=X;if(X>N&&(te>N?(X=fe,V=H):(X=te,V=P)),!$)return[0,q*V,X];var Be=Math.floor(q*V/X);return[Be,q*V-Be*X,X]}function C(T,N,$){if(T>2958465||T<0)return null;var q=T|0,L=Math.floor(86400*(T-q)),H=0,P=[],V={D:q,T:L,u:86400*(T-q)-L,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(V.u)<1e-6&&(V.u=0),N&&N.date1904&&(q+=1462),V.u>.9999&&(V.u=0,++L==86400&&(V.T=L=0,++q,++V.D)),q===60)P=$?[1317,10,29]:[1900,2,29],H=3;else if(q===0)P=$?[1317,8,29]:[1900,1,0],H=6;else{q>60&&--q;var fe=new Date(1900,0,1);fe.setDate(fe.getDate()+q-1),P=[fe.getFullYear(),fe.getMonth()+1,fe.getDate()],H=fe.getDay(),q<60&&(H=(H+6)%7),$&&(H=Q(fe,P))}return V.y=P[0],V.m=P[1],V.d=P[2],V.S=L%60,L=Math.floor(L/60),V.M=L%60,L=Math.floor(L/60),V.H=L,V.q=H,V}i.parse_date_code=C;var b=new Date(1899,11,31,0,0,0),O=b.getTime(),R=new Date(1900,2,1,0,0,0);function I(T,N){var $=T.getTime();return N?$-=1262304e5:T>=R&&($+=864e5),($-(O+(T.getTimezoneOffset()-b.getTimezoneOffset())*6e4))/864e5}function M(T){return T.toString(10)}i._general_int=M;var z=function(){var N=/(?:\.0*|(\.\d*[1-9])0+)$/;function $(te){return te.indexOf(".")==-1?te:te.replace(N,"$1")}var q=/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,L=/(E[+-])(\d)$/;function H(te){return te.indexOf("E")==-1?te:te.replace(q,"$1E").replace(L,"$10$2")}function P(te){var X=te<0?12:11,ue=$(te.toFixed(12));return ue.length<=X||(ue=te.toPrecision(10),ue.length<=X)?ue:te.toExponential(5)}function V(te){var X=$(te.toFixed(11));return X.length>(te<0?12:11)||X==="0"||X==="-0"?te.toPrecision(6):X}function fe(te){var X=Math.floor(Math.log(Math.abs(te))*Math.LOG10E),ue;return X>=-4&&X<=-1?ue=te.toPrecision(10+X):Math.abs(X)<=9?ue=P(te):X===10?ue=te.toFixed(10).substr(0,12):ue=V(te),$(H(ue.toUpperCase()))}return fe}();i._general_num=z;function Y(T,N){switch(typeof T){case"string":return T;case"boolean":return T?"TRUE":"FALSE";case"number":return(T|0)===T?T.toString(10):z(T);case"undefined":return"";case"object":if(T==null)return"";if(T instanceof Date)return U(14,I(T,N&&N.date1904),N)}throw new Error("unsupported value in General format: "+T)}i._general=Y;function Q(T,N){N[0]-=581;var $=T.getDay();return T<60&&($=($+6)%7),$}function oe(T,N,$,q){var L="",H=0,P=0,V=$.y,fe,te=0;switch(T){case 98:V=$.y+543;case 121:switch(N.length){case 1:case 2:fe=V%100,te=2;break;default:fe=V%1e4,te=4;break}break;case 109:switch(N.length){case 1:case 2:fe=$.m,te=N.length;break;case 3:return g[$.m-1][1];case 5:return g[$.m-1][0];default:return g[$.m-1][2]}break;case 100:switch(N.length){case 1:case 2:fe=$.d,te=N.length;break;case 3:return m[$.q][0];default:return m[$.q][1]}break;case 104:switch(N.length){case 1:case 2:fe=1+($.H+11)%12,te=N.length;break;default:throw"bad hour format: "+N}break;case 72:switch(N.length){case 1:case 2:fe=$.H,te=N.length;break;default:throw"bad hour format: "+N}break;case 77:switch(N.length){case 1:case 2:fe=$.M,te=N.length;break;default:throw"bad minute format: "+N}break;case 115:if(N!="s"&&N!="ss"&&N!=".0"&&N!=".00"&&N!=".000")throw"bad second format: "+N;return $.u===0&&(N=="s"||N=="ss")?u($.S,N.length):(q>=2?P=q===3?1e3:100:P=q===1?10:1,H=Math.round(P*($.S+$.u)),H>=60*P&&(H=0),N==="s"?H===0?"0":""+H/P:(L=u(H,2+q),N==="ss"?L.substr(0,2):"."+L.substr(2,N.length-1)));case 90:switch(N){case"[h]":case"[hh]":fe=$.D*24+$.H;break;case"[m]":case"[mm]":fe=($.D*24+$.H)*60+$.M;break;case"[s]":case"[ss]":fe=(($.D*24+$.H)*60+$.M)*60+Math.round($.S+$.u);break;default:throw"bad abstime format: "+N}te=N.length===3?1:2;break;case 101:fe=V,te=1;break}var X=te>0?u(fe,te):"";return X}function de(T){var N=3;if(T.length<=N)return T;for(var $=T.length%N,q=T.substr(0,$);$!=T.length;$+=N)q+=(q.length>0?",":"")+T.substr($,N);return q}var ae=function(){var N=/%/g;function $(Ee,J,re){var Me=J.replace(N,""),G=J.length-Me.length;return ae(Ee,Me,re*Math.pow(10,2*G))+o("%",G)}function q(Ee,J,re){for(var Me=J.length-1;J.charCodeAt(Me-1)===44;)--Me;return ae(Ee,J.substr(0,Me),re/Math.pow(10,3*(J.length-Me)))}function L(Ee,J){var re,Me=Ee.indexOf("E")-Ee.indexOf(".")-1;if(Ee.match(/^#+0.0E\+0$/)){if(J==0)return"0.0E+0";if(J<0)return"-"+L(Ee,-J);var G=Ee.indexOf(".");G===-1&&(G=Ee.indexOf("E"));var ce=Math.floor(Math.log(J)*Math.LOG10E)%G;if(ce<0&&(ce+=G),re=(J/Math.pow(10,ce)).toPrecision(Me+1+(G+ce)%G),re.indexOf("e")===-1){var we=Math.floor(Math.log(J)*Math.LOG10E);for(re.indexOf(".")===-1?re=re.charAt(0)+"."+re.substr(1)+"E+"+(we-re.length+ce):re+="E+"+(we-ce);re.substr(0,2)==="0.";)re=re.charAt(0)+re.substr(2,G)+"."+re.substr(2+G),re=re.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");re=re.replace(/\+-/,"-")}re=re.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(ze,nt,yt,rt){return nt+yt+rt.substr(0,(G+ce)%G)+"."+rt.substr(ce)+"E"})}else re=J.toExponential(Me);return Ee.match(/E\+00$/)&&re.match(/e[+-]\d$/)&&(re=re.substr(0,re.length-1)+"0"+re.charAt(re.length-1)),Ee.match(/E\-/)&&re.match(/e\+/)&&(re=re.replace(/e\+/,"e")),re.replace("e","E")}var H=/# (\?+)( ?)\/( ?)(\d+)/;function P(Ee,J,re){var Me=parseInt(Ee[4],10),G=Math.round(J*Me),ce=Math.floor(G/Me),we=G-ce*Me,ze=Me;return re+(ce===0?"":""+ce)+" "+(we===0?o(" ",Ee[1].length+1+Ee[4].length):a(we,Ee[1].length)+Ee[2]+"/"+Ee[3]+u(ze,Ee[4].length))}function V(Ee,J,re){return re+(J===0?"":""+J)+o(" ",Ee[1].length+2+Ee[4].length)}var fe=/^#*0*\.([0#]+)/,te=/\).*[0#]/,X=/\(###\) ###\\?-####/;function ue(Ee){for(var J="",re,Me=0;Me!=Ee.length;++Me)switch(re=Ee.charCodeAt(Me)){case 35:break;case 63:J+=" ";break;case 48:J+="0";break;default:J+=String.fromCharCode(re)}return J}function Be(Ee,J){var re=Math.pow(10,J);return""+Math.round(Ee*re)/re}function ut(Ee,J){var re=Ee-Math.floor(Ee),Me=Math.pow(10,J);return J<(""+Math.round(re*Me)).length?0:Math.round(re*Me)}function Rt(Ee,J){return J<(""+Math.round((Ee-Math.floor(Ee))*Math.pow(10,J))).length?1:0}function K(Ee){return Ee<2147483647&&Ee>-2147483648?""+(Ee>=0?Ee|0:Ee-1|0):""+Math.floor(Ee)}function se(Ee,J,re){if(Ee.charCodeAt(0)===40&&!J.match(te)){var Me=J.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return re>=0?se("n",Me,re):"("+se("n",Me,-re)+")"}if(J.charCodeAt(J.length-1)===44)return q(Ee,J,re);if(J.indexOf("%")!==-1)return $(Ee,J,re);if(J.indexOf("E")!==-1)return L(J,re);if(J.charCodeAt(0)===36)return"$"+se(Ee,J.substr(J.charAt(1)==" "?2:1),re);var G,ce,we,ze,nt=Math.abs(re),yt=re<0?"-":"";if(J.match(/^00+$/))return yt+h(nt,J.length);if(J.match(/^[#?]+$/))return G=h(re,0),G==="0"&&(G=""),G.length>J.length?G:ue(J.substr(0,J.length-G.length))+G;if(ce=J.match(H))return P(ce,nt,yt);if(J.match(/^#+0+$/))return yt+h(nt,J.length-J.indexOf("0"));if(ce=J.match(fe))return G=Be(re,ce[1].length).replace(/^([^\.]+)$/,"$1."+ue(ce[1])).replace(/\.$/,"."+ue(ce[1])).replace(/\.(\d*)$/,function(Gs,z3){return"."+z3+o("0",ue(ce[1]).length-z3.length)}),J.indexOf("0.")!==-1?G:G.replace(/^0\./,".");if(J=J.replace(/^#+([0.])/,"$1"),ce=J.match(/^(0*)\.(#*)$/))return yt+Be(nt,ce[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,ce[1].length?"0.":".");if(ce=J.match(/^#{1,3},##0(\.?)$/))return yt+de(h(nt,0));if(ce=J.match(/^#,##0\.([#0]*0)$/))return re<0?"-"+se(Ee,J,-re):de(""+(Math.floor(re)+Rt(re,ce[1].length)))+"."+u(ut(re,ce[1].length),ce[1].length);if(ce=J.match(/^#,#*,#0/))return se(Ee,J.replace(/^#,#*,/,""),re);if(ce=J.match(/^([0#]+)(\\?-([0#]+))+$/))return G=s(se(Ee,J.replace(/[\\-]/g,""),re)),we=0,s(s(J.replace(/\\/g,"")).replace(/[0#]/g,function(Gs){return we<G.length?G.charAt(we++):Gs==="0"?"0":""}));if(J.match(X))return G=se(Ee,"##########",re),"("+G.substr(0,3)+") "+G.substr(3,3)+"-"+G.substr(6);var rt="";if(ce=J.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return we=Math.min(ce[4].length,7),ze=_(nt,Math.pow(10,we)-1,!1),G=""+yt,rt=ae("n",ce[1],ze[1]),rt.charAt(rt.length-1)==" "&&(rt=rt.substr(0,rt.length-1)+"0"),G+=rt+ce[2]+"/"+ce[3],rt=l(ze[2],we),rt.length<ce[4].length&&(rt=ue(ce[4].substr(ce[4].length-rt.length))+rt),G+=rt,G;if(ce=J.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return we=Math.min(Math.max(ce[1].length,ce[4].length),7),ze=_(nt,Math.pow(10,we)-1,!0),yt+(ze[0]||(ze[1]?"":"0"))+" "+(ze[1]?a(ze[1],we)+ce[2]+"/"+ce[3]+l(ze[2],we):o(" ",2*we+1+ce[2].length+ce[3].length));if(ce=J.match(/^[#0?]+$/))return G=h(re,0),J.length<=G.length?G:ue(J.substr(0,J.length-G.length))+G;if(ce=J.match(/^([#0?]+)\.([#0]+)$/)){G=""+re.toFixed(Math.min(ce[2].length,10)).replace(/([^0])0+$/,"$1"),we=G.indexOf(".");var Tr=J.indexOf(".")-we,Kc=J.length-G.length-Tr;return ue(J.substr(0,Tr)+G+J.substr(J.length-Kc))}if(ce=J.match(/^00,000\.([#0]*0)$/))return we=ut(re,ce[1].length),re<0?"-"+se(Ee,J,-re):de(K(re)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(Gs){return"00,"+(Gs.length<3?u(0,3-Gs.length):"")+Gs})+"."+u(we,ce[1].length);switch(J){case"###,##0.00":return se(Ee,"#,##0.00",re);case"###,###":case"##,###":case"#,###":var H3=de(h(nt,0));return H3!=="0"?yt+H3:"";case"###,###.00":return se(Ee,"###,##0.00",re).replace(/^0\./,".");case"#,###.00":return se(Ee,"#,##0.00",re).replace(/^0\./,".")}throw new Error("unsupported format |"+J+"|")}function Re(Ee,J,re){for(var Me=J.length-1;J.charCodeAt(Me-1)===44;)--Me;return ae(Ee,J.substr(0,Me),re/Math.pow(10,3*(J.length-Me)))}function He(Ee,J,re){var Me=J.replace(N,""),G=J.length-Me.length;return ae(Ee,Me,re*Math.pow(10,2*G))+o("%",G)}function qe(Ee,J){var re,Me=Ee.indexOf("E")-Ee.indexOf(".")-1;if(Ee.match(/^#+0.0E\+0$/)){if(J==0)return"0.0E+0";if(J<0)return"-"+qe(Ee,-J);var G=Ee.indexOf(".");G===-1&&(G=Ee.indexOf("E"));var ce=Math.floor(Math.log(J)*Math.LOG10E)%G;if(ce<0&&(ce+=G),re=(J/Math.pow(10,ce)).toPrecision(Me+1+(G+ce)%G),!re.match(/[Ee]/)){var we=Math.floor(Math.log(J)*Math.LOG10E);re.indexOf(".")===-1?re=re.charAt(0)+"."+re.substr(1)+"E+"+(we-re.length+ce):re+="E+"+(we-ce),re=re.replace(/\+-/,"-")}re=re.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(ze,nt,yt,rt){return nt+yt+rt.substr(0,(G+ce)%G)+"."+rt.substr(ce)+"E"})}else re=J.toExponential(Me);return Ee.match(/E\+00$/)&&re.match(/e[+-]\d$/)&&(re=re.substr(0,re.length-1)+"0"+re.charAt(re.length-1)),Ee.match(/E\-/)&&re.match(/e\+/)&&(re=re.replace(/e\+/,"e")),re.replace("e","E")}function Ie(Ee,J,re){if(Ee.charCodeAt(0)===40&&!J.match(te)){var Me=J.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return re>=0?Ie("n",Me,re):"("+Ie("n",Me,-re)+")"}if(J.charCodeAt(J.length-1)===44)return Re(Ee,J,re);if(J.indexOf("%")!==-1)return He(Ee,J,re);if(J.indexOf("E")!==-1)return qe(J,re);if(J.charCodeAt(0)===36)return"$"+Ie(Ee,J.substr(J.charAt(1)==" "?2:1),re);var G,ce,we,ze,nt=Math.abs(re),yt=re<0?"-":"";if(J.match(/^00+$/))return yt+u(nt,J.length);if(J.match(/^[#?]+$/))return G=""+re,re===0&&(G=""),G.length>J.length?G:ue(J.substr(0,J.length-G.length))+G;if(ce=J.match(H))return V(ce,nt,yt);if(J.match(/^#+0+$/))return yt+u(nt,J.length-J.indexOf("0"));if(ce=J.match(fe))return G=(""+re).replace(/^([^\.]+)$/,"$1."+ue(ce[1])).replace(/\.$/,"."+ue(ce[1])),G=G.replace(/\.(\d*)$/,function(Gs,z3){return"."+z3+o("0",ue(ce[1]).length-z3.length)}),J.indexOf("0.")!==-1?G:G.replace(/^0\./,".");if(J=J.replace(/^#+([0.])/,"$1"),ce=J.match(/^(0*)\.(#*)$/))return yt+(""+nt).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,ce[1].length?"0.":".");if(ce=J.match(/^#{1,3},##0(\.?)$/))return yt+de(""+nt);if(ce=J.match(/^#,##0\.([#0]*0)$/))return re<0?"-"+Ie(Ee,J,-re):de(""+re)+"."+o("0",ce[1].length);if(ce=J.match(/^#,#*,#0/))return Ie(Ee,J.replace(/^#,#*,/,""),re);if(ce=J.match(/^([0#]+)(\\?-([0#]+))+$/))return G=s(Ie(Ee,J.replace(/[\\-]/g,""),re)),we=0,s(s(J.replace(/\\/g,"")).replace(/[0#]/g,function(Gs){return we<G.length?G.charAt(we++):Gs==="0"?"0":""}));if(J.match(X))return G=Ie(Ee,"##########",re),"("+G.substr(0,3)+") "+G.substr(3,3)+"-"+G.substr(6);var rt="";if(ce=J.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return we=Math.min(ce[4].length,7),ze=_(nt,Math.pow(10,we)-1,!1),G=""+yt,rt=ae("n",ce[1],ze[1]),rt.charAt(rt.length-1)==" "&&(rt=rt.substr(0,rt.length-1)+"0"),G+=rt+ce[2]+"/"+ce[3],rt=l(ze[2],we),rt.length<ce[4].length&&(rt=ue(ce[4].substr(ce[4].length-rt.length))+rt),G+=rt,G;if(ce=J.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))return we=Math.min(Math.max(ce[1].length,ce[4].length),7),ze=_(nt,Math.pow(10,we)-1,!0),yt+(ze[0]||(ze[1]?"":"0"))+" "+(ze[1]?a(ze[1],we)+ce[2]+"/"+ce[3]+l(ze[2],we):o(" ",2*we+1+ce[2].length+ce[3].length));if(ce=J.match(/^[#0?]+$/))return G=""+re,J.length<=G.length?G:ue(J.substr(0,J.length-G.length))+G;if(ce=J.match(/^([#0]+)\.([#0]+)$/)){G=""+re.toFixed(Math.min(ce[2].length,10)).replace(/([^0])0+$/,"$1"),we=G.indexOf(".");var Tr=J.indexOf(".")-we,Kc=J.length-G.length-Tr;return ue(J.substr(0,Tr)+G+J.substr(J.length-Kc))}if(ce=J.match(/^00,000\.([#0]*0)$/))return re<0?"-"+Ie(Ee,J,-re):de(""+re).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function(Gs){return"00,"+(Gs.length<3?u(0,3-Gs.length):"")+Gs})+"."+u(0,ce[1].length);switch(J){case"###,###":case"##,###":case"#,###":var H3=de(""+nt);return H3!=="0"?yt+H3:"";default:if(J.match(/\.[0#?]*$/))return Ie(Ee,J.slice(0,J.lastIndexOf(".")),re)+ue(J.slice(J.lastIndexOf(".")))}throw new Error("unsupported format |"+J+"|")}return function(J,re,Me){return(Me|0)===Me?Ie(J,re,Me):se(J,re,Me)}}();function ie(T){for(var N=[],$=!1,q=0,L=0;q<T.length;++q)switch(T.charCodeAt(q)){case 34:$=!$;break;case 95:case 42:case 92:++q;break;case 59:N[N.length]=T.substr(L,q-L),L=q+1}if(N[N.length]=T.substr(L),$===!0)throw new Error("Format |"+T+"| unterminated string ");return N}i._split=ie;var le=/\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/;function xe(T){for(var N=0,$="",q="";N<T.length;)switch($=T.charAt(N)){case"G":p(T,N)&&(N+=6),N++;break;case'"':for(;T.charCodeAt(++N)!==34&&N<T.length;);++N;break;case"\\":N+=2;break;case"_":N+=2;break;case"@":++N;break;case"B":case"b":if(T.charAt(N+1)==="1"||T.charAt(N+1)==="2")return!0;case"M":case"D":case"Y":case"H":case"S":case"E":case"m":case"d":case"y":case"h":case"s":case"e":case"g":return!0;case"A":case"a":case"上":if(T.substr(N,3).toUpperCase()==="A/P"||T.substr(N,5).toUpperCase()==="AM/PM"||T.substr(N,5).toUpperCase()==="上午/下午")return!0;++N;break;case"[":for(q=$;T.charAt(N++)!=="]"&&N<T.length;)q+=T.charAt(N);if(q.match(le))return!0;break;case".":case"0":case"#":for(;N<T.length&&("0#?.,E+-%".indexOf($=T.charAt(++N))>-1||$=="\\"&&T.charAt(N+1)=="-"&&"0#".indexOf(T.charAt(N+2))>-1););break;case"?":for(;T.charAt(++N)===$;);break;case"*":++N,(T.charAt(N)==" "||T.charAt(N)=="*")&&++N;break;case"(":case")":++N;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;N<T.length&&"0123456789".indexOf(T.charAt(++N))>-1;);break;case" ":++N;break;default:++N;break}return!1}i.is_date=xe;function Ce(T,N,$,q){for(var L=[],H="",P=0,V="",fe="t",te,X,ue,Be="H";P<T.length;)switch(V=T.charAt(P)){case"G":if(!p(T,P))throw new Error("unrecognized character "+V+" in "+T);L[L.length]={t:"G",v:"General"},P+=7;break;case'"':for(H="";(ue=T.charCodeAt(++P))!==34&&P<T.length;)H+=String.fromCharCode(ue);L[L.length]={t:"t",v:H},++P;break;case"\\":var ut=T.charAt(++P),Rt=ut==="("||ut===")"?ut:"t";L[L.length]={t:Rt,v:ut},++P;break;case"_":L[L.length]={t:"t",v:" "},P+=2;break;case"@":L[L.length]={t:"T",v:N},++P;break;case"B":case"b":if(T.charAt(P+1)==="1"||T.charAt(P+1)==="2"){if(te==null&&(te=C(N,$,T.charAt(P+1)==="2"),te==null))return"";L[L.length]={t:"X",v:T.substr(P,2)},fe=V,P+=2;break}case"M":case"D":case"Y":case"H":case"S":case"E":V=V.toLowerCase();case"m":case"d":case"y":case"h":case"s":case"e":case"g":if(N<0||te==null&&(te=C(N,$),te==null))return"";for(H=V;++P<T.length&&T.charAt(P).toLowerCase()===V;)H+=V;V==="m"&&fe.toLowerCase()==="h"&&(V="M"),V==="h"&&(V=Be),L[L.length]={t:V,v:H},fe=V;break;case"A":case"a":case"上":var K={t:V,v:V};if(te==null&&(te=C(N,$)),T.substr(P,3).toUpperCase()==="A/P"?(te!=null&&(K.v=te.H>=12?"P":"A"),K.t="T",Be="h",P+=3):T.substr(P,5).toUpperCase()==="AM/PM"?(te!=null&&(K.v=te.H>=12?"PM":"AM"),K.t="T",P+=5,Be="h"):T.substr(P,5).toUpperCase()==="上午/下午"?(te!=null&&(K.v=te.H>=12?"下午":"上午"),K.t="T",P+=5,Be="h"):(K.t="t",++P),te==null&&K.t==="T")return"";L[L.length]=K,fe=V;break;case"[":for(H=V;T.charAt(P++)!=="]"&&P<T.length;)H+=T.charAt(P);if(H.slice(-1)!=="]")throw'unterminated "[" block: |'+H+"|";if(H.match(le)){if(te==null&&(te=C(N,$),te==null))return"";L[L.length]={t:"Z",v:H.toLowerCase()},fe=H.charAt(1)}else H.indexOf("$")>-1&&(H=(H.match(/\$([^-\[\]]*)/)||[])[1]||"$",xe(T)||(L[L.length]={t:"t",v:H}));break;case".":if(te!=null){for(H=V;++P<T.length&&(V=T.charAt(P))==="0";)H+=V;L[L.length]={t:"s",v:H};break}case"0":case"#":for(H=V;++P<T.length&&"0#?.,E+-%".indexOf(V=T.charAt(P))>-1;)H+=V;L[L.length]={t:"n",v:H};break;case"?":for(H=V;T.charAt(++P)===V;)H+=V;L[L.length]={t:V,v:H},fe=V;break;case"*":++P,(T.charAt(P)==" "||T.charAt(P)=="*")&&++P;break;case"(":case")":L[L.length]={t:q===1?"t":V,v:V},++P;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(H=V;P<T.length&&"0123456789".indexOf(T.charAt(++P))>-1;)H+=T.charAt(P);L[L.length]={t:"D",v:H};break;case" ":L[L.length]={t:V,v:V},++P;break;case"$":L[L.length]={t:"t",v:"$"},++P;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(V)===-1)throw new Error("unrecognized character "+V+" in "+T);L[L.length]={t:"t",v:V},++P;break}var se=0,Re=0,He;for(P=L.length-1,fe="t";P>=0;--P)switch(L[P].t){case"h":case"H":L[P].t=Be,fe="h",se<1&&(se=1);break;case"s":(He=L[P].v.match(/\.0+$/))&&(Re=Math.max(Re,He[0].length-1)),se<3&&(se=3);case"d":case"y":case"M":case"e":fe=L[P].t;break;case"m":fe==="s"&&(L[P].t="M",se<2&&(se=2));break;case"X":break;case"Z":se<1&&L[P].v.match(/[Hh]/)&&(se=1),se<2&&L[P].v.match(/[Mm]/)&&(se=2),se<3&&L[P].v.match(/[Ss]/)&&(se=3)}switch(se){case 0:break;case 1:te.u>=.5&&(te.u=0,++te.S),te.S>=60&&(te.S=0,++te.M),te.M>=60&&(te.M=0,++te.H);break;case 2:te.u>=.5&&(te.u=0,++te.S),te.S>=60&&(te.S=0,++te.M);break}var qe="",Ie;for(P=0;P<L.length;++P)switch(L[P].t){case"t":case"T":case" ":case"D":break;case"X":L[P].v="",L[P].t=";";break;case"d":case"m":case"y":case"h":case"H":case"M":case"s":case"e":case"b":case"Z":L[P].v=oe(L[P].t.charCodeAt(0),L[P].v,te,Re),L[P].t="t";break;case"n":case"?":for(Ie=P+1;L[Ie]!=null&&((V=L[Ie].t)==="?"||V==="D"||(V===" "||V==="t")&&L[Ie+1]!=null&&(L[Ie+1].t==="?"||L[Ie+1].t==="t"&&L[Ie+1].v==="/")||L[P].t==="("&&(V===" "||V==="n"||V===")")||V==="t"&&(L[Ie].v==="/"||L[Ie].v===" "&&L[Ie+1]!=null&&L[Ie+1].t=="?"));)L[P].v+=L[Ie].v,L[Ie]={v:"",t:";"},++Ie;qe+=L[P].v,P=Ie-1;break;case"G":L[P].t="t",L[P].v=Y(N,$);break}var Ee="",J,re;if(qe.length>0){qe.charCodeAt(0)==40?(J=N<0&&qe.charCodeAt(0)===45?-N:N,re=ae("n",qe,J)):(J=N<0&&q>1?-N:N,re=ae("n",qe,J),J<0&&L[0]&&L[0].t=="t"&&(re=re.substr(1),L[0].v="-"+L[0].v)),Ie=re.length-1;var Me=L.length;for(P=0;P<L.length;++P)if(L[P]!=null&&L[P].t!="t"&&L[P].v.indexOf(".")>-1){Me=P;break}var G=L.length;if(Me===L.length&&re.indexOf("E")===-1){for(P=L.length-1;P>=0;--P)L[P]==null||"n?".indexOf(L[P].t)===-1||(Ie>=L[P].v.length-1?(Ie-=L[P].v.length,L[P].v=re.substr(Ie+1,L[P].v.length)):Ie<0?L[P].v="":(L[P].v=re.substr(0,Ie+1),Ie=-1),L[P].t="t",G=P);Ie>=0&&G<L.length&&(L[G].v=re.substr(0,Ie+1)+L[G].v)}else if(Me!==L.length&&re.indexOf("E")===-1){for(Ie=re.indexOf(".")-1,P=Me;P>=0;--P)if(!(L[P]==null||"n?".indexOf(L[P].t)===-1)){for(X=L[P].v.indexOf(".")>-1&&P===Me?L[P].v.indexOf(".")-1:L[P].v.length-1,Ee=L[P].v.substr(X+1);X>=0;--X)Ie>=0&&(L[P].v.charAt(X)==="0"||L[P].v.charAt(X)==="#")&&(Ee=re.charAt(Ie--)+Ee);L[P].v=Ee,L[P].t="t",G=P}for(Ie>=0&&G<L.length&&(L[G].v=re.substr(0,Ie+1)+L[G].v),Ie=re.indexOf(".")+1,P=Me;P<L.length;++P)if(!(L[P]==null||"n?(".indexOf(L[P].t)===-1&&P!==Me)){for(X=L[P].v.indexOf(".")>-1&&P===Me?L[P].v.indexOf(".")+1:0,Ee=L[P].v.substr(0,X);X<L[P].v.length;++X)Ie<re.length&&(Ee+=re.charAt(Ie++));L[P].v=Ee,L[P].t="t",G=P}}}for(P=0;P<L.length;++P)L[P]!=null&&"n?".indexOf(L[P].t)>-1&&(J=q>1&&N<0&&P>0&&L[P-1].v==="-"?-N:N,L[P].v=ae(L[P].t,L[P].v,J),L[P].t="t");var ce="";for(P=0;P!==L.length;++P)L[P]!=null&&(ce+=L[P].v);return ce}i._eval=Ce;var D=/\[[=<>]/,k=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function j(T,N){if(N==null)return!1;var $=parseFloat(N[2]);switch(N[1]){case"=":if(T==$)return!0;break;case">":if(T>$)return!0;break;case"<":if(T<$)return!0;break;case"<>":if(T!=$)return!0;break;case">=":if(T>=$)return!0;break;case"<=":if(T<=$)return!0;break}return!1}function W(T,N){var $=ie(T),q=$.length,L=$[q-1].indexOf("@");if(q<4&&L>-1&&--q,$.length>4)throw new Error("cannot find right format for |"+$.join("|")+"|");if(typeof N!="number")return[4,$.length===4||L>-1?$[$.length-1]:"@"];switch($.length){case 1:$=L>-1?["General","General","General",$[0]]:[$[0],$[0],$[0],"@"];break;case 2:$=L>-1?[$[0],$[0],$[0],$[1]]:[$[0],$[1],$[0],"@"];break;case 3:$=L>-1?[$[0],$[1],$[0],$[2]]:[$[0],$[1],$[2],"@"];break}var H=N>0?$[0]:N<0?$[1]:$[2];if($[0].indexOf("[")===-1&&$[1].indexOf("[")===-1)return[q,H];if($[0].match(D)!=null||$[1].match(D)!=null){var P=$[0].match(k),V=$[1].match(k);return j(N,P)?[q,$[0]]:j(N,V)?[q,$[1]]:[q,$[P!=null&&V!=null?2:1]]}return[q,H]}function U(T,N,$){$==null&&($={});var q="";switch(typeof T){case"string":T=="m/d/yy"&&$.dateNF?q=$.dateNF:q=T;break;case"number":T==14&&$.dateNF?q=$.dateNF:q=($.table!=null?$.table:E)[T],q==null&&(q=$.table&&$.table[A[T]]||E[A[T]]),q==null&&(q=v[T]||"General");break}if(p(q,0))return Y(N,$);N instanceof Date&&(N=I(N,$.date1904));var L=W(q,N);if(p(L[1]))return Y(N,$);if(N===!0)N="TRUE";else if(N===!1)N="FALSE";else if(N===""||N==null)return"";return Ce(L[1],N,$,L[0])}function B(T,N){if(typeof N!="number"){N=+N||-1;for(var $=0;$<392;++$){if(E[$]==null){N<0&&(N=$);continue}if(E[$]==T){N=$;break}}N<0&&(N=391)}return E[N]=T,N}i.load=B,i._table=E,i.get_table=function(){return E},i.load_table=function(N){for(var $=0;$!=392;++$)N[$]!==void 0&&B(N[$],$)},i.init_table=y,i.format=U};n(e),typeof DO_NOT_EXPORT_SSF>"u"&&(t.exports=e)})(Sse);var iN=Sse.exports,UVe=typeof F=="object"&&F&&F.Object===Object&&F,qVe=UVe,HVe=qVe,zVe=typeof self=="object"&&self&&self.Object===Object&&self,QVe=HVe||zVe||Function("return this")(),GVe=QVe,WVe=GVe,VVe=WVe.Symbol,E8=VVe,vse=E8;vse&&vse.toStringTag;var _se=E8;_se&&_se.toStringTag;var Cse=E8,bse=Cse?Cse.prototype:void 0;bse&&bse.toString;function YVe(t,e){const n=t.createElement("span");return n.classList.add("error"),n.appendChild(t.createTextNode(typeof e=="string"?e:e.message)),n}function XVe(t){const e=t.createElement("span");return e.appendChild(t.createTextNode("∅")),e.classList.add("value-null"),e}function KVe(t,e=0){let n=t;for(;e>0&&n.parentRecord;)e-=1,n=n.parentRecord;return n}function JVe(t){const e=t.split("/"),n=e.filter(i=>i==="..").length+1,r=e.filter(i=>i!==".."&&i!=="");return{levelsUp:n,pathSegments:r}}function Tse({tag:t,data:e}){var n;try{const r=((n=t.tag("field"))==null?void 0:n.text())??"",{levelsUp:i,pathSegments:s}=JVe(r);let o=KVe(e,i);for(;s.length>0&&"cell"in o;){const u=s.shift();o=o.cell(u)}return o==null?void 0:o.value}catch{return}}class Rse{constructor(){this.tagOptionExtractors={}}addExtractor(e,...n){for(const r in n)this.tagOptionExtractors[n[r]]=e}activates(e){return!1}isValidMatch(e){return!0}matches(e){return e.renderer===this.rendererName}parseTagParameters(e){const n={};for(const r in this.tagOptionExtractors){const i=e.tag(r);i&&this.tagOptionExtractors[r](n,i)}return n}}class Ose{constructor(e){this.document=e}getText(e){return e.value===null?null:`${e.value}`}async render(e){let n=null;try{n=this.getText(e)}catch(i){return YVe(this.document,i)}if(n===null)return XVe(this.document);const r=this.document.createElement("span");return r.appendChild(this.document.createTextNode(n)),r}}const mD=class mD extends Rse{activates(e){return e.hasParentExplore()&&!e.isExploreField()}create(e,n,r,i,s){return new Ose(e)}get rendererName(){}};mD.instance=new mD;let Nse=mD;function Dse(t,e,n={}){let r=e.toString();return n.terse?r=ZVe.get(e)??r:t===1&&(r=r.substring(0,r.length-1)),`${n.numFormat?iN.format(n.numFormat,t):t.toLocaleString()}${n.terse?"":" "}${r}`}const ZVe=new Map([[rr.Nanoseconds,"ns"],[rr.Microseconds,"µs"],[rr.Milliseconds,"ms"],[rr.Seconds,"s"],[rr.Minutes,"m"],[rr.Hours,"h"],[rr.Days,"d"]]),eYe=new Map([[rr.Nanoseconds,1e3],[rr.Microseconds,1e3],[rr.Milliseconds,1e3],[rr.Seconds,60],[rr.Minutes,60],[rr.Hours,24],[rr.Days,Number.MAX_VALUE]]);function Fse(t,e,n){const r=n.durationUnit&&jVe(n.durationUnit)?n.durationUnit:rr.Seconds,i=t.tagParse().tag,s=i.text("number"),o=i.has("duration","terse");let u=e,a=0,l=[],c=!1;for(const[f,x]of eYe)if(f===r&&(c=!0),!!c&&(a=u%x,u=Math.floor(u/=x),a>0&&(l=[Dse(a,f,{numFormat:s,terse:o}),...l]),u===0))break;return l.length>0?l.slice(0,2).join(" "):Dse(0,r,{numFormat:s,terse:o})}class tYe extends Ose{constructor(e,n){super(e),this.options=n}getText(e){if(e.isNull())return null;if(!e.isNumber())throw new Error(`Cannot format field ${e.field.name} as a duration unit since its not a number`);return Fse(e.field,e.number.value,{durationUnit:this.options.duration_unit})}}const yD=class yD extends Rse{constructor(){super(),this.addExtractor((e,n)=>{e.duration_unit=(n==null?void 0:n.text())??rr.Seconds},this.rendererName)}create(e,n,r,i,s){return new tYe(e,s)}get rendererName(){return"duration"}};yD.instance=new yD;let wse=yD;function Lse(t,e){let n=e;const{tag:r}=t.tagParse();if(r.has("currency")){let i="$";switch(r.text("currency")){case rN.Euros:i="€";break;case rN.Pounds:i="£";break;case rN.Dollars:break}n=iN.format(`${i}#,##0.00`,e)}else if(r.has("percent"))n=iN.format("#,##0.00%",e);else if(r.has("duration")){const s=r.text("duration")??rr.Seconds;return Fse(t,e,{durationUnit:s})??e.toLocaleString()}else r.has("number")?n=iN.format(r.text("number"),e):n=e.toLocaleString();return n}var nYe=wo("<a target=_blank>");function rYe(t,e){const{tag:n}=t.tagParse();if(e.isNull())return"∅";const r=String(e.value),i=n.tag("link");if(!i)throw new Error("Missing tag for Link renderer");const s=Tse({tag:i,data:e})??r,o=i.text("url_template");let u=s;o&&(o.indexOf("$$")>-1?u=o.replace("$$",s):u=o+s);const a=r.replace(/\//g,"/‌");return(()=>{var l=nYe();return rA(l,"href",u),Hi(l,a),l})()}function jit(t){return t}function Uit(t){return t}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,r){return Array.isArray(r)?n.push.apply(n,t.call(r,e-1)):n.push(r),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 Ise={exports:{}};(function(t){var e=function(){function n(x,h){return h!=null&&x instanceof h}var r;try{r=Map}catch{r=function(){}}var i;try{i=Set}catch{i=function(){}}var s;try{s=Promise}catch{s=function(){}}function o(x,h,p,m,g){typeof h=="object"&&(p=h.depth,m=h.prototype,g=h.includeNonEnumerable,h=h.circular);var y=[],E=[],A=typeof Buffer<"u";typeof h>"u"&&(h=!0),typeof p>"u"&&(p=1/0);function S(v,_){if(v===null)return null;if(_===0)return v;var C,b;if(typeof v!="object")return v;if(n(v,r))C=new r;else if(n(v,i))C=new i;else if(n(v,s))C=new s(function(de,ae){v.then(function(ie){de(S(ie,_-1))},function(ie){ae(S(ie,_-1))})});else if(o.__isArray(v))C=[];else if(o.__isRegExp(v))C=new RegExp(v.source,f(v)),v.lastIndex&&(C.lastIndex=v.lastIndex);else if(o.__isDate(v))C=new Date(v.getTime());else{if(A&&Buffer.isBuffer(v))return Buffer.allocUnsafe?C=Buffer.allocUnsafe(v.length):C=new Buffer(v.length),v.copy(C),C;n(v,Error)?C=Object.create(v):typeof m>"u"?(b=Object.getPrototypeOf(v),C=Object.create(b)):(C=Object.create(m),b=m)}if(h){var O=y.indexOf(v);if(O!=-1)return E[O];y.push(v),E.push(C)}n(v,r)&&v.forEach(function(de,ae){var ie=S(ae,_-1),le=S(de,_-1);C.set(ie,le)}),n(v,i)&&v.forEach(function(de){var ae=S(de,_-1);C.add(ae)});for(var R in v){var I;b&&(I=Object.getOwnPropertyDescriptor(b,R)),!(I&&I.set==null)&&(C[R]=S(v[R],_-1))}if(Object.getOwnPropertySymbols)for(var M=Object.getOwnPropertySymbols(v),R=0;R<M.length;R++){var z=M[R],Y=Object.getOwnPropertyDescriptor(v,z);Y&&!Y.enumerable&&!g||(C[z]=S(v[z],_-1),Y.enumerable||Object.defineProperty(C,z,{enumerable:!1}))}if(g)for(var Q=Object.getOwnPropertyNames(v),R=0;R<Q.length;R++){var oe=Q[R],Y=Object.getOwnPropertyDescriptor(v,oe);Y&&Y.enumerable||(C[oe]=S(v[oe],_-1),Object.defineProperty(C,oe,{enumerable:!1}))}return C}return S(x,p)}o.clonePrototype=function(h){if(h===null)return null;var p=function(){};return p.prototype=h,new p};function u(x){return Object.prototype.toString.call(x)}o.__objToStr=u;function a(x){return typeof x=="object"&&u(x)==="[object Date]"}o.__isDate=a;function l(x){return typeof x=="object"&&u(x)==="[object Array]"}o.__isArray=l;function c(x){return typeof x=="object"&&u(x)==="[object RegExp]"}o.__isRegExp=c;function f(x){var h="";return x.global&&(h+="g"),x.ignoreCase&&(h+="i"),x.multiline&&(h+="m"),h}return o.__getRegExpFlags=f,o}();t.exports&&(t.exports=e)})(Ise);var iYe=Ise.exports;const sYe=wD(iYe);var oYe=function t(e,n){if(e===n)return!0;if(e&&n&&typeof e=="object"&&typeof n=="object"){if(e.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(e)){if(r=e.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!t(e[i],n[i]))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(s=Object.keys(e),r=s.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;i--!==0;){var o=s[i];if(!t(e[o],n[o]))return!1}return!0}return e!==e&&n!==n};const uYe=wD(oYe);var aYe=function(t,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var n=typeof e.cycles=="boolean"?e.cycles:!1,r=e.cmp&&function(s){return function(o){return function(u,a){var l={key:u,value:o[u]},c={key:a,value:o[a]};return s(l,c)}}}(e.cmp),i=[];return function s(o){if(o&&o.toJSON&&typeof o.toJSON=="function"&&(o=o.toJSON()),o!==void 0){if(typeof o=="number")return isFinite(o)?""+o:"null";if(typeof o!="object")return JSON.stringify(o);var u,a;if(Array.isArray(o)){for(a="[",u=0;u<o.length;u++)u&&(a+=","),a+=s(o[u])||"null";return a+"]"}if(o===null)return"null";if(i.indexOf(o)!==-1){if(n)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var l=i.push(o)-1,c=Object.keys(o).sort(r&&r(o));for(a="",u=0;u<c.length;u++){var f=c[u],x=s(o[f]);x&&(a&&(a+=","),a+=JSON.stringify(f)+":"+x)}return i.splice(l,1),"{"+a+"}"}}(t)};const A8=wD(aYe);function S8(t){return!!t.or}function v8(t){return!!t.and}function _8(t){return!!t.not}function sN(t,e){if(_8(t))sN(t.not,e);else if(v8(t))for(const n of t.and)sN(n,e);else if(S8(t))for(const n of t.or)sN(n,e);else e(t)}function R2(t,e){return _8(t)?{not:R2(t.not,e)}:v8(t)?{and:t.and.map(n=>R2(n,e))}:S8(t)?{or:t.or.map(n=>R2(n,e))}:e(t)}const Gl=uYe,ot=sYe;function lYe(t){throw new Error(t)}function p3(t,e){const n={};for(const r of e)Je(t,r)&&(n[r]=t[r]);return n}function Co(t,e){const n=Object.assign({},t);for(const r of e)delete n[r];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(t=>A8(t)).join(",")})`};const sn=A8;function bt(t){if(nn(t))return t;const e=je(t)?t:A8(t);if(e.length<250)return e;let n=0;for(let r=0;r<e.length;r++){const i=e.charCodeAt(r);n=(n<<5)-n+i,n=n&n}return n}function $se(t){return t===!1||t===null}function Tt(t,e){return t.includes(e)}function O2(t,e){let n=0;for(const[r,i]of t.entries())if(e(i,r,n++))return!0;return!1}function Bse(t,e){let n=0;for(const[r,i]of t.entries())if(!e(i,r,n++))return!1;return!0}function cYe(t,...e){for(const n of e)fYe(t,n??{});return t}function fYe(t,e){for(const n of be(e))Ub(t,n,e[n],!0)}function Wl(t,e){const n=[],r={};let i;for(const s of t)i=e(s),!(i in r)&&(r[i]=1,n.push(s));return n}function xYe(t,e){if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0}function kse(t,e){for(const n of t)if(e.has(n))return!0;return!1}function Pse(t){const e=new Set;for(const n of t){const i=El(n).map((o,u)=>u===0?o:`[${o}]`),s=i.map((o,u)=>i.slice(0,u+1).join(""));for(const o of s)e.add(o)}return e}function Mse(t,e){return t===void 0||e===void 0?!0:kse(Pse(t),Pse(e))}function Wt(t){return be(t).length===0}const be=Object.keys,Pi=Object.values,Ad=Object.entries;function oN(t){return t===!0||t===!1}function mn(t){const e=t.replace(/\W/g,"_");return(t.match(/^\d+/)?"_":"")+e}function uN(t,e){return _8(t)?`!(${uN(t.not,e)})`:v8(t)?`(${t.and.map(n=>uN(n,e)).join(") && (")})`:S8(t)?`(${t.or.map(n=>uN(n,e)).join(") || (")})`:e(t)}function C8(t,e){if(e.length===0)return!0;const n=e.shift();return n in t&&C8(t[n],e)&&delete t[n],Wt(t)}function aN(t){return t.charAt(0).toUpperCase()+t.substr(1)}function jse(t,e="datum"){const n=El(t),r=[];for(let i=1;i<=n.length;i++){const s=`[${n.slice(0,i).map(Fe).join("][")}]`;r.push(`${e}${s}`)}return r.join(" && ")}function dYe(t,e="datum"){return`${e}[${Fe(El(t).join("."))}]`}function hYe(t){return t.replace(/(\[|\]|\.|'|")/g,"\\$1")}function fu(t){return`${El(t).map(hYe).join("\\.")}`}function N2(t,e,n){return t.replace(new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function Use(t){return`${El(t).join(".")}`}function g3(t){return t?El(t).length:0}function ir(...t){for(const e of t)if(e!==void 0)return e}let pYe=42;function gYe(t){const e=++pYe;return t?String(t)+e:e}function mYe(t){return yYe(t)?t:`__${t}`}function yYe(t){return t.startsWith("__")}function lN(t){if(t!==void 0)return(t%360+360)%360}function b8(t){return nn(t)?!0:!isNaN(t)&&!isNaN(parseFloat(t))}var m3=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Vl="row",Yl="column",cN="facet",yn="x",_r="y",xu="x2",Ca="y2",Fc="xOffset",D2="yOffset",ba="radius",Xl="radius2",du="theta",Kl="theta2",Ta="latitude",Ra="longitude",hu="latitude2",bo="longitude2",hs="color",Oa="fill",Na="stroke",ps="shape",Jl="size",Sd="angle",Zl="opacity",wc="fillOpacity",Lc="strokeOpacity",Ic="strokeWidth",$c="strokeDash",y3="text",E3="order",A3="detail",fN="key",vd="tooltip",xN="href",dN="url",hN="description",EYe={x:1,y:1,x2:1,y2:1},qse={theta:1,theta2:1,radius:1,radius2:1};function Hse(t){return t in qse}const T8={longitude:1,longitude2:1,latitude:1,latitude2:1};function AYe(t){switch(t){case Ta:return"y";case hu:return"y2";case Ra:return"x";case bo:return"x2"}}function SYe(t){return t in T8}const vYe=be(T8),R8=Object.assign(Object.assign(Object.assign(Object.assign({},EYe),qse),T8),{xOffset:1,yOffset:1,color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1});function F2(t){return t===hs||t===Oa||t===Na}const zse={row:1,column:1,facet:1},To=be(zse),O8=Object.assign(Object.assign({},R8),zse),_Ye=be(O8),CYe=m3(O8,["order","detail","tooltip"]),bYe=m3(CYe,["row","column","facet"]);function TYe(t){return!!bYe[t]}function Qse(t){return!!O8[t]}const RYe=[xu,Ca,hu,bo,Kl,Xl];function Gse(t){return _d(t)!==t}function _d(t){switch(t){case xu:return yn;case Ca:return _r;case hu:return Ta;case bo:return Ra;case Kl:return du;case Xl:return ba}return t}function Bc(t){if(Hse(t))switch(t){case du:return"startAngle";case Kl:return"endAngle";case ba:return"outerRadius";case Xl:return"innerRadius"}return t}function e0(t){switch(t){case yn:return xu;case _r:return Ca;case Ta:return hu;case Ra:return bo;case du:return Kl;case ba:return Xl}}function gs(t){switch(t){case yn:case xu:return"width";case _r:case Ca:return"height"}}function OYe(t){switch(t){case yn:return"xOffset";case _r:return"yOffset";case xu:return"x2Offset";case Ca:return"y2Offset";case du:return"thetaOffset";case ba:return"radiusOffset";case Kl:return"theta2Offset";case Xl:return"radius2Offset"}}function Wse(t){switch(t){case yn:return"xOffset";case _r:return"yOffset"}}function Vse(t){switch(t){case"xOffset":return"x";case"yOffset":return"y"}}const NYe=be(R8),N8=m3(R8,["x","y","x2","y2","xOffset","yOffset","latitude","longitude","latitude2","longitude2","theta","theta2","radius","radius2"]),DYe=be(N8),D8={x:1,y:1},Da=be(D8);function kr(t){return t in D8}const F8={theta:1,radius:1},FYe=be(F8);function pN(t){return t==="width"?yn:_r}const Yse={xOffset:1,yOffset:1};function w2(t){return t in Yse}const Xse=m3(N8,["text","tooltip","href","url","description","detail","key","order"]),wYe=be(Xse);function LYe(t){return!!N8[t]}function IYe(t){switch(t){case hs:case Oa:case Na:case Jl:case ps:case Zl:case Ic:case $c:return!0;case wc:case Lc:case Sd:return!1}}const Kse=Object.assign(Object.assign(Object.assign(Object.assign({},D8),F8),Yse),Xse),gN=be(Kse);function kc(t){return!!Kse[t]}function $Ye(t,e){return kYe(t)[e]}const Jse={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},BYe=m3(Jse,["geoshape"]);function kYe(t){switch(t){case hs:case Oa:case Na:case hN:case A3:case fN:case vd:case xN:case E3:case Zl:case wc:case Lc:case Ic:case cN:case Vl:case Yl:return Jse;case yn:case _r:case Fc:case D2:case Ta:case Ra:return BYe;case xu:case Ca:case hu:case bo:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case Jl:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case $c:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case ps:return{point:"always",geoshape:"always"};case y3:return{text:"always"};case Sd:return{point:"always",square:"always",text:"always"};case dN:return{image:"always"};case du:return{text:"always",arc:"always"};case ba:return{text:"always",arc:"always"};case Kl:case Xl:return{arc:"always"}}}function w8(t){switch(t){case yn:case _r:case du:case ba:case Fc:case D2:case Jl:case Sd:case Ic:case Zl:case wc:case Lc:case xu:case Ca:case Kl:case Xl:return;case cN:case Vl:case Yl:case ps:case $c:case y3:case vd:case xN:case dN:case hN:return"discrete";case hs:case Oa:case Na:return"flexible";case Ta:case Ra:case hu:case bo:case A3:case fN:case E3:return}}const PYe={argmax:1,argmin:1,average:1,count:1,distinct:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},MYe={count:1,min:1,max:1};function t0(t){return!!t&&!!t.argmin}function Pc(t){return!!t&&!!t.argmax}function L8(t){return je(t)&&!!PYe[t]}const jYe=new Set(["count","valid","missing","distinct"]);function Zse(t){return je(t)&&jYe.has(t)}function UYe(t){return je(t)&&Tt(["min","max"],t)}const qYe=new Set(["count","sum","distinct","valid","missing"]),HYe=new Set(["mean","average","median","q1","q3","min","max"]);function eoe(t){return Fp(t)&&(t=$N(t,void 0)),"bin"+be(t).map(e=>mN(t[e])?mn(`_${e}_${Ad(t[e])}`):mn(`_${e}_${t[e]}`)).join("")}function Kt(t){return t===!0||Cd(t)&&!t.binned}function Mi(t){return t==="binned"||Cd(t)&&t.binned===!0}function Cd(t){return Qe(t)}function mN(t){return t==null?void 0:t.param}function toe(t){switch(t){case Vl:case Yl:case Jl:case hs:case Oa:case Na:case Ic:case Zl:case wc:case Lc:case ps:return 6;case $c:return 4;default:return 10}}function S3(t){return t&&!!t.expr}function ms(t){const e=be(t||{}),n={};for(const r of e)n[r]=Hs(t[r]);return n}var zYe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function noe(t){const{anchor:e,frame:n,offset:r,orient:i,angle:s,limit:o,color:u,subtitleColor:a,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:x,subtitleLineHeight:h,subtitlePadding:p}=t,m=zYe(t,["anchor","frame","offset","orient","angle","limit","color","subtitleColor","subtitleFont","subtitleFontSize","subtitleFontStyle","subtitleFontWeight","subtitleLineHeight","subtitlePadding"]),g=Object.assign(Object.assign({},m),u?{fill:u}:{}),y=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},e?{anchor:e}:{}),n?{frame:n}:{}),r?{offset:r}:{}),i?{orient:i}:{}),s!==void 0?{angle:s}:{}),o!==void 0?{limit:o}:{}),E=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},a?{subtitleColor:a}:{}),l?{subtitleFont:l}:{}),c?{subtitleFontSize:c}:{}),f?{subtitleFontStyle:f}:{}),x?{subtitleFontWeight:x}:{}),h?{subtitleLineHeight:h}:{}),p?{subtitlePadding:p}:{}),A=p3(t,["align","baseline","dx","dy","limit"]);return{titleMarkConfig:g,subtitleMarkConfig:A,nonMarkTitleProperties:y,subtitle:E}}function Mc(t){return je(t)||_e(t)&&je(t[0])}function Ye(t){return t&&!!t.signal}function jc(t){return!!t.step}function QYe(t){return _e(t)?!1:"fields"in t&&!("data"in t)}function GYe(t){return _e(t)?!1:"fields"in t&&"data"in t}function n0(t){return _e(t)?!1:"field"in t&&"data"in t}const WYe=be({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}),VYe={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},I8=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];var $8=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function roe(t){const e=_e(t.condition)?t.condition.map(ioe):ioe(t.condition);return Object.assign(Object.assign({},Hs(t)),{condition:e})}function Hs(t){if(S3(t)){const{expr:e}=t,n=$8(t,["expr"]);return Object.assign({signal:e},n)}return t}function ioe(t){if(S3(t)){const{expr:e}=t,n=$8(t,["expr"]);return Object.assign({signal:e},n)}return t}function on(t){if(S3(t)){const{expr:e}=t,n=$8(t,["expr"]);return Object.assign({signal:e},n)}return Ye(t)?t:t!==void 0?{value:t}:void 0}function YYe(t){return Ye(t)?t.signal:Fe(t)}function soe(t){return Ye(t)?t.signal:Fe(t.value)}function r0(t){return Ye(t)?t.signal:t==null?null:Fe(t)}function XYe(t,e,n){for(const r of n){const i=bd(r,e.markDef,e.config);i!==void 0&&(t[r]=on(i))}return t}function ooe(t){var e;return[].concat(t.type,(e=t.style)!==null&&e!==void 0?e:[])}function kt(t,e,n,r={}){const{vgChannel:i,ignoreVgConfig:s}=r;return i&&e[i]!==void 0?e[i]:e[t]!==void 0?e[t]:s&&(!i||i===t)?void 0:bd(t,e,n,r)}function bd(t,e,n,{vgChannel:r}={}){return ir(r?yN(t,e,n.style):void 0,yN(t,e,n.style),r?n[e.type][r]:void 0,n[e.type][t],r?n.mark[r]:n.mark[t])}function yN(t,e,n){return uoe(t,ooe(e),n)}function uoe(t,e,n){e=Pe(e);let r;for(const i of e){const s=n[i];s&&s[t]!==void 0&&(r=s[t])}return r}function aoe(t,e){return Pe(t).reduce((n,r)=>{var i;return n.field.push($e(r,e)),n.order.push((i=r.sort)!==null&&i!==void 0?i:"ascending"),n},{field:[],order:[]})}function loe(t,e){const n=[...t];return e.forEach(r=>{for(const i of n)if(Gl(i,r))return;n.push(r)}),n}function coe(t,e){return Gl(t,e)||!e?t:t?[...Pe(t),...Pe(e)].join(", "):e}function foe(t,e){const n=t.value,r=e.value;if(n==null||r===null)return{explicit:t.explicit,value:null};if((Mc(n)||Ye(n))&&(Mc(r)||Ye(r)))return{explicit:t.explicit,value:coe(n,r)};if(Mc(n)||Ye(n))return{explicit:t.explicit,value:n};if(Mc(r)||Ye(r))return{explicit:t.explicit,value:r};if(!Mc(n)&&!Ye(n)&&!Mc(r)&&!Ye(r))return{explicit:t.explicit,value:loe(n,r)};throw new Error("It should never reach here")}function B8(t){return`Invalid specification ${sn(t)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const KYe='Autosize "fit" only works for single views and layered views.';function xoe(t){return`${t=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function doe(t){const e=t=="width"?"Width":"Height",n=t=="width"?"x":"y";return`${e} "container" only works well with autosize "fit" or "fit-${n}".`}function hoe(t){return t?`Dropping "fit-${t}" because spec has discrete ${gs(t)}.`:'Dropping "fit" because spec has discrete size.'}function k8(t){return`Unknown field for ${t}. Cannot calculate view size.`}function poe(t){return`Cannot project a selection on encoding channel "${t}", which has no field.`}function JYe(t,e){return`Cannot project a selection on encoding channel "${t}" as it uses an aggregate function ("${e}").`}function ZYe(t){return`The "nearest" transform is not supported for ${t} marks.`}function goe(t){return`Selection not supported for ${t} yet.`}function eXe(t){return`Cannot find a selection named "${t}".`}const tXe="Scale bindings are currently only supported for scales with unbinned, continuous domains.",nXe="Legend bindings are only supported for selections over an individual field or encoding channel.";function rXe(t){return`Lookups can only be performed on selection parameters. "${t}" is a variable parameter.`}function iXe(t){return`Cannot define and lookup the "${t}" selection in the same view. Try moving the lookup into a second, layered view?`}const sXe="The same selection must be used to override scale domains in a layered view.",oXe='Interval selections should be initialized using "x" and/or "y" keys.';function uXe(t){return`Unknown repeated value "${t}".`}function moe(t){return`The "columns" property cannot be used when "${t}" has nested row/column.`}const aXe="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function lXe(t){return`Unrecognized parse "${t}".`}function yoe(t,e,n){return`An ancestor parsed field "${t}" as ${n} but a child wants to parse the field as ${e}.`}const cXe="Attempt to add the same child twice.";function fXe(t){return`Ignoring an invalid transform: ${sn(t)}.`}const xXe='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.';function Eoe(t){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${t} are dropped.`}function dXe(t){const{parentProjection:e,projection:n}=t;return`Layer's shared projection ${sn(e)} is overridden by a child projection ${sn(n)}.`}const hXe="Arc marks uses theta channel rather than angle, replacing angle with theta.";function pXe(t){return`${t}Offset dropped because ${t} is continuous`}function gXe(t){return`There is no ${t} encoding. Replacing ${t}Offset encoding as ${t}.`}function mXe(t,e,n){return`Channel ${t} is a ${e}. Converted to {value: ${sn(n)}}.`}function Aoe(t){return`Invalid field type "${t}".`}function yXe(t,e){return`Invalid field type "${t}" for aggregate: "${e}", using "quantitative" instead.`}function EXe(t){return`Invalid aggregation operator "${t}".`}function Soe(t,e){const{fill:n,stroke:r}=e;return`Dropping color ${t} as the plot also has ${n&&r?"fill and stroke":n?"fill":"stroke"}.`}function AXe(t){return`Position range does not support relative band size for ${t}.`}function P8(t,e){return`Dropping ${sn(t)} from channel "${e}" since it does not contain any data field, datum, value, or signal.`}const SXe="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function EN(t,e,n){return`${t} dropped as it is incompatible with "${e}"${n?` when ${n}`:""}.`}function vXe(t){return`${t} encoding has no scale, so specified scale is ignored.`}function _Xe(t){return`${t}-encoding is dropped as ${t} is not a valid encoding channel.`}function CXe(t){return`${t} encoding should be discrete (ordinal / nominal / binned).`}function bXe(t){return`${t} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function TXe(t){return`Facet encoding dropped as ${t.join(" and ")} ${t.length>1?"are":"is"} also specified.`}function M8(t,e){return`Using discrete channel "${t}" to encode "${e}" field can be misleading as it does not encode ${e==="ordinal"?"order":"magnitude"}.`}function RXe(t){return`The ${t} for range marks cannot be an expression`}function OXe(t,e){return`Line mark is for continuous lines and thus cannot be used with ${t&&e?"x2 and y2":t?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function NXe(t,e){return`Specified orient "${t}" overridden with "${e}".`}function DXe(t){return`Cannot use the scale property "${t}" with non-color channel.`}function FXe(t){return`Cannot use the relative band size with ${t} scale.`}function wXe(t){return`Using unaggregated domain with raw field has no effect (${sn(t)}).`}function LXe(t){return`Unaggregated domain not applicable for "${t}" since it produces values outside the origin domain of the source data.`}function IXe(t){return`Unaggregated domain is currently unsupported for log scale (${sn(t)}).`}function $Xe(t){return`Cannot apply size to non-oriented mark "${t}".`}function BXe(t,e,n){return`Channel "${t}" does not work with "${e}" scale. We are using "${n}" scale instead.`}function kXe(t,e){return`FieldDef does not work with "${t}" scale. We are using "${e}" scale instead.`}function voe(t,e,n){return`${n}-scale's "${e}" is dropped as it does not work with ${t} scale.`}function _oe(t){return`The step for "${t}" is dropped because the ${t==="width"?"x":"y"} is continuous.`}function PXe(t,e,n,r){return`Conflicting ${e.toString()} property "${t.toString()}" (${sn(n)} and ${sn(r)}). Using ${sn(n)}.`}function MXe(t,e,n,r){return`Conflicting ${e.toString()} property "${t.toString()}" (${sn(n)} and ${sn(r)}). Using the union of the two domains.`}function jXe(t){return`Setting the scale to be independent for "${t}" means we also have to set the guide (axis or legend) to be independent.`}function UXe(t){return`Dropping sort property ${sn(t)} as unioned domains only support boolean or op "count", "min", and "max".`}const Coe="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",qXe="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.",HXe="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.",zXe="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 QXe(t){return`Cannot stack "${t}" if there is already "${t}2".`}function GXe(t){return`Cannot stack non-linear scale (${t}).`}function WXe(t){return`Stacking is applied even though the aggregate function is non-summative ("${t}").`}function AN(t,e){return`Invalid ${t}: ${sn(e)}.`}function VXe(t){return`Dropping day from datetime ${sn(t)} as day cannot be combined with other units.`}function YXe(t,e){return`${e?"extent ":""}${e&&t?"and ":""}${t?"center ":""}${e&&t?"are ":"is "}not needed when data are aggregated.`}function XXe(t,e,n){return`${t} is not usually used with ${e} for ${n}.`}function KXe(t,e){return`Continuous axis should not have customized aggregation function ${t}; ${e} already agregates the axis.`}function boe(t){return`1D error band does not support ${t}.`}function Toe(t){return`Channel ${t} is required for "binned" bin.`}function JXe(t){return`Channel ${t} should not be used with "binned" bin.`}function ZXe(t){return`Domain for ${t} is required for threshold scale.`}const Roe=ZW(JW);let L2=Roe;function eKe(t){return L2=t,L2}function tKe(){return L2=Roe,L2}function Te(...t){L2.warn(...t)}function nKe(...t){L2.debug(...t)}function Td(t){if(t&&Qe(t)){for(const e of U8)if(e in t)return!0}return!1}const Ooe=["january","february","march","april","may","june","july","august","september","october","november","december"],rKe=Ooe.map(t=>t.substr(0,3)),Noe=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],iKe=Noe.map(t=>t.substr(0,3));function sKe(t){if(b8(t)&&(t=+t),nn(t))return t>4&&Te(AN("quarter",t)),t-1;throw new Error(AN("quarter",t))}function oKe(t){if(b8(t)&&(t=+t),nn(t))return t-1;{const e=t.toLowerCase(),n=Ooe.indexOf(e);if(n!==-1)return n;const r=e.substr(0,3),i=rKe.indexOf(r);if(i!==-1)return i;throw new Error(AN("month",t))}}function uKe(t){if(b8(t)&&(t=+t),nn(t))return t%7;{const e=t.toLowerCase(),n=Noe.indexOf(e);if(n!==-1)return n;const r=e.substr(0,3),i=iKe.indexOf(r);if(i!==-1)return i;throw new Error(AN("day",t))}}function j8(t,e){const n=[];if(e&&t.day!==void 0&&be(t).length>1&&(Te(VXe(t)),t=ot(t),delete t.day),t.year!==void 0?n.push(t.year):n.push(2012),t.month!==void 0){const r=e?oKe(t.month):t.month;n.push(r)}else if(t.quarter!==void 0){const r=e?sKe(t.quarter):t.quarter;n.push(nn(r)?r*3:`${r}*3`)}else n.push(0);if(t.date!==void 0)n.push(t.date);else if(t.day!==void 0){const r=e?uKe(t.day):t.day;n.push(nn(r)?r+1:`${r}+1`)}else n.push(1);for(const r of["hours","minutes","seconds","milliseconds"]){const i=t[r];n.push(typeof i>"u"?0:i)}return n}function v3(t){const n=j8(t,!0).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}function aKe(t){const n=j8(t,!1).join(", ");return t.utc?`utc(${n})`:`datetime(${n})`}function lKe(t){const e=j8(t,!0);return t.utc?+new Date(Date.UTC(...e)):+new Date(...e)}var cKe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Doe={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},U8=be(Doe);function fKe(t){return!!Doe[t]}function q8(t){return t.startsWith("utc")}function xKe(t){return t.substr(3)}const dKe={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function H8(t){return U8.filter(e=>Foe(t,e))}function Foe(t,e){const n=t.indexOf(e);return!(n<0||n>0&&e==="seconds"&&t.charAt(n-1)==="i"||t.length>n+3&&e==="day"&&t.charAt(n+3)==="o"||n>0&&e==="year"&&t.charAt(n-1)==="f")}function hKe(t,e,{end:n}={end:!1}){const r=jse(e),i=q8(t)?"utc":"";function s(a){return a==="quarter"?`(${i}quarter(${r})-1)`:`${i}${a}(${r})`}let o;const u={};for(const a of U8)Foe(t,a)&&(u[a]=s(a),o=a);return n&&(u[o]+="+1"),aKe(u)}function woe(t){if(!t)return;const e=H8(t);return`timeUnitSpecifier(${sn(e)}, ${sn(dKe)})`}function pKe(t,e,n){if(!t)return;const r=woe(t);return`${n||q8(t)?"utc":"time"}Format(${e}, ${r})`}function ji(t){if(!t)return;let e;return je(t)?e={unit:t}:Qe(t)&&(e=Object.assign(Object.assign({},t),t.unit?{unit:t.unit}:{})),q8(e.unit)&&(e.utc=!0,e.unit=xKe(e.unit)),e}function gKe(t){const e=ji(t),{utc:n}=e,r=cKe(e,["utc"]);return r.unit?(n?"utc":"")+be(r).map(i=>mn(`${i==="unit"?"":`_${i}_`}${r[i]}`)).join(""):(n?"utc":"")+"timeunit"+be(r).map(i=>mn(`_${i}_${r[i]}`)).join("")}function mKe(t){return t==null?void 0:t.param}function z8(t){return t&&!!t.field&&t.equal!==void 0}function Q8(t){return t&&!!t.field&&t.lt!==void 0}function G8(t){return t&&!!t.field&&t.lte!==void 0}function W8(t){return t&&!!t.field&&t.gt!==void 0}function V8(t){return t&&!!t.field&&t.gte!==void 0}function Y8(t){if(t!=null&&t.field){if(_e(t.range)&&t.range.length===2)return!0;if(Ye(t.range))return!0}return!1}function X8(t){return t&&!!t.field&&(_e(t.oneOf)||_e(t.in))}function yKe(t){return t&&!!t.field&&t.valid!==void 0}function Loe(t){return X8(t)||z8(t)||Y8(t)||Q8(t)||W8(t)||G8(t)||V8(t)}function Fa(t,e){return BN(t,{timeUnit:e,wrapTime:!0})}function EKe(t,e){return t.map(n=>Fa(n,e))}function Ioe(t,e=!0){var n;const{field:r}=t,i=(n=ji(t.timeUnit))===null||n===void 0?void 0:n.unit,s=i?`time(${hKe(i,r)})`:$e(t,{expr:"datum"});if(z8(t))return`${s}===${Fa(t.equal,i)}`;if(Q8(t)){const o=t.lt;return`${s}<${Fa(o,i)}`}else if(W8(t)){const o=t.gt;return`${s}>${Fa(o,i)}`}else if(G8(t)){const o=t.lte;return`${s}<=${Fa(o,i)}`}else if(V8(t)){const o=t.gte;return`${s}>=${Fa(o,i)}`}else{if(X8(t))return`indexof([${EKe(t.oneOf,i).join(",")}], ${s}) !== -1`;if(yKe(t))return K8(s,t.valid);if(Y8(t)){const{range:o}=t,u=Ye(o)?{signal:`${o.signal}[0]`}:o[0],a=Ye(o)?{signal:`${o.signal}[1]`}:o[1];if(u!==null&&a!==null&&e)return"inrange("+s+", ["+Fa(u,i)+", "+Fa(a,i)+"])";const l=[];return u!==null&&l.push(`${s} >= ${Fa(u,i)}`),a!==null&&l.push(`${s} <= ${Fa(a,i)}`),l.length>0?l.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${sn(t)}`)}function K8(t,e=!0){return e?`isValid(${t}) && isFinite(+${t})`:`!isValid(${t}) || !isFinite(+${t})`}function AKe(t){var e;return Loe(t)&&t.timeUnit?Object.assign(Object.assign({},t),{timeUnit:(e=ji(t.timeUnit))===null||e===void 0?void 0:e.unit}):t}const _3={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function SKe(t){return t==="quantitative"||t==="temporal"}function $oe(t){return t==="ordinal"||t==="nominal"}const Rd=_3.quantitative,J8=_3.ordinal,I2=_3.temporal,Z8=_3.nominal,$2=_3.geojson;function vKe(t){if(t)switch(t=t.toLowerCase(),t){case"q":case Rd:return"quantitative";case"t":case I2:return"temporal";case"o":case J8:return"ordinal";case"n":case Z8:return"nominal";case $2:return"geojson"}}var _Ke=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const ys={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"},e7={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 CKe(t,e){const n=e7[t],r=e7[e];return n===r||n==="ordinal-position"&&r==="time"||r==="ordinal-position"&&n==="time"}const bKe={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 Boe(t){return bKe[t]}const koe=new Set(["linear","log","pow","sqrt","symlog"]),Poe=new Set([...koe,"time","utc"]);function Moe(t){return koe.has(t)}const joe=new Set(["quantile","quantize","threshold"]),TKe=new Set([...Poe,...joe,"sequential","identity"]),RKe=new Set(["ordinal","bin-ordinal","point","band"]);function Cr(t){return RKe.has(t)}function zs(t){return TKe.has(t)}function pu(t){return Poe.has(t)}function B2(t){return joe.has(t)}const OKe={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};function NKe(t){return!je(t)&&!!t.name}function Uoe(t){return t==null?void 0:t.param}function DKe(t){return t&&t.unionWith}function FKe(t){return Qe(t)&&"field"in t}const wKe=_Ke({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},["type","domain","range","rangeMax","rangeMin","scheme"]),LKe=be(wKe);function t7(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 pu(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return pu(t)||["point","band"].includes(t);case"paddingOuter":case"align":return["point","band"].includes(t);case"paddingInner":return t==="band";case"domainMax":case"domainMid":case"domainMin":case"clamp":return pu(t);case"nice":return pu(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return zs(t)&&!Tt(["log","time","utc","threshold","quantile"],t)}}function qoe(t,e){switch(e){case"interpolate":case"scheme":case"domainMid":return F2(t)?void 0:DXe(t);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}}function IKe(t,e){return Tt([J8,Z8],e)?t===void 0||Cr(t):e===I2?Tt([ys.TIME,ys.UTC,void 0],t):e===Rd?Moe(t)||B2(t)||t===void 0:!0}function $Ke(t,e,n=!1){if(!kc(t))return!1;switch(t){case yn:case _r:case Fc:case D2:case du:case ba:return pu(e)||e==="band"?!0:e==="point"?!n:!1;case Jl:case Ic:case Zl:case wc:case Lc:case Sd:return pu(e)||B2(e)||Tt(["band","point","ordinal"],e);case hs:case Oa:case Na:return e!=="band";case $c:case ps:return e==="ordinal"||B2(e)}}const Ui={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"},Hoe=Ui.arc,SN=Ui.area,vN=Ui.bar,BKe=Ui.image,_N=Ui.line,CN=Ui.point,kKe=Ui.rect,bN=Ui.rule,zoe=Ui.text,n7=Ui.tick,PKe=Ui.trail,r7=Ui.circle,i7=Ui.square,Qoe=Ui.geoshape;function Uc(t){return["line","area","trail"].includes(t)}function Goe(t){return["rect","bar","image","arc"].includes(t)}const MKe=new Set(be(Ui));function wa(t){return t.type}const jKe=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],UKe=["fill","fillOpacity"],qKe=[...jKe,...UKe],Woe=be({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),HKe={area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]},zKe={color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},Voe=be({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 k2(t){return t&&t.band!=null}const QKe={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Yoe=5,GKe={binSpacing:1,continuousBandSize:Yoe,timeUnitBandPosition:.5},WKe={binSpacing:0,continuousBandSize:Yoe,timeUnitBandPosition:.5},VKe={thickness:1};function YKe(t){return wa(t)?t.type:t}function s7(t){const{channel:e,channelDef:n,markDef:r,scale:i,config:s}=t,o=u7(t);return Le(n)&&!Zse(n.aggregate)&&i&&pu(i.get("type"))?XKe({fieldDef:n,channel:e,markDef:r,ref:o,config:s}):o}function XKe({fieldDef:t,channel:e,markDef:n,ref:r,config:i}){return Uc(n.type)?r:kt("invalid",n,i)===null?[KKe(t,e),r]:r}function KKe(t,e){const n=o7(t,!0),i=_d(e)==="y"?{field:{group:"height"}}:{value:0};return Object.assign({test:n},i)}function o7(t,e=!0){return K8(je(t)?t:$e(t,{expr:"datum"}),!e)}function JKe(t){const{datum:e}=t;return Td(e)?v3(e):`${sn(e)}`}function Od(t,e,n,r){const i={};if(e&&(i.scale=e),Ia(t)){const{datum:s}=t;Td(s)?i.signal=v3(s):Ye(s)?i.signal=s.signal:S3(s)?i.signal=s.expr:i.value=s}else i.field=$e(t,n);if(r){const{offset:s,band:o}=r;s&&(i.offset=s),o&&(i.band=o)}return i}function TN({scaleName:t,fieldOrDatumDef:e,fieldOrDatumDef2:n,offset:r,startSuffix:i,bandPosition:s=.5}){const o=0<s&&s<1?"datum":void 0,u=$e(e,{expr:o,suffix:i}),a=n!==void 0?$e(n,{expr:o}):$e(e,{suffix:"end",expr:o}),l={};if(s===0||s===1){l.scale=t;const c=s===0?u:a;l.field=c}else{const c=Ye(s)?`${s.signal} * ${u} + (1-${s.signal}) * ${a}`:`${s} * ${u} + ${1-s} * ${a}`;l.signal=`scale("${t}", ${c})`}return r&&(l.offset=r),l}function u7({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l,bandPosition:c}){var f;if(e){if(it(e)){const x=o==null?void 0:o.get("type");if(Ro(e)){c??(c=uue({fieldDef:e,fieldDef2:n,markDef:r,config:i}));const{bin:h,timeUnit:p,type:m}=e;if(Kt(h)||c&&p&&m===I2)return u!=null&&u.impute?Od(e,s,{binSuffix:"mid"},{offset:a}):c&&!Cr(x)?TN({scaleName:s,fieldOrDatumDef:e,bandPosition:c,offset:a}):Od(e,s,R3(e,t)?{binSuffix:"range"}:{},{offset:a});if(Mi(h)){if(Le(n))return TN({scaleName:s,fieldOrDatumDef:e,fieldOrDatumDef2:n,bandPosition:c,offset:a});Te(Toe(t===yn?xu:Ca))}}return Od(e,s,Cr(x)?{binSuffix:"range"}:{},{offset:a,band:x==="band"?(f=c??e.bandPosition)!==null&&f!==void 0?f:.5:void 0})}else if(gu(e)){const x=e.value,h=a?{offset:a}:{};return Object.assign(Object.assign({},C3(t,x)),h)}}return lt(l)&&(l=l()),l&&Object.assign(Object.assign({},l),a?{offset:a}:{})}function C3(t,e){return Tt(["x","x2"],t)&&e==="width"?{field:{group:"width"}}:Tt(["y","y2"],t)&&e==="height"?{field:{group:"height"}}:on(e)}function Nd(t){return t&&t!=="number"&&t!=="time"}function Xoe(t,e,n){return`${t}(${e}${n?`, ${sn(n)}`:""})`}const ZKe=" – ";function a7({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s}){var o,u;if(Nd(n))return l7({fieldOrDatumDef:t,format:e,formatType:n,expr:r,config:s});const a=Koe(t,r,i);if(j2(t)){const l=tJe(a,Le(t)?(o=ji(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0,e,s.timeFormat,Dd(t)&&((u=t.scale)===null||u===void 0?void 0:u.type)===ys.UTC);return l?{signal:l}:void 0}if(e=eue(d7(t),e,s),Le(t)&&Kt(t.bin)){const l=$e(t,{expr:r,binSuffix:"end"});return{signal:RN(a,l,e,n,s)}}else return e||d7(t)==="quantitative"?{signal:`${tue(a,e)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function Koe(t,e,n){return Le(t)?n?`${$e(t,{expr:e,suffix:"end"})}-${$e(t,{expr:e,suffix:"start"})}`:$e(t,{expr:e}):JKe(t)}function l7({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s,field:o}){if(o??(o=Koe(t,r,i)),Le(t)&&Kt(t.bin)){const u=$e(t,{expr:r,binSuffix:"end"});return{signal:RN(o,u,e,n,s)}}return{signal:Xoe(n,o,e)}}function Joe(t,e,n,r,i,s){var o;if(!Nd(r)){if(j2(t)){const u=Le(t)?(o=ji(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0;return eJe(n,u,i,s)}return eue(e,n,i)}}function Zoe(t,e,n){if(t&&(Ye(t)||t==="number"||t==="time"))return t;if(j2(e)&&n!=="time"&&n!=="utc")return"time"}function eue(t,e,n){if(je(e))return e;if(t===Rd)return n.numberFormat}function eJe(t,e,n,r){return t||(e?{signal:woe(e)}:r?void 0:n.timeFormat)}function tue(t,e){return`format(${t}, "${e||""}")`}function nue(t,e,n,r){var i;return Nd(n)?Xoe(n,t,e):tue(t,(i=je(e)?e:void 0)!==null&&i!==void 0?i:r.numberFormat)}function RN(t,e,n,r,i){const s=nue(t,n,r,i),o=nue(e,n,r,i);return`${K8(t,!1)} ? "null" : ${s} + "${ZKe}" + ${o}`}function tJe(t,e,n,r,i){return!e||n?(n=je(n)?n:r,`${i?"utc":"time"}Format(${t}, '${n}')`):pKe(e,t,i)}const ON="min",nJe={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function rue(t){return t in nJe}function iue(t){return!!t&&!!t.encoding}function La(t){return!!t&&(t.op==="count"||!!t.field)}function sue(t){return!!t&&_e(t)}function b3(t){return"row"in t||"column"in t}function c7(t){return!!t&&"header"in t}function NN(t){return"facet"in t}var f7=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function rJe(t){return t.param}function iJe(t){return t&&!je(t)&&"repeat"in t}function oue(t){const{field:e,timeUnit:n,bin:r,aggregate:i}=t;return Object.assign(Object.assign(Object.assign(Object.assign({},n?{timeUnit:n}:{}),r?{bin:r}:{}),i?{aggregate:i}:{}),{field:e})}function x7(t){return"sort"in t}function uue({fieldDef:t,fieldDef2:e,markDef:n,config:r}){if(it(t)&&t.bandPosition!==void 0)return t.bandPosition;if(Le(t)){const{timeUnit:i,bin:s}=t;if(i&&!e)return Goe(n.type)?0:bd("timeUnitBandPosition",n,r);if(Kt(s))return .5}}function aue({channel:t,fieldDef:e,fieldDef2:n,markDef:r,config:i,scaleType:s,useVlSizeChannel:o}){var u,a,l;const c=gs(t),f=kt(o?"size":c,r,i,{vgChannel:c});if(f!==void 0)return f;if(Le(e)){const{timeUnit:x,bin:h}=e;if(x&&!n)return{band:bd("timeUnitBandSize",r,i)};if(Kt(h)&&!Cr(s))return{band:1}}if(Goe(r.type))return s?Cr(s)?((u=i[r.type])===null||u===void 0?void 0:u.discreteBandSize)||{band:1}:(a=i[r.type])===null||a===void 0?void 0:a.continuousBandSize:(l=i[r.type])===null||l===void 0?void 0:l.discreteBandSize}function lue(t,e,n,r){return Kt(t.bin)||t.timeUnit&&Ro(t)&&t.type==="temporal"?uue({fieldDef:t,fieldDef2:e,markDef:n,config:r})!==void 0:!1}function DN(t){return t&&"condition"in t}function FN(t){const e=t&&t.condition;return!!e&&!_e(e)&&Le(e)}function T3(t){const e=t&&t.condition;return!!e&&!_e(e)&&it(e)}function sJe(t){const e=t&&t.condition;return!!e&&(_e(e)||gu(e))}function Le(t){return t&&(!!t.field||t.aggregate==="count")}function d7(t){return t&&t.type}function Ia(t){return t&&"datum"in t}function $a(t){return Ro(t)&&!wN(t)||h7(t)}function h7(t){return Ia(t)&&nn(t.datum)}function it(t){return Le(t)||Ia(t)}function Ro(t){return t&&("field"in t||t.aggregate==="count")&&"type"in t}function gu(t){return t&&"value"in t&&"value"in t}function Dd(t){return t&&("scale"in t||"sort"in t)}function p7(t){return t&&("axis"in t||"stack"in t||"impute"in t)}function cue(t){return t&&"legend"in t}function fue(t){return t&&("format"in t||"formatType"in t)}function oJe(t){return Co(t,["legend","axis","header","scale"])}function uJe(t){return"op"in t}function $e(t,e={}){var n,r,i;let s=t.field;const o=e.prefix;let u=e.suffix,a="";if(lJe(t))s=mYe("count");else{let l;if(!e.nofn)if(uJe(t))l=t.op;else{const{bin:c,aggregate:f,timeUnit:x}=t;Kt(c)?(l=eoe(c),u=((n=e.binSuffix)!==null&&n!==void 0?n:"")+((r=e.suffix)!==null&&r!==void 0?r:"")):f?Pc(f)?(a=`["${s}"]`,s=`argmax_${f.argmax}`):t0(f)?(a=`["${s}"]`,s=`argmin_${f.argmin}`):l=String(f):x&&(l=gKe(x),u=(!["range","mid"].includes(e.binSuffix)&&e.binSuffix||"")+((i=e.suffix)!==null&&i!==void 0?i:""))}l&&(s=s?`${l}_${s}`:l)}return u&&(s=`${s}_${u}`),o&&(s=`${o}_${s}`),e.forAs?Use(s):e.expr?dYe(s,e.expr)+a:fu(s)+a}function wN(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return Le(t)&&!!t.bin;case"temporal":return!1}throw new Error(Aoe(t.type))}function aJe(t){var e;return Dd(t)&&B2((e=t.scale)===null||e===void 0?void 0:e.type)}function lJe(t){return t.aggregate==="count"}function cJe(t,e){var n;const{field:r,bin:i,timeUnit:s,aggregate:o}=t;if(o==="count")return e.countTitle;if(Kt(i))return`${r} (binned)`;if(s){const u=(n=ji(s))===null||n===void 0?void 0:n.unit;if(u)return`${r} (${H8(u).join("-")})`}else if(o)return Pc(o)?`${r} for max ${o.argmax}`:t0(o)?`${r} for min ${o.argmin}`:`${aN(o)} of ${r}`;return r}function fJe(t){const{aggregate:e,bin:n,timeUnit:r,field:i}=t;if(Pc(e))return`${i} for argmax(${e.argmax})`;if(t0(e))return`${i} for argmin(${e.argmin})`;const s=ji(r),o=e||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||Kt(n)&&"bin";return o?`${o.toUpperCase()}(${i})`:i}const xue=(t,e)=>{switch(e.fieldTitle){case"plain":return t.field;case"functional":return fJe(t);default:return cJe(t,e)}};let due=xue;function hue(t){due=t}function xJe(){hue(xue)}function P2(t,e,{allowDisabling:n,includeDefault:r=!0}){var i,s;const o=(i=g7(t))===null||i===void 0?void 0:i.title;if(!Le(t))return o??t.title;const u=t,a=r?m7(u,e):void 0;return n?ir(o,u.title,a):(s=o??u.title)!==null&&s!==void 0?s:a}function g7(t){if(p7(t)&&t.axis)return t.axis;if(cue(t)&&t.legend)return t.legend;if(c7(t)&&t.header)return t.header}function m7(t,e){return due(t,e)}function LN(t){var e;if(fue(t)){const{format:n,formatType:r}=t;return{format:n,formatType:r}}else{const n=(e=g7(t))!==null&&e!==void 0?e:{},{format:r,formatType:i}=n;return{format:r,formatType:i}}}function dJe(t,e){var n;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(x7(t)&&_e(t.sort))return"ordinal";const{aggregate:r,bin:i,timeUnit:s}=t;if(s)return"temporal";if(i||r&&!Pc(r)&&!t0(r))return"quantitative";if(Dd(t)&&(!((n=t.scale)===null||n===void 0)&&n.type))switch(e7[t.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function Ba(t){if(Le(t))return t;if(FN(t))return t.condition}function sr(t){if(it(t))return t;if(T3(t))return t.condition}function pue(t,e,n,r={}){if(je(t)||nn(t)||Fp(t)){const i=je(t)?"string":nn(t)?"number":"boolean";return Te(mXe(e,i,t)),{value:t}}return it(t)?IN(t,e,n,r):T3(t)?Object.assign(Object.assign({},t),{condition:IN(t.condition,e,n,r)}):t}function IN(t,e,n,r){if(fue(t)){const{format:i,formatType:s}=t,o=f7(t,["format","formatType"]);if(Nd(s)&&!n.customFormatTypes)return Te(Eoe(e)),IN(o,e,n,r)}else{const i=p7(t)?"axis":cue(t)?"legend":c7(t)?"header":null;if(i&&t[i]){const s=t[i],{format:o,formatType:u}=s,a=f7(s,["format","formatType"]);if(Nd(u)&&!n.customFormatTypes)return Te(Eoe(e)),IN(Object.assign(Object.assign({},t),{[i]:a}),e,n,r)}}return Le(t)?y7(t,e,r):hJe(t)}function hJe(t){let e=t.type;if(e)return t;const{datum:n}=t;return e=nn(n)?"quantitative":je(n)?"nominal":Td(n)?"temporal":void 0,Object.assign(Object.assign({},t),{type:e})}function y7(t,e,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:i,bin:s,field:o}=t,u=Object.assign({},t);if(!n&&r&&!L8(r)&&!Pc(r)&&!t0(r)&&(Te(EXe(r)),delete u.aggregate),i&&(u.timeUnit=ji(i)),o&&(u.field=`${o}`),Kt(s)&&(u.bin=$N(s,e)),Mi(s)&&!kr(e)&&Te(JXe(e)),Ro(u)){const{type:a}=u,l=vKe(a);a!==l&&(u.type=l),a!=="quantitative"&&Zse(r)&&(Te(yXe(a,r)),u.type="quantitative")}else if(!Gse(e)){const a=dJe(u,e);u.type=a}if(Ro(u)){const{compatible:a,warning:l}=pJe(u,e)||{};a===!1&&Te(l)}if(x7(u)&&je(u.sort)){const{sort:a}=u;if(rue(a))return Object.assign(Object.assign({},u),{sort:{encoding:a}});const l=a.substr(1);if(a.charAt(0)==="-"&&rue(l))return Object.assign(Object.assign({},u),{sort:{encoding:l,order:"descending"}})}if(c7(u)){const{header:a}=u;if(a){const{orient:l}=a,c=f7(a,["orient"]);if(l)return Object.assign(Object.assign({},u),{header:Object.assign(Object.assign({},c),{labelOrient:a.labelOrient||l,titleOrient:a.titleOrient||l})})}}return u}function $N(t,e){return Fp(t)?{maxbins:toe(e)}:t==="binned"?{binned:!0}:!t.maxbins&&!t.step?Object.assign(Object.assign({},t),{maxbins:toe(e)}):t}const M2={compatible:!0};function pJe(t,e){const n=t.type;if(n==="geojson"&&e!=="shape")return{compatible:!1,warning:`Channel ${e} should not be used with a geojson data.`};switch(e){case Vl:case Yl:case cN:return wN(t)?M2:{compatible:!1,warning:CXe(e)};case yn:case _r:case Fc:case D2:case hs:case Oa:case Na:case y3:case A3:case fN:case vd:case xN:case dN:case Sd:case du:case ba:case hN:return M2;case Ra:case bo:case Ta:case hu:return n!==Rd?{compatible:!1,warning:`Channel ${e} should be used with a quantitative field only, not ${t.type} field.`}:M2;case Zl:case wc:case Lc:case Ic:case Jl:case Kl:case Xl:case xu:case Ca:return n==="nominal"&&!t.sort?{compatible:!1,warning:`Channel ${e} should not be used with an unsorted discrete field.`}:M2;case ps:case $c:return!wN(t)&&!aJe(t)?{compatible:!1,warning:bXe(e)}:M2;case E3:return t.type==="nominal"&&!("sort"in t)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:M2}}function j2(t){const{formatType:e}=LN(t);return e==="time"||!e&&gJe(t)}function gJe(t){return t&&(t.type==="temporal"||Le(t)&&!!t.timeUnit)}function BN(t,{timeUnit:e,type:n,wrapTime:r,undefinedIfExprNotRequired:i}){var s;const o=e&&((s=ji(e))===null||s===void 0?void 0:s.unit);let u=o||n==="temporal",a;return S3(t)?a=t.expr:Ye(t)?a=t.signal:Td(t)?(u=!0,a=v3(t)):(je(t)||nn(t))&&u&&(a=`datetime(${sn(t)})`,fKe(o)&&(nn(t)&&t<1e4||je(t)&&isNaN(Date.parse(t)))&&(a=v3({[o]:t}))),a?r&&u?`time(${a})`:a:i?void 0:sn(t)}function gue(t,e){const{type:n}=t;return e.map(r=>{const i=BN(r,{timeUnit:Le(t)?t.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function R3(t,e){return Kt(t.bin)?kc(e)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const mue={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 O3(t){return t&&t.condition}const yue=["domain","grid","labels","ticks","title"],mJe={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"},Eue={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},yJe=Object.assign(Object.assign({},Eue),{style:1,labelExpr:1,encoding:1});function Aue(t){return!!yJe[t]}const Sue=be({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 i0(t){return"mark"in t}class kN{constructor(e,n){this.name=e,this.run=n}hasMatchingType(e){return i0(e)?YKe(e.mark)===this.name:!1}}var EJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Fd(t,e){const n=t&&t[e];return n?_e(n)?O2(n,r=>!!r.field):Le(n)||FN(n):!1}function vue(t,e){const n=t&&t[e];return n?_e(n)?O2(n,r=>!!r.field):Le(n)||Ia(n)||T3(n):!1}function E7(t,e){if(kr(e)){const n=t[e];if((Le(n)||Ia(n))&&$oe(n.type)){const r=Wse(e);return vue(t,r)}}return!1}function A7(t){return O2(_Ye,e=>{if(Fd(t,e)){const n=t[e];if(_e(n))return O2(n,r=>!!r.aggregate);{const r=Ba(n);return r&&!!r.aggregate}}return!1})}function _ue(t,e){const n=[],r=[],i=[],s=[],o={};return S7(t,(u,a)=>{if(Le(u)){const{field:l,aggregate:c,bin:f,timeUnit:x}=u,h=EJe(u,["field","aggregate","bin","timeUnit"]);if(c||x||f){const p=g7(u),m=p==null?void 0:p.title;let g=$e(u,{forAs:!0});const y=Object.assign(Object.assign(Object.assign({},m?[]:{title:P2(u,e,{allowDisabling:!0})}),h),{field:g});if(c){let E;if(Pc(c)?(E="argmax",g=$e({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):t0(c)?(E="argmin",g=$e({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${g}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(E=c),E){const A={op:E,as:g};l&&(A.field=l),s.push(A)}}else if(n.push(g),Ro(u)&&Kt(f)){if(r.push({bin:f,field:l,as:g}),n.push($e(u,{binSuffix:"end"})),R3(u,a)&&n.push($e(u,{binSuffix:"range"})),kr(a)){const E={field:`${g}_end`};o[`${a}2`]=E}y.bin="binned",Gse(a)||(y.type=Rd)}else if(x){i.push({timeUnit:x,field:l,as:g});const E=Ro(u)&&u.type!==I2&&"time";E&&(a===y3||a===vd?y.formatType=E:LYe(a)?y.legend=Object.assign({formatType:E},y.legend):kr(a)&&(y.axis=Object.assign({formatType:E},y.axis)))}o[a]=y}else n.push(l),o[a]=t[a]}else o[a]=t[a]}),{bins:r,timeUnits:i,aggregate:s,groupby:n,encoding:o}}function AJe(t,e,n){const r=$Ye(e,n);if(r){if(r==="binned"){const i=t[e===xu?yn:_r];return!!(Le(i)&&Le(t[e])&&Mi(i.bin))}}else return!1;return!0}function SJe(t,e,n,r){const i={};for(const s of be(t))Qse(s)||Te(_Xe(s));for(let s of NYe){if(!t[s])continue;const o=t[s];if(w2(s)){const u=Vse(s),a=i[u];if(Le(a)){if(SKe(a.type)&&Le(o)){Te(pXe(u));continue}}else s=u,Te(gXe(u))}if(s==="angle"&&e==="arc"&&!t.theta&&(Te(hXe),s=du),!AJe(t,s,e)){Te(EN(s,e));continue}if(s===Jl&&e==="line"){const u=Ba(t[s]);if(u!=null&&u.aggregate){Te(SXe);continue}}if(s===hs&&(n?"fill"in t:"stroke"in t)){Te(Soe("encoding",{fill:"fill"in t,stroke:"stroke"in t}));continue}if(s===A3||s===E3&&!_e(o)&&!gu(o)||s===vd&&_e(o))o&&(i[s]=Pe(o).reduce((u,a)=>(Le(a)?u.push(y7(a,s)):Te(P8(a,s)),u),[]));else{if(s===vd&&o===null)i[s]=null;else if(!Le(o)&&!Ia(o)&&!gu(o)&&!DN(o)&&!Ye(o)){Te(P8(o,s));continue}i[s]=pue(o,s,r)}}return i}function PN(t,e){const n={};for(const r of be(t)){const i=pue(t[r],r,e,{compositeMark:!0});n[r]=i}return n}function vJe(t){const e=[];for(const n of be(t))if(Fd(t,n)){const r=t[n],i=Pe(r);for(const s of i)Le(s)?e.push(s):FN(s)&&e.push(s.condition)}return e}function S7(t,e,n){if(t)for(const r of be(t)){const i=t[r];if(_e(i))for(const s of i)e.call(n,s,r);else e.call(n,i,r)}}function _Je(t,e,n,r){return t?be(t).reduce((i,s)=>{const o=t[s];return _e(o)?o.reduce((u,a)=>e.call(r,u,a,s),i):e.call(r,i,o,s)},n):n}function Cue(t,e){return be(e).reduce((n,r)=>{switch(r){case yn:case _r:case xN:case hN:case dN:case xu:case Ca:case Fc:case D2:case du:case Kl:case ba:case Xl:case Ta:case Ra:case hu:case bo:case y3:case ps:case Sd:case vd:return n;case E3:if(t==="line"||t==="trail")return n;case A3:case fN:{const i=e[r];if(_e(i)||Le(i))for(const s of Pe(i))s.aggregate||n.push($e(s,{}));return n}case Jl:if(t==="trail")return n;case hs:case Oa:case Na:case Zl:case wc:case Lc:case $c:case Ic:{const i=Ba(e[r]);return i&&!i.aggregate&&n.push($e(i,{})),n}}},[])}var bue=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function CJe(t){const{tooltip:e}=t,n=bue(t,["tooltip"]);if(!e)return{filteredEncoding:n};let r,i;if(_e(e)){for(const s of e)s.aggregate?(r||(r=[]),r.push(s)):(i||(i=[]),i.push(s));r&&(n.tooltip=r)}else e.aggregate?n.tooltip=e:i=e;return _e(i)&&i.length===1&&(i=i[0]),{customTooltipWithoutAggregatedField:i,filteredEncoding:n}}function v7(t,e,n,r=!0){if("tooltip"in n)return{tooltip:n.tooltip};const i=t.map(({fieldPrefix:o,titlePrefix:u})=>{const a=r?` of ${_7(e)}`:"";return{field:o+e.field,type:e.type,title:Ye(u)?{signal:`${u}"${escape(a)}"`}:u+a}}),s=vJe(n).map(oJe);return{tooltip:[...i,...Wl(s,bt)]}}function _7(t){const{title:e,field:n}=t;return ir(e,n)}function C7(t,e,n,r,i){const{scale:s,axis:o}=n;return({partName:u,mark:a,positionPrefix:l,endPositionPrefix:c=void 0,extraEncoding:f={}})=>{const x=_7(n);return Tue(t,u,i,{mark:a,encoding:Object.assign(Object.assign(Object.assign({[e]:Object.assign(Object.assign(Object.assign({field:`${l}_${n.field}`,type:n.type},x!==void 0?{title:x}:{}),s!==void 0?{scale:s}:{}),o!==void 0?{axis:o}:{})},je(c)?{[`${e}2`]:{field:`${c}_${n.field}`}}:{}),r),f)})}}function Tue(t,e,n,r){const{clip:i,color:s,opacity:o}=t,u=t.type;return t[e]||t[e]===void 0&&n[e]?[Object.assign(Object.assign({},r),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n[e]),i?{clip:i}:{}),s?{color:s}:{}),o?{opacity:o}:{}),wa(r.mark)?r.mark:{type:r.mark}),{style:`${u}-${e}`}),Fp(t[e])?{}:t[e])})]:[]}function Rue(t,e,n){const{encoding:r}=t,i=e==="vertical"?"y":"x",s=r[i],o=r[`${i}2`],u=r[`${i}Error`],a=r[`${i}Error2`];return{continuousAxisChannelDef:MN(s,n),continuousAxisChannelDef2:MN(o,n),continuousAxisChannelDefError:MN(u,n),continuousAxisChannelDefError2:MN(a,n),continuousAxis:i}}function MN(t,e){if(t!=null&&t.aggregate){const{aggregate:n}=t,r=bue(t,["aggregate"]);return n!==e&&Te(KXe(n,e)),r}else return t}function Oue(t,e){const{mark:n,encoding:r}=t,{x:i,y:s}=r;if(wa(n)&&n.orient)return n.orient;if($a(i)){if($a(s)){const o=Le(i)&&i.aggregate,u=Le(s)&&s.aggregate;if(!o&&u===e)return"vertical";if(!u&&o===e)return"horizontal";if(o===e&&u===e)throw new Error("Both x and y cannot have aggregate");return j2(s)&&!j2(i)?"horizontal":"vertical"}return"horizontal"}else{if($a(s))return"vertical";throw new Error(`Need a valid continuous axis for ${e}s`)}}var jN=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const UN="boxplot",bJe=["box","median","outliers","rule","ticks"],TJe=new kN(UN,Due);function Nue(t){return nn(t)?"tukey":t}function Due(t,{config:e}){var n,r;t=Object.assign(Object.assign({},t),{encoding:PN(t.encoding,e)});const{mark:i,encoding:s,params:o,projection:u}=t,a=jN(t,["mark","encoding","params","projection"]),l=wa(i)?i:{type:i};o&&Te(goe("boxplot"));const c=(n=l.extent)!==null&&n!==void 0?n:e.boxplot.extent,f=kt("size",l,e),x=Nue(c),{bins:h,timeUnits:p,transform:m,continuousAxisChannelDef:g,continuousAxis:y,groupby:E,aggregate:A,encodingWithoutContinuousAxis:S,ticksOrient:v,boxOrient:_,customTooltipWithoutAggregatedField:C}=RJe(t,c,e),{color:b,size:O}=S,R=jN(S,["color","size"]),I=V=>C7(l,y,g,V,e.boxplot),M=I(R),z=I(S),Y=I(Object.assign(Object.assign({},R),O?{size:O}:{})),Q=v7([{fieldPrefix:x==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:x==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],g,S),oe={type:"tick",color:"black",opacity:1,orient:v,invalid:null,aria:!1},de=x==="min-max"?Q:v7([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,S),ae=[...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:de}),...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:de}),...M({partName:"ticks",mark:oe,positionPrefix:"lower_whisker",extraEncoding:de}),...M({partName:"ticks",mark:oe,positionPrefix:"upper_whisker",extraEncoding:de})],ie=[...x!=="tukey"?ae:[],...z({partName:"box",mark:Object.assign(Object.assign({type:"bar"},f?{size:f}:{}),{orient:_,invalid:null,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:Q}),...Y({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},Qe(e.boxplot.median)&&e.boxplot.median.color?{color:e.boxplot.median.color}:{}),f?{size:f}:{}),{orient:v,aria:!1}),positionPrefix:"mid_box",extraEncoding:Q})];if(x==="min-max")return Object.assign(Object.assign({},a),{transform:((r=a.transform)!==null&&r!==void 0?r:[]).concat(m),layer:ie});const le=`datum["lower_box_${g.field}"]`,xe=`datum["upper_box_${g.field}"]`,Ce=`(${xe} - ${le})`,D=`${le} - ${c} * ${Ce}`,k=`${xe} + ${c} * ${Ce}`,j=`datum["${g.field}"]`,W={joinaggregate:Fue(g.field),groupby:E},U={transform:[{filter:`(${D} <= ${j}) && (${j} <= ${k})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${g.field}`},{op:"max",field:g.field,as:`upper_whisker_${g.field}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${g.field}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${g.field}`},...A],groupby:E}],layer:ae},B=jN(R,["tooltip"]),{scale:T,axis:N}=g,$=_7(g),q=Co(N,["title"]),L=Tue(l,"outliers",e.boxplot,{transform:[{filter:`(${j} < ${D}) || (${j} > ${k})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[y]:Object.assign(Object.assign(Object.assign({field:g.field,type:g.type},$!==void 0?{title:$}:{}),T!==void 0?{scale:T}:{}),Wt(q)?{}:{axis:q})},B),b?{color:b}:{}),C?{tooltip:C}:{})})[0];let H;const P=[...h,...p,W];return L?H={transform:P,layer:[L,U]}:(H=U,H.transform.unshift(...P)),Object.assign(Object.assign({},a),{layer:[H,{transform:m,layer:ie}]})}function Fue(t){return[{op:"q1",field:t,as:`lower_box_${t}`},{op:"q3",field:t,as:`upper_box_${t}`}]}function RJe(t,e,n){const r=Oue(t,UN),{continuousAxisChannelDef:i,continuousAxis:s}=Rue(t,r,UN),o=i.field,u=Nue(e),a=[...Fue(o),{op:"median",field:o,as:`mid_box_${o}`},{op:"min",field:o,as:(u==="min-max"?"lower_whisker_":"min_")+o},{op:"max",field:o,as:(u==="min-max"?"upper_whisker_":"max_")+o}],l=u==="min-max"||u==="tukey"?[]:[{calculate:`datum["upper_box_${o}"] - datum["lower_box_${o}"]`,as:`iqr_${o}`},{calculate:`min(datum["upper_box_${o}"] + datum["iqr_${o}"] * ${e}, datum["max_${o}"])`,as:`upper_whisker_${o}`},{calculate:`max(datum["lower_box_${o}"] - datum["iqr_${o}"] * ${e}, datum["min_${o}"])`,as:`lower_whisker_${o}`}],c=t.encoding,f=s;c[f];const x=jN(c,[typeof f=="symbol"?f:f+""]),{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=CJe(x),{bins:m,timeUnits:g,aggregate:y,groupby:E,encoding:A}=_ue(p,n),S=r==="vertical"?"horizontal":"vertical",v=r,_=[...m,...g,{aggregate:[...y,...a],groupby:E},...l];return{bins:m,timeUnits:g,transform:_,groupby:E,aggregate:y,continuousAxisChannelDef:i,continuousAxis:s,encodingWithoutContinuousAxis:A,ticksOrient:S,boxOrient:v,customTooltipWithoutAggregatedField:h}}var wue=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const b7="errorbar",OJe=["ticks","rule"],NJe=new kN(b7,Lue);function Lue(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:PN(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,ticksOrient:o,markDef:u,outerSpec:a,tooltipEncoding:l}=Iue(t,b7,e);delete s.size;const c=C7(u,i,r,s,e.errorbar),f=u.thickness,x=u.size,h=Object.assign(Object.assign({type:"tick",orient:o,aria:!1},f!==void 0?{thickness:f}:{}),x!==void 0?{size:x}:{}),p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:Object.assign({type:"rule",ariaRoleDescription:"errorbar"},f!==void 0?{size:f}:{}),positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return Object.assign(Object.assign(Object.assign({},a),{transform:n}),p.length>1?{layer:p}:Object.assign({},p[0]))}function DJe(t,e){const{encoding:n}=t;if(FJe(n))return{orient:Oue(t,e),inputType:"raw"};const r=wJe(n),i=LJe(n),s=n.x,o=n.y;if(r){if(i)throw new Error(`${e} cannot be both type aggregated-upper-lower and aggregated-error`);const u=n.x2,a=n.y2;if(it(u)&&it(a))throw new Error(`${e} cannot have both x2 and y2`);if(it(u)){if($a(s))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${e}`)}else if(it(a)){if($a(o))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${e}`)}throw new Error("No ranged axis")}else{const u=n.xError,a=n.xError2,l=n.yError,c=n.yError2;if(it(a)&&!it(u))throw new Error(`${e} cannot have xError2 without xError`);if(it(c)&&!it(l))throw new Error(`${e} cannot have yError2 without yError`);if(it(u)&&it(l))throw new Error(`${e} cannot have both xError and yError with both are quantiative`);if(it(u)){if($a(s))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(it(l)){if($a(o))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 FJe(t){return(it(t.x)||it(t.y))&&!it(t.x2)&&!it(t.y2)&&!it(t.xError)&&!it(t.xError2)&&!it(t.yError)&&!it(t.yError2)}function wJe(t){return it(t.x2)||it(t.y2)}function LJe(t){return it(t.xError)||it(t.xError2)||it(t.yError)||it(t.yError2)}function Iue(t,e,n){var r;const{mark:i,encoding:s,params:o,projection:u}=t,a=wue(t,["mark","encoding","params","projection"]),l=wa(i)?i:{type:i};o&&Te(goe(e));const{orient:c,inputType:f}=DJe(t,e),{continuousAxisChannelDef:x,continuousAxisChannelDef2:h,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:m,continuousAxis:g}=Rue(t,c,e),{errorBarSpecificAggregate:y,postAggregateCalculates:E,tooltipSummary:A,tooltipTitleWithFieldName:S}=IJe(l,x,h,p,m,f,e,n),v=s,_=g;v[_];const C=g==="x"?"x2":"y2";v[C];const b=g==="x"?"xError":"yError";v[b];const O=g==="x"?"xError2":"yError2";v[O];const R=wue(v,[typeof _=="symbol"?_:_+"",typeof C=="symbol"?C:C+"",typeof b=="symbol"?b:b+"",typeof O=="symbol"?O:O+""]),{bins:I,timeUnits:M,aggregate:z,groupby:Y,encoding:Q}=_ue(R,n),oe=[...z,...y],de=f!=="raw"?[]:Y,ae=v7(A,x,Q,S);return{transform:[...(r=a.transform)!==null&&r!==void 0?r:[],...I,...M,...oe.length===0?[]:[{aggregate:oe,groupby:de}],...E],groupby:de,continuousAxisChannelDef:x,continuousAxis:g,encodingWithoutContinuousAxis:Q,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:l,outerSpec:a,tooltipEncoding:ae}}function IJe(t,e,n,r,i,s,o,u){let a=[],l=[];const c=e.field;let f,x=!1;if(s==="raw"){const h=t.center?t.center:t.extent?t.extent==="iqr"?"median":"mean":u.errorbar.center,p=t.extent?t.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(p==="iqr")&&Te(XXe(h,p,o)),p==="stderr"||p==="stdev")a=[{op:p,field:c,as:`extent_${c}`},{op:h,field:c,as:`center_${c}`}],l=[{calculate:`datum["center_${c}"] + datum["extent_${c}"]`,as:`upper_${c}`},{calculate:`datum["center_${c}"] - datum["extent_${c}"]`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:aN(h)},{fieldPrefix:"upper_",titlePrefix:$ue(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:$ue(h,p,"-")}],x=!0;else{let m,g,y;p==="ci"?(m="mean",g="ci0",y="ci1"):(m="median",g="q1",y="q3"),a=[{op:g,field:c,as:`lower_${c}`},{op:y,field:c,as:`upper_${c}`},{op:m,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:P2({field:c,aggregate:y,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:P2({field:c,aggregate:g,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:P2({field:c,aggregate:m,type:"quantitative"},u,{allowDisabling:!1})}]}}else{(t.center||t.extent)&&Te(YXe(t.center,t.extent)),s==="aggregated-upper-lower"?(f=[],l=[{calculate:`datum["${n.field}"]`,as:`upper_${c}`},{calculate:`datum["${c}"]`,as:`lower_${c}`}]):s==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:c}],l=[{calculate:`datum["${c}"] + datum["${r.field}"]`,as:`upper_${c}`}],i?l.push({calculate:`datum["${c}"] + datum["${i.field}"]`,as:`lower_${c}`}):l.push({calculate:`datum["${c}"] - datum["${r.field}"]`,as:`lower_${c}`}));for(const h of l)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:N2(N2(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:a,tooltipSummary:f,tooltipTitleWithFieldName:x}}function $ue(t,e,n){return`${aN(t)} ${n} ${e}`}const T7="errorband",$Je=["band","borders"],BJe=new kN(T7,Bue);function Bue(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:PN(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,markDef:o,outerSpec:u,tooltipEncoding:a}=Iue(t,T7,e),l=o,c=C7(l,i,r,s,e.errorband),f=t.encoding.x!==void 0&&t.encoding.y!==void 0;let x={type:f?"area":"rect"},h={type:f?"line":"rule"};const p=Object.assign(Object.assign({},l.interpolate?{interpolate:l.interpolate}:{}),l.tension&&l.interpolate?{tension:l.tension}:{});return f?(x=Object.assign(Object.assign(Object.assign({},x),p),{ariaRoleDescription:"errorband"}),h=Object.assign(Object.assign(Object.assign({},h),p),{aria:!1})):l.interpolate?Te(boe("interpolate")):l.tension&&Te(boe("tension")),Object.assign(Object.assign({},u),{transform:n,layer:[...c({partName:"band",mark:x,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:a}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:a})]})}const kue={};function R7(t,e,n){const r=new kN(t,e);kue[t]={normalizer:r,parts:n}}function kJe(){return be(kue)}R7(UN,Due,bJe),R7(b7,Lue,OJe),R7(T7,Bue,$Je);const PJe=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Pue={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"},Mue={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"},MJe=be(Pue),jJe=be(Mue),jue=be({header:1,headerRow:1,headerColumn:1,headerFacet:1}),Uue=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],UJe={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},qJe={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},N3="_vgsid_",HJe={point:{on:"click",fields:[N3],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 O7(t){return!!t&&(t==="legend"||!!t.legend)}function N7(t){return O7(t)&&Qe(t)}function D7(t){return!!t.select}var zJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function que(t){const e=[];for(const n of t||[]){if(D7(n))continue;const{expr:r,bind:i}=n,s=zJe(n,["expr","bind"]);if(i&&r){const o=Object.assign(Object.assign({},s),{bind:i,init:r});e.push(o)}else{const o=Object.assign(Object.assign(Object.assign({},s),r?{update:r}:{}),i?{bind:i}:{});e.push(o)}}return e}function QJe(t){return qN(t)||w7(t)||F7(t)}function F7(t){return"concat"in t}function qN(t){return"vconcat"in t}function w7(t){return"hconcat"in t}function Hue({step:t,offsetIsDiscrete:e}){var n;return e?(n=t.for)!==null&&n!==void 0?n:"offset":"position"}function ka(t){return Qe(t)&&t.step!==void 0}function zue(t){return t.view||t.width||t.height}const Que=20,GJe=be({align:1,bounds:1,center:1,columns:1,spacing:1});function WJe(t,e,n){var r,i;const s=n[e],o={},{spacing:u,columns:a}=s;u!==void 0&&(o.spacing=u),a!==void 0&&(NN(t)&&!b3(t.facet)||F7(t))&&(o.columns=a),qN(t)&&(o.columns=1);for(const l of GJe)if(t[l]!==void 0)if(l==="spacing"){const c=t[l];o[l]=nn(c)?c:{row:(r=c.row)!==null&&r!==void 0?r:u,column:(i=c.column)!==null&&i!==void 0?i:u}}else o[l]=t[l];return o}var VJe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function L7(t,e){var n;return(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"continuousWidth":"continuousHeight"]}function HN(t,e){const n=zN(t,e);return ka(n)?n.step:Gue}function zN(t,e){var n;const r=(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"discreteWidth":"discreteHeight"];return ir(r,{step:t.step})}const Gue=20,YJe={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:Gue},mark:zKe,arc:{},area:{},bar:GKe,circle:{},geoshape:{},image:{},line:{},point:{},rect:WKe,rule:{color:"black"},square:{},text:{color:"black"},tick:VKe,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:OKe,projection:{},legend:UJe,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:HJe,style:{},title:{},facet:{spacing:Que},concat:{spacing:Que}},s0=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Wue={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},Vue={blue:s0[0],orange:s0[1],red:s0[2],teal:s0[3],green:s0[4],yellow:s0[5],purple:s0[6],pink:s0[7],brown:s0[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 XJe(t={}){return{signals:[{name:"color",value:Qe(t)?Object.assign(Object.assign({},Vue),t):Vue}],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"}]}}}function KJe(t){return{signals:[{name:"fontSize",value:Qe(t)?Object.assign(Object.assign({},Wue),t):Wue}],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"}}}}}function JJe(t){return{text:{font:t},style:{"guide-label":{font:t},"guide-title":{font:t},"group-title":{font:t},"group-subtitle":{font:t}}}}function Yue(t){const e=be(t||{}),n={};for(const r of e){const i=t[r];n[r]=O3(i)?roe(i):Hs(i)}return n}function ZJe(t){const e=be(t),n={};for(const r of e)n[r]=Yue(t[r]);return n}const eZe=[...Voe,...Sue,...jue,"background","padding","legend","lineBreak","scale","style","title","view"];function Xue(t={}){const{color:e,font:n,fontSize:r,selection:i}=t,s=VJe(t,["color","font","fontSize","selection"]),o=p5({},ot(YJe),n?JJe(n):{},e?XJe(e):{},r?KJe(r):{},s||{});i&&Ub(o,"selection",i,!0);const u=Co(o,eZe);for(const a of["background","lineBreak","padding"])o[a]&&(u[a]=Hs(o[a]));for(const a of Voe)o[a]&&(u[a]=ms(o[a]));for(const a of Sue)o[a]&&(u[a]=Yue(o[a]));for(const a of jue)o[a]&&(u[a]=ms(o[a]));return o.legend&&(u.legend=ms(o.legend)),o.scale&&(u.scale=ms(o.scale)),o.style&&(u.style=ZJe(o.style)),o.title&&(u.title=ms(o.title)),o.view&&(u.view=ms(o.view)),u}const tZe=new Set(["view",...MKe]),nZe=["color","fontSize","background","padding","facet","concat","numberFormat","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],rZe=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},HKe);function iZe(t){t=ot(t);for(const e of nZe)delete t[e];if(t.axis)for(const e in t.axis)O3(t.axis[e])&&delete t.axis[e];if(t.legend)for(const e of PJe)delete t.legend[e];if(t.mark){for(const e of Woe)delete t.mark[e];t.mark.tooltip&&Qe(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(que(t.params)),delete t.params);for(const e of tZe){for(const r of Woe)delete t[e][r];const n=rZe[e];if(n)for(const r of n)delete t[e][r];oZe(t,e)}for(const e of kJe())delete t[e];sZe(t);for(const e in t)Qe(t[e])&&Wt(t[e])&&delete t[e];return Wt(t)?void 0:t}function sZe(t){const{titleMarkConfig:e,subtitleMarkConfig:n,subtitle:r}=noe(t.title);Wt(e)||(t.style["group-title"]=Object.assign(Object.assign({},t.style["group-title"]),e)),Wt(n)||(t.style["group-subtitle"]=Object.assign(Object.assign({},t.style["group-subtitle"]),n)),Wt(r)?delete t.title:t.title=r}function oZe(t,e,n,r){const i=r?t[e][r]:t[e];e==="view"&&(n="cell");const s=Object.assign(Object.assign({},i),t.style[n??e]);Wt(s)||(t.style[n??e]=s),r||delete t[e]}function QN(t){return"layer"in t}function uZe(t){return"repeat"in t}function aZe(t){return!_e(t.repeat)&&t.repeat.layer}var lZe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class I7{map(e,n){return NN(e)?this.mapFacet(e,n):uZe(e)?this.mapRepeat(e,n):w7(e)?this.mapHConcat(e,n):qN(e)?this.mapVConcat(e,n):F7(e)?this.mapConcat(e,n):this.mapLayerOrUnit(e,n)}mapLayerOrUnit(e,n){if(QN(e))return this.mapLayer(e,n);if(i0(e))return this.mapUnit(e,n);throw new Error(B8(e))}mapLayer(e,n){return Object.assign(Object.assign({},e),{layer:e.layer.map(r=>this.mapLayerOrUnit(r,n))})}mapHConcat(e,n){return Object.assign(Object.assign({},e),{hconcat:e.hconcat.map(r=>this.map(r,n))})}mapVConcat(e,n){return Object.assign(Object.assign({},e),{vconcat:e.vconcat.map(r=>this.map(r,n))})}mapConcat(e,n){const{concat:r}=e,i=lZe(e,["concat"]);return Object.assign(Object.assign({},i),{concat:r.map(s=>this.map(s,n))})}mapFacet(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}mapRepeat(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}}const cZe={zero:1,center:1,normalize:1};function fZe(t){return t in cZe}const xZe=new Set([Hoe,vN,SN,bN,CN,r7,i7,_N,zoe,n7]),dZe=new Set([vN,SN,Hoe]);function U2(t){return Le(t)&&d7(t)==="quantitative"&&!t.bin}function Kue(t,e){var n,r;const i=e==="x"?"y":"radius",s=t[e],o=t[i];if(Le(s)&&Le(o))if(U2(s)&&U2(o)){if(s.stack)return e;if(o.stack)return i;const u=Le(s)&&!!s.aggregate,a=Le(o)&&!!o.aggregate;if(u!==a)return u?e:i;{const l=(n=s.scale)===null||n===void 0?void 0:n.type,c=(r=o.scale)===null||r===void 0?void 0:r.type;if(l&&l!=="linear")return i;if(c&&c!=="linear")return e}}else{if(U2(s))return e;if(U2(o))return i}else{if(U2(s))return e;if(U2(o))return i}}function hZe(t){switch(t){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function Jue(t,e,n={}){var r,i;const s=wa(t)?t.type:t;if(!xZe.has(s))return null;const o=Kue(e,"x")||Kue(e,"theta");if(!o)return null;const u=e[o],a=Le(u)?$e(u,{}):void 0,l=hZe(o),c=[],f=new Set;if(e[l]){const p=e[l],m=Le(p)?$e(p,{}):void 0;m&&m!==a&&(c.push(l),f.add(m));const g=l==="x"?"xOffset":"yOffset",y=e[g],E=Le(y)?$e(y,{}):void 0;E&&E!==a&&(c.push(g),f.add(E))}const x=DYe.reduce((p,m)=>{if(m!=="tooltip"&&Fd(e,m)){const g=e[m];for(const y of Pe(g)){const E=Ba(y);if(E.aggregate)continue;const A=$e(E,{});(!A||!f.has(A))&&p.push({channel:m,fieldDef:E})}}return p},[]);let h;if(u.stack!==void 0?Fp(u.stack)?h=u.stack?"zero":null:h=u.stack:dZe.has(s)&&(h="zero"),!h||!fZe(h)||A7(e)&&x.length===0)return null;if(!((r=u==null?void 0:u.scale)===null||r===void 0)&&r.type&&((i=u==null?void 0:u.scale)===null||i===void 0?void 0:i.type)!==ys.LINEAR){if(n.disallowNonLinearStack)return null;Te(GXe(u.scale.type))}return it(e[e0(o)])?(u.stack!==void 0&&Te(QXe(o)),null):(Le(u)&&u.aggregate&&!qYe.has(u.aggregate)&&Te(WXe(u.aggregate)),{groupbyChannels:c,groupbyFields:f,fieldChannel:o,impute:u.impute===null?!1:Uc(s),stackBy:x,offset:h})}var Zue=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function pZe(t){const e=Zue(t,["point","line"]);return be(e).length>1?e:e.type}function gZe(t){for(const e of["line","area","rule","trail"])t[e]&&(t=Object.assign(Object.assign({},t),{[e]:Co(t[e],["point","line"])}));return t}function $7(t,e={},n){return t.point==="transparent"?{opacity:0}:t.point?Qe(t.point)?t.point:{}:t.point!==void 0?null:e.point||n.shape?Qe(e.point)?e.point:{}:void 0}function eae(t,e={}){return t.line?t.line===!0?{}:t.line:t.line!==void 0?null:e.line?e.line===!0?{}:e.line:void 0}class mZe{constructor(){this.name="path-overlay"}hasMatchingType(e,n){if(i0(e)){const{mark:r,encoding:i}=e,s=wa(r)?r:{type:r};switch(s.type){case"line":case"rule":case"trail":return!!$7(s,n[s.type],i);case"area":return!!$7(s,n[s.type],i)||!!eae(s,n[s.type])}}return!1}run(e,n,r){const{config:i}=n,{params:s,projection:o,mark:u,encoding:a}=e,l=Zue(e,["params","projection","mark","encoding"]),c=PN(a,i),f=wa(u)?u:{type:u},x=$7(f,i[f.type],c),h=f.type==="area"&&eae(f,i[f.type]),p=[Object.assign(Object.assign({},s?{params:s}:{}),{mark:pZe(Object.assign(Object.assign({},f.type==="area"&&f.opacity===void 0&&f.fillOpacity===void 0?{opacity:.7}:{}),f)),encoding:Co(c,["shape"])})],m=Jue(f,c);let g=c;if(m){const{fieldChannel:y,offset:E}=m;g=Object.assign(Object.assign({},c),{[y]:Object.assign(Object.assign({},c[y]),E?{stack:E}:{})})}return h&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"line"},p3(f,["clip","interpolate","tension","tooltip"])),h),encoding:g})),x&&p.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},p3(f,["clip","tooltip"])),x),encoding:g})),r(Object.assign(Object.assign({},l),{layer:p}),Object.assign(Object.assign({},n),{config:gZe(i)}))}}var yZe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function EZe(t,e){return e?b3(t)?iae(t,e):tae(t,e):t}function B7(t,e){return e?iae(t,e):t}function k7(t,e,n){const r=e[t];if(iJe(r)){if(r.repeat in n)return Object.assign(Object.assign({},e),{[t]:n[r.repeat]});Te(uXe(r.repeat));return}return e}function tae(t,e){if(t=k7("field",t,e),t!==void 0){if(t===null)return null;if(x7(t)&&La(t.sort)){const n=k7("field",t.sort,e);t=Object.assign(Object.assign({},t),n?{sort:n}:{})}return t}}function nae(t,e){if(Le(t))return tae(t,e);{const n=k7("datum",t,e);return n!==t&&!n.type&&(n.type="nominal"),n}}function rae(t,e){if(it(t)){const n=nae(t,e);if(n)return n;if(DN(t))return{condition:t.condition}}else{if(T3(t)){const n=nae(t.condition,e);return n?Object.assign(Object.assign({},t),{condition:n}):yZe(t,["condition"])}return t}}function iae(t,e){const n={};for(const r in t)if(Je(t,r)){const i=t[r];if(_e(i))n[r]=i.map(s=>rae(s,e)).filter(s=>s);else{const s=rae(i,e);s!==void 0&&(n[r]=s)}}return n}class AZe{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(i0(e)){const{encoding:n,mark:r}=e;if(r==="line"||wa(r)&&r.type==="line")for(const i of RYe){const s=_d(i),o=n[s];if(n[i]&&(Le(o)&&!Mi(o.bin)||Ia(o)))return!0}}return!1}run(e,n,r){const{encoding:i,mark:s}=e;return Te(OXe(!!i.x2,!!i.y2)),r(Object.assign(Object.assign({},e),{mark:Qe(s)?Object.assign(Object.assign({},s),{type:"rule"}):"rule"}),n)}}var qc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class SZe extends I7{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[TJe,NJe,BJe,new mZe,new AZe]}map(e,n){if(i0(e)){const r=Fd(e.encoding,Vl),i=Fd(e.encoding,Yl),s=Fd(e.encoding,cN);if(r||i||s)return this.mapFacetedUnit(e,n)}return super.map(e,n)}mapUnit(e,n){const{parentEncoding:r,parentProjection:i}=n,s=B7(e.encoding,n.repeater),o=Object.assign(Object.assign({},e),s?{encoding:s}:{});if(r||i)return this.mapUnitWithParentEncodingOrProjection(o,n);const u=this.mapLayerOrUnit.bind(this);for(const a of this.nonFacetUnitNormalizers)if(a.hasMatchingType(o,n.config))return a.run(o,n,u);return o}mapRepeat(e,n){return aZe(e)?this.mapLayerRepeat(e,n):this.mapNonLayerRepeat(e,n)}mapLayerRepeat(e,n){const{repeat:r,spec:i}=e,s=qc(e,["repeat","spec"]),{row:o,column:u,layer:a}=r,{repeater:l={},repeaterPrefix:c=""}=n;return o||u?this.mapRepeat(Object.assign(Object.assign({},e),{repeat:Object.assign(Object.assign({},o?{row:o}:{}),u?{column:u}:{}),spec:{repeat:{layer:a},spec:i}}),n):Object.assign(Object.assign({},s),{layer:a.map(f=>{const x=Object.assign(Object.assign({},l),{layer:f}),h=`${(i.name||"")+c}child__layer_${mn(f)}`,p=this.mapLayerOrUnit(i,Object.assign(Object.assign({},n),{repeater:x,repeaterPrefix:h}));return p.name=h,p})})}mapNonLayerRepeat(e,n){var r;const{repeat:i,spec:s,data:o}=e,u=qc(e,["repeat","spec","data"]);!_e(i)&&e.columns&&(e=Co(e,["columns"]),Te(moe("repeat")));const a=[],{repeater:l={},repeaterPrefix:c=""}=n,f=!_e(i)&&i.row||[l?l.row:null],x=!_e(i)&&i.column||[l?l.column:null],h=_e(i)&&i||[l?l.repeat:null];for(const m of h)for(const g of f)for(const y of x){const E={repeat:m,row:g,column:y,layer:l.layer},A=(s.name||"")+c+"child__"+(_e(i)?`${mn(m)}`:(i.row?`row_${mn(g)}`:"")+(i.column?`column_${mn(y)}`:"")),S=this.map(s,Object.assign(Object.assign({},n),{repeater:E,repeaterPrefix:A}));S.name=A,a.push(Co(S,["data"]))}const p=_e(i)?e.columns:i.column?i.column.length:1;return Object.assign(Object.assign({data:(r=s.data)!==null&&r!==void 0?r:o,align:"all"},u),{columns:p,concat:a})}mapFacet(e,n){const{facet:r}=e;return b3(r)&&e.columns&&(e=Co(e,["columns"]),Te(moe("facet"))),super.mapFacet(e,n)}mapUnitWithParentEncodingOrProjection(e,n){const{encoding:r,projection:i}=e,{parentEncoding:s,parentProjection:o,config:u}=n,a=oae({parentProjection:o,projection:i}),l=sae({parentEncoding:s,encoding:B7(r,n.repeater)});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),a?{projection:a}:{}),l?{encoding:l}:{}),{config:u})}mapFacetedUnit(e,n){const r=e.encoding,{row:i,column:s,facet:o}=r,u=qc(r,["row","column","facet"]),{mark:a,width:l,projection:c,height:f,view:x,params:h,encoding:p}=e,m=qc(e,["mark","width","projection","height","view","params","encoding"]),{facetMapping:g,layout:y}=this.getFacetMappingAndLayout({row:i,column:s,facet:o},n),E=B7(u,n.repeater);return this.mapFacet(Object.assign(Object.assign(Object.assign({},m),y),{facet:g,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},l?{width:l}:{}),f?{height:f}:{}),x?{view:x}:{}),c?{projection:c}:{}),{mark:a,encoding:E}),h?{params:h}:{})}),n)}getFacetMappingAndLayout(e,n){var r;const{row:i,column:s,facet:o}=e;if(i||s){o&&Te(TXe([...i?[Vl]:[],...s?[Yl]:[]]));const u={},a={};for(const l of[Vl,Yl]){const c=e[l];if(c){const f=qc(c,["align","center","spacing","columns"]);u[l]=f;for(const x of["align","center","spacing"])c[x]!==void 0&&((r=a[x])!==null&&r!==void 0||(a[x]={}),a[x][l]=c[x])}}return{facetMapping:u,layout:a}}else{const{align:u,center:a,spacing:l,columns:c}=o,f=qc(o,["align","center","spacing","columns"]);return{facetMapping:EZe(f,n.repeater),layout:Object.assign(Object.assign(Object.assign(Object.assign({},u?{align:u}:{}),a?{center:a}:{}),l?{spacing:l}:{}),c?{columns:c}:{})}}}mapLayer(e,n){var{parentEncoding:r,parentProjection:i}=n,s=qc(n,["parentEncoding","parentProjection"]);const{encoding:o,projection:u}=e,a=qc(e,["encoding","projection"]),l=Object.assign(Object.assign({},s),{parentEncoding:sae({parentEncoding:r,encoding:o,layer:!0}),parentProjection:oae({parentProjection:i,projection:u})});return super.mapLayer(a,l)}}function sae({parentEncoding:t,encoding:e={},layer:n}){let r={};if(t){const i=new Set([...be(t),...be(e)]);for(const s of i){const o=e[s],u=t[s];if(it(o)){const a=Object.assign(Object.assign({},u),o);r[s]=a}else T3(o)?r[s]=Object.assign(Object.assign({},o),{condition:Object.assign(Object.assign({},u),o.condition)}):o||o===null?r[s]=o:(n||gu(u)||Ye(u)||it(u)||_e(u))&&(r[s]=u)}}else r=e;return!r||Wt(r)?void 0:r}function oae(t){const{parentProjection:e,projection:n}=t;return e&&n&&Te(dXe({parentProjection:e,projection:n})),n??e}function P7(t){return"filter"in t}function vZe(t){return(t==null?void 0:t.stop)!==void 0}function uae(t){return"lookup"in t}function _Ze(t){return"data"in t}function CZe(t){return"param"in t}function bZe(t){return"pivot"in t}function TZe(t){return"density"in t}function RZe(t){return"quantile"in t}function OZe(t){return"regression"in t}function NZe(t){return"loess"in t}function DZe(t){return"sample"in t}function FZe(t){return"window"in t}function wZe(t){return"joinaggregate"in t}function LZe(t){return"flatten"in t}function IZe(t){return"calculate"in t}function aae(t){return"bin"in t}function $Ze(t){return"impute"in t}function BZe(t){return"timeUnit"in t}function kZe(t){return"aggregate"in t}function PZe(t){return"stack"in t}function MZe(t){return"fold"in t}function jZe(t){return t.map(e=>P7(e)?{filter:R2(e.filter,AKe)}:e)}var Hc=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class UZe extends I7{map(e,n){var r,i;return(r=n.emptySelections)!==null&&r!==void 0||(n.emptySelections={}),(i=n.selectionPredicates)!==null&&i!==void 0||(n.selectionPredicates={}),e=lae(e,n),super.map(e,n)}mapLayerOrUnit(e,n){if(e=lae(e,n),e.encoding){const r={};for(const[i,s]of Ad(e.encoding))r[i]=cae(s,n);e=Object.assign(Object.assign({},e),{encoding:r})}return super.mapLayerOrUnit(e,n)}mapUnit(e,n){const r=e,{selection:i}=r,s=Hc(r,["selection"]);return i?Object.assign(Object.assign({},s),{params:Ad(i).map(([o,u])=>{var a;const l=u,{init:c,bind:f,empty:x}=l,h=Hc(l,["init","bind","empty"]);h.type==="single"?(h.type="point",h.toggle=!1):h.type==="multi"&&(h.type="point"),n.emptySelections[o]=x!=="none";for(const p of Pi((a=n.selectionPredicates[o])!==null&&a!==void 0?a:{}))p.empty=x!=="none";return{name:o,value:c,select:h,bind:f}})}):e}}function lae(t,e){const{transform:n}=t,r=Hc(t,["transform"]);if(n){const i=n.map(s=>{if(P7(s))return{filter:M7(s,e)};if(aae(s)&&Cd(s.bin))return Object.assign(Object.assign({},s),{bin:fae(s.bin)});if(uae(s)){const o=s.from,{selection:u}=o,a=Hc(o,["selection"]);return u?Object.assign(Object.assign({},s),{from:Object.assign({param:u},a)}):s}return s});return Object.assign(Object.assign({},r),{transform:i})}return t}function cae(t,e){var n,r;const i=ot(t);if(Le(i)&&Cd(i.bin)&&(i.bin=fae(i.bin)),Dd(i)&&(!((r=(n=i.scale)===null||n===void 0?void 0:n.domain)===null||r===void 0)&&r.selection)){const s=i.scale.domain,{selection:o}=s,u=Hc(s,["selection"]);i.scale.domain=Object.assign(Object.assign({},u),o?{param:o}:{})}if(DN(i))if(_e(i.condition))i.condition=i.condition.map(s=>{const{selection:o,param:u,test:a}=s,l=Hc(s,["selection","param","test"]);return u?s:Object.assign(Object.assign({},l),{test:M7(s,e)})});else{const s=cae(i.condition,e),{selection:o,param:u,test:a}=s,l=Hc(s,["selection","param","test"]);i.condition=u?i.condition:Object.assign(Object.assign({},l),{test:M7(i.condition,e)})}return i}function fae(t){const e=t.extent;if(e!=null&&e.selection){const{selection:n}=e,r=Hc(e,["selection"]);return Object.assign(Object.assign({},t),{extent:Object.assign(Object.assign({},r),{param:n})})}return t}function M7(t,e){const n=r=>R2(r,i=>{var s,o,u;const a=(s=e.emptySelections[i])!==null&&s!==void 0?s:!0,l={param:i,empty:a};return(o=(u=e.selectionPredicates)[i])!==null&&o!==void 0||(u[i]=[]),e.selectionPredicates[i].push(l),l});return t.selection?n(t.selection):R2(t.test||t.filter,r=>r.selection?n(r.selection):r)}class j7 extends I7{map(e,n){var r;const i=(r=n.selections)!==null&&r!==void 0?r:[];if(e.params&&!i0(e)){const s=[];for(const o of e.params)D7(o)?i.push(o):s.push(o);e.params=s}return n.selections=i,super.map(e,xae(e,n))}mapUnit(e,n){var r;const i=n.selections;if(!i||!i.length)return e;const s=((r=n.path)!==null&&r!==void 0?r:[]).concat(e.name),o=[];for(const u of i)if(!u.views||!u.views.length)o.push(u);else for(const a of u.views)(je(a)&&(a===e.name||s.indexOf(a)>=0)||_e(a)&&a.map(l=>s.indexOf(l)).every((l,c,f)=>l!==-1&&(c===0||l>f[c-1])))&&o.push(u);return o.length&&(e.params=o),e}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=j7.prototype[t];j7.prototype[t]=function(n,r){return e.call(this,n,xae(n,r))}}function xae(t,e){var n;return t.name?Object.assign(Object.assign({},e),{path:((n=e.path)!==null&&n!==void 0?n:[]).concat(t.name)}):e}function qZe(t,e){e===void 0&&(e=Xue(t.config));const n=GZe(t,e),{width:r,height:i}=t,s=WZe(n,{width:r,height:i,autosize:t.autosize},e);return Object.assign(Object.assign({},n),s?{autosize:s}:{})}const HZe=new SZe,zZe=new UZe,QZe=new j7;function GZe(t,e={}){const n={config:e};return QZe.map(HZe.map(zZe.map(t,n),n),n)}function dae(t){return je(t)?{type:t}:t??{}}function WZe(t,e,n){let{width:r,height:i}=e;const s=i0(t)||QN(t),o={};s?r=="container"&&i=="container"?(o.type="fit",o.contains="padding"):r=="container"?(o.type="fit-x",o.contains="padding"):i=="container"&&(o.type="fit-y",o.contains="padding"):(r=="container"&&(Te(xoe("width")),r=void 0),i=="container"&&(Te(xoe("height")),i=void 0));const u=Object.assign(Object.assign(Object.assign({type:"pad"},o),n?dae(n.autosize):{}),dae(t.autosize));if(u.type==="fit"&&!s&&(Te(KYe),u.type="pad"),r=="container"&&!(u.type=="fit"||u.type=="fit-x")&&Te(doe("width")),i=="container"&&!(u.type=="fit"||u.type=="fit-y")&&Te(doe("height")),!Gl(u,{type:"pad"}))return u}function VZe(t){return t==="fit"||t==="fit-x"||t==="fit-y"}function YZe(t){return t?`fit-${pN(t)}`:"fit"}const XZe=["background","padding"];function hae(t,e){const n={};for(const r of XZe)t&&t[r]!==void 0&&(n[r]=Hs(t[r]));return e&&(n.params=t.params),n}class o0{constructor(e={},n={}){this.explicit=e,this.implicit=n}clone(){return new o0(ot(this.explicit),ot(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return ir(this.explicit[e],this.implicit[e])}getWithExplicit(e){return this.explicit[e]!==void 0?{explicit:!0,value:this.explicit[e]}:this.implicit[e]!==void 0?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,{value:n,explicit:r}){n!==void 0&&this.set(e,n,r)}set(e,n,r){return delete this[r?"implicit":"explicit"][e],this[r?"explicit":"implicit"][e]=n,this}copyKeyFromSplit(e,{explicit:n,implicit:r}){n[e]!==void 0?this.set(e,n[e],!0):r[e]!==void 0&&this.set(e,r[e],!1)}copyKeyFromObject(e,n){n[e]!==void 0&&this.set(e,n[e],!0)}copyAll(e){for(const n of be(e.combine())){const r=e.getWithExplicit(n);this.setWithExplicit(n,r)}}}function Pa(t){return{explicit:!0,value:t}}function Qs(t){return{explicit:!1,value:t}}function pae(t){return(e,n,r,i)=>{const s=t(e.value,n.value);return s>0?e:s<0?n:GN(e,n,r,i)}}function GN(t,e,n,r){return t.explicit&&e.explicit&&Te(PXe(n,r,t.value,e.value)),t}function zc(t,e,n,r,i=GN){return t===void 0||t.value===void 0?e:t.explicit&&!e.explicit?t:e.explicit&&!t.explicit?e:Gl(t.value,e.value)?t:i(t,e,n,r)}class KZe extends o0{constructor(e={},n={},r=!1){super(e,n),this.explicit=e,this.implicit=n,this.parseNothing=r}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}function q2(t){return"url"in t}function D3(t){return"values"in t}function gae(t){return"name"in t&&!q2(t)&&!D3(t)&&!Qc(t)}function Qc(t){return t&&(mae(t)||yae(t)||U7(t))}function mae(t){return"sequence"in t}function yae(t){return"sphere"in t}function U7(t){return"graticule"in t}var Jt;(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"})(Jt||(Jt={}));var JZe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function H2(t,e=!0,n=Ai){if(_e(t)){const r=t.map(i=>H2(i,e,n));return e?`[${r.join(", ")}]`:r}else if(Td(t))return n(e?v3(t):lKe(t));return e?n(sn(t)):t}function ZZe(t,e){var n;for(const r of Pi((n=t.component.selection)!==null&&n!==void 0?n:{})){const i=r.name;let s=`${i}${Vc}, ${r.resolve==="global"?"true":`{unit: ${G2(t)}}`}`;for(const o of KN)o.defined(r)&&(o.signals&&(e=o.signals(t,r,e)),o.modifyExpr&&(s=o.modifyExpr(t,r,s)));e.push({name:i+Iet,on:[{events:{signal:r.name+Vc},update:`modify(${Fe(r.name+wd)}, ${s})`}]})}return q7(e)}function eet(t,e){if(t.component.selection&&be(t.component.selection).length){const n=Fe(t.getName("cell"));e.unshift({name:"facet",value:{},on:[{events:hd("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return q7(e)}function tet(t,e){var n;let r=!1;for(const i of Pi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=i.name,o=Fe(s+wd);if(e.filter(a=>a.name===s).length===0){const a=i.resolve==="global"?"union":i.resolve,l=i.type==="point"?", true, true)":")";e.push({name:i.name,update:`${Uae}(${o}, ${Fe(a)}${l}`})}r=!0;for(const a of KN)a.defined(i)&&a.topLevelSignals&&(e=a.topLevelSignals(t,i,e))}return r&&e.filter(s=>s.name==="unit").length===0&&e.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]}),q7(e)}function net(t,e){var n;const r=[...e];for(const i of Pi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s={name:i.name+wd};if(i.init){const u=i.project.items.map(a=>JZe(a,["signals"]));s.values=i.init.map(a=>({unit:G2(t,{escape:!1}),fields:u,values:H2(a,!1)}))}r.filter(u=>u.name===i.name+wd).length||r.push(s)}return r}function Eae(t,e){var n;for(const r of Pi((n=t.component.selection)!==null&&n!==void 0?n:{}))for(const i of KN)i.defined(r)&&i.marks&&(e=i.marks(t,r,e));return e}function ret(t,e){for(const n of t.children)zn(n)&&(e=Eae(n,e));return e}function iet(t,e,n,r){const i=Gae(t,e.param,e);return{signal:zs(n.get("type"))&&_e(r)&&r[0]>r[1]?`isValid(${i}) && reverse(${i})`:i}}function q7(t){return t.map(e=>(e.on&&!e.on.length&&delete e.on,e))}class Ut{constructor(e,n){this.debugName=n,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,n){if(this._children.includes(e)){Te(cXe);return}n!==void 0?this._children.splice(n,0,e):this._children.push(e)}removeChild(e){const n=this._children.indexOf(e);return this._children.splice(n,1),n}remove(){let e=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,e++)}insertAsParentOf(e){const n=e.parent;n.removeChild(this),this.parent=n,e.parent=this}swapWithParent(){const e=this._parent,n=e.parent;for(const r of this._children)r.parent=e;this._children=[],e.removeChild(this),e.parent.removeChild(e),this.parent=n,e.parent=this}}class qi extends Ut{constructor(e,n,r,i){super(e,n),this.type=r,this.refCounts=i,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}clone(){const e=new this.constructor;return e.debugName=`clone_${this.debugName}`,e._source=this._source,e._name=`clone_${this._name}`,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${gYe()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var Aae=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class Ma extends Ut{constructor(e,n){super(e),this.formula=n}clone(){return new Ma(null,ot(this.formula))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s)=>{const{field:o,timeUnit:u}=s;if(u){const a=$e(s,{forAs:!0});i[bt({as:a,field:o,timeUnit:u})]={as:a,field:o,timeUnit:u}}return i},{});return Wt(r)?null:new Ma(e,r)}static makeFromTransform(e,n){const r=Object.assign({},n),{timeUnit:i}=r,s=Aae(r,["timeUnit"]),o=ji(i),u=Object.assign(Object.assign({},s),{timeUnit:o});return new Ma(e,{[bt(u)]:u})}merge(e){this.formula=Object.assign({},this.formula);for(const n in e.formula)this.formula[n]||(this.formula[n]=e.formula[n]);for(const n of e.children)e.removeChild(n),n.parent=this;e.remove()}removeFormulas(e){const n={};for(const[r,i]of Ad(this.formula))e.has(i.as)||(n[r]=i);this.formula=n}producedFields(){return new Set(Pi(this.formula).map(e=>e.as))}dependentFields(){return new Set(Pi(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${bt(this.formula)}`}assemble(){const e=[];for(const n of Pi(this.formula)){const{field:r,as:i,timeUnit:s}=n,o=ji(s),{unit:u,utc:a}=o,l=Aae(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:fu(r),type:"timeunit"},u?{units:H8(u)}:{}),a?{timezone:"utc"}:{}),l),{as:[i,`${i}_end`]}))}return e}}var set=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const F3="_tuple_fields";class oet{constructor(...e){this.items=e,this.hasChannel={},this.hasField={}}}const uet={defined:()=>!0,parse:(t,e,n)=>{var r;const i=e.name,s=(r=e.project)!==null&&r!==void 0?r:e.project=new oet,o={},u={},a=new Set,l=(m,g)=>{const y=g==="visual"?m.channel:m.field;let E=mn(`${i}_${y}`);for(let A=1;a.has(E);A++)E=mn(`${i}_${y}_${A}`);return a.add(E),{[g]:E}},c=e.type,f=t.config.selection[c],x=n.value!==void 0?Pe(n.value):null;let{fields:h,encodings:p}=Qe(n.select)?n.select:{};if(!h&&!p&&x){for(const m of x)if(Qe(m))for(const g of be(m))TYe(g)?(p||(p=[])).push(g):c==="interval"?(Te(oXe),p=f.encodings):(h||(h=[])).push(g)}!h&&!p&&(p=f.encodings,"fields"in f&&(h=f.fields));for(const m of p??[]){const g=t.fieldDef(m);if(g){let y=g.field;if(g.aggregate){Te(JYe(m,g.aggregate));continue}else if(!y){Te(poe(m));continue}if(g.timeUnit){y=t.vgField(m);const E={timeUnit:g.timeUnit,as:y,field:g.field};u[bt(E)]=E}if(!o[y]){let E="E";if(c==="interval"){const S=t.getScaleComponent(m).get("type");zs(S)&&(E="R")}else g.bin&&(E="R-RE");const A={field:y,channel:m,type:E};A.signals=Object.assign(Object.assign({},l(A,"data")),l(A,"visual")),s.items.push(o[y]=A),s.hasField[y]=s.hasChannel[m]=o[y]}}else Te(poe(m))}for(const m of h??[]){if(s.hasField[m])continue;const g={type:"E",field:m};g.signals=Object.assign({},l(g,"data")),s.items.push(g),s.hasField[m]=g}x&&(e.init=x.map(m=>s.items.map(g=>Qe(m)?m[g.channel]!==void 0?m[g.channel]:m[g.field]:m))),Wt(u)||(s.timeUnit=new Ma(null,u))},signals:(t,e,n)=>{const r=e.name+F3;return n.filter(s=>s.name===r).length>0?n:n.concat({name:r,value:e.project.items.map(s=>{const o=set(s,["signals","hasLegend"]);return o.field=fu(o.field),o})})}},Gc={defined:t=>t.type==="interval"&&t.resolve==="global"&&t.bind&&t.bind==="scales",parse:(t,e)=>{const n=e.scales=[];for(const r of e.project.items){const i=r.channel;if(!kc(i))continue;const s=t.getScaleComponent(i),o=s?s.get("type"):void 0;if(!s||!zs(o)){Te(tXe);continue}s.set("selectionExtent",{param:e.name,field:r.field},!0),n.push(r)}},topLevelSignals:(t,e,n)=>{const r=e.scales.filter(o=>n.filter(u=>u.name===o.signals.data).length===0);if(!t.parent||z7(t)||r.length===0)return n;const i=n.filter(o=>o.name===e.name)[0];let s=i.update;if(s.indexOf(Uae)>=0)i.update=`{${r.map(o=>`${Fe(fu(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const u=`${Fe(fu(o.field))}: ${o.signals.data}`;s.includes(u)||(s=`${s.substring(0,s.length-1)}, ${u}}`)}i.update=s}return n.concat(r.map(o=>({name:o.signals.data})))},signals:(t,e,n)=>{if(t.parent&&!z7(t))for(const r of e.scales){const i=n.filter(s=>s.name===r.signals.data)[0];i.push="outer",delete i.value,delete i.update}return n}};function H7(t,e){return`domain(${Fe(t.scaleName(e))})`}function z7(t){var e;return t.parent&&Z2(t.parent)&&((e=!t.parent.parent)!==null&&e!==void 0?e:z7(t.parent.parent))}var aet=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const z2="_brush",Q7="_scale_trigger",cet={defined:t=>t.type==="interval",signals:(t,e,n)=>{const r=e.name,i=r+F3,s=Gc.defined(e),o=e.init?e.init[0]:null,u=[],a=[];if(e.translate&&!s){const c=`!event.item || event.item.mark.name !== ${Fe(r+z2)}`;Sae(e,(f,x)=>{var h,p;const m=Pe((h=(p=x.between[0]).filter)!==null&&h!==void 0?h:p.filter=[]);return m.includes(c)||m.push(c),f})}e.project.items.forEach((c,f)=>{const x=c.channel;if(x!==yn&&x!==_r){Te("Interval selections only support x and y encoding channels.");return}const h=o?o[f]:null,p=fet(t,e,c,h),m=c.signals.data,g=c.signals.visual,y=Fe(t.scaleName(x)),E=t.getScaleComponent(x).get("type"),A=zs(E)?"+":"";n.push(...p),u.push(m),a.push({scaleName:t.scaleName(x),expr:`(!isArray(${m}) || (${A}invert(${y}, ${g})[0] === ${A}${m}[0] && ${A}invert(${y}, ${g})[1] === ${A}${m}[1]))`})}),!s&&a.length&&n.push({name:r+Q7,value:{},on:[{events:a.map(c=>({scale:c.scaleName})),update:`${a.map(c=>c.expr).join(" && ")} ? ${r+Q7} : {}`}]});const l=`unit: ${G2(t)}, fields: ${i}, values`;return n.concat(Object.assign(Object.assign({name:r+Vc},o?{init:`{${l}: ${H2(o)}}`}:{}),u.length?{on:[{events:[{signal:u.join(" || ")}],update:`${u.join(" && ")} ? {${l}: [${u}]} : null`}]}:{}))},marks:(t,e,n)=>{const r=e.name,{x:i,y:s}=e.project.hasChannel,o=i==null?void 0:i.signals.visual,u=s==null?void 0:s.signals.visual,a=`data(${Fe(e.name+wd)})`;if(Gc.defined(e)||!i&&!s)return n;const l={x:i!==void 0?{signal:`${o}[0]`}:{value:0},y:s!==void 0?{signal:`${u}[0]`}:{value:0},x2:i!==void 0?{signal:`${o}[1]`}:{field:{group:"width"}},y2:s!==void 0?{signal:`${u}[1]`}:{field:{group:"height"}}};if(e.resolve==="global")for(const g of be(l))l[g]=[Object.assign({test:`${a}.length && ${a}[0].unit === ${G2(t)}`},l[g]),{value:0}];const c=e.mark,{fill:f,fillOpacity:x,cursor:h}=c,p=aet(c,["fill","fillOpacity","cursor"]),m=be(p).reduce((g,y)=>(g[y]=[{test:[i!==void 0&&`${o}[0] !== ${o}[1]`,s!==void 0&&`${u}[0] !== ${u}[1]`].filter(E=>E).join(" && "),value:p[y]},{value:null}],g),{});return[{name:`${r+z2}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:x}},update:l}},...n,{name:r+z2,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},h?{cursor:{value:h}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},l),m)}}]}};function fet(t,e,n,r){const i=n.channel,s=n.signals.visual,o=n.signals.data,u=Gc.defined(e),a=Fe(t.scaleName(i)),l=t.getScaleComponent(i),c=l?l.get("type"):void 0,f=m=>`scale(${a}, ${m})`,x=t.getSizeSignalRef(i===yn?"width":"height").signal,h=`${i}(unit)`,p=Sae(e,(m,g)=>[...m,{events:g.between[0],update:`[${h}, ${h}]`},{events:g,update:`[${s}[0], clamp(${h}, 0, ${x})]`}]);return p.push({events:{signal:e.name+Q7},update:zs(c)?`[${f(`${o}[0]`)}, ${f(`${o}[1]`)}]`:"[0, 0]"}),u?[{name:o,on:[]}]:[Object.assign(Object.assign({name:s},r?{init:H2(r,!0,f)}:{value:[]}),{on:p}),Object.assign(Object.assign({name:o},r?{init:H2(r)}:{}),{on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]})]}function Sae(t,e){return t.events.reduce((n,r)=>r.between?e(n,r):(Te(`${r} is not an ordered event stream for interval selections.`),n),[])}const xet={defined:t=>t.type==="point",signals:(t,e,n)=>{var r;const i=e.name,s=i+F3,o=e.project,u="(item().isVoronoi ? datum.datum : datum)",a=o.items.map(h=>{const p=t.fieldDef(h.channel);return p!=null&&p.bin?`[${u}[${Fe(t.vgField(h.channel,{}))}], ${u}[${Fe(t.vgField(h.channel,{binSuffix:"end"}))}]]`:`${u}[${Fe(h.field)}]`}).join(", "),l=`unit: ${G2(t)}, fields: ${s}, values`,c=e.events,f=Pi((r=t.component.selection)!==null&&r!==void 0?r:{}).reduce((h,p)=>p.type==="interval"?h.concat(p.name+z2):h,[]).map(h=>`indexof(item().mark.name, '${h}') < 0`).join(" && "),x=`datum && item().mark.marktype !== 'group'${f?` && ${f}`:""}`;return n.concat([{name:i+Vc,on:c?[{events:c,update:`${x} ? {${l}: [${a}]} : null`,force:!0}]:[]}])}};function Q2(t,e,n,r){const i=DN(e)&&e.condition,s=r(e);if(i){const u=Pe(i).map(a=>{const l=r(a);if(rJe(a)){const{param:c,empty:f}=a,x=Qae(t,{param:c,empty:f});return Object.assign({test:x},l)}else{const c=JN(t,a.test);return Object.assign({test:c},l)}});return{[n]:[...u,...s!==void 0?[s]:[]]}}else return s!==void 0?{[n]:s}:{}}function G7(t,e="text"){const n=t.encoding[e];return Q2(t,n,e,r=>WN(r,t.config))}function WN(t,e,n="datum"){if(t){if(gu(t))return on(t.value);if(it(t)){const{format:r,formatType:i}=LN(t);return a7({fieldOrDatumDef:t,format:r,formatType:i,expr:n,config:e})}}}function vae(t,e={}){const{encoding:n,markDef:r,config:i,stack:s}=t,o=n.tooltip;if(_e(o))return{tooltip:Cae({tooltip:o},s,i,e)};{const u=e.reactiveGeom?"datum.datum":"datum";return Q2(t,o,"tooltip",a=>{const l=WN(a,i,u);if(l)return l;if(a===null)return;let c=kt("tooltip",r,i);if(c===!0&&(c={content:"encoding"}),je(c))return{value:c};if(Qe(c))return Ye(c)?c:c.content==="encoding"?Cae(n,s,i,e):{signal:u}})}}function _ae(t,e,n,{reactiveGeom:r}={}){const i={},s=r?"datum.datum":"datum",o=[];function u(l,c){const f=_d(c),x=Ro(l)?l:Object.assign(Object.assign({},l),{type:t[f].type}),h=x.title||m7(x,n),p=Pe(h).join(", ");let m;if(kr(c)){const g=c==="x"?"x2":"y2",y=Ba(t[g]);if(Mi(x.bin)&&y){const E=$e(x,{expr:s}),A=$e(y,{expr:s}),{format:S,formatType:v}=LN(x);m=RN(E,A,S,v,n),i[g]=!0}else if(e&&e.fieldChannel===c&&e.offset==="normalize"){const{format:E,formatType:A}=LN(x);m=a7({fieldOrDatumDef:x,format:E,formatType:A,expr:s,config:n,normalizeStack:!0}).signal}}m??(m=WN(x,n,s).signal),o.push({channel:c,key:p,value:m})}S7(t,(l,c)=>{Le(l)?u(l,c):FN(l)&&u(l.condition,c)});const a={};for(const{channel:l,key:c,value:f}of o)!i[l]&&!a[c]&&(a[c]=f);return a}function Cae(t,e,n,{reactiveGeom:r}={}){const i=_ae(t,e,n,{reactiveGeom:r}),s=Ad(i).map(([o,u])=>`"${o}": ${u}`);return s.length>0?{signal:`{${s.join(", ")}}`}:void 0}function det(t){const{markDef:e,config:n}=t,r=kt("aria",e,n);return r===!1?{}:Object.assign(Object.assign(Object.assign({},r?{aria:r}:{}),het(t)),pet(t))}function het(t){const{mark:e,markDef:n,config:r}=t;if(r.aria===!1)return{};const i=kt("ariaRoleDescription",n,r);return i!=null?{ariaRoleDescription:{value:i}}:e in VYe?{}:{ariaRoleDescription:{value:e}}}function pet(t){const{encoding:e,markDef:n,config:r,stack:i}=t,s=e.description;if(s)return Q2(t,s,"description",a=>WN(a,t.config));const o=kt("description",n,r);if(o!=null)return{description:on(o)};if(r.aria===!1)return{};const u=_ae(e,i,r);if(!Wt(u))return{description:{signal:Ad(u).map(([a,l],c)=>`"${c>0?"; ":""}${a}: " + (${l})`).join(" + ")}}}function br(t,e,n={}){const{markDef:r,encoding:i,config:s}=e,{vgChannel:o}=n;let{defaultRef:u,defaultValue:a}=n;u===void 0&&(a??(a=kt(t,r,s,{vgChannel:o,ignoreVgConfig:!0})),a!==void 0&&(u=on(a)));const l=i[t];return Q2(e,l,o??t,c=>u7({channel:t,channelDef:c,markDef:r,config:s,scaleName:e.scaleName(t),scale:e.getScaleComponent(t),stack:null,defaultRef:u}))}function bae(t,e={filled:void 0}){var n,r,i,s;const{markDef:o,encoding:u,config:a}=t,{type:l}=o,c=(n=e.filled)!==null&&n!==void 0?n:kt("filled",o,a),f=Tt(["bar","point","circle","square","geoshape"],l)?"transparent":void 0,x=(i=(r=kt(c===!0?"color":void 0,o,a,{vgChannel:"fill"}))!==null&&r!==void 0?r:a.mark[c===!0&&"color"])!==null&&i!==void 0?i:f,h=(s=kt(c===!1?"color":void 0,o,a,{vgChannel:"stroke"}))!==null&&s!==void 0?s:a.mark[c===!1&&"color"],p=c?"fill":"stroke",m=Object.assign(Object.assign({},x?{fill:on(x)}:{}),h?{stroke:on(h)}:{});return o.color&&(c?o.fill:o.stroke)&&Te(Soe("property",{fill:"fill"in o,stroke:"stroke"in o})),Object.assign(Object.assign(Object.assign(Object.assign({},m),br("color",t,{vgChannel:p,defaultValue:c?x:h})),br("fill",t,{defaultValue:u.fill?x:void 0})),br("stroke",t,{defaultValue:u.stroke?h:void 0}))}function get(t){const{encoding:e,mark:n}=t,r=e.order;return!Uc(n)&&gu(r)?Q2(t,r,"zindex",i=>on(i.value)):{}}function w3({channel:t,markDef:e,encoding:n={},model:r,bandPosition:i}){const s=`${t}Offset`,o=e[s],u=n[s];if((s==="xOffset"||s==="yOffset")&&u)return{offsetType:"encoding",offset:u7({channel:s,channelDef:u,markDef:e,config:r==null?void 0:r.config,scaleName:r.scaleName(s),scale:r.getScaleComponent(s),stack:null,defaultRef:on(o),bandPosition:i})};const a=e[s];return a?{offsetType:"visual",offset:a}:{}}function ai(t,e,{defaultPos:n,vgChannel:r}){const{encoding:i,markDef:s,config:o,stack:u}=e,a=i[t],l=i[e0(t)],c=e.scaleName(t),f=e.getScaleComponent(t),{offset:x,offsetType:h}=w3({channel:t,markDef:s,encoding:i,model:e,bandPosition:.5}),p=W7({model:e,defaultPos:n,channel:t,scaleName:c,scale:f}),m=!a&&kr(t)&&(i.latitude||i.longitude)?{field:e.getName(t)}:met({channel:t,channelDef:a,channel2Def:l,markDef:s,config:o,scaleName:c,scale:f,stack:u,offset:x,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return m?{[r||t]:m}:void 0}function met(t){const{channel:e,channelDef:n,scaleName:r,stack:i,offset:s,markDef:o}=t;if(it(n)&&i&&e===i.fieldChannel){if(Le(n)){let u=n.bandPosition;if(u===void 0&&o.type==="text"&&(e==="radius"||e==="theta")&&(u=.5),u!==void 0)return TN({scaleName:r,fieldOrDatumDef:n,startSuffix:"start",bandPosition:u,offset:s})}return Od(n,r,{suffix:"end"},{offset:s})}return s7(t)}function W7({model:t,defaultPos:e,channel:n,scaleName:r,scale:i}){const{markDef:s,config:o}=t;return()=>{const u=_d(n),a=Bc(n),l=kt(n,s,o,{vgChannel:a});if(l!==void 0)return C3(n,l);switch(e){case"zeroOrMin":case"zeroOrMax":if(r){const c=i.get("type");if(!Tt([ys.LOG,ys.TIME,ys.UTC],c)){if(i.domainDefinitelyIncludesZero())return{scale:r,value:0}}}if(e==="zeroOrMin")return u==="y"?{field:{group:"height"}}:{value:0};switch(u){case"radius":return{signal:`min(${t.width.signal},${t.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":{const c=t[gs(n)];return Object.assign(Object.assign({},c),{mult:.5})}}}}const yet={left:"x",center:"xc",right:"x2"},Eet={top:"y",middle:"yc",bottom:"y2"};function Tae(t,e,n,r="middle"){if(t==="radius"||t==="theta")return Bc(t);const i=t==="x"?"align":"baseline",s=kt(i,e,n);let o;return Ye(s)?(Te(RXe(i)),o=void 0):o=s,t==="x"?yet[o||(r==="top"?"left":"center")]:Eet[o||r]}function VN(t,e,{defaultPos:n,defaultPos2:r,range:i}){return i?Rae(t,e,{defaultPos:n,defaultPos2:r}):ai(t,e,{defaultPos:n})}function Rae(t,e,{defaultPos:n,defaultPos2:r}){const{markDef:i,config:s}=e,o=e0(t),u=gs(t),a=Aet(e,r,o),l=a[u]?Tae(t,i,s):Bc(t);return Object.assign(Object.assign({},ai(t,e,{defaultPos:n,vgChannel:l})),a)}function Aet(t,e,n){const{encoding:r,mark:i,markDef:s,stack:o,config:u}=t,a=_d(n),l=gs(n),c=Bc(n),f=r[a],x=t.scaleName(a),h=t.getScaleComponent(a),{offset:p}=n in r||n in s?w3({channel:n,markDef:s,encoding:r,model:t}):w3({channel:a,markDef:s,encoding:r,model:t});if(!f&&(n==="x2"||n==="y2")&&(r.latitude||r.longitude)){const g=gs(n),y=t.markDef[g];return y!=null?{[g]:{value:y}}:{[c]:{field:t.getName(n)}}}const m=vet({channel:n,channelDef:f,channel2Def:r[n],markDef:s,config:u,scaleName:x,scale:h,stack:o,offset:p,defaultRef:void 0});return m!==void 0?{[c]:m}:YN(n,s)||YN(n,{[n]:yN(n,s,u.style),[l]:yN(l,s,u.style)})||YN(n,u[i])||YN(n,u.mark)||{[c]:W7({model:t,defaultPos:e,channel:n,scaleName:x,scale:h})()}}function vet({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l}){return it(e)&&u&&t.charAt(0)===u.fieldChannel.charAt(0)?Od(e,s,{suffix:"start"},{offset:a}):s7({channel:t,channelDef:n,scaleName:s,scale:o,stack:u,markDef:r,config:i,offset:a,defaultRef:l})}function YN(t,e){const n=gs(t),r=Bc(t);if(e[r]!==void 0)return{[r]:C3(t,e[r])};if(e[t]!==void 0)return{[r]:C3(t,e[t])};if(e[n]){const i=e[n];if(k2(i))Te(AXe(n));else return{[n]:C3(t,i)}}}function Wc(t,e){var n,r;const{config:i,encoding:s,markDef:o}=t,u=o.type,a=e0(e),l=gs(e),c=s[e],f=s[a],x=t.getScaleComponent(e),h=x?x.get("type"):void 0,p=o.orient,m=(r=(n=s[l])!==null&&n!==void 0?n:s.size)!==null&&r!==void 0?r:kt("size",o,i,{vgChannel:l}),g=u==="bar"&&(e==="x"?p==="vertical":p==="horizontal");return Le(c)&&(Kt(c.bin)||Mi(c.bin)||c.timeUnit&&!f)&&!(m&&!k2(m))&&!Cr(h)?bet({fieldDef:c,fieldDef2:f,channel:e,model:t}):(it(c)&&Cr(h)||g)&&!f?Cet(c,e,t):Rae(e,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function _et(t,e,n,r,i){if(k2(i))if(n){const o=n.get("type");if(o==="band")return{scale:e,band:i.band};i.band!==1&&(Te(FXe(o)),i=void 0)}else return{mult:i.band,field:{group:t}};else{if(Ye(i))return i;if(i)return{value:i}}if(n){const o=n.get("range");if(jc(o)&&nn(o.step))return{value:o.step-2}}return{value:HN(r.view,t)-2}}function Cet(t,e,n){const{markDef:r,encoding:i,config:s,stack:o}=n,u=r.orient,a=n.scaleName(e),l=n.getScaleComponent(e),c=gs(e),f=e0(e),x=OYe(e),h=n.scaleName(x),p=u==="horizontal"&&e==="y"||u==="vertical"&&e==="x";let m;(i.size||r.size)&&(p?m=br("size",n,{vgChannel:c,defaultRef:on(r.size)}):Te($Xe(r.type)));const g=aue({channel:e,fieldDef:t,markDef:r,config:s,scaleType:l==null?void 0:l.get("type"),useVlSizeChannel:p});m=m||{[c]:_et(c,h||a,l,s,g)};const y=(l==null?void 0:l.get("type"))!=="band"||!("band"in m[c])?"middle":"top",E=Tae(e,r,s,y),A=E==="xc"||E==="yc",{offset:S,offsetType:v}=w3({channel:e,markDef:r,encoding:i,model:n,bandPosition:A?.5:0}),_=s7({channel:e,channelDef:t,markDef:r,config:s,scaleName:a,scale:l,stack:o,offset:S,defaultRef:W7({model:n,defaultPos:"mid",channel:e,scaleName:a,scale:l}),bandPosition:A?v==="encoding"?0:.5:Ye(g)?{signal:`(1-${g})/2`}:k2(g)?(1-g.band)/2:0});if(c)return Object.assign({[E]:_},m);{const C=Bc(f),b=m[c],O=S?Object.assign(Object.assign({},b),{offset:S}):b;return{[E]:_,[C]:_e(_)?[_[0],Object.assign(Object.assign({},_[1]),{offset:O})]:Object.assign(Object.assign({},_),{offset:O})}}}function L3(t,e,n,r,i){if(Hse(t))return 0;const s=t==="x"||t==="y2"?-e/2:e/2;if(Ye(n)||Ye(i)||Ye(r)){const o=r0(n),u=r0(i),a=r0(r),l=a?`${a} + `:"",c=o?`(${o} ? -1 : 1) * `:"",f=u?`(${u} + ${s})`:s;return{signal:l+c+f}}else return i=i||0,r+(n?-i-s:+i+s)}function bet({fieldDef:t,fieldDef2:e,channel:n,model:r}){var i,s,o;const{config:u,markDef:a,encoding:l}=r,c=r.getScaleComponent(n),f=r.scaleName(n),x=c?c.get("type"):void 0,h=c.get("reverse"),p=aue({channel:n,fieldDef:t,markDef:a,config:u,scaleType:x}),m=(i=r.component.axes[n])===null||i===void 0?void 0:i[0],g=(s=m==null?void 0:m.get("translate"))!==null&&s!==void 0?s:.5,y=kr(n)&&(o=kt("binSpacing",a,u))!==null&&o!==void 0?o:0,E=e0(n),A=Bc(n),S=Bc(E),{offset:v}=w3({channel:n,markDef:a,encoding:l,model:r,bandPosition:0}),_=Ye(p)?{signal:`(1-${p.signal})/2`}:k2(p)?(1-p.band)/2:.5;if(Kt(t.bin)||t.timeUnit)return{[S]:Oae({fieldDef:t,scaleName:f,bandPosition:_,offset:L3(E,y,h,g,v)}),[A]:Oae({fieldDef:t,scaleName:f,bandPosition:Ye(_)?{signal:`1-${_.signal}`}:1-_,offset:L3(n,y,h,g,v)})};if(Mi(t.bin)){const C=Od(t,f,{},{offset:L3(E,y,h,g,v)});if(Le(e))return{[S]:C,[A]:Od(e,f,{},{offset:L3(n,y,h,g,v)})};if(Cd(t.bin)&&t.bin.step)return{[S]:C,[A]:{signal:`scale("${f}", ${$e(t,{expr:"datum"})} + ${t.bin.step})`,offset:L3(n,y,h,g,v)}}}Te(Toe(E))}function Oae({fieldDef:t,scaleName:e,bandPosition:n,offset:r}){return TN({scaleName:e,fieldOrDatumDef:t,bandPosition:n,offset:r})}const Tet=new Set(["aria","width","height"]);function Oo(t,e){const{fill:n=void 0,stroke:r=void 0}=e.color==="include"?bae(t):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Ret(t.markDef,e)),Nae(t,"fill",n)),Nae(t,"stroke",r)),br("opacity",t)),br("fillOpacity",t)),br("strokeOpacity",t)),br("strokeWidth",t)),br("strokeDash",t)),get(t)),vae(t)),G7(t,"href")),det(t))}function Nae(t,e,n){const{config:r,mark:i,markDef:s}=t;if(kt("invalid",s,r)==="hide"&&n&&!Uc(i)){const u=Oet(t,{invalid:!0,channels:gN});if(u)return{[e]:[{test:u,value:null},...Pe(n)]}}return n?{[e]:n}:{}}function Ret(t,e){return WYe.reduce((n,r)=>(!Tet.has(r)&&t[r]!==void 0&&e[r]!=="ignore"&&(n[r]=on(t[r])),n),{})}function Oet(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&zs(a)&&(s[l]=!0)}return s},{}),i=be(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>o7(o,e)).join(` ${s} `)}}function V7(t){const{config:e,markDef:n}=t;if(kt("invalid",n,e)){const i=Net(t,{channels:Da});if(i)return{defined:{signal:i}}}return{}}function Net(t,{invalid:e=!1,channels:n}){const r=n.reduce((s,o)=>{const u=t.getScaleComponent(o);if(u){const a=u.get("type"),l=t.vgField(o,{expr:"datum"});l&&zs(a)&&(s[l]=!0)}return s},{}),i=be(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>o7(o,e)).join(` ${s} `)}}function Dae(t,e){if(e!==void 0)return{[t]:on(e)}}const Y7="voronoi",Fae={defined:t=>t.type==="point"&&t.nearest,parse:(t,e)=>{if(e.events)for(const n of e.events)n.markname=t.getName(Y7)},marks:(t,e,n)=>{const{x:r,y:i}=e.project.hasChannel,s=t.mark;if(Uc(s))return Te(ZYe(s)),n;const o={name:t.getName(Y7),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},vae(t,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let u=0,a=!1;return n.forEach((l,c)=>{var f;const x=(f=l.name)!==null&&f!==void 0?f:"";x===t.component.mark[0].name?u=c:x.indexOf(Y7)>=0&&(a=!0)}),a||n.splice(u+1,0,o),n}},wae={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!O7(t.bind),parse:(t,e,n)=>qae(e,n),topLevelSignals:(t,e,n)=>{const r=e.name,i=e.project,s=e.bind,o=e.init&&e.init[0],u=Fae.defined(e)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((a,l)=>{var c,f;const x=mn(`${r}_${a.field}`);n.filter(p=>p.name===x).length||n.unshift(Object.assign(Object.assign({name:x},o?{init:H2(o[l])}:{value:null}),{on:e.events?[{events:e.events,update:`datum && item().mark.marktype !== 'group' ? ${u}[${Fe(a.field)}] : null`}]:[],bind:(f=(c=s[a.field])!==null&&c!==void 0?c:s[a.channel])!==null&&f!==void 0?f:s}))}),n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.filter(l=>l.name===r+Vc)[0],o=r+F3,u=i.items.map(l=>mn(`${r}_${l.field}`)),a=u.map(l=>`${l} !== null`).join(" && ");return u.length&&(s.update=`${a} ? {fields: ${o}, values: [${u.join(", ")}]} : null`),delete s.value,delete s.on,n}},XN="_toggle",Lae={defined:t=>t.type==="point"&&!!t.toggle,signals:(t,e,n)=>n.concat({name:e.name+XN,value:!1,on:[{events:e.events,update:e.toggle}]}),modifyExpr:(t,e)=>{const n=e.name+Vc,r=e.name+XN;return`${r} ? null : ${n}, `+(e.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${G2(t)}}, `)+`${r} ? ${n} : null`}},Det={defined:t=>t.clear!==void 0&&t.clear!==!1,parse:(t,e)=>{e.clear&&(e.clear=je(e.clear)?hd(e.clear,"view"):e.clear)},topLevelSignals:(t,e,n)=>{if(wae.defined(e))for(const r of e.project.items){const i=n.findIndex(s=>s.name===mn(`${e.name}_${r.field}`));i!==-1&&n[i].on.push({events:e.clear,update:"null"})}return n},signals:(t,e,n)=>{function r(i,s){i!==-1&&n[i].on&&n[i].on.push({events:e.clear,update:s})}if(e.type==="interval")for(const i of e.project.items){const s=n.findIndex(o=>o.name===i.signals.visual);if(r(s,"[0, 0]"),s===-1){const o=n.findIndex(u=>u.name===i.signals.data);r(o,"null")}}else{let i=n.findIndex(s=>s.name===e.name+Vc);r(i,"null"),Lae.defined(e)&&(i=n.findIndex(s=>s.name===e.name+XN),r(i,"false"))}return n}},Iae={defined:t=>{const e=t.resolve==="global"&&t.bind&&O7(t.bind),n=t.project.items.length===1&&t.project.items[0].field!==N3;return e&&!n&&Te(nXe),e&&n},parse:(t,e,n)=>{var r;const i=ot(n);if(i.select=je(i.select)?{type:i.select,toggle:e.toggle}:Object.assign(Object.assign({},i.select),{toggle:e.toggle}),qae(e,i),Qe(n.select)&&(n.select.on||n.select.clear)){const u='event.item && indexof(event.item.mark.role, "legend") < 0';for(const a of e.events)a.filter=Pe((r=a.filter)!==null&&r!==void 0?r:[]),a.filter.includes(u)||a.filter.push(u)}const s=N7(e.bind)?e.bind.legend:"click",o=je(s)?hd(s,"view"):Pe(s);e.bind={legend:{merge:o}}},topLevelSignals:(t,e,n)=>{const r=e.name,i=N7(e.bind)&&e.bind.legend,s=o=>u=>{const a=ot(u);return a.markname=o,a};for(const o of e.project.items){if(!o.hasLegend)continue;const u=`${mn(o.field)}_legend`,a=`${r}_${u}`;if(n.filter(c=>c.name===a).length===0){const c=i.merge.map(s(`${u}_symbols`)).concat(i.merge.map(s(`${u}_labels`))).concat(i.merge.map(s(`${u}_entries`)));n.unshift(Object.assign(Object.assign({name:a},e.init?{}:{value:null}),{on:[{events:c,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${a}`,force:!0}]}))}}return n},signals:(t,e,n)=>{const r=e.name,i=e.project,s=n.find(x=>x.name===r+Vc),o=r+F3,u=i.items.filter(x=>x.hasLegend).map(x=>mn(`${r}_${mn(x.field)}_legend`)),l=`${u.map(x=>`${x} !== null`).join(" && ")} ? {fields: ${o}, values: [${u.join(", ")}]} : null`;e.events&&u.length>0?s.on.push({events:u.map(x=>({signal:x})),update:l}):u.length>0&&(s.update=l,delete s.value,delete s.on);const c=n.find(x=>x.name===r+XN),f=N7(e.bind)&&e.bind.legend;return c&&(e.events?c.on.push(Object.assign(Object.assign({},c.on[0]),{events:f})):c.on[0].events=f),n}};function Fet(t,e,n){var r,i,s,o;const u=(r=t.fieldDef(e))===null||r===void 0?void 0:r.field;for(const a of Pi((i=t.component.selection)!==null&&i!==void 0?i:{})){const l=(s=a.project.hasField[u])!==null&&s!==void 0?s:a.project.hasChannel[e];if(l&&Iae.defined(a)){const c=(o=n.get("selections"))!==null&&o!==void 0?o:[];c.push(a.name),n.set("selections",c,!1),l.hasLegend=!0}}}const $ae="_translate_anchor",Bae="_translate_delta",wet={defined:t=>t.type==="interval"&&t.translate,signals:(t,e,n)=>{const r=e.name,i=Gc.defined(e),s=r+$ae,{x:o,y:u}=e.project.hasChannel;let a=hd(e.translate,"scope");return i||(a=a.map(l=>(l.between[0].markname=r+z2,l))),n.push({name:s,value:{},on:[{events:a.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(o!==void 0?`, extent_x: ${i?H7(t,yn):`slice(${o.signals.visual})`}`:"")+(u!==void 0?`, extent_y: ${i?H7(t,_r):`slice(${u.signals.visual})`}`:"")+"}"}]},{name:r+Bae,value:{},on:[{events:a,update:`{x: ${s}.x - x(unit), y: ${s}.y - y(unit)}`}]}),o!==void 0&&kae(t,e,o,"width",n),u!==void 0&&kae(t,e,u,"height",n),n}};function kae(t,e,n,r,i){var s,o;const u=e.name,a=u+$ae,l=u+Bae,c=n.channel,f=Gc.defined(e),x=i.filter(C=>C.name===n.signals[f?"data":"visual"])[0],h=t.getSizeSignalRef(r).signal,p=t.getScaleComponent(c),m=p.get("type"),g=p.get("reverse"),y=f?c===yn?g?"":"-":g?"-":"":"",E=`${a}.extent_${c}`,A=`${y}${l}.${c} / ${f?`${h}`:`span(${E})`}`,S=f?m==="log"?"panLog":m==="symlog"?"panSymlog":m==="pow"?"panPow":"panLinear":"panLinear",v=f?m==="pow"?`, ${(s=p.get("exponent"))!==null&&s!==void 0?s:1}`:m==="symlog"?`, ${(o=p.get("constant"))!==null&&o!==void 0?o:1}`:"":"",_=`${S}(${E}, ${A}${v})`;x.on.push({events:{signal:l},update:f?_:`clampRange(${_}, 0, ${h})`})}const Pae="_zoom_anchor",Mae="_zoom_delta",Let={defined:t=>t.type==="interval"&&t.zoom,signals:(t,e,n)=>{const r=e.name,i=Gc.defined(e),s=r+Mae,{x:o,y:u}=e.project.hasChannel,a=Fe(t.scaleName(yn)),l=Fe(t.scaleName(_r));let c=hd(e.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+z2,f))),n.push({name:r+Pae,on:[{events:c,update:i?"{"+[a?`x: invert(${a}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>!!f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:s,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),o!==void 0&&jae(t,e,o,"width",n),u!==void 0&&jae(t,e,u,"height",n),n}};function jae(t,e,n,r,i){var s,o;const u=e.name,a=n.channel,l=Gc.defined(e),c=i.filter(S=>S.name===n.signals[l?"data":"visual"])[0],f=t.getSizeSignalRef(r).signal,x=t.getScaleComponent(a),h=x.get("type"),p=l?H7(t,a):c.name,m=u+Mae,g=`${u}${Pae}.${a}`,y=l?h==="log"?"zoomLog":h==="symlog"?"zoomSymlog":h==="pow"?"zoomPow":"zoomLinear":"zoomLinear",E=l?h==="pow"?`, ${(s=x.get("exponent"))!==null&&s!==void 0?s:1}`:h==="symlog"?`, ${(o=x.get("constant"))!==null&&o!==void 0?o:1}`:"":"",A=`${y}(${p}, ${g}, ${m}${E})`;c.on.push({events:{signal:m},update:l?A:`clampRange(${A}, 0, ${f})`})}const wd="_store",Vc="_tuple",Iet="_modify",Uae="vlSelectionResolve",KN=[xet,cet,uet,Lae,wae,Gc,Iae,Det,wet,Let,Fae];function $et(t){let e=t.parent;for(;e&&!Eu(e);)e=e.parent;return e}function G2(t,{escape:e}={escape:!0}){let n=e?Fe(t.name):t.name;const r=$et(t);if(r){const{facet:i}=r;for(const s of To)i[s]&&(n+=` + '__facet_${s}_' + (facet[${Fe(r.vgField(s))}])`)}return n}function X7(t){var e;return Pi((e=t.component.selection)!==null&&e!==void 0?e:{}).reduce((n,r)=>n||r.project.items.some(i=>i.field===N3),!1)}function qae(t,e){(je(e.select)||!e.select.on)&&delete t.events,(je(e.select)||!e.select.clear)&&delete t.clear,(je(e.select)||!e.select.toggle)&&delete t.toggle}function K7(t){const e=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(e.push(...K7(t.object)),e.push(...K7(t.property))),e)}function Hae(t){return t.object.type==="MemberExpression"?Hae(t.object):t.object.name==="datum"}function zae(t){const e=_re(t),n=new Set;return e.visit(r=>{r.type==="MemberExpression"&&Hae(r)&&n.add(K7(r).slice(1).join("."))}),n}class W2 extends Ut{constructor(e,n,r){super(e),this.model=n,this.filter=r,this.expr=JN(this.model,this.filter,this),this._dependentFields=zae(this.expr)}clone(){return new W2(null,this.model,ot(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Bet(t,e){var n;const r={},i=t.config.selection;if(!e||!e.length)return r;for(const s of e){const o=mn(s.name),u=s.select,a=je(u)?u:u.type,l=Qe(u)?ot(u):{type:a},c=i[a];for(const x in c)x==="fields"||x==="encodings"||(x==="mark"&&(l[x]=Object.assign(Object.assign({},c[x]),l[x])),(l[x]===void 0||l[x]===!0)&&(l[x]=(n=c[x])!==null&&n!==void 0?n:l[x]));const f=r[o]=Object.assign(Object.assign({},l),{name:o,type:a,init:s.value,bind:s.bind,events:je(l.on)?hd(l.on,"scope"):Pe(ot(l.on))});for(const x of KN)x.defined(f)&&x.parse&&x.parse(t,f,s)}return r}function Qae(t,e,n,r="datum"){const i=je(e)?e:e.param,s=mn(i),o=Fe(s+wd);let u;try{u=t.getSelectionComponent(s,i)}catch{return`!!${s}`}if(u.project.timeUnit){const c=n??t.component.data.raw,f=u.project.timeUnit.clone();c.parent?f.insertAsParentOf(c):c.parent=f}const a=`vlSelectionTest(${o}, ${r}${u.resolve==="global"?")":`, ${Fe(u.resolve)})`}`,l=`length(data(${o}))`;return e.empty===!1?`${l} && ${a}`:`!${l} || ${a}`}function Gae(t,e,n){const r=mn(e),i=n.encoding;let s=n.field,o;try{o=t.getSelectionComponent(r,e)}catch{return r}if(!i&&!s)s=o.project.items[0].field,o.project.items.length>1&&Te(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${Fe(s)}.`);else if(i&&!s){const u=o.project.items.filter(a=>a.channel===i);!u.length||u.length>1?(s=o.project.items[0].field,Te((u.length?"Multiple ":"No ")+`matching ${Fe(i)} encoding found for selection ${Fe(n.param)}. Using "field": ${Fe(s)}.`)):s=u[0].field}return`${o.name}[${Fe(fu(s))}]`}function ket(t,e){var n;for(const[r,i]of Ad((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=t.getName(`lookup_${r}`);t.component.data.outputNodes[s]=i.materialized=new qi(new W2(e,t,{param:r}),s,Jt.Lookup,t.component.data.outputNodeRefCounts)}}function JN(t,e,n){return uN(e,r=>je(r)?r:mKe(r)?Qae(t,r,n):Ioe(r))}var ZN=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Pet(t,e){if(t)return _e(t)&&!Mc(t)?t.map(n=>m7(n,e)).join(", "):t}function J7(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function I3(t,e,n,r={header:!1}){var i,s;const o=t.combine(),{disable:u,orient:a,scale:l,labelExpr:c,title:f,zindex:x}=o,h=ZN(o,["disable","orient","scale","labelExpr","title","zindex"]);if(!u){for(const p in h){const m=mJe[p],g=h[p];if(m&&m!==e&&m!=="both")delete h[p];else if(O3(g)){const{condition:y}=g,E=ZN(g,["condition"]),A=Pe(y),S=mue[p];if(S){const{vgProp:v,part:_}=S,C=[...A.map(b=>{const{test:O}=b,R=ZN(b,["test"]);return Object.assign({test:JN(null,O)},R)}),E];J7(h,_,v,C),delete h[p]}else if(S===null){const v={signal:A.map(_=>{const{test:C}=_,b=ZN(_,["test"]);return`${JN(null,C)} ? ${soe(b)} : `}).join("")+soe(E)};h[p]=v}}else if(Ye(g)){const y=mue[p];if(y){const{vgProp:E,part:A}=y;J7(h,A,E,g),delete h[p]}}Tt(["labelAlign","labelBaseline"],p)&&h[p]===null&&delete h[p]}if(e==="grid"){if(!h.grid)return;if(h.encode){const{grid:p}=h.encode;h.encode=Object.assign({},p?{grid:p}:{}),Wt(h.encode)&&delete h.encode}return Object.assign(Object.assign({scale:l,orient:a},h),{domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:ir(x,0)})}else{if(!r.header&&t.mainExtracted)return;if(c!==void 0){let m=c;!((s=(i=h.encode)===null||i===void 0?void 0:i.labels)===null||s===void 0)&&s.update&&Ye(h.encode.labels.update.text)&&(m=N2(c,"datum.label",h.encode.labels.update.text.signal)),J7(h,"labels","text",{signal:m})}if(h.labelAlign===null&&delete h.labelAlign,h.encode){for(const m of yue)t.hasAxisPart(m)||delete h.encode[m];Wt(h.encode)&&delete h.encode}const p=Pet(f,n);return Object.assign(Object.assign(Object.assign(Object.assign({scale:l,orient:a,grid:!1},p?{title:p}:{}),h),n.aria===!1?{aria:!1}:{}),{zindex:ir(x,0)})}}}function Wae(t){const{axes:e}=t.component,n=[];for(const r of Da)if(e[r]){for(const i of e[r])if(!i.get("disable")&&!i.get("gridScale")){const s=r==="x"?"height":"width",o=t.getSizeSignalRef(s).signal;s!==o&&n.push({name:s,update:o})}}return n}function Met(t,e){const{x:n=[],y:r=[]}=t;return[...n.map(i=>I3(i,"grid",e)),...r.map(i=>I3(i,"grid",e)),...n.map(i=>I3(i,"main",e)),...r.map(i=>I3(i,"main",e))].filter(i=>i)}function Vae(t,e,n,r){return Object.assign.apply(null,[{},...t.map(i=>{if(i==="axisOrient"){const s=n==="x"?"bottom":"left",o=e[n==="x"?"axisBottom":"axisLeft"]||{},u=e[n==="x"?"axisTop":"axisRight"]||{},a=new Set([...be(o),...be(u)]),l={};for(const c of a.values())l[c]={signal:`${r.signal} === "${s}" ? ${r0(o[c])} : ${r0(u[c])}`};return l}return e[i]})])}function jet(t,e,n,r){const i=e==="band"?["axisDiscrete","axisBand"]:e==="point"?["axisDiscrete","axisPoint"]:Moe(e)?["axisQuantitative"]:e==="time"||e==="utc"?["axisTemporal"]:[],s=t==="x"?"axisX":"axisY",o=Ye(n)?"axisOrient":`axis${aN(n)}`,u=[...i,...i.map(l=>s+l.substr(4))],a=["axis",o,s];return{vlOnlyAxisConfig:Vae(u,r,t,n),vgAxisConfig:Vae(a,r,t,n),axisConfigStyle:Uet([...a,...u],r)}}function Uet(t,e){var n;const r=[{}];for(const i of t){let s=(n=e[i])===null||n===void 0?void 0:n.style;if(s){s=Pe(s);for(const o of s)r.push(e.style[o])}}return Object.assign.apply(null,r)}function Z7(t,e,n,r={}){var i;const s=uoe(t,n,e);if(s!==void 0)return{configFrom:"style",configValue:s};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((i=r[o])===null||i===void 0?void 0:i[t])!==void 0)return{configFrom:o,configValue:r[o][t]};return{}}const Yae={scale:({model:t,channel:e})=>t.scaleName(e),format:({fieldOrDatumDef:t,config:e,axis:n})=>{const{format:r,formatType:i}=n;return Joe(t,t.type,r,i,e,!0)},formatType:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return Zoe(r,e,n)},grid:({fieldOrDatumDef:t,axis:e,scaleType:n})=>{var r;return(r=e.grid)!==null&&r!==void 0?r:qet(n,t)},gridScale:({model:t,channel:e})=>Het(t,e),labelAlign:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelAlign||Kae(e,n,r),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelBaseline||Xae(e,n,r),labelFlush:({axis:t,fieldOrDatumDef:e,channel:n})=>{var r;return(r=t.labelFlush)!==null&&r!==void 0?r:Qet(e.type,n)},labelOverlap:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{var r;return(r=t.labelOverlap)!==null&&r!==void 0?r:Get(e.type,n,Le(e)&&!!e.timeUnit,Le(e)?e.sort:void 0)},orient:({orient:t})=>t,tickCount:({channel:t,model:e,axis:n,fieldOrDatumDef:r,scaleType:i})=>{var s;const o=t==="x"?"width":t==="y"?"height":void 0,u=o?e.getSizeSignalRef(o):void 0;return(s=n.tickCount)!==null&&s!==void 0?s:Vet({fieldOrDatumDef:r,scaleType:i,size:u,values:n.values})},title:({axis:t,model:e,channel:n})=>{if(t.title!==void 0)return t.title;const r=Jae(e,n);if(r!==void 0)return r;const i=e.typedFieldDef(n),s=n==="x"?"x2":"y2",o=e.fieldDef(s);return loe(i?[oue(i)]:[],Le(o)?[oue(o)]:[])},values:({axis:t,fieldOrDatumDef:e})=>Yet(t,e),zindex:({axis:t,fieldOrDatumDef:e,mark:n})=>{var r;return(r=t.zindex)!==null&&r!==void 0?r:Xet(n,e)}};function qet(t,e){return!Cr(t)&&Le(e)&&!Kt(e==null?void 0:e.bin)&&!Mi(e==null?void 0:e.bin)}function Het(t,e){const n=e==="x"?"y":"x";if(t.getScaleComponent(n))return t.scaleName(n)}function zet(t,e,n,r,i){const s=e==null?void 0:e.labelAngle;if(s!==void 0)return Ye(s)?s:lN(s);{const{configValue:o}=Z7("labelAngle",r,e==null?void 0:e.style,i);return o!==void 0?lN(o):n===yn&&Tt([Z8,J8],t.type)&&!(Le(t)&&t.timeUnit)?270:void 0}}function eP(t){return`(((${t.signal} % 360) + 360) % 360)`}function Xae(t,e,n,r){if(t!==void 0)if(n==="x"){if(Ye(t)){const i=eP(t),s=Ye(e)?`(${e.signal} === "top")`:e==="top";return{signal:`(45 < ${i} && ${i} < 135) || (225 < ${i} && ${i} < 315) ? "middle" :(${i} <= 45 || 315 <= ${i}) === ${s} ? "bottom" : "top"`}}if(45<t&&t<135||225<t&&t<315)return"middle";if(Ye(e)){const i=t<=45||315<=t?"===":"!==";return{signal:`${e.signal} ${i} "top" ? "bottom" : "top"`}}return(t<=45||315<=t)==(e==="top")?"bottom":"top"}else{if(Ye(t)){const i=eP(t),s=Ye(e)?`(${e.signal} === "left")`:e==="left";return{signal:`${i} <= 45 || 315 <= ${i} || (135 <= ${i} && ${i} <= 225) ? ${r?'"middle"':"null"} : (45 <= ${i} && ${i} <= 135) === ${s} ? "top" : "bottom"`}}if(t<=45||315<=t||135<=t&&t<=225)return r?"middle":null;if(Ye(e)){const i=45<=t&&t<=135?"===":"!==";return{signal:`${e.signal} ${i} "left" ? "top" : "bottom"`}}return(45<=t&&t<=135)==(e==="left")?"top":"bottom"}}function Kae(t,e,n){if(t===void 0)return;const r=n==="x",i=r?0:90,s=r?"bottom":"left";if(Ye(t)){const o=eP(t),u=Ye(e)?`(${e.signal} === "${s}")`:e===s;return{signal:`(${i?`(${o} + 90)`:o} % 180 === 0) ? ${r?null:'"center"'} :(${i} < ${o} && ${o} < ${180+i}) === ${u} ? "left" : "right"`}}if((t+i)%180===0)return r?null:"center";if(Ye(e)){const o=i<t&&t<180+i?"===":"!==";return{signal:`${`${e.signal} ${o} "${s}"`} ? "left" : "right"`}}return(i<t&&t<180+i)==(e===s)?"left":"right"}function Qet(t,e){if(e==="x"&&Tt(["quantitative","temporal"],t))return!0}function Get(t,e,n,r){if(n&&!Qe(r)||t!=="nominal"&&t!=="ordinal")return e==="log"||e==="symlog"?"greedy":!0}function Wet(t){return t==="x"?"bottom":"left"}function Vet({fieldOrDatumDef:t,scaleType:e,size:n,values:r}){var i;if(!r&&!Cr(e)&&e!=="log"){if(Le(t)){if(Kt(t.bin))return{signal:`ceil(${n.signal}/10)`};if(t.timeUnit&&Tt(["month","hours","day","quarter"],(i=ji(t.timeUnit))===null||i===void 0?void 0:i.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function Jae(t,e){const n=e==="x"?"x2":"y2",r=t.fieldDef(e),i=t.fieldDef(n),s=r?r.title:void 0,o=i?i.title:void 0;if(s&&o)return coe(s,o);if(s)return s;if(o)return o;if(s!==void 0)return s;if(o!==void 0)return o}function Yet(t,e){const n=t.values;if(_e(n))return gue(e,n);if(Ye(n))return n}function Xet(t,e){return t==="rect"&&wN(e)?1:0}class V2 extends Ut{constructor(e,n){super(e),this.transform=n,this._dependentFields=zae(this.transform.calculate)}clone(){return new V2(null,ot(this.transform))}static parseAllForSortIndex(e,n){return n.forEachFieldDef((r,i)=>{if(Dd(r)&&sue(r.sort)){const{field:s,timeUnit:o}=r,u=r.sort,a=u.map((l,c)=>`${Ioe({field:s,timeUnit:o,equal:l})} ? ${c} : `).join("")+u.length;e=new V2(e,{calculate:a,as:Y2(r,i,{forAs:!0})})}}),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${bt(this.transform)}`}}function Y2(t,e,n){return $e(t,Object.assign({prefix:e,suffix:"sort_index"},n??{}))}function eD(t,e){return Tt(["top","bottom"],e)?"column":Tt(["left","right"],e)||t==="row"?"row":"column"}function X2(t,e,n,r){const i=r==="row"?n.headerRow:r==="column"?n.headerColumn:n.headerFacet;return ir((e||{})[t],i[t],n.header[t])}function tD(t,e,n,r){const i={};for(const s of t){const o=X2(s,e||{},n,r);o!==void 0&&(i[s]=o)}return i}const tP=["row","column"],nP=["header","footer"];function Ket(t,e){const n=t.component.layoutHeaders[e].title,r=t.config?t.config:void 0,i=t.component.layoutHeaders[e].facetFieldDef?t.component.layoutHeaders[e].facetFieldDef:void 0,{titleAnchor:s,titleAngle:o,titleOrient:u}=tD(["titleAnchor","titleAngle","titleOrient"],i.header,r,e),a=eD(e,u),l=lN(o);return{name:`${e}-title`,type:"group",role:`${a}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:n},e==="row"?{orient:"left"}:{}),{style:"guide-title"}),ele(l,a)),Zae(a,l,s)),tle(r,i,e,MJe,Pue))}}function Zae(t,e,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const r=Kae(e,t==="row"?"left":"top",t==="row"?"y":"x");return r?{align:r}:{}}function ele(t,e){const n=Xae(t,e==="row"?"left":"top",e==="row"?"y":"x",!0);return n?{baseline:n}:{}}function Jet(t,e){const n=t.component.layoutHeaders[e],r=[];for(const i of nP)if(n[i])for(const s of n[i]){const o=ett(t,e,i,n,s);o!=null&&r.push(o)}return r}function Zet(t,e){var n;const{sort:r}=t;return La(r)?{field:$e(r,{expr:"datum"}),order:(n=r.order)!==null&&n!==void 0?n:"ascending"}:_e(r)?{field:Y2(t,e,{expr:"datum"}),order:"ascending"}:{field:$e(t,{expr:"datum"}),order:r??"ascending"}}function rP(t,e,n){const{format:r,formatType:i,labelAngle:s,labelAnchor:o,labelOrient:u,labelExpr:a}=tD(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,n,e),l=a7({fieldOrDatumDef:t,format:r,formatType:i,expr:"parent",config:n}).signal,c=eD(e,u);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:a?N2(N2(a,"datum.label",l),"datum.value",$e(t,{expr:"parent"})):l}},e==="row"?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),ele(s,c)),Zae(c,s,o)),tle(n,t,e,jJe,Mue))}function ett(t,e,n,r,i){if(i){let s=null;const{facetFieldDef:o}=r,u=t.config?t.config:void 0;if(o&&i.labels){const{labelOrient:f}=tD(["labelOrient"],o.header,u,e);(e==="row"&&!Tt(["top","bottom"],f)||e==="column"&&!Tt(["left","right"],f))&&(s=rP(o,e,u))}const a=Eu(t)&&!b3(t.facet),l=i.axes,c=(l==null?void 0:l.length)>0;if(s||c){const f=e==="row"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName(`${e}_${n}`),type:"group",role:`${e}-${n}`},r.facetFieldDef?{from:{data:t.getName(`${e}_domain`)},sort:Zet(o,e)}:{}),c&&a?{from:{data:t.getName(`facet_domain_${e}`)}}:{}),s?{title:s}:{}),i.sizeSignal?{encode:{update:{[f]:i.sizeSignal}}}:{}),c?{axes:l}:{})}}return null}const ttt={column:{start:0,end:1},row:{start:1,end:0}};function ntt(t,e){return ttt[e][t]}function rtt(t,e){const n={};for(const r of To){const i=t[r];if(i!=null&&i.facetFieldDef){const{titleAnchor:s,titleOrient:o}=tD(["titleAnchor","titleOrient"],i.facetFieldDef.header,e,r),u=eD(r,o),a=ntt(s,u);a!==void 0&&(n[u]=a)}}return Wt(n)?void 0:n}function tle(t,e,n,r,i){const s={};for(const o of r){if(!i[o])continue;const u=X2(o,e==null?void 0:e.header,t,n);u!==void 0&&(s[i[o]]=u)}return s}function iP(t){return[...nD(t,"width"),...nD(t,"height"),...nD(t,"childWidth"),...nD(t,"childHeight")]}function nD(t,e){const n=e==="width"?"x":"y",r=t.component.layoutSize.get(e);if(!r||r==="merged")return[];const i=t.getSizeSignalRef(e).signal;if(r==="step"){const s=t.getScaleComponent(n);if(s){const o=s.get("type"),u=s.get("range");if(Cr(o)&&jc(u)){const a=t.scaleName(n);return Eu(t.parent)&&t.parent.component.resolve.scale[n]==="independent"?[nle(a,u)]:[nle(a,u),{name:i,update:rle(a,s,`domain('${a}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(r=="container"){const s=i.endsWith("width"),o=s?"containerSize()[0]":"containerSize()[1]",u=L7(t.config.view,s?"width":"height"),a=`isFinite(${o}) ? ${o} : ${u}`;return[{name:i,init:a,on:[{update:a,events:"window:resize"}]}]}else return[{name:i,value:r}]}function nle(t,e){const n=`${t}_step`;return Ye(e.step)?{name:n,update:e.step.signal}:{name:n,value:e.step}}function rle(t,e,n){const r=e.get("type"),i=e.get("padding"),s=ir(e.get("paddingOuter"),i);let o=e.get("paddingInner");return o=r==="band"?o!==void 0?o:i:1,`bandspace(${n}, ${r0(o)}, ${r0(s)}) * ${t}_step`}function ile(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function sle(t,e){return be(t).reduce((n,r)=>{const i=t[r];return Object.assign(Object.assign({},n),Q2(e,i,r,s=>on(s.value)))},{})}function ole(t,e){if(Eu(e))return t==="theta"?"independent":"shared";if(Z2(e))return"shared";if(AP(e))return kr(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function sP(t,e){const n=t.scale[e],r=kr(e)?"axis":"legend";return n==="independent"?(t[r][e]==="shared"&&Te(jXe(e)),"independent"):t[r][e]||"shared"}const itt=Object.assign(Object.assign({},qJe),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),ule=be(itt);class stt extends o0{}const ale={symbols:ott,gradient:utt,labels:att,entries:ltt};function ott(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i,legendType:s}){var o,u,a,l,c,f,x,h;if(s!=="symbol")return;const{markDef:p,encoding:m,config:g,mark:y}=n,E=p.filled&&y!=="trail";let A=Object.assign(Object.assign({},XYe({},n,qKe)),bae(n,{filled:E}));const S=(o=i.get("symbolOpacity"))!==null&&o!==void 0?o:g.legend.symbolOpacity,v=(u=i.get("symbolFillColor"))!==null&&u!==void 0?u:g.legend.symbolFillColor,_=(a=i.get("symbolStrokeColor"))!==null&&a!==void 0?a:g.legend.symbolStrokeColor,C=S===void 0?(l=lle(m.opacity))!==null&&l!==void 0?l:p.opacity:void 0;if(A.fill){if(r==="fill"||E&&r===hs)delete A.fill;else if(A.fill.field)v?delete A.fill:(A.fill=on((c=g.legend.symbolBaseFillColor)!==null&&c!==void 0?c:"black"),A.fillOpacity=on(C??1));else if(_e(A.fill)){const b=(h=(x=oP((f=m.fill)!==null&&f!==void 0?f:m.color))!==null&&x!==void 0?x:p.fill)!==null&&h!==void 0?h:E&&p.color;b&&(A.fill=on(b))}}if(A.stroke){if(r==="stroke"||!E&&r===hs)delete A.stroke;else if(A.stroke.field||_)delete A.stroke;else if(_e(A.stroke)){const b=ir(oP(m.stroke||m.color),p.stroke,E?p.color:void 0);b&&(A.stroke={value:b})}}if(r!==Zl){const b=Le(e)&&fle(n,i,e);b?A.opacity=[Object.assign({test:b},on(C??1)),on(g.legend.unselectedOpacity)]:C&&(A.opacity=on(C))}return A=Object.assign(Object.assign({},A),t),Wt(A)?void 0:A}function utt(t,{model:e,legendType:n,legendCmpt:r}){var i;if(n!=="gradient")return;const{config:s,markDef:o,encoding:u}=e;let a={};const c=((i=r.get("gradientOpacity"))!==null&&i!==void 0?i:s.legend.gradientOpacity)===void 0?lle(u.opacity)||o.opacity:void 0;return c&&(a.opacity=on(c)),a=Object.assign(Object.assign({},a),t),Wt(a)?void 0:a}function att(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i}){const s=n.legend(r)||{},o=n.config,u=Le(e)?fle(n,i,e):void 0,a=u?[{test:u,value:1},{value:o.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=s,f=Nd(c)?l7({fieldOrDatumDef:e,field:"datum.value",format:l,formatType:c,config:o}):void 0,x=Object.assign(Object.assign(Object.assign({},a?{opacity:a}:{}),f?{text:f}:{}),t);return Wt(x)?void 0:x}function ltt(t,{legendCmpt:e}){const n=e.get("selections");return n!=null&&n.length?Object.assign(Object.assign({},t),{fill:{value:"transparent"}}):t}function lle(t){return cle(t,(e,n)=>Math.max(e,n.value))}function oP(t){return cle(t,(e,n)=>ir(e,n.value))}function cle(t,e){if(sJe(t))return Pe(t.condition).reduce(e,t.value);if(gu(t))return t.value}function fle(t,e,n){const r=e.get("selections");if(!(r!=null&&r.length))return;const i=Fe(n.field);return r.map(s=>`(!length(data(${Fe(mn(s)+wd)})) || (${s}[${i}] && indexof(${s}[${i}], datum.value) >= 0))`).join(" || ")}const xle={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:e,config:n})=>{const{format:r,formatType:i}=e;return Joe(t,t.type,r,i,n,!1)},formatType:({legend:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return Zoe(r,e,n)},gradientLength:t=>{var e,n;const{legend:r,legendConfig:i}=t;return(n=(e=r.gradientLength)!==null&&e!==void 0?e:i.gradientLength)!==null&&n!==void 0?n:gtt(t)},labelOverlap:({legend:t,legendConfig:e,scaleType:n})=>{var r,i;return(i=(r=t.labelOverlap)!==null&&r!==void 0?r:e.labelOverlap)!==null&&i!==void 0?i:mtt(n)},symbolType:({legend:t,markDef:e,channel:n,encoding:r})=>{var i;return(i=t.symbolType)!==null&&i!==void 0?i:ftt(e.type,n,r.shape,e.shape)},title:({fieldOrDatumDef:t,config:e})=>P2(t,e,{allowDisabling:!0}),type:({legendType:t,scaleType:e,channel:n})=>{if(F2(n)&&pu(e)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:e})=>ctt(e,t)};function ctt(t,e){const n=t.values;if(_e(n))return gue(e,n);if(Ye(n))return n}function ftt(t,e,n,r){var i;if(e!=="shape"){const s=(i=oP(n))!==null&&i!==void 0?i:r;if(s)return s}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"}}function xtt(t){const{legend:e}=t;return ir(e.type,dtt(t))}function dtt({channel:t,timeUnit:e,scaleType:n}){if(F2(t)){if(Tt(["quarter","month","day"],e))return"symbol";if(pu(n))return"gradient"}return"symbol"}function htt({legendConfig:t,legendType:e,orient:n,legend:r}){var i,s;return(s=(i=r.direction)!==null&&i!==void 0?i:t[e?"gradientDirection":"symbolDirection"])!==null&&s!==void 0?s:ptt(n,e)}function ptt(t,e){switch(t){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return e==="gradient"?"horizontal":void 0}}function gtt({legendConfig:t,model:e,direction:n,orient:r,scaleType:i}){const{gradientHorizontalMaxLength:s,gradientHorizontalMinLength:o,gradientVerticalMaxLength:u,gradientVerticalMinLength:a}=t;if(pu(i))return n==="horizontal"?r==="top"||r==="bottom"?dle(e,"width",o,s):o:dle(e,"height",a,u)}function dle(t,e,n,r){return{signal:`clamp(${t.getSizeSignalRef(e).signal}, ${n}, ${r})`}}function mtt(t){if(Tt(["quantile","threshold","log","symlog"],t))return"greedy"}function hle(t){const e=zn(t)?ytt(t):vtt(t);return t.component.legends=e,e}function ytt(t){const{encoding:e}=t,n={};for(const r of[hs,...Uue]){const i=sr(e[r]);!i||!t.getScaleComponent(r)||r===ps&&Le(i)&&i.type===$2||(n[r]=Stt(t,r))}return n}function Ett(t,e){const n=t.scaleName(e);if(t.mark==="trail"){if(e==="color")return{stroke:n};if(e==="size")return{strokeWidth:n}}return e==="color"?t.markDef.filled?{fill:n}:{stroke:n}:{[e]:n}}function Att(t,e,n,r){switch(e){case"disable":return n!==void 0;case"values":return!!(n!=null&&n.values);case"title":if(e==="title"&&t===(r==null?void 0:r.title))return!0}return t===(n||{})[e]}function Stt(t,e){var n,r,i;let s=t.legend(e);const{markDef:o,encoding:u,config:a}=t,l=a.legend,c=new stt({},Ett(t,e));Fet(t,e,c);const f=s!==void 0?!s:l.disable;if(c.set("disable",f,s!==void 0),f)return c;s=s||{};const x=t.getScaleComponent(e).get("type"),h=sr(u[e]),p=Le(h)?(n=ji(h.timeUnit))===null||n===void 0?void 0:n.unit:void 0,m=s.orient||a.legend.orient||"right",g=xtt({legend:s,channel:e,timeUnit:p,scaleType:x}),y=htt({legend:s,legendType:g,orient:m,legendConfig:l}),E={legend:s,channel:e,model:t,markDef:o,encoding:u,fieldOrDatumDef:h,legendConfig:l,config:a,scaleType:x,orient:m,legendType:g,direction:y};for(const C of ule){if(g==="gradient"&&C.startsWith("symbol")||g==="symbol"&&C.startsWith("gradient"))continue;const b=C in xle?xle[C](E):s[C];if(b!==void 0){const O=Att(b,C,s,t.fieldDef(e));(O||a.legend[C]===void 0)&&c.set(C,b,O)}}const A=(r=s==null?void 0:s.encoding)!==null&&r!==void 0?r:{},S=c.get("selections"),v={},_={fieldOrDatumDef:h,model:t,channel:e,legendCmpt:c,legendType:g};for(const C of["labels","legend","title","symbols","gradient","entries"]){const b=sle((i=A[C])!==null&&i!==void 0?i:{},t),O=C in ale?ale[C](b,_):b;O!==void 0&&!Wt(O)&&(v[C]=Object.assign(Object.assign(Object.assign({},S!=null&&S.length&&Le(h)?{name:`${mn(h.field)}_legend_${C}`}:{}),S!=null&&S.length?{interactive:!!S}:{}),{update:O}))}return Wt(v)||c.set("encode",v,!!(s!=null&&s.encoding)),c}function vtt(t){const{legends:e,resolve:n}=t.component;for(const r of t.children){hle(r);for(const i of be(r.component.legends))n.legend[i]=sP(t.component.resolve,i),n.legend[i]==="shared"&&(e[i]=ple(e[i],r.component.legends[i]),e[i]||(n.legend[i]="independent",delete e[i]))}for(const r of be(e))for(const i of t.children)i.component.legends[r]&&n.legend[r]==="shared"&&delete i.component.legends[r];return e}function ple(t,e){var n,r,i,s;if(!t)return e.clone();const o=t.getWithExplicit("orient"),u=e.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;let a=!1;for(const l of ule){const c=zc(t.getWithExplicit(l),e.getWithExplicit(l),l,"legend",(f,x)=>{switch(l){case"symbolType":return _tt(f,x);case"title":return foe(f,x);case"type":return a=!0,Qs("symbol")}return GN(f,x,l,"legend")});t.setWithExplicit(l,c)}return a&&(!((r=(n=t.implicit)===null||n===void 0?void 0:n.encode)===null||r===void 0)&&r.gradient&&C8(t.implicit,["encode","gradient"]),!((s=(i=t.explicit)===null||i===void 0?void 0:i.encode)===null||s===void 0)&&s.gradient&&C8(t.explicit,["encode","gradient"])),t}function _tt(t,e){return e.value==="circle"?e:t}var Ctt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function btt(t,e,n,r){var i,s,o,u,a;(i=t.encode)!==null&&i!==void 0||(t.encode={}),(s=(u=t.encode)[e])!==null&&s!==void 0||(u[e]={}),(o=(a=t.encode[e]).update)!==null&&o!==void 0||(a.update={}),t.encode[e].update[n]=r}function gle(t){const e=t.component.legends,n={};for(const i of be(e)){const s=t.getScaleComponent(i),o=sn(s.get("domains"));if(n[o])for(const u of n[o])ple(u,e[i])||n[o].push(e[i]);else n[o]=[e[i].clone()]}return Pi(n).flat().map(i=>Ttt(i,t.config)).filter(i=>i!==void 0)}function Ttt(t,e){var n,r,i;const s=t.combine(),{disable:o,labelExpr:u,selections:a}=s,l=Ctt(s,["disable","labelExpr","selections"]);if(!o){if(e.aria===!1&&l.aria==null&&(l.aria=!1),!((n=l.encode)===null||n===void 0)&&n.symbols){const c=l.encode.symbols.update;c.fill&&c.fill.value!=="transparent"&&!c.stroke&&!l.stroke&&(c.stroke={value:"transparent"});for(const f of Uue)l[f]&&delete c[f]}if(l.title||delete l.title,u!==void 0){let c=u;!((i=(r=l.encode)===null||r===void 0?void 0:r.labels)===null||i===void 0)&&i.update&&Ye(l.encode.labels.update.text)&&(c=N2(u,"datum.label",l.encode.labels.update.text.signal)),btt(l,"labels","text",{signal:c})}return l}}function Rtt(t){return Z2(t)||AP(t)?Ott(t):mle(t)}function Ott(t){return t.children.reduce((e,n)=>e.concat(n.assembleProjections()),mle(t))}function mle(t){const e=t.component.projection;if(!e||e.merged)return[];const n=e.combine(),{name:r}=n;if(e.data){const i={signal:`[${e.size.map(o=>o.signal).join(", ")}]`},s=e.data.reduce((o,u)=>{const a=Ye(u)?u.signal:`data('${t.lookupDataSource(u)}')`;return Tt(o,a)||o.push(a),o},[]);if(s.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:r,size:i,fit:{signal:s.length>1?`[${s.join(", ")}]`:s[0]}},n)]}else return[Object.assign(Object.assign({name:r},{translate:{signal:"[width / 2, height / 2]"}}),n)]}const Ntt=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class yle extends o0{constructor(e,n,r,i){super(Object.assign({},n),{name:e}),this.specifiedProjection=n,this.size=r,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function Ele(t){t.component.projection=zn(t)?Dtt(t):Ltt(t)}function Dtt(t){var e;if(t.hasProjection){const n=ms(t.specifiedProjection),r=!(n&&(n.scale!=null||n.translate!=null)),i=r?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,s=r?Ftt(t):void 0,o=new yle(t.projectionName(!0),Object.assign(Object.assign({},(e=ms(t.config.projection))!==null&&e!==void 0?e:{}),n??{}),i,s);return o.get("type")||o.set("type","equalEarth",!1),o}}function Ftt(t){const e=[],{encoding:n}=t;for(const r of[[Ra,Ta],[bo,hu]])(sr(n[r[0]])||sr(n[r[1]]))&&e.push({signal:t.getName(`geojson_${e.length}`)});return t.channelHasField(ps)&&t.typedFieldDef(ps).type===$2&&e.push({signal:t.getName(`geojson_${e.length}`)}),e.length===0&&e.push(t.requestDataName(Jt.Main)),e}function wtt(t,e){const n=Bse(Ntt,i=>!!(!Je(t.explicit,i)&&!Je(e.explicit,i)||Je(t.explicit,i)&&Je(e.explicit,i)&&Gl(t.get(i),e.get(i))));if(Gl(t.size,e.size)){if(n)return t;if(Gl(t.explicit,{}))return e;if(Gl(e.explicit,{}))return t}return null}function Ltt(t){if(t.children.length===0)return;let e;for(const r of t.children)Ele(r);const n=Bse(t.children,r=>{const i=r.component.projection;if(i)if(e){const s=wtt(e,i);return s&&(e=s),!!s}else return e=i,!0;else return!0});if(e&&n){const r=t.projectionName(!0),i=new yle(r,e.specifiedProjection,e.size,ot(e.data));for(const s of t.children){const o=s.component.projection;o&&(o.isFit&&i.data.push(...s.component.projection.data),s.renameProjection(o.get("name"),r),o.merged=!0)}return i}}var Itt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function $tt(t,e,n,r){var i,s;if(R3(e,n)){const o=zn(t)?(s=(i=t.axis(n))!==null&&i!==void 0?i:t.legend(n))!==null&&s!==void 0?s:{}:{},u=$e(e,{expr:"datum"}),a=$e(e,{expr:"datum",binSuffix:"end"});return{formulaAs:$e(e,{binSuffix:"range",forAs:!0}),formula:RN(u,a,o.format,o.formatType,r)}}return{}}function Ale(t,e){return`${eoe(t)}_${e}`}function Btt(t,e){return{signal:t.getName(`${e}_bins`),extentSignal:t.getName(`${e}_extent`)}}function uP(t,e,n){var r;const i=(r=$N(n,void 0))!==null&&r!==void 0?r:{},s=Ale(i,e);return t.getName(`${s}_bins`)}function ktt(t){return"as"in t}function Sle(t,e,n){let r,i;ktt(t)?r=je(t.as)?[t.as,`${t.as}_end`]:[t.as[0],t.as[1]]:r=[$e(t,{forAs:!0}),$e(t,{binSuffix:"end",forAs:!0})];const s=Object.assign({},$N(e,void 0)),o=Ale(s,t.field),{signal:u,extentSignal:a}=Btt(n,o);if(mN(s.extent)){const c=s.extent;i=Gae(n,c.param,c),delete s.extent}const l=Object.assign(Object.assign(Object.assign({bin:s,field:t.field,as:[r]},u?{signal:u}:{}),a?{extentSignal:a}:{}),i?{span:i}:{});return{key:o,binComponent:l}}class ja extends Ut{constructor(e,n){super(e),this.bins=n}clone(){return new ja(null,ot(this.bins))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s,o)=>{if(Ro(s)&&Kt(s.bin)){const{key:u,binComponent:a}=Sle(s,s.bin,n);i[u]=Object.assign(Object.assign(Object.assign({},a),i[u]),$tt(n,s,o,n.config))}return i},{});return Wt(r)?null:new ja(e,r)}static makeFromTransform(e,n,r){const{key:i,binComponent:s}=Sle(n,n.bin,r);return new ja(e,{[i]:s})}merge(e,n){for(const r of be(e.bins))r in this.bins?(n(e.bins[r].signal,this.bins[r].signal),this.bins[r].as=Wl([...this.bins[r].as,...e.bins[r].as],bt)):this.bins[r]=e.bins[r];for(const r of e.children)e.removeChild(r),r.parent=this;e.remove()}producedFields(){return new Set(Pi(this.bins).map(e=>e.as).flat(2))}dependentFields(){return new Set(Pi(this.bins).map(e=>e.field))}hash(){return`Bin ${bt(this.bins)}`}assemble(){return Pi(this.bins).flatMap(e=>{const n=[],[r,...i]=e.as,s=e.bin,{extent:o}=s,u=Itt(s,["extent"]),a=Object.assign(Object.assign(Object.assign({type:"bin",field:fu(e.field),as:r,signal:e.signal},mN(o)?{extent:null}:{extent:o}),e.span?{span:{signal:`span(${e.span})`}}:{}),u);!o&&e.extentSignal&&(n.push({type:"extent",field:fu(e.field),signal:e.extentSignal}),a.extent={signal:e.extentSignal}),n.push(a);for(const l of i)for(let c=0;c<2;c++)n.push({type:"formula",expr:$e({field:r[c]},{expr:"datum"}),as:l[c]});return e.formula&&n.push({type:"formula",expr:e.formula,as:e.formulaAs}),n})}}function Ptt(t,e,n,r){var i;const s=zn(r)?r.encoding[e0(e)]:void 0;if(Ro(n)&&zn(r)&&lue(n,s,r.markDef,r.config))t.add($e(n,{})),t.add($e(n,{suffix:"end"})),n.bin&&R3(n,e)&&t.add($e(n,{binSuffix:"range"}));else if(SYe(e)){const o=AYe(e);t.add(r.getName(o))}else t.add($e(n));return Dd(n)&&FKe((i=n.scale)===null||i===void 0?void 0:i.range)&&t.add(n.scale.range.field),t}function Mtt(t,e){var n;for(const r of be(e)){const i=e[r];for(const s of be(i))r in t?t[r][s]=new Set([...(n=t[r][s])!==null&&n!==void 0?n:[],...i[s]]):t[r]={[s]:i[s]}}}class mu extends Ut{constructor(e,n,r){super(e),this.dimensions=n,this.measures=r}clone(){return new mu(null,new Set(this.dimensions),ot(this.measures))}get groupBy(){return this.dimensions}static makeFromEncoding(e,n){let r=!1;n.forEachFieldDef(o=>{o.aggregate&&(r=!0)});const i={},s=new Set;return!r||(n.forEachFieldDef((o,u)=>{var a,l,c,f;const{aggregate:x,field:h}=o;if(x)if(x==="count")(a=i["*"])!==null&&a!==void 0||(i["*"]={}),i["*"].count=new Set([$e(o,{forAs:!0})]);else{if(t0(x)||Pc(x)){const p=t0(x)?"argmin":"argmax",m=x[p];(l=i[m])!==null&&l!==void 0||(i[m]={}),i[m][p]=new Set([$e({op:p,field:m},{forAs:!0})])}else(c=i[h])!==null&&c!==void 0||(i[h]={}),i[h][x]=new Set([$e(o,{forAs:!0})]);kc(u)&&n.scaleDomain(u)==="unaggregated"&&((f=i[h])!==null&&f!==void 0||(i[h]={}),i[h].min=new Set([$e({field:h,aggregate:"min"},{forAs:!0})]),i[h].max=new Set([$e({field:h,aggregate:"max"},{forAs:!0})]))}else Ptt(s,u,o,n)}),s.size+be(i).length===0)?null:new mu(e,s,i)}static makeFromTransform(e,n){var r,i,s;const o=new Set,u={};for(const a of n.aggregate){const{op:l,field:c,as:f}=a;l&&(l==="count"?((r=u["*"])!==null&&r!==void 0||(u["*"]={}),u["*"].count=new Set([f||$e(a,{forAs:!0})])):((i=u[c])!==null&&i!==void 0||(u[c]={}),u[c][l]=new Set([f||$e(a,{forAs:!0})])))}for(const a of(s=n.groupby)!==null&&s!==void 0?s:[])o.add(a);return o.size+be(u).length===0?null:new mu(e,o,u)}merge(e){return xYe(this.dimensions,e.dimensions)?(Mtt(this.measures,e.measures),!0):(nKe("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...be(this.measures)])}producedFields(){const e=new Set;for(const n of be(this.measures))for(const r of be(this.measures[n])){const i=this.measures[n][r];i.size===0?e.add(`${r}_${n}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${bt({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],n=[],r=[];for(const s of be(this.measures))for(const o of be(this.measures[s]))for(const u of this.measures[s][o])r.push(u),e.push(o),n.push(s==="*"?null:fu(s));return{type:"aggregate",groupby:[...this.dimensions].map(fu),ops:e,fields:n,as:r}}}class K2 extends Ut{constructor(e,n,r,i){super(e),this.model=n,this.name=r,this.data=i;for(const s of To){const o=n.facet[s];if(o){const{bin:u,sort:a}=o;this[s]=Object.assign({name:n.getName(`${s}_domain`),fields:[$e(o),...Kt(u)?[$e(o,{binSuffix:"end"})]:[]]},La(a)?{sortField:a}:_e(a)?{sortIndexField:Y2(o,s)}:{})}}this.childModel=n.child}hash(){let e="Facet";for(const n of To)this[n]&&(e+=` ${n.charAt(0)}:${bt(this[n])}`);return e}get fields(){var e;const n=[];for(const r of To)!((e=this[r])===null||e===void 0)&&e.fields&&n.push(...this[r].fields);return n}dependentFields(){const e=new Set(this.fields);for(const n of To)this[n]&&(this[n].sortField&&e.add(this[n].sortField.field),this[n].sortIndexField&&e.add(this[n].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const n of Da){const r=this.childModel.component.scales[n];if(r&&!r.merged){const i=r.get("type"),s=r.get("range");if(Cr(i)&&jc(s)){const o=iD(this.childModel,n),u=mP(o);u?e[n]=u:Te(k8(n))}}}return e}assembleRowColumnHeaderData(e,n,r){const i={row:"y",column:"x",facet:void 0}[e],s=[],o=[],u=[];i&&r&&r[i]&&(n?(s.push(`distinct_${r[i]}`),o.push("max")):(s.push(r[i]),o.push("distinct")),u.push(`distinct_${r[i]}`));const{sortField:a,sortIndexField:l}=this[e];if(a){const{op:c=ON,field:f}=a;s.push(f),o.push(c),u.push($e(a,{forAs:!0}))}else l&&(s.push(l),o.push("max"),u.push(l));return{name:this[e].name,source:n??this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},s.length?{fields:s,ops:o,as:u}:{})]}}assembleFacetHeaderData(e){var n,r;const{columns:i}=this.model.layout,{layoutHeaders:s}=this.model.component,o=[],u={};for(const c of tP){for(const f of nP){const x=(n=s[c]&&s[c][f])!==null&&n!==void 0?n:[];for(const h of x)if(((r=h.axes)===null||r===void 0?void 0:r.length)>0){u[c]=!0;break}}if(u[c]){const f=`length(data("${this.facet.name}"))`,x=c==="row"?i?{signal:`ceil(${f} / ${i})`}:1:i?{signal:`min(${f}, ${i})`}:{signal:f};o.push({name:`${this.facet.name}_${c}`,transform:[{type:"sequence",start:0,stop:x}]})}}const{row:a,column:l}=u;return(a||l)&&o.unshift(this.assembleRowColumnHeaderData("facet",null,e)),o}assemble(){var e,n;const r=[];let i=null;const s=this.getChildIndependentFieldsWithStep(),{column:o,row:u,facet:a}=this;if(o&&u&&(s.x||s.y)){i=`cross_${this.column.name}_${this.row.name}`;const l=[].concat((e=s.x)!==null&&e!==void 0?e:[],(n=s.y)!==null&&n!==void 0?n:[]),c=l.map(()=>"distinct");r.push({name:i,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:l,ops:c}]})}for(const l of[Yl,Vl])this[l]&&r.push(this.assembleRowColumnHeaderData(l,i,s));if(a){const l=this.assembleFacetHeaderData(s);l&&r.push(...l)}return r}}function vle(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function jtt(t,e){const n=jse(t);if(e==="number")return`toNumber(${n})`;if(e==="boolean")return`toBoolean(${n})`;if(e==="string")return`toString(${n})`;if(e==="date")return`toDate(${n})`;if(e==="flatten")return n;if(e.startsWith("date:")){const r=vle(e.slice(5,e.length));return`timeParse(${n},'${r}')`}else if(e.startsWith("utc:")){const r=vle(e.slice(4,e.length));return`utcParse(${n},'${r}')`}else return Te(lXe(e)),null}function Utt(t){const e={};return sN(t.filter,n=>{var r;if(Loe(n)){let i=null;z8(n)?i=Hs(n.equal):G8(n)?i=Hs(n.lte):Q8(n)?i=Hs(n.lt):W8(n)?i=Hs(n.gt):V8(n)?i=Hs(n.gte):Y8(n)?i=n.range[0]:X8(n)&&(i=((r=n.oneOf)!==null&&r!==void 0?r:n.in)[0]),i&&(Td(i)?e[n.field]="date":nn(i)?e[n.field]="number":je(i)&&(e[n.field]="string")),n.timeUnit&&(e[n.field]="date")}}),e}function qtt(t){const e={};function n(r){j2(r)?e[r.field]="date":r.type==="quantitative"&&UYe(r.aggregate)?e[r.field]="number":g3(r.field)>1?r.field in e||(e[r.field]="flatten"):Dd(r)&&La(r.sort)&&g3(r.sort.field)>1&&(r.sort.field in e||(e[r.sort.field]="flatten"))}if((zn(t)||Eu(t))&&t.forEachFieldDef((r,i)=>{if(Ro(r))n(r);else{const s=_d(i),o=t.fieldDef(s);n(Object.assign(Object.assign({},r),{type:o.type}))}}),zn(t)){const{mark:r,markDef:i,encoding:s}=t;if(Uc(r)&&!t.encoding.order){const o=i.orient==="horizontal"?"y":"x",u=s[o];Le(u)&&u.type==="quantitative"&&!(u.field in e)&&(e[u.field]="number")}}return e}function Htt(t){const e={};if(zn(t)&&t.component.selection)for(const n of be(t.component.selection)){const r=t.component.selection[n];for(const i of r.project.items)!i.channel&&g3(i.field)>1&&(e[i.field]="flatten")}return e}class li extends Ut{constructor(e,n){super(e),this._parse=n}clone(){return new li(null,ot(this._parse))}hash(){return`Parse ${bt(this._parse)}`}static makeExplicit(e,n,r){var i;let s={};const o=n.data;return!Qc(o)&&(!((i=o==null?void 0:o.format)===null||i===void 0)&&i.parse)&&(s=o.format.parse),this.makeWithAncestors(e,s,{},r)}static makeWithAncestors(e,n,r,i){for(const u of be(r)){const a=i.getWithExplicit(u);a.value!==void 0&&(a.explicit||a.value===r[u]||a.value==="derived"||r[u]==="flatten"?delete r[u]:Te(yoe(u,r[u],a.value)))}for(const u of be(n)){const a=i.get(u);a!==void 0&&(a===n[u]?delete n[u]:Te(yoe(u,n[u],a)))}const s=new o0(n,r);i.copyAll(s);const o={};for(const u of be(s.combine())){const a=s.get(u);a!==null&&(o[u]=a)}return be(o).length===0||i.parseNothing?null:new li(e,o)}get parse(){return this._parse}merge(e){this._parse=Object.assign(Object.assign({},this._parse),e.parse),e.remove()}assembleFormatParse(){const e={};for(const n of be(this._parse)){const r=this._parse[n];g3(n)===1&&(e[n]=r)}return e}producedFields(){return new Set(be(this._parse))}dependentFields(){return new Set(be(this._parse))}assembleTransforms(e=!1){return be(this._parse).filter(n=>e?g3(n)>1:!0).map(n=>{const r=jtt(n,this._parse[n]);return r?{type:"formula",expr:r,as:Use(n)}:null}).filter(n=>n!==null)}}class Yc extends Ut{clone(){return new Yc(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([N3])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:N3}}}class $3 extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new $3(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${bt(this.params)}`}assemble(){return Object.assign({type:"graticule"},this.params===!0?{}:this.params)}}class B3 extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new B3(null,this.params)}dependentFields(){return new Set}producedFields(){var e;return new Set([(e=this.params.as)!==null&&e!==void 0?e:"data"])}hash(){return`Hash ${bt(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class Ld extends Ut{constructor(e){super(null),e??(e={name:"source"});let n;if(Qc(e)||(n=e.format?Object.assign({},Co(e.format,["parse"])):{}),D3(e))this._data={values:e.values};else if(q2(e)){if(this._data={url:e.url},!n.type){let r=/(?:\.([^.]+))?$/.exec(e.url)[1];Tt(["json","csv","tsv","dsv","topojson"],r)||(r="json"),n.type=r}}else yae(e)?this._data={values:[{type:"Sphere"}]}:(gae(e)||Qc(e))&&(this._data={});this._generator=Qc(e),e.name&&(this._name=e.name),n&&!Wt(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(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}}var _le=function(t,e,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(t,n):i?i.value=n:e.set(t,n),n},ztt=function(t,e,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(t):r?r.value:e.get(t)},k3;function aP(t){return t instanceof Ld||t instanceof $3||t instanceof B3}class lP{constructor(){k3.set(this,void 0),_le(this,k3,!1,"f")}setModified(){_le(this,k3,!0,"f")}get modifiedFlag(){return ztt(this,k3,"f")}}k3=new WeakMap;class Id extends lP{getNodeDepths(e,n,r){r.set(e,n);for(const i of e.children)this.getNodeDepths(i,n+1,r);return r}optimize(e){const r=[...this.getNodeDepths(e,0,new Map).entries()].sort((i,s)=>s[1]-i[1]);for(const i of r)this.run(i[0]);return this.modifiedFlag}}class cP extends lP{optimize(e){this.run(e);for(const n of e.children)this.optimize(n);return this.modifiedFlag}}class Qtt extends cP{mergeNodes(e,n){const r=n.shift();for(const i of n)e.removeChild(i),i.parent=r,i.remove()}run(e){const n=e.children.map(i=>i.hash()),r={};for(let i=0;i<n.length;i++)r[n[i]]===void 0?r[n[i]]=[e.children[i]]:r[n[i]].push(e.children[i]);for(const i of be(r))r[i].length>1&&(this.setModified(),this.mergeNodes(e,r[i]))}}class Gtt extends cP{constructor(e){super(),this.requiresSelectionId=e&&X7(e)}run(e){e instanceof Yc&&(this.requiresSelectionId&&(aP(e.parent)||e.parent instanceof mu||e.parent instanceof li)||(this.setModified(),e.remove()))}}class Wtt extends lP{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,n){let r=new Set;e instanceof Ma&&(r=e.producedFields(),kse(r,n)&&(this.setModified(),e.removeFormulas(n),e.producedFields.length===0&&e.remove()));for(const i of e.children)this.run(i,new Set([...n,...r]))}}class Vtt extends cP{constructor(){super()}run(e){e instanceof qi&&!e.isRequired()&&(this.setModified(),e.remove())}}class Ytt extends Id{run(e){if(!aP(e)&&!(e.numChildren()>1)){for(const n of e.children)if(n instanceof li)if(e instanceof li)this.setModified(),e.merge(n);else{if(Mse(e.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class Xtt extends Id{run(e){const n=[...e.children],r=e.children.filter(i=>i instanceof li);if(e.numChildren()>1&&r.length>=1){const i={},s=new Set;for(const o of r){const u=o.parse;for(const a of be(u))a in i?i[a]!==u[a]&&s.add(a):i[a]=u[a]}for(const o of s)delete i[o];if(!Wt(i)){this.setModified();const o=new li(e,i);for(const u of n){if(u instanceof li)for(const a of be(i))delete u.parse[a];e.removeChild(u),u.parent=o,u instanceof li&&be(u.parse).length===0&&u.remove()}}}}}class Ktt extends Id{run(e){e instanceof qi||e.numChildren()>0||e instanceof K2||e instanceof Ld||(this.setModified(),e.remove())}}class Jtt extends Id{run(e){const n=e.children.filter(i=>i instanceof Ma),r=n.pop();for(const i of n)this.setModified(),r.merge(i)}}class Ztt extends Id{run(e){const n=e.children.filter(i=>i instanceof mu),r={};for(const i of n){const s=bt(i.groupBy);s in r||(r[s]=[]),r[s].push(i)}for(const i of be(r)){const s=r[i];if(s.length>1){const o=s.pop();for(const u of s)o.merge(u)&&(e.removeChild(u),u.parent=o,u.remove(),this.setModified())}}}}class ent extends Id{constructor(e){super(),this.model=e}run(e){const n=!(aP(e)||e instanceof W2||e instanceof li||e instanceof Yc),r=[],i=[];for(const s of e.children)s instanceof ja&&(n&&!Mse(e.producedFields(),s.dependentFields())?r.push(s):i.push(s));if(r.length>0){const s=r.pop();for(const o of r)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof ja?e.merge(s,this.model.renameSignal.bind(this.model)):s.swapWithParent()}if(i.length>1){const s=i.pop();for(const o of i)s.merge(o,this.model.renameSignal.bind(this.model));this.setModified()}}}class tnt extends Id{run(e){const n=[...e.children];if(!O2(n,o=>o instanceof qi)||e.numChildren()<=1)return;const i=[];let s;for(const o of n)if(o instanceof qi){let u=o;for(;u.numChildren()===1;){const[a]=u.children;if(a instanceof qi)u=a;else break}i.push(...u.children),s?(e.removeChild(o),o.parent=s.parent,s.parent.removeChild(s),s.parent=u,this.setModified()):s=u}else i.push(o);if(i.length){this.setModified();for(const o of i)o.parent.removeChild(o),o.parent=s}}}class $d extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new $d(null,ot(this.transform))}addDimensions(e){this.transform.groupby=Wl(this.transform.groupby.concat(e),n=>n)}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`JoinAggregateTransform ${bt(this.transform)}`}assemble(){const e=[],n=[],r=[];for(const s of this.transform.joinaggregate)n.push(s.op),r.push(this.getDefaultName(s)),e.push(s.field===void 0?null:s.field);const i=this.transform.groupby;return Object.assign({type:"joinaggregate",as:r,ops:n,fields:e},i!==void 0?{groupby:i}:{})}}function nnt(t){return t.stack.stackBy.reduce((e,n)=>{const r=n.fieldDef,i=$e(r);return i&&e.push(i),e},[])}function rnt(t){return _e(t)&&t.every(e=>je(e))&&t.length>1}class u0 extends Ut{constructor(e,n){super(e),this._stack=n}clone(){return new u0(null,ot(this._stack))}static makeFromTransform(e,n){const{stack:r,groupby:i,as:s,offset:o="zero"}=n,u=[],a=[];if(n.sort!==void 0)for(const f of n.sort)u.push(f.field),a.push(ir(f.order,"ascending"));const l={field:u,order:a};let c;return rnt(s)?c=s:je(s)?c=[s,`${s}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new u0(e,{dimensionFieldDefs:[],stackField:r,groupby:i,offset:o,sort:l,facetby:[],as:c})}static makeFromEncoding(e,n){const r=n.stack,{encoding:i}=n;if(!r)return null;const{groupbyChannels:s,fieldChannel:o,offset:u,impute:a}=r,l=s.map(h=>{const p=i[h];return Ba(p)}).filter(h=>!!h),c=nnt(n),f=n.encoding.order;let x;return _e(f)||Le(f)?x=aoe(f):x=c.reduce((h,p)=>(h.field.push(p),h.order.push(o==="y"?"descending":"ascending"),h),{field:[],order:[]}),new u0(e,{dimensionFieldDefs:l,stackField:n.vgField(o),facetby:[],stackby:c,sort:x,offset:u,impute:a,as:[n.vgField(o,{suffix:"start",forAs:!0}),n.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${bt(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:n,groupby:r}=this._stack;return e.length>0?e.map(i=>i.bin?n?[$e(i,{binSuffix:"mid"})]:[$e(i,{}),$e(i,{binSuffix:"end"})]:[$e(i)]).flat():r??[]}assemble(){const e=[],{facetby:n,dimensionFieldDefs:r,stackField:i,stackby:s,sort:o,offset:u,impute:a,as:l}=this._stack;if(a)for(const c of r){const{bandPosition:f=.5,bin:x}=c;if(x){const h=$e(c,{expr:"datum"}),p=$e(c,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${f}*${h}+${1-f}*${p}`,as:$e(c,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...s,...n],key:$e(c,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:i,sort:o,as:l,offset:u}),e}}class J2 extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new J2(null,ot(this.transform))}addDimensions(e){this.transform.groupby=Wl(this.transform.groupby.concat(e),n=>n)}dependentFields(){var e,n;const r=new Set;return((e=this.transform.groupby)!==null&&e!==void 0?e:[]).forEach(r.add,r),((n=this.transform.sort)!==null&&n!==void 0?n:[]).forEach(i=>r.add(i.field)),this.transform.window.map(i=>i.field).filter(i=>i!==void 0).forEach(r.add,r),r}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:$e(e)}hash(){return`WindowTransform ${bt(this.transform)}`}assemble(){var e;const n=[],r=[],i=[],s=[];for(const x of this.transform.window)r.push(x.op),i.push(this.getDefaultName(x)),s.push(x.param===void 0?null:x.param),n.push(x.field===void 0?null:x.field);const o=this.transform.frame,u=this.transform.groupby;if(o&&o[0]===null&&o[1]===null&&r.every(x=>L8(x)))return Object.assign({type:"joinaggregate",as:i,ops:r,fields:n},u!==void 0?{groupby:u}:{});const a=[],l=[];if(this.transform.sort!==void 0)for(const x of this.transform.sort)a.push(x.field),l.push((e=x.order)!==null&&e!==void 0?e:"ascending");const c={field:a,order:l},f=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:s,as:i,ops:r,fields:n,sort:c},f!==void 0?{ignorePeers:f}:{}),u!==void 0?{groupby:u}:{}),o!==void 0?{frame:o}:{})}}function int(t){function e(n){if(!(n instanceof K2)){const r=n.clone();if(r instanceof qi){const i=xP+r.getSource();r.setSource(i),t.model.component.data.outputNodes[i]=r}else(r instanceof mu||r instanceof u0||r instanceof J2||r instanceof $d)&&r.addDimensions(t.fields);for(const i of n.children.flatMap(e))i.parent=r;return[r]}return n.children.flatMap(e)}return e}function fP(t){if(t instanceof K2)if(t.numChildren()===1&&!(t.children[0]instanceof qi)){const e=t.children[0];(e instanceof mu||e instanceof u0||e instanceof J2||e instanceof $d)&&e.addDimensions(t.fields),e.swapWithParent(),fP(t)}else{const e=t.model.component.data.main;Cle(e);const n=int(t),r=t.children.map(n).flat();for(const i of r)i.parent=e}else t.children.map(fP)}function Cle(t){if(t instanceof qi&&t.type===Jt.Main&&t.numChildren()===1){const e=t.children[0];e instanceof K2||(e.swapWithParent(),Cle(t))}}const xP="scale_",rD=5;function dP(t){for(const e of t){for(const n of e.children)if(n.parent!==e)return!1;if(!dP(e.children))return!1}return!0}function yu(t,e){let n=!1;for(const r of e)n=t.optimize(r)||n;return n}function ble(t,e,n){let r=t.sources,i=!1;return i=yu(new Vtt,r)||i,i=yu(new Gtt(e),r)||i,r=r.filter(s=>s.numChildren()>0),i=yu(new Ktt,r)||i,r=r.filter(s=>s.numChildren()>0),n||(i=yu(new Ytt,r)||i,i=yu(new ent(e),r)||i,i=yu(new Wtt,r)||i,i=yu(new Xtt,r)||i,i=yu(new Ztt,r)||i,i=yu(new Jtt,r)||i,i=yu(new Qtt,r)||i,i=yu(new tnt,r)||i),t.sources=r,i}function snt(t,e){dP(t.sources);let n=0,r=0;for(let i=0;i<rD&&ble(t,e,!0);i++)n++;t.sources.map(fP);for(let i=0;i<rD&&ble(t,e,!1);i++)r++;dP(t.sources),Math.max(n,r)===rD&&Te(`Maximum optimization runs(${rD}) reached.`)}class Es{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,n){return new Es(()=>e(n))}}var ont=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Tle(t){zn(t)?unt(t):ant(t)}function unt(t){const e=t.component.scales;for(const n of be(e)){const r=cnt(t,n);if(e[n].setWithExplicit("domains",r),xnt(t,n),t.component.data.isFaceted){let s=t;for(;!Eu(s)&&s.parent;)s=s.parent;if(s.component.resolve.scale[n]==="shared")for(const u of r.value)n0(u)&&(u.data=xP+u.data.replace(xP,""))}}}function ant(t){for(const n of t.children)Tle(n);const e=t.component.scales;for(const n of be(e)){let r,i=null;for(const s of t.children){const o=s.component.scales[n];if(o){r===void 0?r=o.getWithExplicit("domains"):r=zc(r,o.getWithExplicit("domains"),"domains","scale",gP);const u=o.get("selectionExtent");i&&u&&i.param!==u.param&&Te(sXe),i=u}}e[n].setWithExplicit("domains",r),i&&e[n].set("selectionExtent",i,!0)}}function lnt(t,e,n,r){if(t==="unaggregated"){const{valid:i,reason:s}=Rle(e,n);if(!i){Te(s);return}}else if(t===void 0&&r.useUnaggregatedDomain){const{valid:i}=Rle(e,n);if(i)return"unaggregated"}return t}function cnt(t,e){const n=t.getScaleComponent(e).get("type"),{encoding:r}=t,i=lnt(t.scaleDomain(e),t.typedFieldDef(e),n,t.config.scale);return i!==t.scaleDomain(e)&&(t.specifiedScales[e]=Object.assign(Object.assign({},t.specifiedScales[e]),{domain:i})),e==="x"&&sr(r.x2)?sr(r.x)?zc(Xc(n,i,t,"x"),Xc(n,i,t,"x2"),"domain","scale",gP):Xc(n,i,t,"x2"):e==="y"&&sr(r.y2)?sr(r.y)?zc(Xc(n,i,t,"y"),Xc(n,i,t,"y2"),"domain","scale",gP):Xc(n,i,t,"y2"):Xc(n,i,t,e)}function fnt(t,e,n){return t.map(r=>({signal:`{data: ${BN(r,{timeUnit:n,type:e})}}`}))}function hP(t,e,n){var r;const i=(r=ji(n))===null||r===void 0?void 0:r.unit;return e==="temporal"||i?fnt(t,e,i):[t]}function Xc(t,e,n,r){const{encoding:i}=n,s=sr(i[r]),{type:o}=s,u=s.timeUnit;if(DKe(e)){const f=Xc(t,void 0,n,r),x=hP(e.unionWith,o,u);return Pa([...f.value,...x])}else{if(Ye(e))return Pa([e]);if(e&&e!=="unaggregated"&&!Uoe(e))return Pa(hP(e,o,u))}const a=n.stack;if(a&&r===a.fieldChannel){if(a.offset==="normalize")return Qs([[0,1]]);const f=n.requestDataName(Jt.Main);return Qs([{data:f,field:n.vgField(r,{suffix:"start"})},{data:f,field:n.vgField(r,{suffix:"end"})}])}const l=kc(r)&&Le(s)?dnt(n,r,t):void 0;if(Ia(s)){const f=hP([s.datum],o,u);return Qs(f)}const c=s;if(e==="unaggregated"){const f=n.requestDataName(Jt.Main),{field:x}=s;return Qs([{data:f,field:$e({field:x,aggregate:"min"})},{data:f,field:$e({field:x,aggregate:"max"})}])}else if(Kt(c.bin)){if(Cr(t))return Qs(t==="bin-ordinal"?[]:[{data:oN(l)?n.requestDataName(Jt.Main):n.requestDataName(Jt.Raw),field:n.vgField(r,R3(c,r)?{binSuffix:"range"}:{}),sort:l===!0||!Qe(l)?{field:n.vgField(r,{}),op:"min"}:l}]);{const{bin:f}=c;if(Kt(f)){const x=uP(n,c.field,f);return Qs([new Es(()=>{const h=n.getSignalName(x);return`[${h}.start, ${h}.stop]`})])}else return Qs([{data:n.requestDataName(Jt.Main),field:n.vgField(r,{})}])}}else if(c.timeUnit&&Tt(["time","utc"],t)&&lue(c,zn(n)?n.encoding[e0(r)]:void 0,n.markDef,n.config)){const f=n.requestDataName(Jt.Main);return Qs([{data:f,field:n.vgField(r)},{data:f,field:n.vgField(r,{suffix:"end"})}])}else return Qs(l?[{data:oN(l)?n.requestDataName(Jt.Main):n.requestDataName(Jt.Raw),field:n.vgField(r),sort:l}]:[{data:n.requestDataName(Jt.Main),field:n.vgField(r)}])}function pP(t,e){const{op:n,field:r,order:i}=t;return Object.assign(Object.assign({op:n??(e?"sum":ON)},r?{field:fu(r)}:{}),i?{order:i}:{})}function xnt(t,e){var n;const r=t.component.scales[e],i=t.specifiedScales[e].domain,s=(n=t.fieldDef(e))===null||n===void 0?void 0:n.bin,o=Uoe(i)&&i,u=Cd(s)&&mN(s.extent)&&s.extent;(o||u)&&r.set("selectionExtent",o??u,!0)}function dnt(t,e,n){if(!Cr(n))return;const r=t.fieldDef(e),i=r.sort;if(sue(i))return{op:"min",field:Y2(r,e),order:"ascending"};const{stack:s}=t,o=s?new Set([...s.groupbyFields,...s.stackBy.map(u=>u.fieldDef.field)]):void 0;if(La(i)){const u=s&&!o.has(i.field);return pP(i,u)}else if(iue(i)){const{encoding:u,order:a}=i,l=t.fieldDef(u),{aggregate:c,field:f}=l,x=s&&!o.has(f);if(t0(c)||Pc(c))return pP({field:$e(l),order:a},x);if(L8(c)||!c)return pP({op:c,field:f,order:a},x)}else{if(i==="descending")return{op:"min",field:t.vgField(e),order:"descending"};if(Tt(["ascending",void 0],i))return!0}}function Rle(t,e){const{aggregate:n,type:r}=t;return n?je(n)&&!HYe.has(n)?{valid:!1,reason:LXe(n)}:r==="quantitative"&&e==="log"?{valid:!1,reason:IXe(t)}:{valid:!0}:{valid:!1,reason:wXe(t)}}function gP(t,e,n,r){return t.explicit&&e.explicit&&Te(MXe(n,r,t.value,e.value)),{explicit:t.explicit,value:[...t.value,...e.value]}}function hnt(t){const e=Wl(t.map(o=>n0(o)?ont(o,["sort"]):o),bt),n=Wl(t.map(o=>{if(n0(o)){const u=o.sort;return u!==void 0&&!oN(u)&&("op"in u&&u.op==="count"&&delete u.field,u.order==="ascending"&&delete u.order),u}}).filter(o=>o!==void 0),bt);if(e.length===0)return;if(e.length===1){const o=t[0];if(n0(o)&&n.length>0){let u=n[0];if(n.length>1)Te(Coe),u=!0;else if(Qe(u)&&"field"in u){const a=u.field;o.field===a&&(u=u.order?{order:u.order}:!0)}return Object.assign(Object.assign({},o),{sort:u})}return o}const r=Wl(n.map(o=>oN(o)||!("op"in o)||je(o.op)&&o.op in MYe?o:(Te(UXe(o)),!0)),bt);let i;r.length===1?i=r[0]:r.length>1&&(Te(Coe),i=!0);const s=Wl(t.map(o=>n0(o)?o.data:null),o=>o);return s.length===1&&s[0]!==null?Object.assign({data:s[0],fields:e.map(u=>u.field)},i?{sort:i}:{}):Object.assign({fields:e},i?{sort:i}:{})}function mP(t){if(n0(t)&&je(t.field))return t.field;if(QYe(t)){let e;for(const n of t.fields)if(n0(n)&&je(n.field)){if(!e)e=n.field;else if(e!==n.field)return Te(qXe),e}return Te(HXe),e}else if(GYe(t)){Te(zXe);const e=t.fields[0];return je(e)?e:void 0}}function iD(t,e){const r=t.component.scales[e].get("domains").map(i=>(n0(i)&&(i.data=t.lookupDataSource(i.data)),i));return hnt(r)}var pnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Ole(t){return Z2(t)||AP(t)?t.children.reduce((e,n)=>e.concat(Ole(n)),Nle(t)):Nle(t)}function Nle(t){return be(t.component.scales).reduce((e,n)=>{const r=t.component.scales[n];if(r.merged)return e;const i=r.combine(),{name:s,type:o,selectionExtent:u,domains:a,range:l,reverse:c}=i,f=pnt(i,["name","type","selectionExtent","domains","range","reverse"]),x=gnt(i.range,s,n,t),h=iD(t,n),p=u?iet(t,u,r,h):null;return e.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:s,type:o},h?{domain:h}:{}),p?{domainRaw:p}:{}),{range:x}),c!==void 0?{reverse:c}:{}),f)),e},[])}function gnt(t,e,n,r){if(kr(n)){if(jc(t))return{step:{signal:`${e}_step`}}}else if(Qe(t)&&n0(t))return Object.assign(Object.assign({},t),{data:r.lookupDataSource(t.data)});return t}class Dle extends o0{constructor(e,n){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:O2(this.get("domains"),e=>_e(e)&&e.length===2&&e[0]<=0&&e[1]>=0)}}const mnt=["range","scheme"];function ynt(t){const e=t.component.scales;for(const n of gN){const r=e[n];if(!r)continue;const i=Ent(n,t);r.setWithExplicit("range",i)}}function Fle(t,e){const n=t.fieldDef(e);if(n!=null&&n.bin){const{bin:r,field:i}=n,s=gs(e),o=t.getName(s);if(Qe(r)&&r.binned&&r.step!==void 0)return new Es(()=>{const u=t.scaleName(e),a=`(domain("${u}")[1] - domain("${u}")[0]) / ${r.step}`;return`${t.getSignalName(o)} / (${a})`});if(Kt(r)){const u=uP(t,i,r);return new Es(()=>{const a=t.getSignalName(u),l=`(${a}.stop - ${a}.start) / ${a}.step`;return`${t.getSignalName(o)} / (${l})`})}}}function Ent(t,e){const n=e.specifiedScales[t],{size:r}=e,s=e.getScaleComponent(t).get("type");for(const f of mnt)if(n[f]!==void 0){const x=t7(s,f),h=qoe(t,f);if(!x)Te(voe(s,f,t));else if(h)Te(h);else switch(f){case"range":{const p=n.range;if(_e(p)){if(kr(t))return Pa(p.map(m=>{if(m==="width"||m==="height"){const g=e.getName(m),y=e.getSignalName.bind(e);return Es.fromName(y,g)}return m}))}else if(Qe(p))return Pa({data:e.requestDataName(Jt.Main),field:p.field,sort:{op:"min",field:e.vgField(t)}});return Pa(p)}case"scheme":return Pa(Ant(n[f]))}}const o=t===yn||t==="xOffset"?"width":"height",u=r[o];if(ka(u)){if(kr(t))if(Cr(s)){const f=wle(u,e,t);if(f)return Pa({step:f})}else Te(_oe(o));else if(w2(t)){const f=t===Fc?"x":"y";if(e.getScaleComponent(f).get("type")==="band"){const p=Lle(u,s);if(p)return Pa(p)}}}const{rangeMin:a,rangeMax:l}=n,c=Snt(t,e);return(a!==void 0||l!==void 0)&&t7(s,"rangeMin")&&_e(c)&&c.length===2?Pa([a??c[0],l??c[1]]):Qs(c)}function Ant(t){return NKe(t)?Object.assign({scheme:t.name},Co(t,["name"])):{scheme:t}}function Snt(t,e){const{size:n,config:r,mark:i,encoding:s}=e,o=e.getSignalName.bind(e),{type:u}=sr(s[t]),l=e.getScaleComponent(t).get("type"),{domain:c,domainMid:f}=e.specifiedScales[t];switch(t){case yn:case _r:{if(Tt(["point","band"],l)){const p=Ile(t,n,r.view);if(ka(p))return{step:wle(p,e,t)}}const x=gs(t),h=e.getName(x);return t===_r&&zs(l)?[Es.fromName(o,h),0]:[0,Es.fromName(o,h)]}case Fc:case D2:return vnt(t,e,l);case Jl:{const x=e.component.scales[t].get("zero"),h=$le(i,x,r),p=bnt(i,n,e,r);return B2(l)?Cnt(h,p,_nt(l,r,c,t)):[h,p]}case du:return[0,Math.PI*2];case Sd:return[0,360];case ba:return[0,new Es(()=>{const x=e.getSignalName("width"),h=e.getSignalName("height");return`min(${x},${h})/2`})];case Ic:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case $c:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case ps:return"symbol";case hs:case Oa:case Na:return l==="ordinal"?u==="nominal"?"category":"ordinal":f!==void 0?"diverging":i==="rect"||i==="geoshape"?"heatmap":"ramp";case Zl:case wc:case Lc:return[r.scale.minOpacity,r.scale.maxOpacity]}}function wle(t,e,n){var r,i,s,o,u;const{encoding:a}=e,l=e.getScaleComponent(n),c=Wse(n),f=a[c];if(Hue({step:t,offsetIsDiscrete:it(f)&&$oe(f.type)})==="offset"&&vue(a,c)){const h=e.getScaleComponent(c);let m=`domain('${e.scaleName(c)}').length`;if(h.get("type")==="band"){const y=(i=(r=h.get("paddingInner"))!==null&&r!==void 0?r:h.get("padding"))!==null&&i!==void 0?i:0,E=(o=(s=h.get("paddingOuter"))!==null&&s!==void 0?s:h.get("padding"))!==null&&o!==void 0?o:0;m=`bandspace(${m}, ${y}, ${E})`}const g=(u=l.get("paddingInner"))!==null&&u!==void 0?u:l.get("padding");return{signal:`${t.step} * ${m} / (1-${YYe(g)})`}}else return t.step}function Lle(t,e){if(Hue({step:t,offsetIsDiscrete:Cr(e)})==="offset")return{step:t.step}}function vnt(t,e,n){const r=t===Fc?"x":"y",s=e.getScaleComponent(r).get("type"),o=e.scaleName(r);if(s==="band"){const u=Ile(r,e.size,e.config.view);if(ka(u)){const a=Lle(u,n);if(a)return a}return[0,{signal:`bandwidth('${o}')`}]}else return lYe(`Cannot use ${t} scale if ${r} scale is not discrete.`)}function Ile(t,e,n){const r=t===yn?"width":"height",i=e[r];return i||zN(n,r)}function _nt(t,e,n,r){switch(t){case"quantile":return e.scale.quantileCount;case"quantize":return e.scale.quantizeCount;case"threshold":return n!==void 0&&_e(n)?n.length+1:(Te(ZXe(r)),3)}}function Cnt(t,e,n){const r=()=>{const i=r0(e),s=r0(t),o=`(${i} - ${s}) / (${n} - 1)`;return`sequence(${s}, ${i} + ${o}, ${o})`};return Ye(e)?new Es(r):{signal:r()}}function $le(t,e,n){if(e)return Ye(e)?{signal:`${e.signal} ? 0 : ${$le(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(EN("size",t))}const Ble=.95;function bnt(t,e,n,r){const i={x:Fle(n,"x"),y:Fle(n,"y")};switch(t){case"bar":case"tick":{if(r.scale.maxBandSize!==void 0)return r.scale.maxBandSize;const s=kle(e,i,r.view);return nn(s)?s-1:new Es(()=>`${s.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 s=kle(e,i,r.view);return nn(s)?Math.pow(Ble*s,2):new Es(()=>`pow(${Ble} * ${s.signal}, 2)`)}}throw new Error(EN("size",t))}function kle(t,e,n){const r=ka(t.width)?t.width.step:HN(n,"width"),i=ka(t.height)?t.height.step:HN(n,"height");return e.x||e.y?new Es(()=>`min(${[e.x?e.x.signal:r,e.y?e.y.signal:i].join(", ")})`):Math.min(r,i)}function Ple(t,e){zn(t)?Tnt(t,e):Ule(t,e)}function Tnt(t,e){const n=t.component.scales,{config:r,encoding:i,markDef:s,specifiedScales:o}=t;for(const u of be(n)){const a=o[u],l=n[u],c=t.getScaleComponent(u),f=sr(i[u]),x=a[e],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=t7(h,e),y=qoe(u,e);if(x!==void 0&&(g?y&&Te(y):Te(voe(h,e,u))),g&&y===void 0)if(x!==void 0){const E=f.timeUnit,A=f.type;switch(e){case"domainMax":case"domainMin":Td(a[e])||A==="temporal"||E?l.set(e,{signal:BN(a[e],{type:A,timeUnit:E})},!0):l.set(e,a[e],!0);break;default:l.copyKeyFromObject(e,a)}}else{const E=e in Mle?Mle[e]({model:t,channel:u,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:m,domain:a.domain,domainMin:a.domainMin,domainMax:a.domainMax,markDef:s,config:r,hasNestedOffsetScale:E7(i,u)}):r.scale[e];E!==void 0&&l.set(e,E,!1)}}}const Mle={bins:({model:t,fieldOrDatumDef:e})=>Le(e)?Rnt(t,e):void 0,interpolate:({channel:t,fieldOrDatumDef:e})=>Ont(t,e.type),nice:({scaleType:t,channel:e,domain:n,domainMin:r,domainMax:i,fieldOrDatumDef:s})=>Nnt(t,e,n,r,i,s),padding:({channel:t,scaleType:e,fieldOrDatumDef:n,markDef:r,config:i})=>Dnt(t,e,i.scale,n,r,i.bar),paddingInner:({scalePadding:t,channel:e,markDef:n,scaleType:r,config:i,hasNestedOffsetScale:s})=>Fnt(t,e,n.type,r,i.scale,s),paddingOuter:({scalePadding:t,channel:e,scaleType:n,scalePaddingInner:r,config:i,hasNestedOffsetScale:s})=>wnt(t,e,n,r,i.scale,s),reverse:({fieldOrDatumDef:t,scaleType:e,channel:n,config:r})=>{const i=Le(t)?t.sort:void 0;return Lnt(e,i,n,r.scale)},zero:({channel:t,fieldOrDatumDef:e,domain:n,markDef:r,scaleType:i})=>Int(t,e,n,r,i)};function jle(t){zn(t)?ynt(t):Ule(t,"range")}function Ule(t,e){const n=t.component.scales;for(const r of t.children)e==="range"?jle(r):Ple(r,e);for(const r of be(n)){let i;for(const s of t.children){const o=s.component.scales[r];if(o){const u=o.getWithExplicit(e);i=zc(i,u,e,"scale",pae((a,l)=>{switch(e){case"range":return a.step&&l.step?a.step-l.step:0}return 0}))}}n[r].setWithExplicit(e,i)}}function Rnt(t,e){const n=e.bin;if(Kt(n)){const r=uP(t,e.field,n);return new Es(()=>t.getSignalName(r))}else if(Mi(n)&&Cd(n)&&n.step!==void 0)return{step:n.step}}function Ont(t,e){if(Tt([hs,Oa,Na],t)&&e!=="nominal")return"hcl"}function Nnt(t,e,n,r,i,s){var o;if(!(!((o=Ba(s))===null||o===void 0)&&o.bin||_e(n)||i!=null||r!=null||Tt([ys.TIME,ys.UTC],t)))return kr(e)?!0:void 0}function Dnt(t,e,n,r,i,s){if(kr(t)){if(pu(e)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:o,orient:u}=i;if(o==="bar"&&!(Le(r)&&(r.bin||r.timeUnit))&&(u==="vertical"&&t==="x"||u==="horizontal"&&t==="y"))return s.continuousBandSize}if(e===ys.POINT)return n.pointPadding}}function Fnt(t,e,n,r,i,s=!1){if(t===void 0){if(kr(e)){const{bandPaddingInner:o,barBandPaddingInner:u,rectBandPaddingInner:a,bandWithNestedOffsetPaddingInner:l}=i;return s?l:ir(o,n==="bar"?u:a)}else if(w2(e)&&r===ys.BAND)return i.offsetBandPaddingInner}}function wnt(t,e,n,r,i,s=!1){if(t===void 0){if(kr(e)){const{bandPaddingOuter:o,bandWithNestedOffsetPaddingOuter:u}=i;if(s)return u;if(n===ys.BAND)return ir(o,Ye(r)?{signal:`${r.signal}/2`}:r/2)}else if(w2(e)){if(n===ys.POINT)return .5;if(n===ys.BAND)return i.offsetBandPaddingOuter}}}function Lnt(t,e,n,r){if(n==="x"&&r.xReverse!==void 0)return zs(t)&&e==="descending"?Ye(r.xReverse)?{signal:`!${r.xReverse.signal}`}:!r.xReverse:r.xReverse;if(zs(t)&&e==="descending")return!0}function Int(t,e,n,r,i){if(!!n&&n!=="unaggregated"&&zs(i)){if(_e(n)){const o=n[0],u=n[n.length-1];if(o<=0&&u>=0)return!0}return!1}if(t==="size"&&e.type==="quantitative"&&!B2(i))return!0;if(!(Le(e)&&e.bin)&&Tt([...Da,...FYe],t)){const{orient:o,type:u}=r;return!(Tt(["bar","area","line","trail"],u)&&(o==="horizontal"&&t==="y"||o==="vertical"&&t==="x"))}return!1}function $nt(t,e,n,r,i=!1){const s=Bnt(e,n,r,i),{type:o}=t;return kc(e)?o!==void 0?$Ke(e,o)?Le(n)&&!IKe(o,n.type)?(Te(kXe(o,s)),s):o:(Te(BXe(e,o,s)),s):s:null}function Bnt(t,e,n,r){var i;switch(e.type){case"nominal":case"ordinal":{if(F2(t)||w8(t)==="discrete")return t==="shape"&&e.type==="ordinal"&&Te(M8(t,"ordinal")),"ordinal";if(kr(t)||w2(t)){if(Tt(["rect","bar","image","rule"],n.type)||r)return"band"}else if(n.type==="arc"&&t in F8)return"band";const s=n[gs(t)];return k2(s)||p7(e)&&(!((i=e.axis)===null||i===void 0)&&i.tickBand)?"band":"point"}case"temporal":return F2(t)?"time":w8(t)==="discrete"?(Te(M8(t,"temporal")),"ordinal"):Le(e)&&e.timeUnit&&ji(e.timeUnit).utc?"utc":"time";case"quantitative":return F2(t)?Le(e)&&Kt(e.bin)?"bin-ordinal":"linear":w8(t)==="discrete"?(Te(M8(t,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(Aoe(e.type))}function knt(t,{ignoreRange:e}={}){qle(t),Tle(t);for(const n of LKe)Ple(t,n);e||jle(t)}function qle(t){zn(t)?t.component.scales=Pnt(t):t.component.scales=jnt(t)}function Pnt(t){const{encoding:e,mark:n,markDef:r}=t,i={};for(const s of gN){const o=sr(e[s]);if(o&&n===Qoe&&s===ps&&o.type===$2)continue;let u=o&&o.scale;if(w2(s)){const a=Vse(s);if(!E7(e,a)){u&&Te(vXe(s));continue}}if(o&&u!==null&&u!==!1){u??(u={});const a=E7(e,s),l=$nt(u,s,o,r,a);i[s]=new Dle(t.scaleName(`${s}`,!0),{value:l,explicit:u.type===l})}}return i}const Mnt=pae((t,e)=>Boe(t)-Boe(e));function jnt(t){var e,n;const r=t.component.scales={},i={},s=t.component.resolve;for(const o of t.children){qle(o);for(const u of be(o.component.scales))if((e=(n=s.scale)[u])!==null&&e!==void 0||(n[u]=ole(u,t)),s.scale[u]==="shared"){const a=i[u],l=o.component.scales[u].getWithExplicit("type");a?CKe(a.value,l.value)?i[u]=zc(a,l,"type","scale",Mnt):(s.scale[u]="independent",delete i[u]):i[u]=l}}for(const o of be(i)){const u=t.scaleName(o,!0),a=i[o];r[o]=new Dle(u,a);for(const l of t.children){const c=l.component.scales[o];c&&(l.renameScale(c.get("name"),u),c.merged=!0)}}return r}var yP=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class EP{constructor(){this.nameMap={}}rename(e,n){this.nameMap[e]=n}has(e){return this.nameMap[e]!==void 0}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function zn(t){return(t==null?void 0:t.type)==="unit"}function Eu(t){return(t==null?void 0:t.type)==="facet"}function AP(t){return(t==null?void 0:t.type)==="concat"}function Z2(t){return(t==null?void 0:t.type)==="layer"}class SP{constructor(e,n,r,i,s,o,u){var a,l;this.type=n,this.parent=r,this.config=s,this.correctDataNames=c=>{var f,x,h;return!((f=c.from)===null||f===void 0)&&f.data&&(c.from.data=this.lookupDataSource(c.from.data)),!((h=(x=c.from)===null||x===void 0?void 0:x.facet)===null||h===void 0)&&h.data&&(c.from.facet.data=this.lookupDataSource(c.from.facet.data)),c},this.parent=r,this.config=s,this.view=ms(u),this.name=(a=e.name)!==null&&a!==void 0?a:i,this.title=Mc(e.title)?{text:e.title}:e.title?ms(e.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new EP,this.projectionNameMap=r?r.projectionNameMap:new EP,this.signalNameMap=r?r.signalNameMap:new EP,this.data=e.data,this.description=e.description,this.transforms=jZe((l=e.transform)!==null&&l!==void 0?l:[]),this.layout=n==="layer"||n==="unit"?{}:WJe(e,n,s),this.component={data:{sources:r?r.component.data.sources:[],outputNodes:r?r.component.data.outputNodes:{},outputNodeRefCounts:r?r.component.data.outputNodeRefCounts:{},isFaceted:NN(e)||(r==null?void 0:r.component.data.isFaceted)&&e.data===void 0},layoutSize:new o0,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},o?ot(o):{}),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(){knt(this)}parseProjection(){Ele(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){hle(this)}assembleEncodeFromView(e){const n=yP(e,["style"]),r={};for(const i of be(n)){const s=n[i];s!==void 0&&(r[i]=on(s))}return r}assembleGroupEncodeEntry(e){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!e&&(this.description&&(n.description=on(this.description)),this.type==="unit"||this.type==="layer")?Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},n??{}):Wt(n)?void 0:n}assembleLayout(){if(!this.layout)return;const e=this.layout,{spacing:n}=e,r=yP(e,["spacing"]),{component:i,config:s}=this,o=rtt(i.layoutHeaders,s);return Object.assign(Object.assign(Object.assign({padding:n},this.assembleDefaultLayout()),r),o?{titleBand:o}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let n=[];for(const r of To)e[r].title&&n.push(Ket(this,r));for(const r of tP)n=n.concat(Jet(this,r));return n}assembleAxes(){return Met(this.component.axes,this.config)}assembleLegends(){return gle(this)}assembleProjections(){return Rtt(this)}assembleTitle(){var e,n,r;const i=(e=this.title)!==null&&e!==void 0?e:{},{encoding:s}=i,o=yP(i,["encoding"]),u=Object.assign(Object.assign(Object.assign({},noe(this.config.title).nonMarkTitleProperties),o),s?{encode:{update:s}}:{});if(u.text)return Tt(["unit","layer"],this.type)?Tt(["middle",void 0],u.anchor)&&((n=u.frame)!==null&&n!==void 0||(u.frame="group")):(r=u.anchor)!==null&&r!==void 0||(u.anchor="start"),Wt(u)?void 0:u}assembleGroup(e=[]){const n={};e=e.concat(this.assembleSignals()),e.length>0&&(n.signals=e);const r=this.assembleLayout();r&&(n.layout=r),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||Eu(this.parent)?Ole(this):[];i.length>0&&(n.scales=i);const s=this.assembleAxes();s.length>0&&(n.axes=s);const o=this.assembleLegends();return o.length>0&&(n.legends=o),n}getName(e){return mn((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(Jt[e].toLowerCase())}requestDataName(e){const n=this.getDataName(e),r=this.component.data.outputNodeRefCounts;return r[n]=(r[n]||0)+1,n}getSizeSignalRef(e){if(Eu(this.parent)){const n=ile(e),r=pN(n),i=this.component.scales[r];if(i&&!i.merged){const s=i.get("type"),o=i.get("range");if(Cr(s)&&jc(o)){const u=i.get("name"),a=iD(this,r),l=mP(a);if(l){const c=$e({aggregate:"distinct",field:l},{expr:"datum"});return{signal:rle(u,i,c)}}else return Te(k8(r)),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const n=this.component.data.outputNodes[e];return n?n.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,n){this.signalNameMap.rename(e,n)}renameScale(e,n){this.scaleNameMap.rename(e,n)}renameProjection(e,n){this.projectionNameMap.rename(e,n)}scaleName(e,n){if(n)return this.getName(e);if(Qse(e)&&kc(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e)))return this.scaleNameMap.get(this.getName(e))}projectionName(e){if(e)return this.getName("projection");if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection")))return this.projectionNameMap.get(this.getName("projection"))}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const n=this.component.scales[e];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(e):void 0}getSelectionComponent(e,n){let r=this.component.selection[e];if(!r&&this.parent&&(r=this.parent.getSelectionComponent(e,n)),!r)throw new Error(eXe(n));return r}hasAxisOrientSignalRef(){var e,n;return((e=this.component.axes.x)===null||e===void 0?void 0:e.some(r=>r.hasOrientSignalRef()))||((n=this.component.axes.y)===null||n===void 0?void 0:n.some(r=>r.hasOrientSignalRef()))}}class Hle extends SP{vgField(e,n={}){const r=this.fieldDef(e);if(r)return $e(r,n)}reduceFieldDef(e,n){return _Je(this.getMapping(),(r,i,s)=>{const o=Ba(i);return o?e(r,o,s):r},n)}forEachFieldDef(e,n){S7(this.getMapping(),(r,i)=>{const s=Ba(r);s&&e(s,i)},n)}}var Unt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class sD extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ot(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"value",(s=o[1])!==null&&s!==void 0?s:"density"]}clone(){return new sD(null,ot(this.transform))}dependentFields(){var e;return new Set([this.transform.density,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${bt(this.transform)}`}assemble(){const e=this.transform,{density:n}=e,r=Unt(e,["density"]);return Object.assign({type:"kde",field:n},r)}}class P3 extends Ut{constructor(e,n){super(e),this.filter=n}clone(){return new P3(null,Object.assign({},this.filter))}static make(e,n){const{config:r,mark:i,markDef:s}=n;if(kt("invalid",s,r)!=="filter")return null;const u=n.reduceFieldDef((a,l,c)=>{const f=kc(c)&&n.getScaleComponent(c);if(f){const x=f.get("type");zs(x)&&l.aggregate!=="count"&&!Uc(i)&&(a[l.field]=l)}return a},{});return be(u).length?new P3(e,u):null}dependentFields(){return new Set(be(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${bt(this.filter)}`}assemble(){const e=be(this.filter).reduce((n,r)=>{const i=this.filter[r],s=$e(i,{expr:"datum"});return i!==null&&(i.type==="temporal"?n.push(`(isDate(${s}) || (isValid(${s}) && isFinite(+${s})))`):i.type==="quantitative"&&(n.push(`isValid(${s})`),n.push(`isFinite(+${s})`))),n},[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}class oD extends Ut{constructor(e,n){super(e),this.transform=n,this.transform=ot(n);const{flatten:r,as:i=[]}=this.transform;this.transform.as=r.map((s,o)=>{var u;return(u=i[o])!==null&&u!==void 0?u:s})}clone(){return new oD(this.parent,ot(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${bt(this.transform)}`}assemble(){const{flatten:e,as:n}=this.transform;return{type:"flatten",fields:e,as:n}}}class uD extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ot(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"key",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new uD(null,ot(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${bt(this.transform)}`}assemble(){const{fold:e,as:n}=this.transform;return{type:"fold",fields:e,as:n}}}class eg extends Ut{constructor(e,n,r,i){super(e),this.fields=n,this.geojson=r,this.signal=i}clone(){return new eg(null,ot(this.fields),this.geojson,this.signal)}static parseAll(e,n){if(n.component.projection&&!n.component.projection.isFit)return e;let r=0;for(const i of[[Ra,Ta],[bo,hu]]){const s=i.map(o=>{const u=sr(n.encoding[o]);return Le(u)?u.field:Ia(u)?{expr:`${u.datum}`}:gu(u)?{expr:`${u.value}`}:void 0});(s[0]||s[1])&&(e=new eg(e,s,null,n.getName(`geojson_${r++}`)))}if(n.channelHasField(ps)){const i=n.typedFieldDef(ps);i.type===$2&&(e=new eg(e,null,i.field,n.getName(`geojson_${r++}`)))}return e}dependentFields(){var e;const n=((e=this.fields)!==null&&e!==void 0?e:[]).filter(je);return new Set([...this.geojson?[this.geojson]:[],...n])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${bt(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})]}}class M3 extends Ut{constructor(e,n,r,i){super(e),this.projection=n,this.fields=r,this.as=i}clone(){return new M3(null,this.projection,ot(this.fields),ot(this.as))}static parseAll(e,n){if(!n.projectionName())return e;for(const r of[[Ra,Ta],[bo,hu]]){const i=r.map(o=>{const u=sr(n.encoding[o]);return Le(u)?u.field:Ia(u)?{expr:`${u.datum}`}:gu(u)?{expr:`${u.value}`}:void 0}),s=r[0]===bo?"2":"";(i[0]||i[1])&&(e=new M3(e,n.projectionName(),i,[n.getName(`x${s}`),n.getName(`y${s}`)]))}return e}dependentFields(){return new Set(this.fields.filter(je))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${bt(this.fields)} ${bt(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Bd extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new Bd(null,ot(this.transform))}dependentFields(){var e;return new Set([this.transform.impute,this.transform.key,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:n=0,stop:r,step:i}=e;return{signal:`sequence(${[n,r,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,n){return new Bd(e,n)}static makeFromEncoding(e,n){const r=n.encoding,i=r.x,s=r.y;if(Le(i)&&Le(s)){const o=i.impute?i:s.impute?s:void 0;if(o===void 0)return;const u=i.impute?s:s.impute?i:void 0,{method:a,value:l,frame:c,keyvals:f}=o.impute,x=Cue(n.mark,r);return new Bd(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:o.field,key:u.field},a?{method:a}:{}),l!==void 0?{value:l}:{}),c?{frame:c}:{}),f!==void 0?{keyvals:f}:{}),x.length?{groupby:x}:{}))}return null}hash(){return`Impute ${bt(this.transform)}`}assemble(){const{impute:e,key:n,keyvals:r,method:i,groupby:s,value:o,frame:u=[null,null]}=this.transform,a=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:e,key:n},r?{keyvals:vZe(r)?this.processSequence(r):r}:{}),{method:"value"}),s?{groupby:s}:{}),{value:!i||i==="value"?o:null});if(i&&i!=="value"){const l=Object.assign({type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:u,ignorePeers:!1},s?{groupby:s}:{}),c={type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e};return[a,l,c]}else return[a]}}var qnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class aD extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ot(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.loess]}clone(){return new aD(null,ot(this.transform))}dependentFields(){var e;return new Set([this.transform.loess,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${bt(this.transform)}`}assemble(){const e=this.transform,{loess:n,on:r}=e,i=qnt(e,["loess","on"]);return Object.assign({type:"loess",x:r,y:n},i)}}class j3 extends Ut{constructor(e,n,r){super(e),this.transform=n,this.secondary=r}clone(){return new j3(null,ot(this.transform),this.secondary)}static make(e,n,r,i){const s=n.component.data.sources,{from:o}=r;let u=null;if(_Ze(o)){let a=Wle(o.data,s);a||(a=new Ld(o.data),s.push(a));const l=n.getName(`lookup_${i}`);u=new qi(a,l,Jt.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=u}else if(CZe(o)){const a=o.param;r=Object.assign({as:a},r);let l;try{l=n.getSelectionComponent(mn(a),a)}catch{throw new Error(rXe(a))}if(u=l.materialized,!u)throw new Error(iXe(a))}return new j3(e,r,u.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?Pe(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${bt({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e=Object.assign({values:this.transform.from.fields},this.transform.as?{as:Pe(this.transform.as)}:{});else{let n=this.transform.as;je(n)||(Te(xXe),n="_lookup"),e={as:[n]}}return Object.assign(Object.assign({type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup]},e),this.transform.default?{default:this.transform.default}:{})}}var Hnt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class lD extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ot(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:"prob",(s=o[1])!==null&&s!==void 0?s:"value"]}clone(){return new lD(null,ot(this.transform))}dependentFields(){var e;return new Set([this.transform.quantile,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${bt(this.transform)}`}assemble(){const e=this.transform,{quantile:n}=e,r=Hnt(e,["quantile"]);return Object.assign({type:"quantile",field:n},r)}}var znt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};class cD extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ot(n);const o=(r=this.transform.as)!==null&&r!==void 0?r:[void 0,void 0];this.transform.as=[(i=o[0])!==null&&i!==void 0?i:n.on,(s=o[1])!==null&&s!==void 0?s:n.regression]}clone(){return new cD(null,ot(this.transform))}dependentFields(){var e;return new Set([this.transform.regression,this.transform.on,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${bt(this.transform)}`}assemble(){const e=this.transform,{regression:n,on:r}=e,i=znt(e,["regression","on"]);return Object.assign({type:"regression",x:r,y:n},i)}}class fD extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new fD(null,ot(this.transform))}addDimensions(e){var n;this.transform.groupby=Wl(((n=this.transform.groupby)!==null&&n!==void 0?n:[]).concat(e),r=>r)}producedFields(){}dependentFields(){var e;return new Set([this.transform.pivot,this.transform.value,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}hash(){return`PivotTransform ${bt(this.transform)}`}assemble(){const{pivot:e,value:n,groupby:r,limit:i,op:s}=this.transform;return Object.assign(Object.assign(Object.assign({type:"pivot",field:e,value:n},i!==void 0?{limit:i}:{}),s!==void 0?{op:s}:{}),r!==void 0?{groupby:r}:{})}}class xD extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new xD(null,ot(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${bt(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function zle(t){let e=0;function n(r,i){var s;if(r instanceof Ld&&!r.isGenerator&&!q2(r.data)&&(t.push(i),i={name:null,source:i.name,transform:[]}),r instanceof li&&(r.parent instanceof Ld&&!i.source?(i.format=Object.assign(Object.assign({},(s=i.format)!==null&&s!==void 0?s:{}),{parse:r.assembleFormatParse()}),i.transform.push(...r.assembleTransforms(!0))):i.transform.push(...r.assembleTransforms())),r instanceof K2){i.name||(i.name=`data_${e++}`),!i.source||i.transform.length>0?(t.push(i),r.data=i.name):r.data=i.source,t.push(...r.assemble());return}switch((r instanceof $3||r instanceof B3||r instanceof P3||r instanceof W2||r instanceof V2||r instanceof M3||r instanceof mu||r instanceof j3||r instanceof J2||r instanceof $d||r instanceof uD||r instanceof oD||r instanceof sD||r instanceof aD||r instanceof lD||r instanceof cD||r instanceof Yc||r instanceof xD||r instanceof fD)&&i.transform.push(r.assemble()),(r instanceof ja||r instanceof Ma||r instanceof Bd||r instanceof u0||r instanceof eg)&&i.transform.push(...r.assemble()),r instanceof qi&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof qi?r.setSource(i.name):(i.name||(i.name=`data_${e++}`),r.setSource(i.name),r.numChildren()===1&&(t.push(i),i={name:null,source:i.name,transform:[]}))),r.numChildren()){case 0:r instanceof qi&&(!i.source||i.transform.length>0)&&t.push(i);break;case 1:n(r.children[0],i);break;default:{i.name||(i.name=`data_${e++}`);let o=i.name;!i.source||i.transform.length>0?t.push(i):o=i.source;for(const u of r.children)n(u,{name:null,source:o,transform:[]});break}}}return n}function Qnt(t){const e=[],n=zle(e);for(const r of t.children)n(r,{source:t.name,name:null,transform:[]});return e}function Gnt(t,e){var n,r;const i=[],s=zle(i);let o=0;for(const a of t.sources){a.hasName()||(a.dataName=`source_${o++}`);const l=a.assemble();s(a,l)}for(const a of i)a.transform.length===0&&delete a.transform;let u=0;for(const[a,l]of i.entries())((n=l.transform)!==null&&n!==void 0?n:[]).length===0&&!l.source&&i.splice(u++,0,i.splice(a,1)[0]);for(const a of i)for(const l of(r=a.transform)!==null&&r!==void 0?r:[])l.type==="lookup"&&(l.from=t.outputNodes[l.from].getSource());for(const a of i)a.name in e&&(a.values=e[a.name]);return i}function Wnt(t){return t==="top"||t==="left"||Ye(t)?"header":"footer"}function Vnt(t){for(const e of To)Ynt(t,e);Gle(t,"x"),Gle(t,"y")}function Ynt(t,e){var n;const{facet:r,config:i,child:s,component:o}=t;if(t.channelHasField(e)){const u=r[e],a=X2("title",null,i,e);let l=P2(u,i,{allowDisabling:!0,includeDefault:a===void 0||!!a});s.component.layoutHeaders[e].title&&(l=_e(l)?l.join(", "):l,l+=` / ${s.component.layoutHeaders[e].title}`,s.component.layoutHeaders[e].title=null);const c=X2("labelOrient",u.header,i,e),f=u.header!==null?ir((n=u.header)===null||n===void 0?void 0:n.labels,i.header.labels,!0):!1,x=Tt(["bottom","right"],c)?"footer":"header";o.layoutHeaders[e]={title:u.header!==null?l:null,facetFieldDef:u,[x]:e==="facet"?[]:[Qle(t,e,f)]}}}function Qle(t,e,n){const r=e==="row"?"height":"width";return{labels:n,sizeSignal:t.child.component.layoutSize.get(r)?t.child.getSizeSignalRef(r):void 0,axes:[]}}function Gle(t,e){var n;const{child:r}=t;if(r.component.axes[e]){const{layoutHeaders:i,resolve:s}=t.component;if(s.axis[e]=sP(s,e),s.axis[e]==="shared"){const o=e==="x"?"column":"row",u=i[o];for(const a of r.component.axes[e]){const l=Wnt(a.get("orient"));(n=u[l])!==null&&n!==void 0||(u[l]=[Qle(t,o,!1)]);const c=I3(a,"main",t.config,{header:!0});c&&u[l][0].axes.push(c),a.mainExtracted=!0}}}}function Xnt(t){vP(t),dD(t,"width"),dD(t,"height")}function Knt(t){vP(t);const e=t.layout.columns===1?"width":"childWidth",n=t.layout.columns===void 0?"height":"childHeight";dD(t,e),dD(t,n)}function vP(t){for(const e of t.children)e.parseLayoutSize()}function dD(t,e){var n;const r=ile(e),i=pN(r),s=t.component.resolve,o=t.component.layoutSize;let u;for(const a of t.children){const l=a.component.layoutSize.getWithExplicit(r),c=(n=s.scale[i])!==null&&n!==void 0?n:ole(i,t);if(c==="independent"&&l.value==="step"){u=void 0;break}if(u){if(c==="independent"&&u.value!==l.value){u=void 0;break}u=zc(u,l,r,"")}else u=l}if(u){for(const a of t.children)t.renameSignal(a.getName(r),t.getName(e)),a.component.layoutSize.set(r,"merged",!1);o.setWithExplicit(e,u)}else o.setWithExplicit(e,{explicit:!1,value:void 0})}function Jnt(t){const{size:e,component:n}=t;for(const r of Da){const i=gs(r);if(e[i]){const s=e[i];n.layoutSize.set(i,ka(s)?"step":s,!0)}else{const s=Znt(t,i);n.layoutSize.set(i,s,!1)}}}function Znt(t,e){const n=e==="width"?"x":"y",r=t.config,i=t.getScaleComponent(n);if(i){const s=i.get("type"),o=i.get("range");if(Cr(s)){const u=zN(r.view,e);return jc(o)||ka(u)?"step":u}else return L7(r.view,e)}else{if(t.hasProjection||t.mark==="arc")return L7(r.view,e);{const s=zN(r.view,e);return ka(s)?s.step:s}}}function _P(t,e,n){return $e(e,Object.assign({suffix:`by_${$e(t)}`},n??{}))}class U3 extends Hle{constructor(e,n,r,i){super(e,"facet",n,r,i,e.resolve),this.child=OP(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!b3(e))return{facet:this.initFacetFieldDef(e,"facet")};const n=be(e),r={};for(const i of n){if(![Vl,Yl].includes(i)){Te(EN(i,"facet"));break}const s=e[i];if(s.field===void 0){Te(P8(s,i));break}r[i]=this.initFacetFieldDef(s,i)}return r}initFacetFieldDef(e,n){const r=y7(e,n);return r.header?r.header=ms(r.header):r.header===null&&(r.header=null),r}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=hD(this),this.child.parseData()}parseLayoutSize(){vP(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),Vnt(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){var e,n,r;const i={};for(const s of To)for(const o of nP){const u=this.component.layoutHeaders[s],a=u[o],{facetFieldDef:l}=u;if(l){const c=X2("titleOrient",l.header,this.config,s);if(["right","bottom"].includes(c)){const f=eD(s,c);(e=i.titleAnchor)!==null&&e!==void 0||(i.titleAnchor={}),i.titleAnchor[f]="end"}}if(a!=null&&a[0]){const c=s==="row"?"height":"width",f=o==="header"?"headerBand":"footerBand";s!=="facet"&&!this.child.component.layoutSize.get(c)&&((n=i[f])!==null&&n!==void 0||(i[f]={}),i[f][s]=.5),u.title&&((r=i.offset)!==null&&r!==void 0||(i.offset={}),i.offset[s==="row"?"rowTitle":"columnTitle"]=10)}}return i}assembleDefaultLayout(){const{column:e,row:n}=this.facet,r=e?this.columnDistinctSignal():n?1:void 0;let i="all";return(!n&&this.component.resolve.scale.x==="independent"||!e&&this.component.resolve.scale.y==="independent")&&(i="none"),Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),r?{columns:r}:{}),{bounds:"full",align:i})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof U3))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof U3?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:$e(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(e)):super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],n=[],r=[];if(this.child instanceof U3){if(this.child.channelHasField("column")){const i=$e(this.child.facet.column);e.push(i),n.push("distinct"),r.push(`distinct_${i}`)}}else for(const i of Da){const s=this.child.component.scales[i];if(s&&!s.merged){const o=s.get("type"),u=s.get("range");if(Cr(o)&&jc(u)){const a=iD(this.child,i),l=mP(a);l?(e.push(l),n.push("distinct"),r.push(`distinct_${l}`)):Te(k8(i))}}}return{fields:e,ops:n,as:r}}assembleFacet(){const{name:e,data:n}=this.component.data.facetRoot,{row:r,column:i}=this.facet,{fields:s,ops:o,as:u}=this.getCardinalityAggregateForChild(),a=[];for(const c of To){const f=this.facet[c];if(f){a.push($e(f));const{bin:x,sort:h}=f;if(Kt(x)&&a.push($e(f,{binSuffix:"end"})),La(h)){const{field:p,op:m=ON}=h,g=_P(f,h);r&&i?(s.push(g),o.push("max"),u.push(g)):(s.push(p),o.push(m),u.push(g))}else if(_e(h)){const p=Y2(f,c);s.push(p),o.push("max"),u.push(p)}}}const l=!!r&&!!i;return Object.assign({name:e,data:n,groupby:a},l||s.length>0?{aggregate:Object.assign(Object.assign({},l?{cross:l}:{}),s.length?{fields:s,ops:o,as:u}:{})}:{})}facetSortFields(e){const{facet:n}=this,r=n[e];return r?La(r.sort)?[_P(r,r.sort,{expr:"datum"})]:_e(r.sort)?[Y2(r,e,{expr:"datum"})]:[$e(r,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:n}=this,r=n[e];if(r){const{sort:i}=r;return[(La(i)?i.order:!_e(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:n,config:r}=this;if(n.facet)return rP(n.facet,"facet",r);const i={row:["top","bottom"],column:["left","right"]};for(const s of tP)if(n[s]){const o=X2("labelOrient",(e=n[s])===null||e===void 0?void 0:e.header,r,s);if(i[s].includes(o))return rP(n[s],s,r)}}assembleMarks(){const{child:e}=this,n=this.component.data.facetRoot,r=Qnt(n),i=e.assembleGroupEncodeEntry(!1),s=this.assembleLabelTitle()||e.assembleTitle(),o=e.assembleGroupStyle();return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},s?{title:s}:{}),o?{style:o}:{}),{from:{facet:this.assembleFacet()},sort:{field:To.map(a=>this.facetSortFields(a)).flat(),order:To.map(a=>this.facetSortOrder(a)).flat()}}),r.length>0?{data:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup(eet(this,[])))]}getMapping(){return this.facet}}function ert(t,e){const{row:n,column:r}=e;if(n&&r){let i=null;for(const s of[n,r])if(La(s.sort)){const{field:o,op:u=ON}=s.sort;t=i=new $d(t,{joinaggregate:[{op:u,field:o,as:_P(s,s.sort,{forAs:!0})}],groupby:[$e(s)]})}return i}return null}function Wle(t,e){var n,r,i,s;for(const o of e){const u=o.data;if(t.name&&o.hasName()&&t.name!==o.dataName)continue;const a=(n=t.format)===null||n===void 0?void 0:n.mesh,l=(r=u.format)===null||r===void 0?void 0:r.feature;if(a&&l)continue;const c=(i=t.format)===null||i===void 0?void 0:i.feature;if((c||l)&&c!==l)continue;const f=(s=u.format)===null||s===void 0?void 0:s.mesh;if(!((a||f)&&a!==f)){if(D3(t)&&D3(u)){if(Gl(t.values,u.values))return o}else if(q2(t)&&q2(u)){if(t.url===u.url)return o}else if(gae(t)&&t.name===o.dataName)return o}}return null}function trt(t,e){if(t.data||!t.parent){if(t.data===null){const r=new Ld({values:[]});return e.push(r),r}const n=Wle(t.data,e);if(n)return Qc(t.data)||(n.data.format=cYe({},t.data.format,n.data.format)),!n.hasName()&&t.data.name&&(n.dataName=t.data.name),n;{const r=new Ld(t.data);return e.push(r),r}}else return t.parent.component.data.facetRoot?t.parent.component.data.facetRoot:t.parent.component.data.main}function nrt(t,e,n){var r,i;let s=0;for(const o of e.transforms){let u,a;if(IZe(o))a=t=new V2(t,o),u="derived";else if(P7(o)){const l=Utt(o);a=t=(r=li.makeWithAncestors(t,{},l,n))!==null&&r!==void 0?r:t,t=new W2(t,e,o.filter)}else if(aae(o))a=t=ja.makeFromTransform(t,o,e),u="number";else if(BZe(o))u="date",n.getWithExplicit(o.field).value===void 0&&(t=new li(t,{[o.field]:u}),n.set(o.field,u,!1)),a=t=Ma.makeFromTransform(t,o);else if(kZe(o))a=t=mu.makeFromTransform(t,o),u="number",X7(e)&&(t=new Yc(t));else if(uae(o))a=t=j3.make(t,e,o,s++),u="derived";else if(FZe(o))a=t=new J2(t,o),u="number";else if(wZe(o))a=t=new $d(t,o),u="number";else if(PZe(o))a=t=u0.makeFromTransform(t,o),u="derived";else if(MZe(o))a=t=new uD(t,o),u="derived";else if(LZe(o))a=t=new oD(t,o),u="derived";else if(bZe(o))a=t=new fD(t,o),u="derived";else if(DZe(o))t=new xD(t,o);else if($Ze(o))a=t=Bd.makeFromTransform(t,o),u="derived";else if(TZe(o))a=t=new sD(t,o),u="derived";else if(RZe(o))a=t=new lD(t,o),u="derived";else if(OZe(o))a=t=new cD(t,o),u="derived";else if(NZe(o))a=t=new aD(t,o),u="derived";else{Te(fXe(o));continue}if(a&&u!==void 0)for(const l of(i=a.producedFields())!==null&&i!==void 0?i:[])n.set(l,u,!1)}return t}function hD(t){var e,n,r,i,s,o,u,a,l,c;let f=trt(t,t.component.data.sources);const{outputNodes:x,outputNodeRefCounts:h}=t.component.data,p=t.data,g=!(p&&(Qc(p)||q2(p)||D3(p)))&&t.parent?t.parent.component.data.ancestorParse.clone():new KZe;Qc(p)?(mae(p)?f=new B3(f,p.sequence):U7(p)&&(f=new $3(f,p.graticule)),g.parseNothing=!0):((e=p==null?void 0:p.format)===null||e===void 0?void 0:e.parse)===null&&(g.parseNothing=!0),f=(n=li.makeExplicit(f,t,g))!==null&&n!==void 0?n:f,f=new Yc(f);const y=t.parent&&Z2(t.parent);(zn(t)||Eu(t))&&y&&(f=(r=ja.makeFromEncoding(f,t))!==null&&r!==void 0?r:f),t.transforms.length>0&&(f=nrt(f,t,g));const E=Htt(t),A=qtt(t);f=(i=li.makeWithAncestors(f,{},Object.assign(Object.assign({},E),A),g))!==null&&i!==void 0?i:f,zn(t)&&(f=eg.parseAll(f,t),f=M3.parseAll(f,t)),(zn(t)||Eu(t))&&(y||(f=(s=ja.makeFromEncoding(f,t))!==null&&s!==void 0?s:f),f=(o=Ma.makeFromEncoding(f,t))!==null&&o!==void 0?o:f,f=V2.parseAllForSortIndex(f,t));const S=t.getDataName(Jt.Raw),v=new qi(f,S,Jt.Raw,h);if(x[S]=v,f=v,zn(t)){const O=mu.makeFromEncoding(f,t);O&&(f=O,X7(t)&&(f=new Yc(f))),f=(u=Bd.makeFromEncoding(f,t))!==null&&u!==void 0?u:f,f=(a=u0.makeFromEncoding(f,t))!==null&&a!==void 0?a:f}zn(t)&&(f=(l=P3.make(f,t))!==null&&l!==void 0?l:f);const _=t.getDataName(Jt.Main),C=new qi(f,_,Jt.Main,h);x[_]=C,f=C,zn(t)&&ket(t,C);let b=null;if(Eu(t)){const O=t.getName("facet");f=(c=ert(f,t.facet))!==null&&c!==void 0?c:f,b=new K2(f,t,O,C.getSource()),x[O]=b}return Object.assign(Object.assign({},t.component.data),{outputNodes:x,outputNodeRefCounts:h,raw:v,main:C,facetRoot:b,ancestorParse:g})}class rrt extends SP{constructor(e,n,r,i){var s,o,u,a;super(e,"concat",n,r,i,e.resolve),(((o=(s=e.resolve)===null||s===void 0?void 0:s.axis)===null||o===void 0?void 0:o.x)==="shared"||((a=(u=e.resolve)===null||u===void 0?void 0:u.axis)===null||a===void 0?void 0:a.y)==="shared")&&Te(aXe),this.children=this.getChildren(e).map((l,c)=>OP(l,this,this.getName(`concat_${c}`),void 0,i))}parseData(){this.component.data=hD(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of be(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}getChildren(e){return qN(e)?e.vconcat:w7(e)?e.hconcat:e.concat}parseLayoutSize(){Knt(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.forEach(e=>e.assembleSignals()),[]}assembleLayoutSignals(){const e=iP(this);for(const n of this.children)e.push(...n.assembleLayoutSignals());return e}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleMarks(){return this.children.map(e=>{const n=e.assembleTitle(),r=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:e.getName("group")},n?{title:n}:{}),r?{style:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup())})}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return Object.assign(Object.assign({},e!=null?{columns:e}:{}),{bounds:"full",align:"each"})}}function irt(t){return t===!1||t===null}const srt=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},Eue),{labelExpr:1,encode:1}),Vle=be(srt);class CP extends o0{constructor(e={},n={},r=!1){super(),this.explicit=e,this.implicit=n,this.mainExtracted=r}clone(){return new CP(ot(this.explicit),ot(this.implicit),this.mainExtracted)}hasAxisPart(e){return e==="axis"?!0:e==="grid"||e==="title"?!!this.get(e):!irt(this.get(e))}hasOrientSignalRef(){return Ye(this.explicit.orient)}}function ort(t,e,n){var r;const{encoding:i,config:s}=t,o=(r=sr(i[e]))!==null&&r!==void 0?r:sr(i[e0(e)]),u=t.axis(e)||{},{format:a,formatType:l}=u;return Nd(l)?Object.assign({text:l7({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:l,config:s})},n):n}function urt(t){return Da.reduce((e,n)=>(t.component.scales[n]&&(e[n]=[hrt(n,t)]),e),{})}const art={bottom:"top",top:"bottom",left:"right",right:"left"};function lrt(t){var e;const{axes:n,resolve:r}=t.component,i={top:0,bottom:0,right:0,left:0};for(const s of t.children){s.parseAxesAndHeaders();for(const o of be(s.component.axes))r.axis[o]=sP(t.component.resolve,o),r.axis[o]==="shared"&&(n[o]=crt(n[o],s.component.axes[o]),n[o]||(r.axis[o]="independent",delete n[o]))}for(const s of Da){for(const o of t.children)if(o.component.axes[s]){if(r.axis[s]==="independent"){n[s]=((e=n[s])!==null&&e!==void 0?e:[]).concat(o.component.axes[s]);for(const u of o.component.axes[s]){const{value:a,explicit:l}=u.getWithExplicit("orient");if(!Ye(a)){if(i[a]>0&&!l){const c=art[a];i[a]>i[c]&&u.set("orient",c,!1)}i[a]++}}}delete o.component.axes[s]}if(r.axis[s]==="independent"&&n[s]&&n[s].length>1)for(const o of n[s])o.get("grid")&&!o.explicit.grid&&(o.implicit.grid=!1)}}function crt(t,e){if(t){if(t.length!==e.length)return;const n=t.length;for(let r=0;r<n;r++){const i=t[r],s=e[r];if(!!i!=!!s)return;if(i&&s){const o=i.getWithExplicit("orient"),u=s.getWithExplicit("orient");if(o.explicit&&u.explicit&&o.value!==u.value)return;t[r]=frt(i,s)}}}else return e.map(n=>n.clone());return t}function frt(t,e){for(const n of Vle){const r=zc(t.getWithExplicit(n),e.getWithExplicit(n),n,"axis",(i,s)=>{switch(n){case"title":return foe(i,s);case"gridScale":return{explicit:i.explicit,value:ir(i.value,s.value)}}return GN(i,s,n,"axis")});t.setWithExplicit(n,r)}return t}function xrt(t,e,n,r,i){if(e==="disable")return n!==void 0;switch(n=n||{},e){case"titleAngle":case"labelAngle":return t===(Ye(n.labelAngle)?n.labelAngle:lN(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(t===Jae(r,i))return!0}return t===n[e]}const drt=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function hrt(t,e){var n,r,i;let s=e.axis(t);const o=new CP,u=sr(e.encoding[t]),{mark:a,config:l}=e,c=(s==null?void 0:s.orient)||((n=l[t==="x"?"axisX":"axisY"])===null||n===void 0?void 0:n.orient)||((r=l.axis)===null||r===void 0?void 0:r.orient)||Wet(t),f=e.getScaleComponent(t).get("type"),x=jet(t,f,c,e.config),h=s!==void 0?!s:Z7("disable",l.style,s==null?void 0:s.style,x).configValue;if(o.set("disable",h,s!==void 0),h)return o;s=s||{};const p=zet(u,s,t,l.style,x),m={fieldOrDatumDef:u,axis:s,channel:t,model:e,scaleType:f,orient:c,labelAngle:p,mark:a,config:l};for(const E of Vle){const A=E in Yae?Yae[E](m):Aue(E)?s[E]:void 0,S=A!==void 0,v=xrt(A,E,s,e,t);if(S&&v)o.set(E,A,v);else{const{configValue:_=void 0,configFrom:C=void 0}=Aue(E)&&E!=="values"?Z7(E,l.style,s.style,x):{},b=_!==void 0;S&&!b?o.set(E,A,v):(C!=="vgAxisConfig"||drt.has(E)&&b||O3(_)||Ye(_))&&o.set(E,_,!1)}}const g=(i=s.encoding)!==null&&i!==void 0?i:{},y=yue.reduce((E,A)=>{var S;if(!o.hasAxisPart(A))return E;const v=sle((S=g[A])!==null&&S!==void 0?S:{},e),_=A==="labels"?ort(e,t,v):v;return _!==void 0&&!Wt(_)&&(E[A]={update:_}),E},{});return Wt(y)||o.set("encode",y,!!s.encoding||s.labelAngle!==void 0),o}function prt({encoding:t,size:e}){for(const n of Da){const r=gs(n);ka(e[r])&&$a(t[n])&&(delete e[r],Te(_oe(r)))}return e}function grt(t,e,n){const r=ms(t),i=kt("orient",r,n);if(r.orient=Art(r.type,e,i),i!==void 0&&i!==r.orient&&Te(NXe(r.orient,i)),r.type==="bar"&&r.orient){const u=kt("cornerRadiusEnd",r,n);if(u!==void 0){const a=r.orient==="horizontal"&&e.x2||r.orient==="vertical"&&e.y2?["cornerRadius"]:QKe[r.orient];for(const l of a)r[l]=u;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}return kt("opacity",r,n)===void 0&&(r.opacity=yrt(r.type,e)),kt("cursor",r,n)===void 0&&(r.cursor=mrt(r,e,n)),r}function mrt(t,e,n){return e.href||t.href||kt("href",t,n)?"pointer":t.cursor}function yrt(t,e){if(Tt([CN,n7,r7,i7],t)&&!A7(e))return .7}function Ert(t,e,{graticule:n}){if(n)return!1;const r=bd("filled",t,e),i=t.type;return ir(r,i!==CN&&i!==_N&&i!==bN)}function Art(t,e,n){switch(t){case CN:case r7:case i7:case zoe:case kKe:case BKe:return}const{x:r,y:i,x2:s,y2:o}=e;switch(t){case vN:if(Le(r)&&(Mi(r.bin)||Le(i)&&i.aggregate&&!r.aggregate))return"vertical";if(Le(i)&&(Mi(i.bin)||Le(r)&&r.aggregate&&!i.aggregate))return"horizontal";if(o||s){if(n)return n;if(!s&&(Le(r)&&r.type===Rd&&!Kt(r.bin)||h7(r)))return"horizontal";if(!o&&(Le(i)&&i.type===Rd&&!Kt(i.bin)||h7(i)))return"vertical"}case bN:if(s&&!(Le(r)&&Mi(r.bin))&&o&&!(Le(i)&&Mi(i.bin)))return;case SN:if(o)return Le(i)&&Mi(i.bin)?"horizontal":"vertical";if(s)return Le(r)&&Mi(r.bin)?"vertical":"horizontal";if(t===bN){if(r&&!i)return"vertical";if(i&&!r)return"horizontal"}case _N:case n7:{const u=$a(r),a=$a(i);if(n)return n;if(u&&!a)return t!=="tick"?"horizontal":"vertical";if(!u&&a)return t!=="tick"?"vertical":"horizontal";if(u&&a){const l=r,c=i,f=l.type===I2,x=c.type===I2;return f&&!x?t!=="tick"?"vertical":"horizontal":!f&&x?t!=="tick"?"horizontal":"vertical":!l.aggregate&&c.aggregate?t!=="tick"?"vertical":"horizontal":l.aggregate&&!c.aggregate&&t!=="tick"?"horizontal":"vertical"}else return}}return"vertical"}const Srt={vgMark:"arc",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ai("x",t,{defaultPos:"mid"})),ai("y",t,{defaultPos:"mid"})),Wc(t,"radius")),Wc(t,"theta"))},vrt={vgMark:"area",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),VN("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"})),VN("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"})),V7(t))},_rt={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Wc(t,"x")),Wc(t,"y"))},Crt={vgMark:"shape",encodeEntry:t=>Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),postEncodingTransform:t=>{const{encoding:e}=t,n=e.shape;return[Object.assign({type:"geoshape",projection:t.projectionName()},n&&Le(n)&&n.type===$2?{field:$e(n,{expr:"datum"})}:{})]}},brt={vgMark:"image",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),Wc(t,"x")),Wc(t,"y")),G7(t,"url"))},Trt={vgMark:"line",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ai("x",t,{defaultPos:"mid"})),ai("y",t,{defaultPos:"mid"})),br("size",t,{vgChannel:"strokeWidth"})),V7(t))},Rrt={vgMark:"trail",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ai("x",t,{defaultPos:"mid"})),ai("y",t,{defaultPos:"mid"})),br("size",t)),V7(t))};function bP(t,e){const{config:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ai("x",t,{defaultPos:"mid"})),ai("y",t,{defaultPos:"mid"})),br("size",t)),br("angle",t)),Ort(t,n,e))}function Ort(t,e,n){return n?{shape:{value:n}}:br("shape",t)}const Nrt={vgMark:"symbol",encodeEntry:t=>bP(t)},Drt={vgMark:"symbol",encodeEntry:t=>bP(t,"circle")},Frt={vgMark:"symbol",encodeEntry:t=>bP(t,"square")},wrt={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Wc(t,"x")),Wc(t,"y"))},Lrt={vgMark:"rule",encodeEntry:t=>{const{markDef:e}=t,n=e.orient;return!t.encoding.x&&!t.encoding.y&&!t.encoding.latitude&&!t.encoding.longitude?{}:Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),VN("x",t,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"})),VN("y",t,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"})),br("size",t,{vgChannel:"strokeWidth"}))}},Irt={vgMark:"text",encodeEntry:t=>{const{config:e,encoding:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),ai("x",t,{defaultPos:"mid"})),ai("y",t,{defaultPos:"mid"})),G7(t)),br("size",t,{vgChannel:"fontSize"})),br("angle",t)),Dae("align",$rt(t.markDef,n,e))),Dae("baseline",Brt(t.markDef,n,e))),ai("radius",t,{defaultPos:null})),ai("theta",t,{defaultPos:null}))}};function $rt(t,e,n){if(kt("align",t,n)===void 0)return"center"}function Brt(t,e,n){if(kt("baseline",t,n)===void 0)return"middle"}const krt={vgMark:"rect",encodeEntry:t=>{const{config:e,markDef:n}=t,r=n.orient,i=r==="horizontal"?"width":"height",s=r==="horizontal"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Oo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),ai("x",t,{defaultPos:"mid",vgChannel:"xc"})),ai("y",t,{defaultPos:"mid",vgChannel:"yc"})),br("size",t,{defaultValue:Prt(t),vgChannel:i})),{[s]:on(kt("thickness",n,e))})}};function Prt(t){var e;const{config:n,markDef:r}=t,{orient:i}=r,s=i==="horizontal"?"width":"height",o=t.getScaleComponent(i==="horizontal"?"x":"y"),u=(e=kt("size",r,n,{vgChannel:s}))!==null&&e!==void 0?e:n.tick.bandSize;if(u!==void 0)return u;{const a=o?o.get("range"):void 0;return a&&jc(a)&&nn(a.step)?a.step*3/4:HN(n.view,s)*3/4}}const pD={arc:Srt,area:vrt,bar:_rt,circle:Drt,geoshape:Crt,image:brt,line:Trt,point:Nrt,rect:wrt,rule:Lrt,square:Frt,text:Irt,tick:krt,trail:Rrt};function Mrt(t){if(Tt([_N,SN,PKe],t.mark)){const e=Cue(t.mark,t.encoding);if(e.length>0)return jrt(t,e)}else if(t.mark===vN){const e=I8.some(n=>kt(n,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&e)return Urt(t)}return TP(t)}const Yle="faceted_path_";function jrt(t,e){return[{name:t.getName("pathgroup"),type:"group",from:{facet:{name:Yle+t.requestDataName(Jt.Main),data:t.requestDataName(Jt.Main),groupby:e}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:TP(t,{fromPrefix:Yle})}]}const Xle="stack_group_";function Urt(t){var e;const[n]=TP(t,{fromPrefix:Xle}),r=t.scaleName(t.stack.fieldChannel),i=(c={})=>t.vgField(t.stack.fieldChannel,c),s=(c,f)=>{const x=[i({prefix:"min",suffix:"start",expr:f}),i({prefix:"max",suffix:"start",expr:f}),i({prefix:"min",suffix:"end",expr:f}),i({prefix:"max",suffix:"end",expr:f})];return`${c}(${x.map(h=>`scale('${r}',${h})`).join(",")})`};let o,u;t.stack.fieldChannel==="x"?(o=Object.assign(Object.assign({},p3(n.encode.update,["y","yc","y2","height",...I8])),{x:{signal:s("min","datum")},x2:{signal:s("max","datum")},clip:{value:!0}}),u={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update=Object.assign(Object.assign({},Co(n.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(o=Object.assign(Object.assign({},p3(n.encode.update,["x","xc","x2","width"])),{y:{signal:s("min","datum")},y2:{signal:s("max","datum")},clip:{value:!0}}),u={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update=Object.assign(Object.assign({},Co(n.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const c of I8){const f=bd(c,t.markDef,t.config);n.encode.update[c]?(o[c]=n.encode.update[c],delete n.encode.update[c]):f&&(o[c]=on(f)),f&&(n.encode.update[c]={value:0})}const a=[];if(((e=t.stack.groupbyChannels)===null||e===void 0?void 0:e.length)>0)for(const c of t.stack.groupbyChannels){const f=t.fieldDef(c),x=$e(f);x&&a.push(x),(f!=null&&f.bin||f!=null&&f.timeUnit)&&a.push($e(f,{binSuffix:"end"}))}return o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((c,f)=>{if(n.encode.update[f])return Object.assign(Object.assign({},c),{[f]:n.encode.update[f]});{const x=bd(f,t.markDef,t.config);return x!==void 0?Object.assign(Object.assign({},c),{[f]:on(x)}):c}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:t.requestDataName(Jt.Main),name:Xle+t.requestDataName(Jt.Main),groupby:a,aggregate:{fields:[i({suffix:"start"}),i({suffix:"start"}),i({suffix:"end"}),i({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:u},marks:[n]}]}]}function qrt(t){var e;const{encoding:n,stack:r,mark:i,markDef:s,config:o}=t,u=n.order;if(!(!_e(u)&&gu(u)&&$se(u.value)||!u&&$se(kt("order",s,o)))){if((_e(u)||Le(u))&&!r)return aoe(u,{expr:"datum"});if(Uc(i)){const a=s.orient==="horizontal"?"y":"x",l=n[a];if(Le(l)){const c=l.sort;if(_e(c))return{field:$e(l,{prefix:a,suffix:"sort_index",expr:"datum"})};if(La(c))return{field:$e({aggregate:A7(t.encoding)?c.op:void 0,field:c.field},{expr:"datum"})};if(iue(c)){const f=t.fieldDef(c.encoding);return{field:$e(f,{expr:"datum"}),order:c.order}}else return c===null?void 0:{field:$e(l,{binSuffix:!((e=t.stack)===null||e===void 0)&&e.impute?"mid":void 0,expr:"datum"})}}return}}}function TP(t,e={fromPrefix:""}){const{mark:n,markDef:r,encoding:i,config:s}=t,o=ir(r.clip,Hrt(t),zrt(t)),u=ooe(r),a=i.key,l=qrt(t),c=Qrt(t),f=kt("aria",r,s),x=pD[n].postEncodingTransform?pD[n].postEncodingTransform(t):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName("marks"),type:pD[n].vgMark},o?{clip:!0}:{}),u?{style:u}:{}),a?{key:a.field}:{}),l?{sort:l}:{}),c||{}),f===!1?{aria:f}:{}),{from:{data:e.fromPrefix+t.requestDataName(Jt.Main)},encode:{update:pD[n].encodeEntry(t)}}),x?{transform:x}:{})]}function Hrt(t){const e=t.getScaleComponent("x"),n=t.getScaleComponent("y");return e!=null&&e.get("selectionExtent")||n!=null&&n.get("selectionExtent")?!0:void 0}function zrt(t){const e=t.component.projection;return e&&!e.isFit?!0:void 0}function Qrt(t){if(!t.component.selection)return null;const e=be(t.component.selection).length;let n=e,r=t.parent;for(;r&&n===0;)n=be(r.component.selection).length,r=r.parent;return n?{interactive:e>0||!!t.encoding.tooltip}:null}class Kle extends Hle{constructor(e,n,r,i={},s){var o;super(e,"unit",n,r,s,void 0,zue(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const u=wa(e.mark)?Object.assign({},e.mark):{type:e.mark},a=u.type;u.filled===void 0&&(u.filled=Ert(u,s,{graticule:e.data&&U7(e.data)}));const l=this.encoding=SJe(e.encoding||{},a,u.filled,s);this.markDef=grt(u,l,s),this.size=prt({encoding:l,size:zue(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=Jue(a,l),this.specifiedScales=this.initScales(a,l),this.specifiedAxes=this.initAxes(l),this.specifiedLegends=this.initLegends(l),this.specifiedProjection=e.projection,this.selection=((o=e.params)!==null&&o!==void 0?o:[]).filter(c=>D7(c))}get hasProjection(){const{encoding:e}=this,n=this.mark===Qoe,r=e&&vYe.some(i=>it(e[i]));return n||r}scaleDomain(e){const n=this.specifiedScales[e];return n?n.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,n){return gN.reduce((r,i)=>{var s;const o=sr(n[i]);return o&&(r[i]=this.initScale((s=o.scale)!==null&&s!==void 0?s:{})),r},{})}initScale(e){const{domain:n,range:r}=e,i=ms(e);return _e(n)&&(i.domain=n.map(Hs)),_e(r)&&(i.range=r.map(Hs)),i}initAxes(e){return Da.reduce((n,r)=>{const i=e[r];if(it(i)||r===yn&&it(e.x2)||r===_r&&it(e.y2)){const s=it(i)?i.axis:void 0;n[r]=s&&this.initAxis(Object.assign({},s))}return n},{})}initAxis(e){const n=be(e),r={};for(const i of n){const s=e[i];r[i]=O3(s)?roe(s):Hs(s)}return r}initLegends(e){return wYe.reduce((n,r)=>{const i=sr(e[r]);if(i&&IYe(r)){const s=i.legend;n[r]=s&&ms(s)}return n},{})}parseData(){this.component.data=hD(this)}parseLayoutSize(){Jnt(this)}parseSelections(){this.component.selection=Bet(this,this.selection)}parseMarkGroup(){this.component.mark=Mrt(this)}parseAxesAndHeaders(){this.component.axes=urt(this)}assembleSelectionTopLevelSignals(e){return tet(this,e)}assembleSignals(){return[...Wae(this),...ZZe(this,[])]}assembleSelectionData(e){return net(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return iP(this)}assembleMarks(){var e;let n=(e=this.component.mark)!==null&&e!==void 0?e:[];return(!this.parent||!Z2(this.parent))&&(n=Eae(this,n)),n.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};if(e!==void 0)return e;if(this.encoding.x||this.encoding.y)return"cell"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return Fd(this.encoding,e)}fieldDef(e){const n=this.encoding[e];return Ba(n)}typedFieldDef(e){const n=this.fieldDef(e);return Ro(n)?n:null}}class RP extends SP{constructor(e,n,r,i,s){super(e,"layer",n,r,s,e.resolve,e.view);const o=Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{});this.children=e.layer.map((u,a)=>{if(QN(u))return new RP(u,this,this.getName(`layer_${a}`),o,s);if(i0(u))return new Kle(u,this,this.getName(`layer_${a}`),o,s);throw new Error(B8(u))})}parseData(){this.component.data=hD(this);for(const e of this.children)e.parseData()}parseLayoutSize(){Xnt(this)}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of be(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){lrt(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleSignals()),Wae(this))}assembleLayoutSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleLayoutSignals()),iP(this))}assembleSelectionData(e){return this.children.reduce((n,r)=>r.assembleSelectionData(n),e)}assembleGroupStyle(){const e=new Set;for(const r of this.children)for(const i of Pe(r.assembleGroupStyle()))e.add(i);const n=Array.from(e);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const n of this.children)if(e=n.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return ret(this,this.children.flatMap(e=>e.assembleMarks()))}assembleLegends(){return this.children.reduce((e,n)=>e.concat(n.assembleLegends()),gle(this))}}function OP(t,e,n,r,i){if(NN(t))return new U3(t,e,n,i);if(QN(t))return new RP(t,e,n,r,i);if(i0(t))return new Kle(t,e,n,r,i);if(QJe(t))return new rrt(t,e,n,i);throw new Error(B8(t))}var Grt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};function Wrt(t,e={}){e.logger&&eKe(e.logger),e.fieldTitle&&hue(e.fieldTitle);try{const n=Xue(p5(e.config,t.config)),r=qZe(t,n),i=OP(r,null,"",void 0,n);return i.parse(),snt(i.component.data,i),{spec:Yrt(i,Vrt(t,r.autosize,n,i),t.datasets,t.usermeta),normalized:r}}finally{e.logger&&tKe(),e.fieldTitle&&xJe()}}function Vrt(t,e,n,r){const i=r.component.layoutSize.get("width"),s=r.component.layoutSize.get("height");if(e===void 0?(e={type:"pad"},r.hasAxisOrientSignalRef()&&(e.resize=!0)):je(e)&&(e={type:e}),i&&s&&VZe(e.type)){if(i==="step"&&s==="step")Te(hoe()),e.type="pad";else if(i==="step"||s==="step"){const o=i==="step"?"width":"height";Te(hoe(pN(o)));const u=o==="width"?"height":"width";e.type=YZe(u)}}return Object.assign(Object.assign(Object.assign({},be(e).length===1&&e.type?e.type==="pad"?{}:{autosize:e.type}:{autosize:e}),hae(n,!1)),hae(t,!0))}function Yrt(t,e,n={},r){const i=t.config?iZe(t.config):void 0,s=[].concat(t.assembleSelectionData([]),Gnt(t.component.data,n)),o=t.assembleProjections(),u=t.assembleTitle(),a=t.assembleGroupStyle(),l=t.assembleGroupEncodeEntry(!0);let c=t.assembleLayoutSignals();c=c.filter(h=>(h.name==="width"||h.name==="height")&&h.value!==void 0?(e[h.name]=+h.value,!1):!0);const{params:f}=e,x=Grt(e,["params"]);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},t.description?{description:t.description}:{}),x),u?{title:u}:{}),a?{style:a}:{}),l?{encode:{update:l}}:{}),{data:s}),o.length>0?{projections:o}:{}),t.assembleGroup([...c,...t.assembleSelectionTopLevelSignals([]),...que(f)])),i?{config:i}:{}),r?{usermeta:r}:{})}var Xrt=wo("<div>");function Krt(t){let e,n=null;return TD(()=>{n&&n.finalize();const r=t.type==="vega-lite"?Wrt(t.spec).spec:t.spec;n=new xie(IVe(r)).initialize(e).renderer("svg").hover(),n.run()}),TD(()=>{n&&(t.width&&n.width(t.width),t.height&&n.height(t.height),n.run())}),(()=>{var r=Xrt(),i=e;return typeof i=="function"?F0e(i,r):e=r,r})()}function Jrt(t){const{field:e,data:n}=t,r=t.metadata.field(e).vegaChartProps,i=structuredClone(r.spec);return i.data[0].values=n,Qn(Krt,{spec:i,type:"vega",get width(){return r.plotWidth},get height(){return r.plotHeight}})}const Zrt=32,eit=384,Jle=12,tit=28;function nit(t){const e={};for(const[n,r]of Object.entries(t.fields)){const i=r.field,s={metadata:r,width:i.isExplore()?0:rit(i,t),height:null},{tag:o}=i.tagParse();if(gy(o,"bar","bar_chart")&&i.isExploreField())s.width=r.vegaChartProps.totalWidth,s.height=r.vegaChartProps.totalHeight;else if(gy(o,"list","list_detail")&&i.isExploreField())s.width=320;else if(o.has("image")){const l=o.text("width"),c=o.text("height");l!=null&&l.endsWith("px")&&(s.width=parseInt(l)),c!=null&&c.endsWith("px")&&(s.height=parseInt(c))}else!i.isExplore()&&i.isAtomicField()&&(s.height=tit);const u=o.numeric("width"),a=o.numeric("height");u&&(s.width=u),a&&(s.height=a),e[n]=s}return e}function rit(t,e){const n=bx(t),r=e.fields[n];let i=0;if(t.isAtomicField()){const s="12px Inter, sans-serif",o=my(t.name,s);if(t.isAtomicField()&&t.isString())i=Math.max(my(r.maxString,s),o)+Jle;else if(t.isAtomicField()&&t.isNumber()){const u=r.max===null?"∅":Lse(t,r.max);i=Math.max(my(u,s),o)+Jle}else i=130;i=bFe(Zrt,eit,i)}return i}const Zle=PP(),q3=()=>MP(Zle);var iit=wo("<div class=cell-wrapper><div class=cell-gutter></div><div class=cell-content></div><div class=cell-gutter>"),sit=wo("<th class=column-cell>"),oit=wo("<td class=column-cell>"),uit=wo("<div class=sticky-header><div class=sticky-header-content>"),ait=wo("<div class=malloy-table><table><thead><tr></tr></thead><tbody>"),lit=wo("<tr>");const e0e=t=>{const e=()=>{const n=q3().layout,r=n[bx(t.field)].width,i=n[bx(t.field)].height;let s="";return t.isHeader||typeof r<"u"&&(s+=`width: ${r}px; min-width: ${r}px; max-width: ${r}px;`,typeof i=="number"&&(s+=`height: ${i}px;`)),s};return(()=>{var n=iit(),r=n.firstChild,i=r.nextSibling,s=i.nextSibling;return Hi(i,()=>t.value),l0(o=>{var u=!!t.hideStartGutter,a=!!t.isHeader,l=e(),c=!!t.hideEndGutter;return u!==o.e&&r.classList.toggle("hide-gutter-border",o.e=u),a!==o.t&&i.classList.toggle("header",o.t=a),o.a=KP(i,l,o.a),c!==o.o&&s.classList.toggle("hide-gutter-border",o.o=c),o},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()},cit=t=>{const e=h5(t.field),n=h5(t.field.parentExplore),r=!t.field.parentExplore.isExploreField(),i=e&&(n||r),s=d5(t.field),o=d5(t.field.parentExplore),u=s&&(o||r);return(()=>{var a=sit();return Hi(a,Qn(e0e,{get field(){return t.field},get value(){return t.field.name},hideStartGutter:i,hideEndGutter:u,isHeader:!0})),l0(()=>a.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),a})()},fit=t=>{const e=q3();let n="",r="";return{renderValue:n,renderAs:r}=gD({field:t.field,dataColumn:t.row.cell(t.field),resultMetadata:Ase(),tag:t.field.tagParse().tag,customProps:{table:{pinnedHeader:e.pinnedHeader,rowLimit:e.pinnedHeader?1:1/0}}}),e.pinnedHeader&&r!=="table"&&(n=""),(()=>{var i=oit();return Hi(i,Qn(N0e,{get children(){return[Qn(XP,{when:r==="table",children:n}),Qn(XP,{when:!0,get children(){return Qn(e0e,{get field(){return t.field},value:n,get hideStartGutter(){return h5(t.field)},get hideEndGutter(){return d5(t.field)}})}})]}})),l0(()=>i.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),i})()},xit=t=>{const e=DD({rowLimit:1/0,pinnedHeader:!1},t),n=q3(),[r,i]=bD(!1),s=u=>{const a=u.target;i(a.scrollTop>0)},o=Ys(()=>{const u=[];let a=0;for(const l of e.data){if(a>=e.rowLimit)break;u.push(l),a++}return u});return(()=>{var u=ait(),a=u.firstChild,l=a.firstChild,c=l.firstChild,f=l.nextSibling;return u.addEventListener("scroll",s),Hi(u,Qn(YP,{get when(){return n.root},get children(){var x=uit(),h=x.firstChild;return Hi(h,Qn(t0e,{get data(){return e.data},rowLimit:1,pinnedHeader:!0})),x}}),a),Hi(c,()=>e.data.field.allFields.map(x=>Qn(cit,{field:x}))),Hi(f,Qn(VP,{get each(){return o()},children:x=>(()=>{var h=lit();return Hi(h,()=>e.data.field.allFields.map(p=>Qn(fit,{field:p,row:x}))),h})()})),l0(x=>{var h=!!n.root,p=!!n.pinnedHeader,m=!!r();return h!==x.e&&u.classList.toggle("root",x.e=h),p!==x.t&&u.classList.toggle("pinned-header",x.t=p),m!==x.a&&u.classList.toggle("scrolled",x.a=m),x},{e:void 0,t:void 0,a:void 0}),u})()},t0e=t=>{const e=Ase(),n=!!q3(),r=Ys(()=>{if(n){const i=q3();return{root:!1,pinnedHeader:t.pinnedHeader??i.pinnedHeader,layout:i.layout}}return{root:!0,pinnedHeader:t.pinnedHeader??!1,layout:nit(e)}});return Qn(Zle.Provider,{get value(){return r()},get children(){return Qn(xit,t)}})};var dit=wo("<div style=text-wrap:wrap;>"),hit=wo("<span>");function pit(t){if(t.dataColumn.isNull())return"∅";const e=t.tag.tag("list"),n=t.tag.tag("list_detail");if(!e&&!n)throw new Error("Missing tag for List renderer");if(!t.field.isExplore())throw new Error("List renderer: Field must be ExploreField");if(!t.dataColumn.isArray())throw new Error("List renderer: DataColumn must be DataArray");const r=t.field.allFields.filter(u=>{const{tag:a}=u.tagParse();return!a.has("hidden")})[0],i=!!n,s=t.field.allFields.filter(u=>{const{tag:a}=u.tagParse();return!a.has("hidden")})[1],o=[];for(const u of t.dataColumn)o.push(u);return(()=>{var u=dit();return Hi(u,Qn(VP,{each:o,children:(a,l)=>(()=>{var c=hit();return Hi(c,()=>gD({field:r,dataColumn:a.cell(r),resultMetadata:t.resultMetadata,tag:r.tagParse().tag}).renderValue,null),Hi(c,()=>i&&s&&"("+gD({field:s,dataColumn:a.cell(s),resultMetadata:t.resultMetadata,tag:s.tagParse().tag}).renderValue+")",null),Hi(c,()=>l()<o.length-1&&", ",null),c})()})),u})()}var git=wo("<img>");function mit(t){const e=t.tag.tag("image");if(!e)throw new Error("Missing tag for Image renderer");if(!t.field.isAtomicField())throw new Error("Image renderer: Field must be AtomicField");if(!t.dataColumn.isString())throw new Error("Image renderer: DataColumn must be DataString");const n=e.text("width"),r=e.text("height"),i={};n&&(i.width=n),r&&(i.height=r);let s;const o=e.tag("alt");o&&(s=Tse({tag:o,data:t.dataColumn})??o.text());let u;return t.dataColumn.isNull()||(u=t.dataColumn.value),(()=>{var a=git();return KP(a,i),rA(a,"src",u),rA(a,"alt",s),a})()}function gD(t){const{field:e,dataColumn:n,resultMetadata:r,tag:i,customProps:s={}}=t,o=TFe(e,i);let u="";const a=s[o]||{};switch(o){case"cell":{const l=n.value;GW(e,l)?u=Lse(e,l):l===null?u="∅":WW(e,l)&&(u=l);break}case"link":{u=rYe(e,n);break}case"list":{u=pit(t);break}case"image":{u=mit(t);break}case"chart":{u=Qn(Jrt,DD({field:e,get data(){return r.getData(n)},metadata:r},a));break}case"table":{u=Qn(t0e,DD({data:n},a));break}default:try{u=String(n.value)}catch{console.warn("Couldnt get value for ",e,n)}}return{renderAs:o,renderValue:u}}function yit(t,{element:e}){const n=Ys(()=>t.result?t.result:t.queryResult&&t.modelDef?new ZP.Result(t.queryResult,t.modelDef):null);return Qn(YP,{get when(){return n()},get children(){return Qn(Eit,{get result(){return n()},element:e})}})}function Eit(t){const e=Ys(()=>MVe(t.result)),n=()=>{const i=t.result.modelTag,s=t.result.tagParse().tag,o=i.tag("theme"),u=s.tag("theme");return{modelTag:i,resultTag:s,modelTheme:o,localTheme:u}};TD(()=>{if(t.element){const i=Ait(n().modelTheme,n().localTheme);for(const[s,o]of Object.entries(i))t.element.style.setProperty(s,o)}});const r=()=>gD({field:t.result.resultExplore,dataColumn:t.result.data,resultMetadata:e(),tag:n().resultTag});return Qn(Ese.Provider,{get value(){return e()},get children(){return r().renderValue}})}function No(t,...e){let n;for(const r of e)if(n=r==null?void 0:r.text(t),typeof n<"u")break;return n??`var(--malloy-theme--${t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()})`}function Ait(t,e){const n={},r=No("tableRowHeight",e,t),i=No("tableBodyColor",e,t),s=No("tableFontSize",e,t),o=No("tableHeaderColor",e,t),u=No("tableHeaderWeight",e,t),a=No("tableBodyWeight",e,t),l=No("tableBorder",e,t),c=No("tableBackground",e,t),f=No("tableGutterSize",e,t),x=No("tablePinnedBackground",e,t),h=No("tablePinnedBorder",e,t),p=No("fontFamily",e,t);return n["--malloy-render--table-row-height"]=r,n["--malloy-render--table-body-color"]=i,n["--malloy-render--table-font-size"]=s,n["--malloy-render--font-family"]=p,n["--malloy-render--table-header-color"]=o,n["--malloy-render--table-header-weight"]=u,n["--malloy-render--table-body-weight"]=a,n["--malloy-render--table-border"]=l,n["--malloy-render--table-background"]=c,n["--malloy-render--table-gutter-size"]=f,n["--malloy-render--table-pinned-background"]=x,n["--malloy-render--table-pinned-border"]=h,n}const Sit=`:host {
1339
1339
  --malloy-theme--table-row-height: 28px;
1340
1340
  --malloy-theme--table-font-size: 12px;
1341
1341
  --malloy-theme--table-header-color: #5d626b;