@malloydata/render 0.0.157-dev240729184525 → 0.0.157

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.
@@ -1472,7 +1472,7 @@ ${m}`,p)}}else{if(h.urls)for(const m of h.urls)try{if(m.startsWith("internal://"
1472
1472
  : (u > v || v == null) && u != null ? ${r}
1473
1473
  : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}
1474
1474
  : v !== v && u === u ? ${r} : `}var TKe={operator:(t,e)=>hE(t,["_"],e.code),parameter:(t,e)=>hE(t,["datum","_"],e.code),event:(t,e)=>hE(t,["event"],e.code),handler:(t,e)=>{const n=`var datum=event.item&&event.item.datum;return ${e.code};`;return hE(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["+we(s)+"]";i+=`$=${r[s].code};if(${o}!==$)${o}=$,m=1;`}return i+=SKe(r,n),i+="return m;",hE(t,["item","_"],i)},codegen:{get(t){const e=`[${t.map(we).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)`),bKe(a,l,-u,u)},i=Function("a","b","var u, v; return "+t.map(r).join("")+"0;");return n?i.bind(n):i}}};function RKe(t){const e=this;_Ke(t.type)||!t.type?e.operator(t,t.update?e.operatorExpression(t.update):null):e.transform(t,t.type)}function OKe(t){const e=this;if(t.params){const n=e.get(t.id);n||Se("Invalid operator id: "+t.id),e.dataflow.connect(n,n.parameters(e.parseParameters(t.params),t.react,t.initonly))}}function NKe(t,e){e=e||{};const n=this;for(const r in t){const i=t[r];e[r]=_e(i)?i.map(s=>Coe(s,n,e)):Coe(i,n,e)}return e}function Coe(t,e,n){if(!t||!He(t))return t;for(let r=0,i=boe.length,s;r<i;++r)if(s=boe[r],Je(t,s.key))return s.parse(t,e,n);return t}var boe=[{key:"$ref",parse:DKe},{key:"$key",parse:wKe},{key:"$expr",parse:FKe},{key:"$field",parse:LKe},{key:"$encode",parse:$Ke},{key:"$compare",parse:IKe},{key:"$context",parse:BKe},{key:"$subflow",parse:kKe},{key:"$tupleid",parse:PKe}];function DKe(t,e){return e.get(t.$ref)||Se("Operator not defined: "+t.$ref)}function FKe(t,e,n){t.$params&&e.parseParameters(t.$params,n);const r="e:"+t.$expr.code;return e.fn[r]||(e.fn[r]=Bs(e.parameterExpression(t.$expr),t.$fields))}function wKe(t,e){const n="k:"+t.$key+"_"+!!t.$flat;return e.fn[n]||(e.fn[n]=qY(t.$key,t.$flat,e.expr.codegen))}function LKe(t,e){if(!t.$field)return null;const n="f:"+t.$field+"_"+t.$name;return e.fn[n]||(e.fn[n]=ks(t.$field,t.$name,e.expr.codegen))}function IKe(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]=jY(r,t.$order,e.expr.codegen))}function $Ke(t,e){const n=t.$encode,r={};for(const i in n){const s=n[i];r[i]=Bs(e.encodeExpression(s.$expr),s.$fields),r[i].output=s.$output}return r}function BKe(t,e){return e}function kKe(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 PKe(){return Ze}function MKe(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&&Se("Invalid stream definition: "+JSON.stringify(t)),t.consume&&r.consume(!0),e.stream(t,r)}function jKe(t){var e=this,n=He(n=t.source)?n.$ref:n,r=e.get(n),i=null,s=t.update,o=void 0;r||Se("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 UKe={skip:!0};function qKe(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 HKe(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],UKe)}),Object.keys(r||{}).forEach(s=>{n.pulse(e.data[s].input,n.changeset().remove(Zo).insert(r[s]))}),(t.subcontext||[]).forEach((s,o)=>{const u=e.subcontext[o];u&&u.setState(s)})}function zKe(t,e,n,r){return new Toe(t,e,n,r)}function Toe(t,e,n,r){this.dataflow=t,this.transforms=e,this.events=t.events.bind(t),this.expr=r||TKe,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function Roe(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)}Toe.prototype=Roe.prototype={fork(){const t=new Roe(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),CKe(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[G$(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:AKe,parseOperator:RKe,parseOperatorParameters:OKe,parseParameters:NKe,parseStream:MKe,parseUpdate:jKe,getState:qKe,setState:HKe};function QKe(t){const e=t.container();e&&(e.setAttribute("role","graphics-document"),e.setAttribute("aria-roleDescription","visualization"),Ooe(e,t.description()))}function Ooe(t,e){t&&(e==null?t.removeAttribute("aria-label"):t.setAttribute("aria-label",e))}function GKe(t){t.add(null,e=>(t._background=e.bg,t._resize=1,e.bg),{bg:t._signals.background})}const W$="default";function WKe(t){const e=t._signals.cursor||(t._signals.cursor=t.add({user:W$,item:null}));t.on(t.events("view","mousemove"),e,(n,r)=>{const i=e.value,s=i?je(i)?i:i.user:W$,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),V$(t,r&&r!==W$?r:i||r),i},{cursor:e})}function V$(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 HT(t,e){var n=t._runtime.data;return Je(n,e)||Se("Unrecognized data set: "+e),n[e]}function VKe(t,e){return arguments.length<2?HT(this,t).values.value:zT.call(this,t,V2().remove(Zo).insert(e))}function zT(t,e){xJ(e)||Se("Second argument to changes must be a changeset.");const n=HT(this,t);return n.modified=!0,this.pulse(n.input,e)}function YKe(t,e){return zT.call(this,t,V2().insert(e))}function KKe(t,e){return zT.call(this,t,V2().remove(e))}function Noe(t){var e=t.padding();return Math.max(0,t._viewWidth+e.left+e.right)}function Doe(t){var e=t.padding();return Math.max(0,t._viewHeight+e.top+e.bottom)}function QT(t){var e=t.padding(),n=t._origin;return[e.left+n[0],e.top+n[1]]}function XKe(t){var e=QT(t),n=Noe(t),r=Doe(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 JKe(t,e,n){var r=t._renderer,i=r&&r.canvas(),s,o,u;return i&&(u=QT(t),o=e.changedTouches?e.changedTouches[0]:e,s=xL(o,i),s[0]-=u[0],s[1]-=u[1]),e.dataflow=t,e.item=n,e.vega=ZKe(t,n,s),e}function ZKe(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:Ci(t),item:Ci(e||{}),group:i,xy:s,x:o=>s(o)[0],y:o=>s(o)[1]}}const Foe="view",eXe="timer",tXe="window",nXe={trap:!1};function rXe(t){const e=ft({defaults:{}},t),n=(r,i)=>{i.forEach(s=>{_e(r[s])&&(r[s]=ia(r[s]))})};return n(e.defaults,["prevent","allow"]),n(e,["view","window","selector"]),e}function woe(t,e,n,r){t._eventListeners.push({type:n,sources:Pe(e),handler:r})}function iXe(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 GT(t,e,n){const r=t._eventConfig&&t._eventConfig[e];return r===!1||He(r)&&!r[n]?(t.warn(`Blocked ${e} ${n} event listener.`),!1):!0}function sXe(t,e,n){var r=this,i=new ow(n),s=function(l,c){r.runAsync(null,()=>{t===Foe&&iXe(r,e)&&l.preventDefault(),i.receive(JKe(r,l,c))})},o;if(t===eXe)GT(r,"timer",e)&&r.timer(s,e);else if(t===Foe)GT(r,"view",e)&&r.addEventListener(e,s,nXe);else if(t===tXe?GT(r,"window",e)&&typeof window<"u"&&(o=[window]):typeof document<"u"&&GT(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);woe(r,o,e,s)}return i}function Loe(t){return t.item}function Ioe(t){return t.item.mark.source}function $oe(t){return function(e,n){return n.vega.view().changeset().encode(n.item,t)}}function oXe(t,e){return t=[t||"hover"],e=[e||"update",t[0]],this.on(this.events("view","mouseover",Loe),Ioe,$oe(t)),this.on(this.events("view","mouseout",Loe),Ioe,$oe(e)),this}function uXe(){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 Qs(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 aXe="vega-bind",lXe="vega-bind-name",cXe="vega-bind-radio";function fXe(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=UY(r.debounce,i.update))),(r.input==null&&r.element?xXe:hXe)(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 xXe(t,e,n,r){const i=n.event||"input",s=()=>t.update(e.value);r.signal(n.signal,e.value),e.addEventListener(i,s),woe(r,e,i,s),t.set=o=>{e.value=o,e.dispatchEvent(dXe(i))}}function dXe(t){return typeof Event<"u"?new Event(t):{type:t}}function hXe(t,e,n,r){const i=r.signal(n.signal),s=Qs("div",{class:aXe}),o=n.input==="radio"?s:s.appendChild(Qs("label"));o.appendChild(Qs("span",{class:lXe},n.name||n.signal)),e.appendChild(s);let u=pXe;switch(n.input){case"checkbox":u=gXe;break;case"select":u=mXe;break;case"radio":u=yXe;break;case"range":u=EXe;break}u(t,o,n,i)}function pXe(t,e,n,r){const i=Qs("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 gXe(t,e,n,r){const i={type:"checkbox",name:n.signal};r&&(i.checked=!0);const s=Qs("input",i);e.appendChild(s),s.addEventListener("change",()=>t.update(s.checked)),t.elements=[s],t.set=o=>s.checked=!!o||null}function mXe(t,e,n,r){const i=Qs("select",{name:n.signal}),s=n.labels||[];n.options.forEach((o,u)=>{const a={value:o};WT(o,r)&&(a.selected=!0),i.appendChild(Qs("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(WT(n.options[u],o)){i.selectedIndex=u;return}}}function yXe(t,e,n,r){const i=Qs("span",{class:cXe}),s=n.labels||[];e.appendChild(i),t.elements=n.options.map((o,u)=>{const a={type:"radio",name:n.signal,value:o};WT(o,r)&&(a.checked=!0);const l=Qs("input",a);l.addEventListener("change",()=>t.update(o));const c=Qs("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)WT(u[l].value,o)&&(u[l].checked=!0)}}function EXe(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||mc(s,i,100),u=Qs("input",{type:"range",name:n.signal,min:s,max:i,step:o});u.value=r;const a=Qs("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 WT(t,e){return t===e||t+""==e+""}function Boe(t,e,n,r,i,s){return e=e||new r(t.loader()),e.initialize(n,Noe(t),Doe(t),QT(t),i,s).background(t.background())}function Y$(t,e){return e?function(){try{e.apply(this,arguments)}catch(n){t.error(n)}}:null}function AXe(t,e,n,r){const i=new r(t.loader(),Y$(t,t.tooltip())).scene(t.scenegraph().root).initialize(n,QT(t),t);return e&&e.handlers().forEach(s=>{i.on(s.type,s.handler)}),i}function vXe(t,e){const n=this,r=n._renderType,i=n._eventConfig.bind,s=_L(r);t=n._el=t?K$(n,t,!0):null,QKe(n),s||n.error("Unrecognized renderer type: "+r);const o=s.handler||Tb,u=t?s.renderer:s.headless;return n._renderer=u?Boe(n,n._renderer,t,u):null,n._handler=AXe(n,n._handler,t,o),n._redraw=!0,t&&i!=="none"&&(e=e?n._elBind=K$(n,e,!0):t.appendChild(Qs("form",{class:"vega-bindings"})),n._bind.forEach(a=>{a.param.element&&i!=="container"&&(a.element=K$(n,a.param.element,!!a.param.input))}),n._bind.forEach(a=>{fXe(n,a.element||e,a)})),n}function K$(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 pE=t=>+t||0,SXe=t=>({top:t,bottom:t,left:t,right:t});function koe(t){return He(t)?{top:pE(t.top),bottom:pE(t.bottom),left:pE(t.left),right:pE(t.right)}:SXe(pE(t))}async function X$(t,e,n,r){const i=_L(e),s=i&&i.headless;return s||Se("Unrecognized renderer type: "+e),await t.runAsync(),Boe(t,null,null,s,n,r).renderAsync(t._scenegraph.root)}async function _Xe(t,e){t!==pd.Canvas&&t!==pd.SVG&&t!==pd.PNG&&Se("Unrecognized image type: "+t);const n=await X$(this,t,e);return t===pd.SVG?CXe(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")}function CXe(t,e){const n=new Blob([t],{type:e});return window.URL.createObjectURL(n)}async function bXe(t,e){return(await X$(this,pd.Canvas,t,e)).canvas()}async function TXe(t){return(await X$(this,pd.SVG,t)).svg()}function RXe(t,e,n){return zKe(t,J3,dE,n).parse(e)}function OXe(t){var e=this._runtime.scales;return Je(e,t)||Se("Unrecognized scale or projection: "+t),e[t].value}var Poe="width",Moe="height",J$="padding",joe={skip:!0};function Uoe(t,e){var n=t.autosize(),r=t.padding();return e-(n&&n.contains===J$?r.left+r.right:0)}function qoe(t,e){var n=t.autosize(),r=t.padding();return e-(n&&n.contains===J$?r.top+r.bottom:0)}function NXe(t){var e=t._signals,n=e[Poe],r=e[Moe],i=e[J$];function s(){t._autosize=t._resize=1}t._resizeWidth=t.add(null,u=>{t._width=u.size,t._viewWidth=Uoe(t,u.size),s()},{size:n}),t._resizeHeight=t.add(null,u=>{t._height=u.size,t._viewHeight=qoe(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 DXe(t,e,n,r,i,s){this.runAfter(o=>{let u=0;o._autosize=0,o.width()!==n&&(u=1,o.signal(Poe,n,joe),o._resizeWidth.skip(!0)),o.height()!==r&&(u=1,o.signal(Moe,r,joe),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 FXe(t){return this._runtime.getState(t||{data:wXe,signals:LXe,recurse:!0})}function wXe(t,e){return e.modified&&_e(e.input.value)&&t.indexOf("_:vega:_")}function LXe(t,e){return!(t==="parent"||e instanceof J3.proxy)}function IXe(t){return this.runAsync(null,e=>{e._trigger=!1,e._runtime.setState(t)},e=>{e._trigger=!0}),this}function $Xe(t,e){function n(r){t({timestamp:Date.now(),elapsed:r})}this._timers.push(oQe(n,e))}function BXe(t,e,n,r){const i=t.element();i&&i.setAttribute("title",kXe(r))}function kXe(t){return t==null?"":_e(t)?Hoe(t):He(t)&&!Ix(t)?PXe(t):t+""}function PXe(t){return Object.keys(t).map(e=>{const n=t[e];return e+": "+(_e(n)?Hoe(n):zoe(n))}).join(`
1475
- `)}function Hoe(t){return"["+t.map(zoe).join(", ")+"]"}function zoe(t){return _e(t)?"[…]":He(t)&&!Ix(t)?"{…}":t}function Z$(t,e){const n=this;if(e=e||{},K3.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=ft({},t.locale,e.locale);n.locale(nJ(s.number,s.time))}n._el=null,n._elBind=null,n._renderType=e.renderer||pd.Canvas,n._scenegraph=new Zte;const r=n._scenegraph.root;n._renderer=null,n._tooltip=e.tooltip||BXe,n._redraw=!0,n._handler=new Tb().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=rXe(t.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=RXe(n,t,e.expr);n._runtime=i,n._signals=i.signals,n._bind=(t.bindings||[]).map(s=>({state:null,param:ft({},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=Uoe(n,n._width),n._viewHeight=qoe(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,NXe(n),GKe(n),WKe(n),n.description(t.description),e.hover&&n.hover(),e.container&&n.initialize(e.container,e.bind)}function VT(t,e){return Je(t._signals,e)?t._signals[e]:Se("Unrecognized signal name: "+we(e))}function Qoe(t,e){const n=(t._targets||[]).filter(r=>r._update&&r._update.handler===e);return n.length?n[0]:null}function Goe(t,e,n,r){let i=Qoe(n,r);return i||(i=Y$(t,()=>r(e,n.value)),i.handler=r,t.on(n,null,i)),t}function Woe(t,e,n){const r=Qoe(e,n);return r&&e._targets.remove(r),t}Fe(Z$,K3,{async evaluate(t,e,n){if(await K3.prototype.evaluate.call(this,t,e),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,XKe(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&SC(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&&Ooe(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=VT(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",koe(t)):koe(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?(_L(t)||Se("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&&(K3.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(VT(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:DXe,addEventListener(t,e,n){let r=e;return n&&n.trap===!1||(r=Y$(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 Goe(this,t,VT(this,t),e)},removeSignalListener(t,e){return Woe(this,VT(this,t),e)},addDataListener(t,e){return Goe(this,t,HT(this,t).values,e)},removeDataListener(t,e){return Woe(this,HT(this,t).values,e)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const e=V$(this,null);this._globalCursor=!!t,e&&V$(this,e)}return this}else return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:$Xe,events:sXe,finalize:uXe,hover:oXe,data:VKe,change:zT,insert:YKe,remove:KKe,scale:OXe,initialize:vXe,toImageURL:_Xe,toCanvas:bXe,toSVG:TXe,getState:FXe,setState:IXe});const MXe="view",YT="[",KT="]",Voe="{",Yoe="}",jXe=":",Koe=",",UXe="@",qXe=">",HXe=/[[\]{}]/,zXe={"*":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 Xoe,Joe;function Rd(t,e,n){return Xoe=e||MXe,Joe=n||zXe,Zoe(t.trim()).map(eB)}function QXe(t){return Joe[t]}function gE(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 Zoe(t){const e=[],n=t.length;let r=0,i=0;for(;i<n;)i=gE(t,i,Koe,YT+Voe,KT+Yoe),e.push(t.substring(r,i).trim()),r=++i;if(e.length===0)throw"Empty event selector: "+t;return e}function eB(t){return t[0]==="["?GXe(t):WXe(t)}function GXe(t){const e=t.length;let n=1,r;if(n=gE(t,n,KT,YT,KT),n===e)throw"Empty between selector: "+t;if(r=Zoe(t.substring(1,n)),r.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(n+1).trim(),t[0]!==qXe)throw"Expected '>' after between selector: "+t;r=r.map(eB);const i=eB(t.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)}function WXe(t){const e={source:Xoe},n=[];let r=[0,0],i=0,s=0,o=t.length,u=0,a,l;if(t[o-1]===Yoe){if(u=t.lastIndexOf(Voe),u>=0){try{r=VXe(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]===UXe&&(i=++u),a=gE(t,u,jXe),a<o&&(n.push(t.substring(s,a).trim()),s=u=++a),u=gE(t,u,YT),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=gE(t,u,KT),u===o)throw"Unmatched left bracket: "+t;if(l.push(t.substring(s,u).trim()),u<o-1&&t[++u]!==YT)throw"Expected left bracket: "+t;s=++u}if(!(o=n.length)||HXe.test(n[o-1]))throw"Invalid event selector: "+t;return o>1?(e.type=n[1],i?e.markname=n[0].slice(1):QXe(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 VXe(t){const e=t.split(Koe);if(!t.length||e.length>2)throw t;return e.map(n=>{const r=+n;if(r!==r)throw t;return r})}function YXe(t){return He(t)?t:{type:t||"pad"}}const mE=t=>+t||0,KXe=t=>({top:t,bottom:t,left:t,right:t});function XXe(t){return He(t)?t.signal?t:{top:mE(t.top),bottom:mE(t.bottom),left:mE(t.left),right:mE(t.right)}:KXe(mE(t))}const Sr=t=>He(t)&&!_e(t)?ft({},t):{value:t};function eue(t,e,n,r){return n!=null?(He(n)&&!_e(n)||_e(n)&&n.length&&He(n[0])?t.update[e]=n:t[r||"enter"][e]={value:n},1):0}function Pr(t,e,n){for(const r in e)eue(t,r,e[r]);for(const r in n)eue(t,r,n[r],"update")}function R1(t,e,n){for(const r in e)n&&Je(n,r)||(t[r]=ft(t[r]||{},e[r]));return t}function O1(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}const tB="mark",nB="frame",rB="scope",JXe="axis",ZXe="axis-domain",eJe="axis-grid",tJe="axis-label",nJe="axis-tick",rJe="axis-title",iJe="legend",sJe="legend-band",oJe="legend-entry",uJe="legend-gradient",tue="legend-label",aJe="legend-symbol",lJe="legend-title",cJe="title",fJe="title-text",xJe="title-subtitle";function dJe(t,e,n,r,i){const s={},o={};let u,a,l,c;a="lineBreak",e==="text"&&i[a]!=null&&!O1(a,t)&&iB(s,a,i[a]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===nB?i.group:n===tB?ft({},i.mark,i[e]):null;for(a in c)l=O1(a,t)||(a==="fill"||a==="stroke")&&(O1("fill",t)||O1("stroke",t)),l||iB(s,a,c[a]);Pe(r).forEach(f=>{const x=i.style&&i.style[f];for(const h in x)O1(h,t)||iB(s,h,x[h])}),t=ft({},t);for(a in s)c=s[a],c.signal?(u=u||{})[a]=c:o[a]=c;return t.enter=ft(o,t.enter),u&&(t.update=ft(u,t.update)),t}function iB(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}const nue=t=>je(t)?we(t):t.signal?`(${t.signal})`:rue(t);function XT(t){if(t.gradient!=null)return pJe(t);let e=t.signal?`(${t.signal})`:t.color?hJe(t.color):t.field!=null?rue(t.field):t.value!==void 0?we(t.value):void 0;return t.scale!=null&&(e=gJe(t,e)),e===void 0&&(e=null),t.exponent!=null&&(e=`pow(${e},${ZT(t.exponent)})`),t.mult!=null&&(e+=`*${ZT(t.mult)}`),t.offset!=null&&(e+=`+${ZT(t.offset)}`),t.round&&(e=`round(${e})`),e}const JT=(t,e,n,r)=>`(${t}(${[e,n,r].map(XT).join(",")})+'')`;function hJe(t){return t.c?JT("hcl",t.h,t.c,t.l):t.h||t.s?JT("hsl",t.h,t.s,t.l):t.l||t.a?JT("lab",t.l,t.a,t.b):t.r||t.g||t.b?JT("rgb",t.r,t.g,t.b):null}function pJe(t){const e=[t.start,t.stop,t.count].map(n=>n==null?null:we(n));for(;e.length&&St(e)==null;)e.pop();return e.unshift(nue(t.gradient)),`gradient(${e.join(",")})`}function ZT(t){return He(t)?"("+XT(t)+")":t}function rue(t){return iue(He(t)?t:{datum:t})}function iue(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):Se("Invalid field reference: "+we(t));return t.signal||(r=je(r)?Al(r).map(we).join("]["):iue(r)),e+"["+r+"]"}function gJe(t,e){const n=nue(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?"":"*"+ZT(t.band)),t.extra&&(e=`(datum.extra ? _scale(${n}, datum.extra.value) : ${e})`)),e==null&&(e="0")),e}function mJe(t){let e="";return t.forEach(n=>{const r=XT(n);e+=n.test?`(${n.test})?${r}:`:r}),St(e)===":"&&(e+="null"),e}function sue(t,e,n,r,i,s){const o={};s=s||{},s.encoders={$encode:o},t=dJe(t,e,n,r,i.config);for(const u in t)o[u]=yJe(t[u],e,s,i);return s}function yJe(t,e,n,r){const i={},s={};for(const o in t)t[o]!=null&&(i[o]=AJe(EJe(t[o]),r,n,s));return{$expr:{marktype:e,channels:i},$fields:Object.keys(s),$output:Object.keys(t)}}function EJe(t){return _e(t)?mJe(t):XT(t)}function AJe(t,e,n,r){const i=La(t,e);return i.$fields.forEach(s=>r[s]=1),ft(n,i.$params),i.$expr}const vJe="outer",SJe=["value","update","init","react","bind"];function oue(t,e){Se(t+' for "outer" push: '+we(e))}function uue(t,e){const n=t.name;if(t.push===vJe)e.signals[n]||oue("No prior signal definition",n),SJe.forEach(r=>{t[r]!==void 0&&oue("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 sB(t,e,n,r){this.id=-1,this.type=t,this.value=e,this.params=n,r&&(this.parent=r)}function e6(t,e,n,r){return new sB(t,e,n,r)}function t6(t,e){return e6("operator",t,e)}function Xe(t){const e={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(e),e}function yE(t,e){return e?{$field:t,$name:e}:{$field:t}}const oB=yE("key");function aue(t,e){return{$compare:t,$order:e}}function _Je(t,e){const n={$key:t};return e&&(n.$flat=!0),n}const CJe="ascending",bJe="descending";function TJe(t){return He(t)?(t.order===bJe?"-":"+")+n6(t.op,t.field):""}function n6(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}const uB="scope",aB="view";function or(t){return t&&t.signal}function RJe(t){return t&&t.expr}function r6(t){if(or(t))return!0;if(He(t)){for(const e in t)if(r6(t[e]))return!0}return!1}function du(t,e){return t??e}function Od(t){return t&&t.signal||t}const lue="timer";function EE(t,e){return(t.merge?NJe:t.stream?DJe:t.type?FJe:Se("Invalid stream specification: "+we(t)))(t,e)}function OJe(t){return t===uB?aB:t||aB}function NJe(t,e){const n=t.merge.map(i=>EE(i,e)),r=lB({merge:n},t,e);return e.addStream(r).id}function DJe(t,e){const n=EE(t.stream,e),r=lB({stream:n},t,e);return e.addStream(r).id}function FJe(t,e){let n;t.type===lue?(n=e.event(lue,t.throttle),t={between:t.between,filter:t.filter}):n=e.event(OJe(t.source),t.type);const r=lB({stream:n},t,e);return Object.keys(r).length===1?n:e.addStream(r).id}function lB(t,e,n){let r=e.between;return r&&(r.length!==2&&Se('Stream "between" parameter must have 2 entries: '+we(e)),t.between=[EE(r[0],n),EE(r[1],n)]),r=e.filter?[].concat(e.filter):[],(e.marktype||e.markname||e.markrole)&&r.push(wJe(e.marktype,e.markname,e.markrole)),e.source===uB&&r.push("inScope(event.item)"),r.length&&(t.filter=La("("+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 wJe(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 LJe={code:"_.$value",ast:{type:"Identifier",value:"value"}};function IJe(t,e,n){const r=t.encode,i={target:n};let s=t.events,o=t.update,u=[];s||Se("Signal update missing events specification."),je(s)&&(s=Rd(s,e.isSubscope()?uB:aB)),s=Pe(s).filter(a=>a.signal||a.scale?(u.push(a),0):1),u.length>1&&(u=[BJe(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),r!=null&&(o&&Se("Signal encode and update are mutually exclusive."),o="encode(item(),"+we(r)+")"),i.update=je(o)?La(o,e):o.expr!=null?La(o.expr,e):o.value!=null?o.value:o.signal!=null?{$expr:LJe,$params:{$value:e.signalRef(o.signal)}}:Se("Invalid signal update specification."),t.force&&(i.options={force:!0}),u.forEach(a=>e.addUpdate(ft($Je(a,e),i)))}function $Je(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):EE(t,e)}}function BJe(t){return{signal:"["+t.map(e=>e.scale?'scale("'+e.scale+'")':e.signal)+"]"}}function kJe(t,e){const n=e.getSignal(t.name);let r=t.update;t.init&&(r?Se("Signals can not include both init and update expressions."):(r=t.init,n.initonly=!0)),r&&(r=La(r,e),n.update=r.$expr,n.params=r.$params),t.on&&t.on.forEach(i=>IJe(i,e,n.id))}const jt=t=>(e,n,r)=>e6(t,n,e||void 0,r),cue=jt("aggregate"),PJe=jt("axisticks"),fue=jt("bound"),hu=jt("collect"),xue=jt("compare"),MJe=jt("datajoin"),due=jt("encode"),jJe=jt("expression"),UJe=jt("facet"),qJe=jt("field"),HJe=jt("key"),zJe=jt("legendentries"),QJe=jt("load"),GJe=jt("mark"),WJe=jt("multiextent"),VJe=jt("multivalues"),YJe=jt("overlap"),KJe=jt("params"),hue=jt("prefacet"),XJe=jt("projection"),JJe=jt("proxy"),ZJe=jt("relay"),pue=jt("render"),eZe=jt("scale"),Nd=jt("sieve"),tZe=jt("sortitems"),gue=jt("viewlayout"),nZe=jt("values");let rZe=0;const mue={min:"min",max:"max",count:"sum"};function iZe(t,e){const n=t.type||"linear";Zee(n)||Se("Unrecognized scale type: "+we(n)),e.addScale(t.name,{type:n,domain:void 0})}function sZe(t,e){const n=e.getScale(t.name).params;let r;n.domain=yue(t.domain,t,e),t.range!=null&&(n.range=Aue(t,e,n)),t.interpolate!=null&&pZe(t.interpolate,n),t.nice!=null&&(n.nice=hZe(t.nice)),t.bins!=null&&(n.bins=dZe(t.bins,e));for(r in t)Je(n,r)||r==="name"||(n[r]=Ro(t[r],e))}function Ro(t,e){return He(t)?t.signal?e.signalRef(t.signal):Se("Unsupported object: "+we(t)):t}function i6(t,e){return t.signal?e.signalRef(t.signal):t.map(n=>Ro(n,e))}function s6(t){Se("Can not find data set: "+we(t))}function yue(t,e,n){if(!t){(e.domainMin!=null||e.domainMax!=null)&&Se("No scale domain defined for domainMin/domainMax to override.");return}return t.signal?n.signalRef(t.signal):(_e(t)?oZe:t.fields?aZe:uZe)(t,e,n)}function oZe(t,e,n){return t.map(r=>Ro(r,n))}function uZe(t,e,n){const r=n.getData(t.data);return r||s6(t.data),s1(e.type)?r.valuesRef(n,t.field,Eue(t.sort,!1)):nte(e.type)?r.domainRef(n,t.field):r.extentRef(n,t.field)}function aZe(t,e,n){const r=t.data,i=t.fields.reduce((s,o)=>(o=je(o)?{data:r,field:o}:_e(o)||o.signal?lZe(o,n):o,s.push(o),s),[]);return(s1(e.type)?cZe:nte(e.type)?fZe:xZe)(t,n,i)}function lZe(t,e){const n="_:vega:_"+rZe++,r=hu({});if(_e(t))r.value={$ingest:t};else if(t.signal){const i="setdata("+we(n)+","+t.signal+")";r.params.input=e.signalRef(i)}return e.addDataPipeline(n,[r,Nd({})]),{data:n,field:"data"}}function cZe(t,e,n){const r=Eue(t.sort,!0);let i,s;const o=n.map(l=>{const c=e.getData(l.data);return c||s6(l.data),c.countsRef(e,l.field,r)}),u={groupby:oB,pulse:o};r&&(i=r.op||"count",s=r.field?n6(i,r.field):"count",u.ops=[mue[i]],u.fields=[e.fieldRef(s)],u.as=[s]),i=e.add(cue(u));const a=e.add(hu({pulse:Xe(i)}));return s=e.add(nZe({field:oB,sort:e.sortRef(r),pulse:Xe(a)})),Xe(s)}function Eue(t,e){return t&&(!t.field&&!t.op?He(t)?t.field="key":t={field:"key"}:!t.field&&t.op!=="count"?Se("No field provided for sort aggregate op: "+t.op):e&&t.field&&t.op&&!mue[t.op]&&Se("Multiple domain scales can not be sorted using "+t.op)),t}function fZe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||s6(i.data),s.domainRef(e,i.field)});return Xe(e.add(VJe({values:r})))}function xZe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||s6(i.data),s.extentRef(e,i.field)});return Xe(e.add(WJe({extents:r})))}function dZe(t,e){return t.signal||_e(t)?i6(t,e):e.objectProperty(t)}function hZe(t){return He(t)?{interval:Ro(t.interval),step:Ro(t.step)}:Ro(t)}function pZe(t,e){e.interpolate=Ro(t.type||t),t.gamma!=null&&(e.interpolateGamma=Ro(t.gamma))}function Aue(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=ft({},t,{range:r[i]}),Aue(t,e,n);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=s1(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:Se("Unrecognized scale range value: "+we(i))}else if(i.scheme){n.scheme=_e(i.scheme)?i6(i.scheme,e):Ro(i.scheme,e),i.extent&&(n.schemeExtent=i6(i.extent,e)),i.count&&(n.schemeCount=Ro(i.count,e));return}else if(i.step){n.rangeStep=Ro(i.step,e);return}else{if(s1(t.type)&&!_e(i))return yue(i,t,e);_e(i)||Se("Unsupported range type: "+we(i))}return i.map(s=>(_e(s)?i6:Ro)(s,e))}function gZe(t,e){const n=e.config.projection||{},r={};for(const i in t)i!=="name"&&(r[i]=cB(t[i],i,e));for(const i in n)r[i]==null&&(r[i]=cB(n[i],i,e));e.addProjection(t.name,r)}function cB(t,e,n){return _e(t)?t.map(r=>cB(r,e,n)):He(t)?t.signal?n.signalRef(t.signal):e==="fit"?t:Se("Unsupported parameter object: "+we(t)):t}const pu="top",N1="left",D1="right",zc="bottom",vue="center",mZe="vertical",yZe="start",EZe="middle",AZe="end",fB="index",xB="label",vZe="offset",F1="perc",SZe="perc2",Oo="value",AE="guide-label",dB="guide-title",_Ze="group-title",CZe="group-subtitle",Sue="symbol",o6="gradient",hB="discrete",pB="size",gB=[pB,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],vE={name:1,style:1,interactive:1},bt={value:0},No={value:1},u6="group",_ue="rect",mB="rule",bZe="symbol",Dd="text";function SE(t){return t.type=u6,t.interactive=t.interactive||!1,t}function ys(t,e){const n=(r,i)=>du(t[r],du(e[r],i));return n.isVertical=r=>mZe===du(t.direction,e.direction||(r?e.symbolDirection:e.gradientDirection)),n.gradientLength=()=>du(t.gradientLength,e.gradientLength||e.gradientWidth),n.gradientThickness=()=>du(t.gradientThickness,e.gradientThickness||e.gradientHeight),n.entryColumns=()=>du(t.columns,du(e.columns,+n.isVertical(!0))),n}function Cue(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 TZe(t,e,n){const r=e.config.style[n];return r&&r[t]}function a6(t,e,n){return`item.anchor === '${yZe}' ? ${t} : item.anchor === '${AZe}' ? ${e} : ${n}`}const yB=a6(we(N1),we(D1),we(vue));function RZe(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'`},He(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 bue(t,e){return e?t?He(t)?Object.assign({},t,{offset:bue(t.offset,e)}):{value:t,offset:e}:e:t}function Gs(t,e){return e?(t.name=e.name,t.style=e.style||t.style,t.interactive=!!e.interactive,t.encode=R1(t.encode,e,vE)):t.interactive=!1,t}function OZe(t,e,n,r){const i=ys(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:bt,x:bt,y:bt,width:Sr(f),height:Sr(x)},update:ft({},a,{opacity:No,fill:{gradient:e,start:l,stop:c}}),exit:{opacity:bt}};return Pr(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),Gs({type:_ue,role:uJe,encode:h},r)}function NZe(t,e,n,r,i){const s=ys(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:bt,fill:{scale:e,field:Oo}};p[l]={signal:h+"datum."+F1,mult:a},p[c]=bt,p[f]={signal:h+"datum."+SZe,mult:a},p[x]=Sr(u);const m={enter:p,update:ft({},p,{opacity:No}),exit:{opacity:bt}};return Pr(m,{stroke:s("gradientStrokeColor"),strokeWidth:s("gradientStrokeWidth")},{opacity:s("gradientOpacity")}),Gs({type:_ue,role:sJe,key:Oo,from:i,encode:m},r)}const DZe=`datum.${F1}<=0?"${N1}":datum.${F1}>=1?"${D1}":"${vue}"`,FZe=`datum.${F1}<=0?"${zc}":datum.${F1}>=1?"${pu}":"${EZe}"`;function Tue(t,e,n,r){const i=ys(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:bt},update:c={opacity:No,text:{field:xB}},exit:{opacity:bt}};return Pr(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:du(t.labelLimit,e.gradientLabelLimit)}),s?(l.align={value:"left"},l.baseline=c.baseline={signal:FZe},f="y",x="x",h="1-"):(l.align=c.align={signal:DZe},l.baseline={value:"top"},f="x",x="y"),l[f]=c[f]={signal:h+"datum."+F1,mult:u},l[x]=c[x]=o,o.offset=du(t.labelOffset,e.gradientLabelOffset)||0,a=a?{separation:i("labelSeparation"),method:a,order:"datum."+fB}:void 0,Gs({type:Dd,role:tue,style:AE,key:Oo,from:r,encode:p,overlap:a},n)}function wZe(t,e,n,r,i){const s=ys(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.${vZe} : datum.${pB}`,h=l?Sr(l):{field:pB},p=`datum.${fB}`,m=`max(1, ${i})`;let g,y,E,A,v;h.mult=.5,g={enter:y={opacity:bt,x:{signal:x,mult:.5,offset:c},y:h},update:E={opacity:No,x:y.x,y:y.y},exit:{opacity:bt}};let S=null,C=null;t.fill||(S=e.symbolBaseFillColor,C=e.symbolBaseStrokeColor),Pr(g,{fill:s("symbolFillColor",S),shape:s("symbolType"),size:s("symbolSize"),stroke:s("symbolStrokeColor",C),strokeDash:s("symbolDash"),strokeDashOffset:s("symbolDashOffset"),strokeWidth:s("symbolStrokeWidth")},{opacity:s("symbolOpacity")}),gB.forEach(O=>{t[O]&&(E[O]=y[O]={scale:t[O],field:Oo})});const _=Gs({type:bZe,role:aJe,key:Oo,from:f,clip:l?!0:void 0,encode:g},n.symbols),b=Sr(c);b.offset=s("labelOffset"),g={enter:y={opacity:bt,x:{signal:x,offset:b},y:h},update:E={opacity:No,text:{field:xB},x:y.x,y:y.y},exit:{opacity:bt}},Pr(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 R=Gs({type:Dd,role:tue,style:AE,key:Oo,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!l},width:bt,height:l?Sr(l):bt,opacity:bt},exit:{opacity:bt},update:E={opacity:No,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})`,v={field:["row",p]}):(E.row.signal=`floor(${p} / ${m})`,E.column.signal=`${p} % ${m}`,v={field:p}),E.column.signal=`(${i})?${E.column.signal}:${p}`,r={facet:{data:r,name:"value",groupby:fB}},SE({role:rB,from:r,encode:R1(g,o,vE),marks:[_,R],name:a,interactive:u,sort:v})}function LZe(t,e){const n=ys(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const EB='item.orient === "left"',AB='item.orient === "right"',l6=`(${EB} || ${AB})`,IZe=`datum.vgrad && ${l6}`,$Ze=a6('"top"','"bottom"','"middle"'),BZe=a6('"right"','"left"','"center"'),kZe=`datum.vgrad && ${AB} ? (${BZe}) : (${l6} && !(datum.vgrad && ${EB})) ? "left" : ${yB}`,PZe=`item._anchor || (${l6} ? "middle" : "start")`,MZe=`${IZe} ? (${EB} ? -90 : 90) : 0`,jZe=`${l6} ? (datum.vgrad ? (${AB} ? "bottom" : "top") : ${$Ze}) : "top"`;function UZe(t,e,n,r){const i=ys(t,e),s={enter:{opacity:bt},update:{opacity:No,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:bt}};return Pr(s,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:PZe},angle:{signal:MZe},align:{signal:kZe},baseline:{signal:jZe},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")}),Gs({type:Dd,role:lJe,style:dB,from:r,encode:s},n)}function qZe(t,e){let n;return He(t)&&(t.signal?n=t.signal:t.path?n="pathShape("+Rue(t.path)+")":t.sphere&&(n="geoShape("+Rue(t.sphere)+', {type: "Sphere"})')),n?e.signalRef(n):!!t}function Rue(t){return He(t)&&t.signal?t.signal:we(t)}function Oue(t){const e=t.role||"";return!e.indexOf("axis")||!e.indexOf("legend")||!e.indexOf("title")?e:t.type===u6?rB:e||tB}function HZe(t){return{marktype:t.type,name:t.name||void 0,role:t.role||Oue(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function zZe(t,e){return t&&t.signal?e.signalRef(t.signal):t!==!1}function vB(t,e){const n=I$e(t.type);n||Se("Unrecognized transform type: "+we(t.type));const r=e6(n.type.toLowerCase(),null,Nue(n,t,e));return t.signal&&e.addSignal(t.signal,e.proxy(r)),r.metadata=n.metadata||{},r}function Nue(t,e,n){const r={},i=t.params.length;for(let s=0;s<i;++s){const o=t.params[s];r[o.name]=QZe(o,e,n)}return r}function QZe(t,e,n){const r=t.type,i=e[t.name];if(r==="index")return GZe(t,e,n);if(i===void 0){t.required&&Se("Missing required "+we(e.type)+" parameter: "+we(t.name));return}else{if(r==="param")return WZe(t,e,n);if(r==="projection")return n.projectionRef(e[t.name])}return t.array&&!or(i)?i.map(s=>Due(t,s,n)):Due(t,i,n)}function Due(t,e,n){const r=t.type;if(or(e))return wue(r)?Se("Expression references can not be signals."):SB(r)?n.fieldRef(e):Lue(r)?n.compareRef(e):n.signalRef(e.signal);{const i=t.expr||SB(r);return i&&VZe(e)?n.exprRef(e.expr,e.as):i&&YZe(e)?yE(e.field,e.as):wue(r)?La(e,n):KZe(r)?Xe(n.getData(e).values):SB(r)?yE(e):Lue(r)?n.compareRef(e):e}}function GZe(t,e,n){return je(e.from)||Se('Lookup "from" parameter must be a string literal.'),n.getData(e.from).lookupRef(n,e.key)}function WZe(t,e,n){const r=e[t.name];return t.array?(_e(r)||Se("Expected an array of sub-parameters. Instead: "+we(r)),r.map(i=>Fue(t,i,n))):Fue(t,r,n)}function Fue(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||Se("Unsupported parameter: "+we(e));const s=ft(Nue(i,e,n),i.key);return Xe(n.add(KJe(s)))}const VZe=t=>t&&t.expr,YZe=t=>t&&t.field,KZe=t=>t==="data",wue=t=>t==="expr",SB=t=>t==="field",Lue=t=>t==="compare";function XZe(t,e,n){let r,i,s,o,u;return t?(r=t.facet)&&(e||Se("Only group marks can be faceted."),r.field!=null?o=u=c6(r,n):(t.data?u=Xe(n.getData(t.data).aggregate):(s=vB(ft({type:"aggregate",groupby:Pe(r.groupby)},r.aggregate),n),s.params.key=n.keyRef(r.groupby),s.params.pulse=c6(r,n),o=u=Xe(n.add(s))),i=n.keyRef(r.groupby,!0))):o=Xe(n.add(hu(null,[{}]))),o||(o=c6(t,n)),{key:i,pulse:o,parent:u}}function c6(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:Xe(e.getData(t.data).output)}function Fd(t,e,n,r,i){this.scope=t,this.input=e,this.output=n,this.values=r,this.aggregate=i,this.index={}}Fd.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=Xe(e[u-1]),t.add(e[u]),e[u].type==="aggregate"&&(o=e[u]);return new Fd(t,s,i,r,o)};function Iue(t){return je(t)?t:null}function $ue(t,e,n){const r=n6(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 _E(t,e,n,r,i,s,o){const u=e[n]||(e[n]={}),a=TJe(s);let l=Iue(i),c,f;if(l!=null&&(t=e.scope,l=l+(a?"|"+a:""),c=u[l]),!c){const x=s?{field:oB,pulse:e.countsRef(t,i,s)}:{field:t.fieldRef(i),pulse:Xe(e.output)};a&&(x.sort=t.sortRef(s)),f=t.add(e6(r,void 0,x)),o&&(e.index[i]=f),c=Xe(f),l!=null&&(u[l]=c)}return c}Fd.prototype={countsRef(t,e,n){const r=this,i=r.counts||(r.counts={}),s=Iue(e);let o,u,a;return s!=null&&(t=r.scope,o=i[s]),o?n&&n.field&&$ue(t,o.agg.params,n):(a={groupby:t.fieldRef(e,"key"),pulse:Xe(r.output)},n&&n.field&&$ue(t,a,n),u=t.add(cue(a)),o=t.add(hu({pulse:Xe(u)})),o={agg:u,ref:Xe(o)},s!=null&&(i[s]=o)),o.ref},tuplesRef(){return Xe(this.values)},extentRef(t,e){return _E(t,this,"extent","extent",e,!1)},domainRef(t,e){return _E(t,this,"domain","values",e,!1)},valuesRef(t,e,n){return _E(t,this,"vals","values",e,n||!0)},lookupRef(t,e){return _E(t,this,"lookup","tupleindex",e,!1)},indataRef(t,e){return _E(t,this,"indata","tupleindex",e,!0,!0)}};function JZe(t,e,n){const r=t.from.facet,i=r.name,s=c6(r,e);let o;r.name||Se("Facet must have a name: "+we(r)),r.data||Se("Facet must reference a data set: "+we(r)),r.field?o=e.add(hue({field:e.fieldRef(r.field),pulse:s})):r.groupby?o=e.add(UJe({key:e.keyRef(r.groupby),group:Xe(e.proxy(n.parent)),pulse:s})):Se("Facet must specify groupby or field: "+we(r));const u=e.fork(),a=u.add(hu()),l=u.add(Nd({pulse:Xe(a)}));u.addData(i,new Fd(u,a,a,l)),u.addSignal("parent",null),o.params.subflow={$subflow:u.parse(t).toRuntime()}}function ZZe(t,e,n){const r=e.add(hue({pulse:n.pulse})),i=e.fork();i.add(Nd()),i.addSignal("parent",null),r.params.subflow={$subflow:i.parse(t).toRuntime()}}function Bue(t,e,n){const r=t.remove,i=t.insert,s=t.toggle,o=t.modify,u=t.values,a=e.add(t6()),l="if("+t.trigger+',modify("'+n+'",'+[i,r,s,o,u].map(f=>f??"null").join(",")+"),0)",c=La(l,e);a.update=c.$expr,a.params=c.$params}function f6(t,e){const n=Oue(t),r=t.type===u6,i=t.from&&t.from.facet,s=t.overlap;let o=t.layout||n===rB||n===nB,u,a,l,c,f,x,h;const p=n===tB||o||i,m=XZe(t.from,r,e);a=e.add(MJe({key:m.key||(t.key?yE(t.key):void 0),pulse:m.pulse,clean:!r}));const g=Xe(a);a=l=e.add(hu({pulse:g})),a=e.add(GJe({markdef:HZe(t),interactive:zZe(t.interactive,e),clip:qZe(t.clip,e),context:{$context:!0},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:Xe(a)}));const y=Xe(a);a=c=e.add(due(sue(t.encode,t.type,n,t.style,e,{mod:!1,pulse:y}))),a.params.parent=e.encode(),t.transform&&t.transform.forEach(C=>{const _=vB(C,e),b=_.metadata;(b.generates||b.changes)&&Se("Mark transforms should not generate new data."),b.nomod||(c.params.mod=!0),_.params.pulse=Xe(a),e.add(a=_)}),t.sort&&(a=e.add(tZe({sort:e.compareRef(t.sort),pulse:Xe(a)})));const E=Xe(a);(i||o)&&(o=e.add(gue({layout:e.objectProperty(t.layout),legends:e.legends,mark:y,pulse:E})),x=Xe(o));const A=e.add(fue({mark:y,pulse:x||E}));h=Xe(A),r&&(p&&(u=e.operators,u.pop(),o&&u.pop()),e.pushState(E,x||h,g),i?JZe(t,e,m):p?ZZe(t,e,m):e.parse(t),e.popState(),p&&(o&&u.push(o),u.push(A))),s&&(h=eet(s,h,e));const v=e.add(pue({pulse:h})),S=e.add(Nd({pulse:Xe(v)},void 0,e.parent()));t.name!=null&&(f=t.name,e.addData(f,new Fd(e,l,v,S)),t.on&&t.on.forEach(C=>{(C.insert||C.remove||C.toggle)&&Se("Marks only support modify triggers."),Bue(C,e,f)}))}function eet(t,e,n){const r=t.method,i=t.bound,s=t.separation,o={separation:or(s)?n.signalRef(s.signal):s,method:or(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=or(u)?n.signalRef(u.signal):+u,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return Xe(n.add(YJe(o)))}function tet(t,e){const n=e.config.legend,r=t.encode||{},i=ys(t,n),s=r.legend||{},o=s.name||void 0,u=s.interactive,a=s.style,l={};let c=0,f,x,h;gB.forEach(A=>t[A]?(l[A]=t[A],c=c||t[A]):0),c||Se("Missing valid scale for legend.");const p=net(t,e.scaleType(c)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=Xe(e.add(hu(null,[m]))),y={enter:{x:{value:0},y:{value:0}}},E=Xe(e.add(zJe(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===o6?(h=[OZe(t,c,n,r.gradient),Tue(t,n,r.labels,E)],x.count=x.count||e.signalRef(`max(2,2*floor((${Od(i.gradientLength())})/100))`)):p===hB?h=[NZe(t,c,n,r.gradient,E),Tue(t,n,r.labels,E)]:(f=LZe(t,n),h=[wZe(t,n,r,E,Od(f.columns))],x.size=set(t,e,h[0].marks)),h=[SE({role:oJe,from:g,encode:y,marks:h,layout:f,interactive:u})],m.title&&h.push(UZe(t,n,r.title,g)),f6(SE({role:iJe,from:g,encode:R1(iet(i,t,n),s,vE),marks:h,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:u,style:a}),e)}function net(t,e){let n=t.type||Sue;return!t.type&&ret(t)===1&&(t.fill||t.stroke)&&(n=F9(e)?o6:w9(e)?hB:Sue),n!==o6?n:w9(e)?hB:o6}function ret(t){return gB.reduce((e,n)=>e+(t[n]?1:0),0)}function iet(t,e,n){const r={enter:{},update:{}};return Pr(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 set(t,e,n){const r=Od(kue("size",t,n)),i=Od(kue("strokeWidth",t,n)),s=Od(oet(n[1].encode,e,AE));return La(`max(ceil(sqrt(${r})+${i}),${s})`,e)}function kue(t,e,n){return e[t]?`scale("${e[t]}",datum)`:Cue(t,n[0].encode)}function oet(t,e,n){return Cue("fontSize",t)||TZe("fontSize",e,n)}const uet=`item.orient==="${N1}"?-90:item.orient==="${D1}"?90:0`;function aet(t,e){t=je(t)?{text:t}:t;const n=ys(t,e.config.title),r=t.encode||{},i=r.group||{},s=i.name||void 0,o=i.interactive,u=i.style,a=[],l={},c=Xe(e.add(hu(null,[l])));return a.push(xet(t,n,cet(t),c)),t.subtitle&&a.push(det(t,n,r.subtitle,c)),f6(SE({role:cJe,from:c,encode:fet(n,i),marks:a,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:s,interactive:o,style:u}),e)}function cet(t){const e=t.encode;return e&&e.title||ft({name:t.name,interactive:t.interactive,style:t.style},e)}function fet(t,e){const n={enter:{},update:{}};return Pr(n,{orient:t("orient"),anchor:t("anchor"),align:{signal:yB},angle:{signal:uet},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),R1(n,e,vE)}function xet(t,e,n,r){const i={value:0},s=t.text,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Pr(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")}),Gs({type:Dd,role:fJe,style:_Ze,from:r,encode:o},n)}function det(t,e,n,r){const i={value:0},s=t.subtitle,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Pr(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")}),Gs({type:Dd,role:xJe,style:CZe,from:r,encode:o},n)}function het(t,e){const n=[];t.transform&&t.transform.forEach(r=>{n.push(vB(r,e))}),t.on&&t.on.forEach(r=>{Bue(r,e,t.name)}),e.addDataPipeline(t.name,pet(t,e,n))}function pet(t,e,n){const r=[];let i=null,s=!1,o=!1,u,a,l,c,f;for(t.values?or(t.values)||r6(t.format)?(r.push(Pue(e,t)),r.push(i=wd())):r.push(i=wd({$ingest:t.values,$format:t.format})):t.url?r6(t.url)||r6(t.format)?(r.push(Pue(e,t)),r.push(i=wd())):r.push(i=wd({$request:t.url,$format:t.format})):t.source&&(i=u=Pe(t.source).map(x=>Xe(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=wd()),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]=ZJe({derive:s,pulse:l?u:u[0]}),(s||l)&&r.splice(1,0,wd())),i||r.push(wd()),r.push(Nd({})),r}function wd(t){const e=hu({},t);return e.metadata={source:!0},e}function Pue(t,e){return QJe({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 Mue=t=>t===zc||t===pu,x6=(t,e,n)=>or(t)?Eet(t.signal,e,n):t===N1||t===pu?e:n,_r=(t,e,n)=>or(t)?met(t.signal,e,n):Mue(t)?e:n,gu=(t,e,n)=>or(t)?yet(t.signal,e,n):Mue(t)?n:e,jue=(t,e,n)=>or(t)?Aet(t.signal,e,n):t===pu?{value:e}:{value:n},get=(t,e,n)=>or(t)?vet(t.signal,e,n):t===D1?{value:e}:{value:n},met=(t,e,n)=>Uue(`${t} === '${pu}' || ${t} === '${zc}'`,e,n),yet=(t,e,n)=>Uue(`${t} !== '${pu}' && ${t} !== '${zc}'`,e,n),Eet=(t,e,n)=>_B(`${t} === '${N1}' || ${t} === '${pu}'`,e,n),Aet=(t,e,n)=>_B(`${t} === '${pu}'`,e,n),vet=(t,e,n)=>_B(`${t} === '${D1}'`,e,n),Uue=(t,e,n)=>(e=e!=null?Sr(e):e,n=n!=null?Sr(n):n,que(e)&&que(n)?(e=e?e.signal||we(e.value):null,n=n?n.signal||we(n.value):null,{signal:`${t} ? (${e}) : (${n})`}):[ft({test:t},e)].concat(n||[])),que=t=>t==null||Object.keys(t).length===1,_B=(t,e,n)=>({signal:`${t} ? (${w1(e)}) : (${w1(n)})`}),_et=(t,e,n,r,i)=>({signal:(r!=null?`${t} === '${N1}' ? (${w1(r)}) : `:"")+(n!=null?`${t} === '${zc}' ? (${w1(n)}) : `:"")+(i!=null?`${t} === '${D1}' ? (${w1(i)}) : `:"")+(e!=null?`${t} === '${pu}' ? (${w1(e)}) : `:"")+"(null)"}),w1=t=>or(t)?t.signal:t==null?null:we(t),Cet=(t,e)=>e===0?0:or(t)?{signal:`(${t.signal}) * ${e}`}:{value:t*e},L1=(t,e)=>{const n=t.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+e.signal}:t};function I1(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[dB][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[AE][i]}return null}function Hue(t){const e={};for(const n of t)if(n)for(const r in n)e[r]=1;return Object.keys(e)}function bet(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(or(o)){const f=Hue([n.axisX,n.axisY]),x=Hue([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);u={};for(l of f)u[l]=_r(o,I1(l,n.axisX,i,r),I1(l,n.axisY,i,r));a={};for(l of x)a[l]=_et(o.signal,I1(l,n.axisTop,i,r),I1(l,n.axisBottom,i,r),I1(l,n.axisLeft,i,r),I1(l,n.axisRight,i,r))}else u=o===pu||o===zc?n.axisX:n.axisY,a=n["axis"+o[0].toUpperCase()+o.slice(1)];return u||a||s?ft({},i,u,a,s):i}function Tet(t,e,n,r){const i=ys(t,e),s=t.orient;let o,u;const a={enter:o={opacity:bt},update:u={opacity:No},exit:{opacity:bt}};Pr(a,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const l=zue(t,0),c=zue(t,1);return o.x=u.x=_r(s,l,bt),o.x2=u.x2=_r(s,c),o.y=u.y=gu(s,l,bt),o.y2=u.y2=gu(s,c),Gs({type:mB,role:ZXe,from:r,encode:a},n)}function zue(t,e){return{scale:t.scale,range:e}}function Ret(t,e,n,r,i){const s=ys(t,e),o=t.orient,u=t.gridScale,a=x6(o,1,-1),l=Oet(t.offset,a);let c,f,x;const h={enter:c={opacity:bt},update:x={opacity:No},exit:f={opacity:bt}};Pr(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:Oo,band:i.band,extra:i.extra,offset:i.offset,round:s("tickRound")},m=_r(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}:ft(m,{mult:a,offset:l});return c.x=x.x=_r(o,p,g),c.y=x.y=gu(o,p,g),c.x2=x.x2=gu(o,y),c.y2=x.y2=_r(o,y),f.x=_r(o,p),f.y=gu(o,p),Gs({type:mB,role:eJe,key:Oo,from:r,encode:h},n)}function Oet(t,e){if(e!==1)if(!He(t))t=or(e)?{signal:`(${e.signal}) * (${t||0})`}:e*(t||0);else{let n=t=ft({},t);for(;n.mult!=null;)if(He(n.mult))n=n.mult=ft({},n.mult);else return n.mult=or(e)?{signal:`(${n.mult}) * (${e.signal})`}:n.mult*e,t;n.mult=e}return t}function Net(t,e,n,r,i,s){const o=ys(t,e),u=t.orient,a=x6(u,-1,1);let l,c,f;const x={enter:l={opacity:bt},update:f={opacity:No},exit:c={opacity:bt}};Pr(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:Oo,band:s.band,extra:s.extra,offset:s.offset,round:o("tickRound")};return f.y=l.y=_r(u,bt,p),f.y2=l.y2=_r(u,h),c.x=_r(u,p),f.x=l.x=gu(u,bt,p),f.x2=l.x2=gu(u,h),c.y=gu(u,p),Gs({type:mB,role:nJe,key:Oo,from:r,encode:x},n)}function CB(t,e,n,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+e+","+n+","+r+","+i+")"}}function Det(t,e,n,r,i,s){const o=ys(t,e),u=t.orient,a=t.scale,l=x6(u,-1,1),c=Od(o("labelFlush")),f=Od(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:Oo,band:.5,offset:bue(s.offset,o("labelOffset"))},E=_r(u,p?CB(a,c,'"left"','"right"','"center"'):{value:"center"},get(u,"left","right")),A=_r(u,jue(u,"bottom","top"),p?CB(a,c,'"top"','"bottom"','"middle"'):{value:"middle"}),v=CB(a,c,`-(${f})`,f,0);p=p&&f;const S={opacity:bt,x:_r(u,y,g),y:gu(u,y,g)},C={enter:S,update:m={opacity:No,text:{field:xB},x:S.x,y:S.y,align:E,baseline:A},exit:{opacity:bt,x:S.x,y:S.y}};Pr(C,{dx:!x&&p?_r(u,v):null,dy:!h&&p?gu(u,v):null}),Pr(C,{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 _=o("labelBound");let b=o("labelOverlap");return b=b||_?{separation:o("labelSeparation"),method:b,order:"datum.index",bound:_?{scale:a,orient:u,tolerance:_}:null}:void 0,m.align!==E&&(m.align=L1(m.align,E)),m.baseline!==A&&(m.baseline=L1(m.baseline,A)),Gs({type:Dd,role:tJe,style:AE,key:Oo,from:r,encode:C,overlap:b},n)}function Fet(t,e,n,r){const i=ys(t,e),s=t.orient,o=x6(s,-1,1);let u,a;const l={enter:u={opacity:bt,anchor:Sr(i("titleAnchor",null)),align:{signal:yB}},update:a=ft({},u,{opacity:No,text:Sr(t.title)}),exit:{opacity:bt}},c={signal:`lerp(range("${t.scale}"), ${a6(0,1,.5)})`};return a.x=_r(s,c),a.y=gu(s,c),u.angle=_r(s,bt,Cet(o,90)),u.baseline=_r(s,jue(s,zc,pu),{value:zc}),a.angle=u.angle,a.baseline=u.baseline,Pr(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")}),wet(i,s,l,n),l.update.align=L1(l.update.align,u.align),l.update.angle=L1(l.update.angle,u.angle),l.update.baseline=L1(l.update.baseline,u.baseline),Gs({type:Dd,role:rJe,style:dB,from:r,encode:l},n)}function wet(t,e,n,r){const i=(u,a)=>u!=null?(n.update[a]=L1(Sr(u),n.update[a]),!1):!O1(a,r),s=i(t("titleX"),"x"),o=i(t("titleY"),"y");n.enter.auto=o===s?Sr(o):_r(e,Sr(o),Sr(s))}function Let(t,e){const n=bet(t,e),r=t.encode||{},i=r.axis||{},s=i.name||void 0,o=i.interactive,u=i.style,a=ys(t,n),l=RZe(a),c={scale:t.scale,ticks:!!a("ticks"),labels:!!a("labels"),grid:!!a("grid"),domain:!!a("domain"),title:t.title!=null},f=Xe(e.add(hu({},[c]))),x=Xe(e.add(PJe({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(Ret(t,n,r.grid,x,l)),c.ticks&&(p=a("tickSize"),h.push(Net(t,n,r.ticks,x,p,l))),c.labels&&(p=c.ticks?p:0,h.push(Det(t,n,r.labels,x,p,l))),c.domain&&h.push(Tet(t,n,r.domain,f)),c.title&&h.push(Fet(t,n,r.title,f)),f6(SE({role:JXe,from:f,encode:R1(Iet(a,t),i,vE),marks:h,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:s,interactive:o,style:u}),e)}function Iet(t,e){const n={enter:{},update:{}};return Pr(n,{orient:t("orient"),offset:t("offset")||0,position:du(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 Que(t,e,n){const r=Pe(t.signals),i=Pe(t.scales);return n||r.forEach(s=>uue(s,e)),Pe(t.projections).forEach(s=>gZe(s,e)),i.forEach(s=>iZe(s,e)),Pe(t.data).forEach(s=>het(s,e)),i.forEach(s=>sZe(s,e)),(n||r).forEach(s=>kJe(s,e)),Pe(t.axes).forEach(s=>Let(s,e)),Pe(t.marks).forEach(s=>f6(s,e)),Pe(t.legends).forEach(s=>tet(s,e)),t.title&&aet(t.title,e),e.parseLambdas(),e}const $et=t=>R1({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function Bet(t,e){const n=e.config,r=Xe(e.root=e.add(t6())),i=ket(t,n);i.forEach(l=>uue(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(hu()),o=e.add(due(sue($et(t.encode),u6,nB,t.style,e,{pulse:Xe(s)}))),u=e.add(gue({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:r,pulse:Xe(o)}));e.operators.pop(),e.pushState(Xe(o),Xe(u),null),Que(t,e,i),e.operators.push(u);let a=e.add(fue({mark:r,pulse:Xe(u)}));return a=e.add(pue({pulse:Xe(a)})),a=e.add(Nd({pulse:Xe(a)})),e.addData("root",new Fd(e,s,s,a)),e}function CE(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function ket(t,e){const n=o=>du(t[o],e[o]),r=[CE("background",n("background")),CE("autosize",YXe(n("autosize"))),CE("padding",XXe(n("padding"))),CE("width",n("width")||0),CE("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=ft(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 Gue(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 Wue(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}Gue.prototype=Wue.prototype={parse(t){return Que(t,this)},fork(){return new Wue(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 sB?Xe(t):t;return this.add(JJe({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(Xe(this.add(Nd({pulse:t})))),this._parent.push(e),this._lookup.push(n?Xe(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return St(this._parent)},encode(){return St(this._encode)},lookup(){return St(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,e){if(je(t))return yE(t,e);t.signal||Se("Unsupported field reference: "+we(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=Xe(this.add(qJe(i)))}return r},compareRef(t){let e=!1;const n=s=>or(s)?(e=!0,this.signalRef(s.signal)):RJe(s)?(e=!0,this.exprRef(s.expr)):s,r=Pe(t.field).map(n),i=Pe(t.order).map(n);return e?Xe(this.add(xue({fields:r,orders:i}))):aue(r,i)},keyRef(t,e){let n=!1;const r=s=>or(s)?(n=!0,Xe(i[s.signal])):s,i=this.signals;return t=Pe(t).map(r),n?Xe(this.add(HJe({fields:t,flat:e}))):_Je(t,e)},sortRef(t){if(!t)return t;const e=n6(t.op,t.field),n=t.order||CJe;return n.signal?Xe(this.add(xue({fields:e,orders:this.signalRef(n.signal)}))):aue(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)&&Se("Duplicate signal name: "+we(t));const n=e instanceof sB?e:this.add(t6(e));return this.signals[t]=n},getSignal(t){return this.signals[t]||Se("Unrecognized signal name: "+we(t)),this.signals[t]},signalRef(t){return this.signals[t]?Xe(this.signals[t]):(Je(this.lambdas,t)||(this.lambdas[t]=this.add(t6(null))),Xe(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=La(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||!He(t)?t:this.signalRef(t.signal||bB(t))},exprRef(t,e){const n={expr:La(t,this)};return e&&(n.expr.$name=e),Xe(this.add(jJe(n)))},addBinding(t,e){this.bindings||Se("Nested signals do not support binding: "+we(t)),this.bindings.push(ft({signal:t},e))},addScaleProj(t,e){Je(this.scales,t)&&Se("Duplicate scale or projection name: "+we(t)),this.scales[t]=this.add(e)},addScale(t,e){this.addScaleProj(t,eZe(e))},addProjection(t,e){this.addScaleProj(t,XJe(e))},getScale(t){return this.scales[t]||Se("Unrecognized scale name: "+we(t)),this.scales[t]},scaleRef(t){return Xe(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)&&Se("Duplicate data set name: "+we(t)),this.data[t]=e},getData(t){return this.data[t]||Se("Undefined data set name: "+we(t)),this.data[t]},addDataPipeline(t,e){return Je(this.data,t)&&Se("Duplicate data set name: "+we(t)),this.addData(t,Fd.fromEntries(this,e))}};function bB(t){return(_e(t)?Pet:Met)(t)}function Pet(t){const e=t.length;let n="[";for(let r=0;r<e;++r){const i=t[r];n+=(r>0?",":"")+(He(i)?i.signal||bB(i):we(i))}return n+"]"}function Met(t){let e="{",n=0,r,i;for(r in t)i=t[r],e+=(++n>1?",":"")+we(r)+":"+(He(i)?i.signal||bB(i):we(i));return e+"}"}function jet(){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 Vue(t,e,n){return He(t)||Se("Input Vega specification must be an object."),e=HF(jet(),e,t.config),Bet(t,new Gue(e,n)).toRuntime()}ft(J3,HBe,Aqe,Qqe,Dze,CQe,XGe,DGe,ZGe,SWe,wWe,MWe);const bE={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Uet(t){return t==="quantitative"||t==="temporal"}function Yue(t){return t==="ordinal"||t==="nominal"}const Ld=bE.quantitative,TB=bE.ordinal,$1=bE.temporal,RB=bE.nominal,B1=bE.geojson;function qet(t){if(t)switch(t=t.toLowerCase(),t){case"q":case Ld:return"quantitative";case"t":case $1:return"temporal";case"o":case TB:return"ordinal";case"n":case RB:return"nominal";case B1:return"geojson"}}var Het=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 Es={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"},OB={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 zet(t,e){const n=OB[t],r=OB[e];return n===r||n==="ordinal-position"&&r==="time"||r==="ordinal-position"&&n==="time"}const Qet={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 Kue(t){return Qet[t]}const Xue=new Set(["linear","log","pow","sqrt","symlog"]),Jue=new Set([...Xue,"time","utc"]);function Zue(t){return Xue.has(t)}const eae=new Set(["quantile","quantize","threshold"]),Get=new Set([...Jue,...eae,"sequential","identity"]),Wet=new Set(["ordinal","bin-ordinal","point","band"]);function Cr(t){return Wet.has(t)}function Ws(t){return Get.has(t)}function mu(t){return Jue.has(t)}function k1(t){return eae.has(t)}const Vet={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 Yet(t){return!je(t)&&!!t.name}function tae(t){return t==null?void 0:t.param}function Ket(t){return t&&t.unionWith}function Xet(t){return He(t)&&"field"in t}const Jet=Het({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"]),Zet=Te(Jet);function NB(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 mu(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return mu(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 mu(t);case"nice":return mu(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return Ws(t)&&!Ct(["log","time","utc","threshold","quantile"],t)}}function nae(t,e){switch(e){case"interpolate":case"scheme":case"domainMid":return k2(t)?void 0:Ewe(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 ett(t,e){return Ct([TB,RB],e)?t===void 0||Cr(t):e===$1?Ct([Es.TIME,Es.UTC,void 0],t):e===Ld?Zue(t)||k1(t)||t===void 0:!0}function ttt(t,e,n=!1){if(!xc(t))return!1;switch(t){case En:case gr:case oc:case B2:case nu:case oa:return mu(e)||e==="band"?!0:e==="point"?!n:!1;case Ol:case lc:case Nl:case uc:case ac:case kx:return mu(e)||k1(e)||Ct(["band","point","ordinal"],e);case us:case la:case ca:return e!=="band";case cc:case as:return e==="ordinal"||k1(e)}}const Hi={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"},rae=Hi.arc,d6=Hi.area,h6=Hi.bar,ntt=Hi.image,p6=Hi.line,g6=Hi.point,rtt=Hi.rect,m6=Hi.rule,iae=Hi.text,DB=Hi.tick,itt=Hi.trail,FB=Hi.circle,wB=Hi.square,sae=Hi.geoshape;function Qc(t){return["line","area","trail"].includes(t)}function oae(t){return["rect","bar","image","arc"].includes(t)}const stt=new Set(Te(Hi));function Ia(t){return t.type}const ott=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],utt=["fill","fillOpacity"],att=[...ott,...utt],uae=Te({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),ltt={area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]},ctt={color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},aae=Te({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 P1(t){return t&&t.band!=null}const ftt={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},lae=5,xtt={binSpacing:1,continuousBandSize:lae,timeUnitBandPosition:.5},dtt={binSpacing:0,continuousBandSize:lae,timeUnitBandPosition:.5},htt={thickness:1};function ptt(t){return Ia(t)?t.type:t}function LB(t){const{channel:e,channelDef:n,markDef:r,scale:i,config:s}=t,o=$B(t);return Ie(n)&&!fK(n.aggregate)&&i&&mu(i.get("type"))?gtt({fieldDef:n,channel:e,markDef:r,ref:o,config:s}):o}function gtt({fieldDef:t,channel:e,markDef:n,ref:r,config:i}){return Qc(n.type)?r:It("invalid",n,i)===null?[mtt(t,e),r]:r}function mtt(t,e){const n=IB(t,!0),i=Mx(e)==="y"?{field:{group:"height"}}:{value:0};return Object.assign({test:n},i)}function IB(t,e=!0){return _8(je(t)?t:$e(t,{expr:"datum"}),!e)}function ytt(t){const{datum:e}=t;return qx(e)?D3(e):`${rn(e)}`}function Id(t,e,n,r){const i={};if(e&&(i.scale=e),Ba(t)){const{datum:s}=t;qx(s)?i.signal=D3(s):Ye(s)?i.signal=s.signal:N3(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 y6({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 $B({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(st(e)){const x=o==null?void 0:o.get("type");if(Do(e)){c??(c=vae({fieldDef:e,fieldDef2:n,markDef:r,config:i}));const{bin:h,timeUnit:p,type:m}=e;if(Kt(h)||c&&p&&m===$1)return u!=null&&u.impute?Id(e,s,{binSuffix:"mid"},{offset:a}):c&&!Cr(x)?y6({scaleName:s,fieldOrDatumDef:e,bandPosition:c,offset:a}):Id(e,s,NE(e,t)?{binSuffix:"range"}:{},{offset:a});if(Ti(h)){if(Ie(n))return y6({scaleName:s,fieldOrDatumDef:e,fieldOrDatumDef2:n,bandPosition:c,offset:a});Re(PK(t===En?tu:sa))}}return Id(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(yu(e)){const x=e.value,h=a?{offset:a}:{};return Object.assign(Object.assign({},TE(t,x)),h)}}return ct(l)&&(l=l()),l&&Object.assign(Object.assign({},l),a?{offset:a}:{})}function TE(t,e){return Ct(["x","x2"],t)&&e==="width"?{field:{group:"width"}}:Ct(["y","y2"],t)&&e==="height"?{field:{group:"height"}}:sn(e)}function $d(t){return t&&t!=="number"&&t!=="time"}function cae(t,e,n){return`${t}(${e}${n?`, ${rn(n)}`:""})`}const Ett=" – ";function BB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s}){var o,u;if($d(n))return kB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,config:s});const a=fae(t,r,i);if(U1(t)){const l=vtt(a,Ie(t)?(o=Ri(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0,e,s.timeFormat,Bd(t)&&((u=t.scale)===null||u===void 0?void 0:u.type)===Es.UTC);return l?{signal:l}:void 0}if(e=hae(UB(t),e,s),Ie(t)&&Kt(t.bin)){const l=$e(t,{expr:r,binSuffix:"end"});return{signal:E6(a,l,e,n,s)}}else return e||UB(t)==="quantitative"?{signal:`${pae(a,e)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function fae(t,e,n){return Ie(t)?n?`${$e(t,{expr:e,suffix:"end"})}-${$e(t,{expr:e,suffix:"start"})}`:$e(t,{expr:e}):ytt(t)}function kB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s,field:o}){if(o??(o=fae(t,r,i)),Ie(t)&&Kt(t.bin)){const u=$e(t,{expr:r,binSuffix:"end"});return{signal:E6(o,u,e,n,s)}}return{signal:cae(n,o,e)}}function xae(t,e,n,r,i,s){var o;if(!$d(r)){if(U1(t)){const u=Ie(t)?(o=Ri(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0;return Att(n,u,i,s)}return hae(e,n,i)}}function dae(t,e,n){if(t&&(Ye(t)||t==="number"||t==="time"))return t;if(U1(e)&&n!=="time"&&n!=="utc")return"time"}function hae(t,e,n){if(je(e))return e;if(t===Ld)return n.numberFormat}function Att(t,e,n,r){return t||(e?{signal:zK(e)}:r?void 0:n.timeFormat)}function pae(t,e){return`format(${t}, "${e||""}")`}function gae(t,e,n,r){var i;return $d(n)?cae(n,t,e):pae(t,(i=je(e)?e:void 0)!==null&&i!==void 0?i:r.numberFormat)}function E6(t,e,n,r,i){const s=gae(t,n,r,i),o=gae(e,n,r,i);return`${_8(t,!1)} ? "null" : ${s} + "${Ett}" + ${o}`}function vtt(t,e,n,r,i){return!e||n?(n=je(n)?n:r,`${i?"utc":"time"}Format(${t}, '${n}')`):i9e(e,t,i)}const A6="min",Stt={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 mae(t){return t in Stt}function yae(t){return!!t&&!!t.encoding}function $a(t){return!!t&&(t.op==="count"||!!t.field)}function Eae(t){return!!t&&_e(t)}function RE(t){return"row"in t||"column"in t}function PB(t){return!!t&&"header"in t}function v6(t){return"facet"in t}var MB=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){return t.param}function Ctt(t){return t&&!je(t)&&"repeat"in t}function Aae(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 jB(t){return"sort"in t}function vae({fieldDef:t,fieldDef2:e,markDef:n,config:r}){if(st(t)&&t.bandPosition!==void 0)return t.bandPosition;if(Ie(t)){const{timeUnit:i,bin:s}=t;if(i&&!e)return oae(n.type)?0:Ux("timeUnitBandPosition",n,r);if(Kt(s))return .5}}function Sae({channel:t,fieldDef:e,fieldDef2:n,markDef:r,config:i,scaleType:s,useVlSizeChannel:o}){var u,a,l;const c=ls(t),f=It(o?"size":c,r,i,{vgChannel:c});if(f!==void 0)return f;if(Ie(e)){const{timeUnit:x,bin:h}=e;if(x&&!n)return{band:Ux("timeUnitBandSize",r,i)};if(Kt(h)&&!Cr(s))return{band:1}}if(oae(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 _ae(t,e,n,r){return Kt(t.bin)||t.timeUnit&&Do(t)&&t.type==="temporal"?vae({fieldDef:t,fieldDef2:e,markDef:n,config:r})!==void 0:!1}function S6(t){return t&&"condition"in t}function _6(t){const e=t&&t.condition;return!!e&&!_e(e)&&Ie(e)}function OE(t){const e=t&&t.condition;return!!e&&!_e(e)&&st(e)}function btt(t){const e=t&&t.condition;return!!e&&(_e(e)||yu(e))}function Ie(t){return t&&(!!t.field||t.aggregate==="count")}function UB(t){return t&&t.type}function Ba(t){return t&&"datum"in t}function ka(t){return Do(t)&&!C6(t)||qB(t)}function qB(t){return Ba(t)&&nn(t.datum)}function st(t){return Ie(t)||Ba(t)}function Do(t){return t&&("field"in t||t.aggregate==="count")&&"type"in t}function yu(t){return t&&"value"in t&&"value"in t}function Bd(t){return t&&("scale"in t||"sort"in t)}function HB(t){return t&&("axis"in t||"stack"in t||"impute"in t)}function Cae(t){return t&&"legend"in t}function bae(t){return t&&("format"in t||"formatType"in t)}function Ttt(t){return po(t,["legend","axis","header","scale"])}function Rtt(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(Ntt(t))s=o8e("count");else{let l;if(!e.nofn)if(Rtt(t))l=t.op;else{const{bin:c,aggregate:f,timeUnit:x}=t;Kt(c)?(l=xK(c),u=((n=e.binSuffix)!==null&&n!==void 0?n:"")+((r=e.suffix)!==null&&r!==void 0?r:"")):f?dc(f)?(a=`["${s}"]`,s=`argmax_${f.argmax}`):Fl(f)?(a=`["${s}"]`,s=`argmin_${f.argmin}`):l=String(f):x&&(l=s9e(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?ZY(s):e.expr?n8e(s,e.expr)+a:eu(s)+a}function C6(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return Ie(t)&&!!t.bin;case"temporal":return!1}throw new Error(wK(t.type))}function Ott(t){var e;return Bd(t)&&k1((e=t.scale)===null||e===void 0?void 0:e.type)}function Ntt(t){return t.aggregate==="count"}function Dtt(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=Ri(s))===null||n===void 0?void 0:n.unit;if(u)return`${r} (${p8(u).join("-")})`}else if(o)return dc(o)?`${r} for max ${o.argmax}`:Fl(o)?`${r} for min ${o.argmin}`:`${V5(o)} of ${r}`;return r}function Ftt(t){const{aggregate:e,bin:n,timeUnit:r,field:i}=t;if(dc(e))return`${i} for argmax(${e.argmax})`;if(Fl(e))return`${i} for argmin(${e.argmin})`;const s=Ri(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 Tae=(t,e)=>{switch(e.fieldTitle){case"plain":return t.field;case"functional":return Ftt(t);default:return Dtt(t,e)}};let Rae=Tae;function Oae(t){Rae=t}function wtt(){Oae(Tae)}function M1(t,e,{allowDisabling:n,includeDefault:r=!0}){var i,s;const o=(i=zB(t))===null||i===void 0?void 0:i.title;if(!Ie(t))return o??t.title;const u=t,a=r?QB(u,e):void 0;return n?er(o,u.title,a):(s=o??u.title)!==null&&s!==void 0?s:a}function zB(t){if(HB(t)&&t.axis)return t.axis;if(Cae(t)&&t.legend)return t.legend;if(PB(t)&&t.header)return t.header}function QB(t,e){return Rae(t,e)}function b6(t){var e;if(bae(t)){const{format:n,formatType:r}=t;return{format:n,formatType:r}}else{const n=(e=zB(t))!==null&&e!==void 0?e:{},{format:r,formatType:i}=n;return{format:r,formatType:i}}}function Ltt(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(jB(t)&&_e(t.sort))return"ordinal";const{aggregate:r,bin:i,timeUnit:s}=t;if(s)return"temporal";if(i||r&&!dc(r)&&!Fl(r))return"quantitative";if(Bd(t)&&(!((n=t.scale)===null||n===void 0)&&n.type))switch(OB[t.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function Pa(t){if(Ie(t))return t;if(_6(t))return t.condition}function ur(t){if(st(t))return t;if(OE(t))return t.condition}function Nae(t,e,n,r={}){if(je(t)||nn(t)||w2(t)){const i=je(t)?"string":nn(t)?"number":"boolean";return Re(owe(e,i,t)),{value:t}}return st(t)?T6(t,e,n,r):OE(t)?Object.assign(Object.assign({},t),{condition:T6(t.condition,e,n,r)}):t}function T6(t,e,n,r){if(bae(t)){const{format:i,formatType:s}=t,o=MB(t,["format","formatType"]);if($d(s)&&!n.customFormatTypes)return Re(FK(e)),T6(o,e,n,r)}else{const i=HB(t)?"axis":Cae(t)?"legend":PB(t)?"header":null;if(i&&t[i]){const s=t[i],{format:o,formatType:u}=s,a=MB(s,["format","formatType"]);if($d(u)&&!n.customFormatTypes)return Re(FK(e)),T6(Object.assign(Object.assign({},t),{[i]:a}),e,n,r)}}return Ie(t)?GB(t,e,r):Itt(t)}function Itt(t){let e=t.type;if(e)return t;const{datum:n}=t;return e=nn(n)?"quantitative":je(n)?"nominal":qx(n)?"temporal":void 0,Object.assign(Object.assign({},t),{type:e})}function GB(t,e,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:i,bin:s,field:o}=t,u=Object.assign({},t);if(!n&&r&&!s8(r)&&!dc(r)&&!Fl(r)&&(Re(awe(r)),delete u.aggregate),i&&(u.timeUnit=Ri(i)),o&&(u.field=`${o}`),Kt(s)&&(u.bin=R6(s,e)),Ti(s)&&!Ir(e)&&Re(Uwe(e)),Do(u)){const{type:a}=u,l=qet(a);a!==l&&(u.type=l),a!=="quantitative"&&fK(r)&&(Re(uwe(a,r)),u.type="quantitative")}else if(!iK(e)){const a=Ltt(u,e);u.type=a}if(Do(u)){const{compatible:a,warning:l}=$tt(u,e)||{};a===!1&&Re(l)}if(jB(u)&&je(u.sort)){const{sort:a}=u;if(mae(a))return Object.assign(Object.assign({},u),{sort:{encoding:a}});const l=a.substr(1);if(a.charAt(0)==="-"&&mae(l))return Object.assign(Object.assign({},u),{sort:{encoding:l,order:"descending"}})}if(PB(u)){const{header:a}=u;if(a){const{orient:l}=a,c=MB(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 R6(t,e){return w2(t)?{maxbins:dK(e)}:t==="binned"?{binned:!0}:!t.maxbins&&!t.step?Object.assign(Object.assign({},t),{maxbins:dK(e)}):t}const j1={compatible:!0};function $tt(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 Cl:case bl:case K5:return C6(t)?j1:{compatible:!1,warning:dwe(e)};case En:case gr:case oc:case B2:case us:case la:case ca:case T3:case O3:case X5:case Px:case J5:case Z5:case kx:case nu:case oa:case eC:return j1;case aa:case go:case ua:case ru:return n!==Ld?{compatible:!1,warning:`Channel ${e} should be used with a quantitative field only, not ${t.type} field.`}:j1;case Nl:case uc:case ac:case lc:case Ol:case Rl:case Tl:case tu:case sa:return n==="nominal"&&!t.sort?{compatible:!1,warning:`Channel ${e} should not be used with an unsorted discrete field.`}:j1;case as:case cc:return!C6(t)&&!Ott(t)?{compatible:!1,warning:hwe(e)}:j1;case R3:return t.type==="nominal"&&!("sort"in t)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:j1}}function U1(t){const{formatType:e}=b6(t);return e==="time"||!e&&Btt(t)}function Btt(t){return t&&(t.type==="temporal"||Ie(t)&&!!t.timeUnit)}function O6(t,{timeUnit:e,type:n,wrapTime:r,undefinedIfExprNotRequired:i}){var s;const o=e&&((s=Ri(e))===null||s===void 0?void 0:s.unit);let u=o||n==="temporal",a;return N3(t)?a=t.expr:Ye(t)?a=t.signal:qx(t)?(u=!0,a=D3(t)):(je(t)||nn(t))&&u&&(a=`datetime(${rn(t)})`,e9e(o)&&(nn(t)&&t<1e4||je(t)&&isNaN(Date.parse(t)))&&(a=D3({[o]:t}))),a?r&&u?`time(${a})`:a:i?void 0:rn(t)}function Dae(t,e){const{type:n}=t;return e.map(r=>{const i=O6(r,{timeUnit:Ie(t)?t.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function NE(t,e){return Kt(t.bin)?xc(e)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const Fae={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 DE(t){return t&&t.condition}const wae=["domain","grid","labels","ticks","title"],ktt={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"},Lae={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},Ptt=Object.assign(Object.assign({},Lae),{style:1,labelExpr:1,encoding:1});function Iae(t){return!!Ptt[t]}const $ae=Te({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 s0(t){return"mark"in t}class N6{constructor(e,n){this.name=e,this.run=n}hasMatchingType(e){return s0(e)?ptt(e.mark)===this.name:!1}}var Mtt=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 kd(t,e){const n=t&&t[e];return n?_e(n)?I2(n,r=>!!r.field):Ie(n)||_6(n):!1}function Bae(t,e){const n=t&&t[e];return n?_e(n)?I2(n,r=>!!r.field):Ie(n)||Ba(n)||OE(n):!1}function WB(t,e){if(Ir(e)){const n=t[e];if((Ie(n)||Ba(n))&&Yue(n.type)){const r=sK(e);return Bae(t,r)}}return!1}function VB(t){return I2(x8e,e=>{if(kd(t,e)){const n=t[e];if(_e(n))return I2(n,r=>!!r.aggregate);{const r=Pa(n);return r&&!!r.aggregate}}return!1})}function kae(t,e){const n=[],r=[],i=[],s=[],o={};return YB(t,(u,a)=>{if(Ie(u)){const{field:l,aggregate:c,bin:f,timeUnit:x}=u,h=Mtt(u,["field","aggregate","bin","timeUnit"]);if(c||x||f){const p=zB(u),m=p==null?void 0:p.title;let g=$e(u,{forAs:!0});const y=Object.assign(Object.assign(Object.assign({},m?[]:{title:M1(u,e,{allowDisabling:!0})}),h),{field:g});if(c){let E;if(dc(c)?(E="argmax",g=$e({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):Fl(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),Do(u)&&Kt(f)){if(r.push({bin:f,field:l,as:g}),n.push($e(u,{binSuffix:"end"})),NE(u,a)&&n.push($e(u,{binSuffix:"range"})),Ir(a)){const E={field:`${g}_end`};o[`${a}2`]=E}y.bin="binned",iK(a)||(y.type=Ld)}else if(x){i.push({timeUnit:x,field:l,as:g});const E=Do(u)&&u.type!==$1&&"time";E&&(a===T3||a===Px?y.formatType=E:S8e(a)?y.legend=Object.assign({formatType:E},y.legend):Ir(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 jtt(t,e,n){const r=C8e(e,n);if(r){if(r==="binned"){const i=t[e===tu?En:gr];return!!(Ie(i)&&Ie(t[e])&&Ti(i.bin))}}else return!1;return!0}function Utt(t,e,n,r){const i={};for(const s of Te(t))rK(s)||Re(xwe(s));for(let s of y8e){if(!t[s])continue;const o=t[s];if(P2(s)){const u=oK(s),a=i[u];if(Ie(a)){if(Uet(a.type)&&Ie(o)){Re(iwe(u));continue}}else s=u,Re(swe(u))}if(s==="angle"&&e==="arc"&&!t.theta&&(Re(rwe),s=nu),!jtt(t,s,e)){Re(sC(s,e));continue}if(s===Ol&&e==="line"){const u=Pa(t[s]);if(u!=null&&u.aggregate){Re(cwe);continue}}if(s===us&&(n?"fill"in t:"stroke"in t)){Re(LK("encoding",{fill:"fill"in t,stroke:"stroke"in t}));continue}if(s===O3||s===R3&&!_e(o)&&!yu(o)||s===Px&&_e(o))o&&(i[s]=Pe(o).reduce((u,a)=>(Ie(a)?u.push(GB(a,s)):Re(c8(a,s)),u),[]));else{if(s===Px&&o===null)i[s]=null;else if(!Ie(o)&&!Ba(o)&&!yu(o)&&!S6(o)&&!Ye(o)){Re(c8(o,s));continue}i[s]=Nae(o,s,r)}}return i}function D6(t,e){const n={};for(const r of Te(t)){const i=Nae(t[r],r,e,{compositeMark:!0});n[r]=i}return n}function qtt(t){const e=[];for(const n of Te(t))if(kd(t,n)){const r=t[n],i=Pe(r);for(const s of i)Ie(s)?e.push(s):_6(s)&&e.push(s.condition)}return e}function YB(t,e,n){if(t)for(const r of Te(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 Htt(t,e,n,r){return t?Te(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 Pae(t,e){return Te(e).reduce((n,r)=>{switch(r){case En:case gr:case J5:case eC:case Z5:case tu:case sa:case oc:case B2:case nu:case Rl:case oa:case Tl:case ua:case aa:case ru:case go:case T3:case as:case kx:case Px:return n;case R3:if(t==="line"||t==="trail")return n;case O3:case X5:{const i=e[r];if(_e(i)||Ie(i))for(const s of Pe(i))s.aggregate||n.push($e(s,{}));return n}case Ol:if(t==="trail")return n;case us:case la:case ca:case Nl:case uc:case ac:case cc:case lc:{const i=Pa(e[r]);return i&&!i.aggregate&&n.push($e(i,{})),n}}},[])}var Mae=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 ztt(t){const{tooltip:e}=t,n=Mae(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 KB(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 ${XB(e)}`:"";return{field:o+e.field,type:e.type,title:Ye(u)?{signal:`${u}"${escape(a)}"`}:u+a}}),s=qtt(n).map(Ttt);return{tooltip:[...i,..._l(s,_t)]}}function XB(t){const{title:e,field:n}=t;return er(e,n)}function JB(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=XB(n);return jae(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 jae(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}:{}),Ia(r.mark)?r.mark:{type:r.mark}),{style:`${u}-${e}`}),w2(t[e])?{}:t[e])})]:[]}function Uae(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:F6(s,n),continuousAxisChannelDef2:F6(o,n),continuousAxisChannelDefError:F6(u,n),continuousAxisChannelDefError2:F6(a,n),continuousAxis:i}}function F6(t,e){if(t!=null&&t.aggregate){const{aggregate:n}=t,r=Mae(t,["aggregate"]);return n!==e&&Re(jwe(n,e)),r}else return t}function qae(t,e){const{mark:n,encoding:r}=t,{x:i,y:s}=r;if(Ia(n)&&n.orient)return n.orient;if(ka(i)){if(ka(s)){const o=Ie(i)&&i.aggregate,u=Ie(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 U1(s)&&!U1(i)?"horizontal":"vertical"}return"horizontal"}else{if(ka(s))return"vertical";throw new Error(`Need a valid continuous axis for ${e}s`)}}var w6=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 L6="boxplot",Qtt=["box","median","outliers","rule","ticks"],Gtt=new N6(L6,zae);function Hae(t){return nn(t)?"tukey":t}function zae(t,{config:e}){var n,r;t=Object.assign(Object.assign({},t),{encoding:D6(t.encoding,e)});const{mark:i,encoding:s,params:o,projection:u}=t,a=w6(t,["mark","encoding","params","projection"]),l=Ia(i)?i:{type:i};o&&Re(OK("boxplot"));const c=(n=l.extent)!==null&&n!==void 0?n:e.boxplot.extent,f=It("size",l,e),x=Hae(c),{bins:h,timeUnits:p,transform:m,continuousAxisChannelDef:g,continuousAxis:y,groupby:E,aggregate:A,encodingWithoutContinuousAxis:v,ticksOrient:S,boxOrient:C,customTooltipWithoutAggregatedField:_}=Wtt(t,c,e),{color:b,size:R}=v,O=w6(v,["color","size"]),L=J=>JB(l,y,g,J,e.boxplot),M=L(O),q=L(v),W=L(Object.assign(Object.assign({},O),R?{size:R}:{})),B=KB([{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,v),G={type:"tick",color:"black",opacity:1,orient:S,invalid:null,aria:!1},te=x==="min-max"?B:KB([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,v),X=[...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:te}),...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"lower_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"upper_whisker",extraEncoding:te})],de=[...x!=="tukey"?X:[],...q({partName:"box",mark:Object.assign(Object.assign({type:"bar"},f?{size:f}:{}),{orient:C,invalid:null,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:B}),...W({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},He(e.boxplot.median)&&e.boxplot.median.color?{color:e.boxplot.median.color}:{}),f?{size:f}:{}),{orient:S,aria:!1}),positionPrefix:"mid_box",extraEncoding:B})];if(x==="min-max")return Object.assign(Object.assign({},a),{transform:((r=a.transform)!==null&&r!==void 0?r:[]).concat(m),layer:de});const be=`datum["lower_box_${g.field}"]`,ee=`datum["upper_box_${g.field}"]`,U=`(${ee} - ${be})`,T=`${be} - ${c} * ${U}`,w=`${ee} + ${c} * ${U}`,k=`datum["${g.field}"]`,z={joinaggregate:Qae(g.field),groupby:E},Y={transform:[{filter:`(${T} <= ${k}) && (${k} <= ${w})`},{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:X},V=w6(O,["tooltip"]),{scale:D,axis:$}=g,j=XB(g),Q=po($,["title"]),I=jae(l,"outliers",e.boxplot,{transform:[{filter:`(${k} < ${T}) || (${k} > ${w})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[y]:Object.assign(Object.assign(Object.assign({field:g.field,type:g.type},j!==void 0?{title:j}:{}),D!==void 0?{scale:D}:{}),Wt(Q)?{}:{axis:Q})},V),b?{color:b}:{}),_?{tooltip:_}:{})})[0];let H;const P=[...h,...p,z];return I?H={transform:P,layer:[I,Y]}:(H=Y,H.transform.unshift(...P)),Object.assign(Object.assign({},a),{layer:[H,{transform:m,layer:de}]})}function Qae(t){return[{op:"q1",field:t,as:`lower_box_${t}`},{op:"q3",field:t,as:`upper_box_${t}`}]}function Wtt(t,e,n){const r=qae(t,L6),{continuousAxisChannelDef:i,continuousAxis:s}=Uae(t,r,L6),o=i.field,u=Hae(e),a=[...Qae(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=w6(c,[typeof f=="symbol"?f:f+""]),{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=ztt(x),{bins:m,timeUnits:g,aggregate:y,groupby:E,encoding:A}=kae(p,n),v=r==="vertical"?"horizontal":"vertical",S=r,C=[...m,...g,{aggregate:[...y,...a],groupby:E},...l];return{bins:m,timeUnits:g,transform:C,groupby:E,aggregate:y,continuousAxisChannelDef:i,continuousAxis:s,encodingWithoutContinuousAxis:A,ticksOrient:v,boxOrient:S,customTooltipWithoutAggregatedField:h}}var Gae=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 ZB="errorbar",Vtt=["ticks","rule"],Ytt=new N6(ZB,Wae);function Wae(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:D6(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,ticksOrient:o,markDef:u,outerSpec:a,tooltipEncoding:l}=Vae(t,ZB,e);delete s.size;const c=JB(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 Ktt(t,e){const{encoding:n}=t;if(Xtt(n))return{orient:qae(t,e),inputType:"raw"};const r=Jtt(n),i=Ztt(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(st(u)&&st(a))throw new Error(`${e} cannot have both x2 and y2`);if(st(u)){if(ka(s))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${e}`)}else if(st(a)){if(ka(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(st(a)&&!st(u))throw new Error(`${e} cannot have xError2 without xError`);if(st(c)&&!st(l))throw new Error(`${e} cannot have yError2 without yError`);if(st(u)&&st(l))throw new Error(`${e} cannot have both xError and yError with both are quantiative`);if(st(u)){if(ka(s))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(st(l)){if(ka(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 Xtt(t){return(st(t.x)||st(t.y))&&!st(t.x2)&&!st(t.y2)&&!st(t.xError)&&!st(t.xError2)&&!st(t.yError)&&!st(t.yError2)}function Jtt(t){return st(t.x2)||st(t.y2)}function Ztt(t){return st(t.xError)||st(t.xError2)||st(t.yError)||st(t.yError2)}function Vae(t,e,n){var r;const{mark:i,encoding:s,params:o,projection:u}=t,a=Gae(t,["mark","encoding","params","projection"]),l=Ia(i)?i:{type:i};o&&Re(OK(e));const{orient:c,inputType:f}=Ktt(t,e),{continuousAxisChannelDef:x,continuousAxisChannelDef2:h,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:m,continuousAxis:g}=Uae(t,c,e),{errorBarSpecificAggregate:y,postAggregateCalculates:E,tooltipSummary:A,tooltipTitleWithFieldName:v}=ent(l,x,h,p,m,f,e,n),S=s,C=g;S[C];const _=g==="x"?"x2":"y2";S[_];const b=g==="x"?"xError":"yError";S[b];const R=g==="x"?"xError2":"yError2";S[R];const O=Gae(S,[typeof C=="symbol"?C:C+"",typeof _=="symbol"?_:_+"",typeof b=="symbol"?b:b+"",typeof R=="symbol"?R:R+""]),{bins:L,timeUnits:M,aggregate:q,groupby:W,encoding:B}=kae(O,n),G=[...q,...y],te=f!=="raw"?[]:W,X=KB(A,x,B,v);return{transform:[...(r=a.transform)!==null&&r!==void 0?r:[],...L,...M,...G.length===0?[]:[{aggregate:G,groupby:te}],...E],groupby:te,continuousAxisChannelDef:x,continuousAxis:g,encodingWithoutContinuousAxis:B,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:l,outerSpec:a,tooltipEncoding:X}}function ent(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")&&Re(Mwe(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:V5(h)},{fieldPrefix:"upper_",titlePrefix:Yae(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:Yae(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:M1({field:c,aggregate:y,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:M1({field:c,aggregate:g,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:M1({field:c,aggregate:m,type:"quantitative"},u,{allowDisabling:!1})}]}}else{(t.center||t.extent)&&Re(Pwe(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:$2($2(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:a,tooltipSummary:f,tooltipTitleWithFieldName:x}}function Yae(t,e,n){return`${V5(t)} ${n} ${e}`}const ek="errorband",tnt=["band","borders"],nnt=new N6(ek,Kae);function Kae(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:D6(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,markDef:o,outerSpec:u,tooltipEncoding:a}=Vae(t,ek,e),l=o,c=JB(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?Re(kK("interpolate")):l.tension&&Re(kK("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 Xae={};function tk(t,e,n){const r=new N6(t,e);Xae[t]={normalizer:r,parts:n}}function rnt(){return Te(Xae)}tk(L6,zae,Qtt),tk(ZB,Wae,Vtt),tk(ek,Kae,tnt);const int=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Jae={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"},Zae={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"},snt=Te(Jae),ont=Te(Zae),ele=Te({header:1,headerRow:1,headerColumn:1,headerFacet:1}),tle=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],unt={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},ant={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},FE="_vgsid_",lnt={point:{on:"click",fields:[FE],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 nk(t){return!!t&&(t==="legend"||!!t.legend)}function rk(t){return nk(t)&&He(t)}function ik(t){return!!t.select}var cnt=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 nle(t){const e=[];for(const n of t||[]){if(ik(n))continue;const{expr:r,bind:i}=n,s=cnt(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 fnt(t){return I6(t)||ok(t)||sk(t)}function sk(t){return"concat"in t}function I6(t){return"vconcat"in t}function ok(t){return"hconcat"in t}function rle({step:t,offsetIsDiscrete:e}){var n;return e?(n=t.for)!==null&&n!==void 0?n:"offset":"position"}function Ma(t){return He(t)&&t.step!==void 0}function ile(t){return t.view||t.width||t.height}const sle=20,xnt=Te({align:1,bounds:1,center:1,columns:1,spacing:1});function dnt(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&&(v6(t)&&!RE(t.facet)||sk(t))&&(o.columns=a),I6(t)&&(o.columns=1);for(const l of xnt)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 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};function uk(t,e){var n;return(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"continuousWidth":"continuousHeight"]}function $6(t,e){const n=B6(t,e);return Ma(n)?n.step:ole}function B6(t,e){var n;const r=(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"discreteWidth":"discreteHeight"];return er(r,{step:t.step})}const ole=20,pnt={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:ole},mark:ctt,arc:{},area:{},bar:xtt,circle:{},geoshape:{},image:{},line:{},point:{},rect:dtt,rule:{color:"black"},square:{},text:{color:"black"},tick:htt,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:Vet,projection:{},legend:unt,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:lnt,style:{},title:{},facet:{spacing:sle},concat:{spacing:sle}},o0=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],ule={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},ale={blue:o0[0],orange:o0[1],red:o0[2],teal:o0[3],green:o0[4],yellow:o0[5],purple:o0[6],pink:o0[7],brown:o0[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 gnt(t={}){return{signals:[{name:"color",value:He(t)?Object.assign(Object.assign({},ale),t):ale}],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 mnt(t){return{signals:[{name:"fontSize",value:He(t)?Object.assign(Object.assign({},ule),t):ule}],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 ynt(t){return{text:{font:t},style:{"guide-label":{font:t},"guide-title":{font:t},"group-title":{font:t},"group-subtitle":{font:t}}}}function lle(t){const e=Te(t||{}),n={};for(const r of e){const i=t[r];n[r]=DE(i)?pK(i):Ps(i)}return n}function Ent(t){const e=Te(t),n={};for(const r of e)n[r]=lle(t[r]);return n}const Ant=[...aae,...$ae,...ele,"background","padding","legend","lineBreak","scale","style","title","view"];function cle(t={}){const{color:e,font:n,fontSize:r,selection:i}=t,s=hnt(t,["color","font","fontSize","selection"]),o=HF({},ut(pnt),n?ynt(n):{},e?gnt(e):{},r?mnt(r):{},s||{});i&&P5(o,"selection",i,!0);const u=po(o,Ant);for(const a of["background","lineBreak","padding"])o[a]&&(u[a]=Ps(o[a]));for(const a of aae)o[a]&&(u[a]=cs(o[a]));for(const a of $ae)o[a]&&(u[a]=lle(o[a]));for(const a of ele)o[a]&&(u[a]=cs(o[a]));return o.legend&&(u.legend=cs(o.legend)),o.scale&&(u.scale=cs(o.scale)),o.style&&(u.style=Ent(o.style)),o.title&&(u.title=cs(o.title)),o.view&&(u.view=cs(o.view)),u}const vnt=new Set(["view",...stt]),Snt=["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"],_nt=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},ltt);function Cnt(t){t=ut(t);for(const e of Snt)delete t[e];if(t.axis)for(const e in t.axis)DE(t.axis[e])&&delete t.axis[e];if(t.legend)for(const e of int)delete t.legend[e];if(t.mark){for(const e of uae)delete t.mark[e];t.mark.tooltip&&He(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(nle(t.params)),delete t.params);for(const e of vnt){for(const r of uae)delete t[e][r];const n=_nt[e];if(n)for(const r of n)delete t[e][r];Tnt(t,e)}for(const e of rnt())delete t[e];bnt(t);for(const e in t)He(t[e])&&Wt(t[e])&&delete t[e];return Wt(t)?void 0:t}function bnt(t){const{titleMarkConfig:e,subtitleMarkConfig:n,subtitle:r}=hK(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 Tnt(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 k6(t){return"layer"in t}function Rnt(t){return"repeat"in t}function Ont(t){return!_e(t.repeat)&&t.repeat.layer}var Nnt=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 ak{map(e,n){return v6(e)?this.mapFacet(e,n):Rnt(e)?this.mapRepeat(e,n):ok(e)?this.mapHConcat(e,n):I6(e)?this.mapVConcat(e,n):sk(e)?this.mapConcat(e,n):this.mapLayerOrUnit(e,n)}mapLayerOrUnit(e,n){if(k6(e))return this.mapLayer(e,n);if(s0(e))return this.mapUnit(e,n);throw new Error(a8(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=Nnt(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 Dnt={zero:1,center:1,normalize:1};function Fnt(t){return t in Dnt}const wnt=new Set([rae,h6,d6,m6,g6,FB,wB,p6,iae,DB]),Lnt=new Set([h6,d6,rae]);function q1(t){return Ie(t)&&UB(t)==="quantitative"&&!t.bin}function fle(t,e){var n,r;const i=e==="x"?"y":"radius",s=t[e],o=t[i];if(Ie(s)&&Ie(o))if(q1(s)&&q1(o)){if(s.stack)return e;if(o.stack)return i;const u=Ie(s)&&!!s.aggregate,a=Ie(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(q1(s))return e;if(q1(o))return i}else{if(q1(s))return e;if(q1(o))return i}}function Int(t){switch(t){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function xle(t,e,n={}){var r,i;const s=Ia(t)?t.type:t;if(!wnt.has(s))return null;const o=fle(e,"x")||fle(e,"theta");if(!o)return null;const u=e[o],a=Ie(u)?$e(u,{}):void 0,l=Int(o),c=[],f=new Set;if(e[l]){const p=e[l],m=Ie(p)?$e(p,{}):void 0;m&&m!==a&&(c.push(l),f.add(m));const g=l==="x"?"xOffset":"yOffset",y=e[g],E=Ie(y)?$e(y,{}):void 0;E&&E!==a&&(c.push(g),f.add(E))}const x=E8e.reduce((p,m)=>{if(m!=="tooltip"&&kd(e,m)){const g=e[m];for(const y of Pe(g)){const E=Pa(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?w2(u.stack)?h=u.stack?"zero":null:h=u.stack:Lnt.has(s)&&(h="zero"),!h||!Fnt(h)||VB(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)!==Es.LINEAR){if(n.disallowNonLinearStack)return null;Re($we(u.scale.type))}return st(e[Dl(o)])?(u.stack!==void 0&&Re(Iwe(o)),null):(Ie(u)&&u.aggregate&&!F8e.has(u.aggregate)&&Re(Bwe(u.aggregate)),{groupbyChannels:c,groupbyFields:f,fieldChannel:o,impute:u.impute===null?!1:Qc(s),stackBy:x,offset:h})}var dle=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 $nt(t){const e=dle(t,["point","line"]);return Te(e).length>1?e:e.type}function Bnt(t){for(const e of["line","area","rule","trail"])t[e]&&(t=Object.assign(Object.assign({},t),{[e]:po(t[e],["point","line"])}));return t}function lk(t,e={},n){return t.point==="transparent"?{opacity:0}:t.point?He(t.point)?t.point:{}:t.point!==void 0?null:e.point||n.shape?He(e.point)?e.point:{}:void 0}function hle(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 knt{constructor(){this.name="path-overlay"}hasMatchingType(e,n){if(s0(e)){const{mark:r,encoding:i}=e,s=Ia(r)?r:{type:r};switch(s.type){case"line":case"rule":case"trail":return!!lk(s,n[s.type],i);case"area":return!!lk(s,n[s.type],i)||!!hle(s,n[s.type])}}return!1}run(e,n,r){const{config:i}=n,{params:s,projection:o,mark:u,encoding:a}=e,l=dle(e,["params","projection","mark","encoding"]),c=D6(a,i),f=Ia(u)?u:{type:u},x=lk(f,i[f.type],c),h=f.type==="area"&&hle(f,i[f.type]),p=[Object.assign(Object.assign({},s?{params:s}:{}),{mark:$nt(Object.assign(Object.assign({},f.type==="area"&&f.opacity===void 0&&f.fillOpacity===void 0?{opacity:.7}:{}),f)),encoding:po(c,["shape"])})],m=xle(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"},_3(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},_3(f,["clip","tooltip"])),x),encoding:g})),r(Object.assign(Object.assign({},l),{layer:p}),Object.assign(Object.assign({},n),{config:Bnt(i)}))}}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 Mnt(t,e){return e?RE(t)?yle(t,e):ple(t,e):t}function ck(t,e){return e?yle(t,e):t}function fk(t,e,n){const r=e[t];if(Ctt(r)){if(r.repeat in n)return Object.assign(Object.assign({},e),{[t]:n[r.repeat]});Re(K8e(r.repeat));return}return e}function ple(t,e){if(t=fk("field",t,e),t!==void 0){if(t===null)return null;if(jB(t)&&$a(t.sort)){const n=fk("field",t.sort,e);t=Object.assign(Object.assign({},t),n?{sort:n}:{})}return t}}function gle(t,e){if(Ie(t))return ple(t,e);{const n=fk("datum",t,e);return n!==t&&!n.type&&(n.type="nominal"),n}}function mle(t,e){if(st(t)){const n=gle(t,e);if(n)return n;if(S6(t))return{condition:t.condition}}else{if(OE(t)){const n=gle(t.condition,e);return n?Object.assign(Object.assign({},t),{condition:n}):Pnt(t,["condition"])}return t}}function yle(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=>mle(s,e)).filter(s=>s);else{const s=mle(i,e);s!==void 0&&(n[r]=s)}}return n}class jnt{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(s0(e)){const{encoding:n,mark:r}=e;if(r==="line"||Ia(r)&&r.type==="line")for(const i of g8e){const s=Mx(i),o=n[s];if(n[i]&&(Ie(o)&&!Ti(o.bin)||Ba(o)))return!0}}return!1}run(e,n,r){const{encoding:i,mark:s}=e;return Re(mwe(!!i.x2,!!i.y2)),r(Object.assign(Object.assign({},e),{mark:He(s)?Object.assign(Object.assign({},s),{type:"rule"}):"rule"}),n)}}var Gc=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 Unt extends ak{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[Gtt,Ytt,nnt,new knt,new jnt]}map(e,n){if(s0(e)){const r=kd(e.encoding,Cl),i=kd(e.encoding,bl),s=kd(e.encoding,K5);if(r||i||s)return this.mapFacetedUnit(e,n)}return super.map(e,n)}mapUnit(e,n){const{parentEncoding:r,parentProjection:i}=n,s=ck(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 Ont(e)?this.mapLayerRepeat(e,n):this.mapNonLayerRepeat(e,n)}mapLayerRepeat(e,n){const{repeat:r,spec:i}=e,s=Gc(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_${yn(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=Gc(e,["repeat","spec","data"]);!_e(i)&&e.columns&&(e=po(e,["columns"]),Re(NK("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)?`${yn(m)}`:(i.row?`row_${yn(g)}`:"")+(i.column?`column_${yn(y)}`:"")),v=this.map(s,Object.assign(Object.assign({},n),{repeater:E,repeaterPrefix:A}));v.name=A,a.push(po(v,["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 RE(r)&&e.columns&&(e=po(e,["columns"]),Re(NK("facet"))),super.mapFacet(e,n)}mapUnitWithParentEncodingOrProjection(e,n){const{encoding:r,projection:i}=e,{parentEncoding:s,parentProjection:o,config:u}=n,a=Ale({parentProjection:o,projection:i}),l=Ele({parentEncoding:s,encoding:ck(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=Gc(r,["row","column","facet"]),{mark:a,width:l,projection:c,height:f,view:x,params:h,encoding:p}=e,m=Gc(e,["mark","width","projection","height","view","params","encoding"]),{facetMapping:g,layout:y}=this.getFacetMappingAndLayout({row:i,column:s,facet:o},n),E=ck(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&&Re(pwe([...i?[Cl]:[],...s?[bl]:[]]));const u={},a={};for(const l of[Cl,bl]){const c=e[l];if(c){const f=Gc(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=Gc(o,["align","center","spacing","columns"]);return{facetMapping:Mnt(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=Gc(n,["parentEncoding","parentProjection"]);const{encoding:o,projection:u}=e,a=Gc(e,["encoding","projection"]),l=Object.assign(Object.assign({},s),{parentEncoding:Ele({parentEncoding:r,encoding:o,layer:!0}),parentProjection:Ale({parentProjection:i,projection:u})});return super.mapLayer(a,l)}}function Ele({parentEncoding:t,encoding:e={},layer:n}){let r={};if(t){const i=new Set([...Te(t),...Te(e)]);for(const s of i){const o=e[s],u=t[s];if(st(o)){const a=Object.assign(Object.assign({},u),o);r[s]=a}else OE(o)?r[s]=Object.assign(Object.assign({},o),{condition:Object.assign(Object.assign({},u),o.condition)}):o||o===null?r[s]=o:(n||yu(u)||Ye(u)||st(u)||_e(u))&&(r[s]=u)}}else r=e;return!r||Wt(r)?void 0:r}function Ale(t){const{parentProjection:e,projection:n}=t;return e&&n&&Re(nwe({parentProjection:e,projection:n})),n??e}function xk(t){return"filter"in t}function qnt(t){return(t==null?void 0:t.stop)!==void 0}function vle(t){return"lookup"in t}function Hnt(t){return"data"in t}function znt(t){return"param"in t}function Qnt(t){return"pivot"in t}function Gnt(t){return"density"in t}function Wnt(t){return"quantile"in t}function Vnt(t){return"regression"in t}function Ynt(t){return"loess"in t}function Knt(t){return"sample"in t}function Xnt(t){return"window"in t}function Jnt(t){return"joinaggregate"in t}function Znt(t){return"flatten"in t}function ert(t){return"calculate"in t}function Sle(t){return"bin"in t}function trt(t){return"impute"in t}function nrt(t){return"timeUnit"in t}function rrt(t){return"aggregate"in t}function irt(t){return"stack"in t}function srt(t){return"fold"in t}function ort(t){return t.map(e=>xk(e)?{filter:L2(e.filter,l9e)}:e)}var Wc=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 urt extends ak{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=_le(e,n),super.map(e,n)}mapLayerOrUnit(e,n){if(e=_le(e,n),e.encoding){const r={};for(const[i,s]of Bx(e.encoding))r[i]=Cle(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=Wc(r,["selection"]);return i?Object.assign(Object.assign({},s),{params:Bx(i).map(([o,u])=>{var a;const l=u,{init:c,bind:f,empty:x}=l,h=Wc(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 bi((a=n.selectionPredicates[o])!==null&&a!==void 0?a:{}))p.empty=x!=="none";return{name:o,value:c,select:h,bind:f}})}):e}}function _le(t,e){const{transform:n}=t,r=Wc(t,["transform"]);if(n){const i=n.map(s=>{if(xk(s))return{filter:dk(s,e)};if(Sle(s)&&jx(s.bin))return Object.assign(Object.assign({},s),{bin:ble(s.bin)});if(vle(s)){const o=s.from,{selection:u}=o,a=Wc(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 Cle(t,e){var n,r;const i=ut(t);if(Ie(i)&&jx(i.bin)&&(i.bin=ble(i.bin)),Bd(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=Wc(s,["selection"]);i.scale.domain=Object.assign(Object.assign({},u),o?{param:o}:{})}if(S6(i))if(_e(i.condition))i.condition=i.condition.map(s=>{const{selection:o,param:u,test:a}=s,l=Wc(s,["selection","param","test"]);return u?s:Object.assign(Object.assign({},l),{test:dk(s,e)})});else{const s=Cle(i.condition,e),{selection:o,param:u,test:a}=s,l=Wc(s,["selection","param","test"]);i.condition=u?i.condition:Object.assign(Object.assign({},l),{test:dk(i.condition,e)})}return i}function ble(t){const e=t.extent;if(e!=null&&e.selection){const{selection:n}=e,r=Wc(e,["selection"]);return Object.assign(Object.assign({},t),{extent:Object.assign(Object.assign({},r),{param:n})})}return t}function dk(t,e){const n=r=>L2(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):L2(t.test||t.filter,r=>r.selection?n(r.selection):r)}class hk extends ak{map(e,n){var r;const i=(r=n.selections)!==null&&r!==void 0?r:[];if(e.params&&!s0(e)){const s=[];for(const o of e.params)ik(o)?i.push(o):s.push(o);e.params=s}return n.selections=i,super.map(e,Tle(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=hk.prototype[t];hk.prototype[t]=function(n,r){return e.call(this,n,Tle(n,r))}}function Tle(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 art(t,e){e===void 0&&(e=cle(t.config));const n=xrt(t,e),{width:r,height:i}=t,s=drt(n,{width:r,height:i,autosize:t.autosize},e);return Object.assign(Object.assign({},n),s?{autosize:s}:{})}const lrt=new Unt,crt=new urt,frt=new hk;function xrt(t,e={}){const n={config:e};return frt.map(lrt.map(crt.map(t,n),n),n)}function Rle(t){return je(t)?{type:t}:t??{}}function drt(t,e,n){let{width:r,height:i}=e;const s=s0(t)||k6(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"&&(Re(CK("width")),r=void 0),i=="container"&&(Re(CK("height")),i=void 0));const u=Object.assign(Object.assign(Object.assign({type:"pad"},o),n?Rle(n.autosize):{}),Rle(t.autosize));if(u.type==="fit"&&!s&&(Re(j8e),u.type="pad"),r=="container"&&!(u.type=="fit"||u.type=="fit-x")&&Re(bK("width")),i=="container"&&!(u.type=="fit"||u.type=="fit-y")&&Re(bK("height")),!Sl(u,{type:"pad"}))return u}function hrt(t){return t==="fit"||t==="fit-x"||t==="fit-y"}function prt(t){return t?`fit-${tC(t)}`:"fit"}const grt=["background","padding"];function Ole(t,e){const n={};for(const r of grt)t&&t[r]!==void 0&&(n[r]=Ps(t[r]));return e&&(n.params=t.params),n}class u0{constructor(e={},n={}){this.explicit=e,this.implicit=n}clone(){return new u0(ut(this.explicit),ut(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return er(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 Te(e.combine())){const r=e.getWithExplicit(n);this.setWithExplicit(n,r)}}}function ja(t){return{explicit:!0,value:t}}function Vs(t){return{explicit:!1,value:t}}function Nle(t){return(e,n,r,i)=>{const s=t(e.value,n.value);return s>0?e:s<0?n:P6(e,n,r,i)}}function P6(t,e,n,r){return t.explicit&&e.explicit&&Re(Rwe(n,r,t.value,e.value)),t}function Vc(t,e,n,r,i=P6){return t===void 0||t.value===void 0?e:t.explicit&&!e.explicit?t:e.explicit&&!t.explicit?e:Sl(t.value,e.value)?t:i(t,e,n,r)}class mrt extends u0{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 H1(t){return"url"in t}function wE(t){return"values"in t}function Dle(t){return"name"in t&&!H1(t)&&!wE(t)&&!Yc(t)}function Yc(t){return t&&(Fle(t)||wle(t)||pk(t))}function Fle(t){return"sequence"in t}function wle(t){return"sphere"in t}function pk(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 yrt=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 z1(t,e=!0,n=Si){if(_e(t)){const r=t.map(i=>z1(i,e,n));return e?`[${r.join(", ")}]`:r}else if(qx(t))return n(e?D3(t):Jwe(t));return e?n(rn(t)):t}function Ert(t,e){var n;for(const r of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const i=r.name;let s=`${i}${Jc}, ${r.resolve==="global"?"true":`{unit: ${W1(t)}}`}`;for(const o of H6)o.defined(r)&&(o.signals&&(e=o.signals(t,r,e)),o.modifyExpr&&(s=o.modifyExpr(t,r,s)));e.push({name:i+Jrt,on:[{events:{signal:r.name+Jc},update:`modify(${we(r.name+Pd)}, ${s})`}]})}return gk(e)}function Art(t,e){if(t.component.selection&&Te(t.component.selection).length){const n=we(t.getName("cell"));e.unshift({name:"facet",value:{},on:[{events:Rd("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return gk(e)}function vrt(t,e){var n;let r=!1;for(const i of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=i.name,o=we(s+Pd);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:`${t0e}(${o}, ${we(a)}${l}`})}r=!0;for(const a of H6)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"}]}),gk(e)}function Srt(t,e){var n;const r=[...e];for(const i of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s={name:i.name+Pd};if(i.init){const u=i.project.items.map(a=>yrt(a,["signals"]));s.values=i.init.map(a=>({unit:W1(t,{escape:!1}),fields:u,values:z1(a,!1)}))}r.filter(u=>u.name===i.name+Pd).length||r.push(s)}return r}function Lle(t,e){var n;for(const r of bi((n=t.component.selection)!==null&&n!==void 0?n:{}))for(const i of H6)i.defined(r)&&i.marks&&(e=i.marks(t,r,e));return e}function _rt(t,e){for(const n of t.children)Gn(n)&&(e=Lle(n,e));return e}function Crt(t,e,n,r){const i=o0e(t,e.param,e);return{signal:Ws(n.get("type"))&&_e(r)&&r[0]>r[1]?`isValid(${i}) && reverse(${i})`:i}}function gk(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)){Re(Z8e);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 zi 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 ${s8e()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var Ile=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 Ua extends Ut{constructor(e,n){super(e),this.formula=n}clone(){return new Ua(null,ut(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[_t({as:a,field:o,timeUnit:u})]={as:a,field:o,timeUnit:u}}return i},{});return Wt(r)?null:new Ua(e,r)}static makeFromTransform(e,n){const r=Object.assign({},n),{timeUnit:i}=r,s=Ile(r,["timeUnit"]),o=Ri(i),u=Object.assign(Object.assign({},s),{timeUnit:o});return new Ua(e,{[_t(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 Bx(this.formula))e.has(i.as)||(n[r]=i);this.formula=n}producedFields(){return new Set(bi(this.formula).map(e=>e.as))}dependentFields(){return new Set(bi(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${_t(this.formula)}`}assemble(){const e=[];for(const n of bi(this.formula)){const{field:r,as:i,timeUnit:s}=n,o=Ri(s),{unit:u,utc:a}=o,l=Ile(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:eu(r),type:"timeunit"},u?{units:p8(u)}:{}),a?{timezone:"utc"}:{}),l),{as:[i,`${i}_end`]}))}return e}}var brt=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 LE="_tuple_fields";class Trt{constructor(...e){this.items=e,this.hasChannel={},this.hasField={}}}const Rrt={defined:()=>!0,parse:(t,e,n)=>{var r;const i=e.name,s=(r=e.project)!==null&&r!==void 0?r:e.project=new Trt,o={},u={},a=new Set,l=(m,g)=>{const y=g==="visual"?m.channel:m.field;let E=yn(`${i}_${y}`);for(let A=1;a.has(E);A++)E=yn(`${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}=He(n.select)?n.select:{};if(!h&&!p&&x){for(const m of x)if(He(m))for(const g of Te(m))p8e(g)?(p||(p=[])).push(g):c==="interval"?(Re(Y8e),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){Re(U8e(m,g.aggregate));continue}else if(!y){Re(RK(m));continue}if(g.timeUnit){y=t.vgField(m);const E={timeUnit:g.timeUnit,as:y,field:g.field};u[_t(E)]=E}if(!o[y]){let E="E";if(c==="interval"){const v=t.getScaleComponent(m).get("type");Ws(v)&&(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 Re(RK(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=>He(m)?m[g.channel]!==void 0?m[g.channel]:m[g.field]:m))),Wt(u)||(s.timeUnit=new Ua(null,u))},signals:(t,e,n)=>{const r=e.name+LE;return n.filter(s=>s.name===r).length>0?n:n.concat({name:r,value:e.project.items.map(s=>{const o=brt(s,["signals","hasLegend"]);return o.field=eu(o.field),o})})}},Kc={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(!xc(i))continue;const s=t.getScaleComponent(i),o=s?s.get("type"):void 0;if(!s||!Ws(o)){Re(z8e);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||yk(t)||r.length===0)return n;const i=n.filter(o=>o.name===e.name)[0];let s=i.update;if(s.indexOf(t0e)>=0)i.update=`{${r.map(o=>`${we(eu(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const u=`${we(eu(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&&!yk(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 mk(t,e){return`domain(${we(t.scaleName(e))})`}function yk(t){var e;return t.parent&&ep(t.parent)&&((e=!t.parent.parent)!==null&&e!==void 0?e:yk(t.parent.parent))}var Ort=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 Q1="_brush",Ek="_scale_trigger",Nrt={defined:t=>t.type==="interval",signals:(t,e,n)=>{const r=e.name,i=r+LE,s=Kc.defined(e),o=e.init?e.init[0]:null,u=[],a=[];if(e.translate&&!s){const c=`!event.item || event.item.mark.name !== ${we(r+Q1)}`;$le(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!==En&&x!==gr){Re("Interval selections only support x and y encoding channels.");return}const h=o?o[f]:null,p=Drt(t,e,c,h),m=c.signals.data,g=c.signals.visual,y=we(t.scaleName(x)),E=t.getScaleComponent(x).get("type"),A=Ws(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+Ek,value:{},on:[{events:a.map(c=>({scale:c.scaleName})),update:`${a.map(c=>c.expr).join(" && ")} ? ${r+Ek} : {}`}]});const l=`unit: ${W1(t)}, fields: ${i}, values`;return n.concat(Object.assign(Object.assign({name:r+Jc},o?{init:`{${l}: ${z1(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(${we(e.name+Pd)})`;if(Kc.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 Te(l))l[g]=[Object.assign({test:`${a}.length && ${a}[0].unit === ${W1(t)}`},l[g]),{value:0}];const c=e.mark,{fill:f,fillOpacity:x,cursor:h}=c,p=Ort(c,["fill","fillOpacity","cursor"]),m=Te(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+Q1}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:x}},update:l}},...n,{name:r+Q1,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 Drt(t,e,n,r){const i=n.channel,s=n.signals.visual,o=n.signals.data,u=Kc.defined(e),a=we(t.scaleName(i)),l=t.getScaleComponent(i),c=l?l.get("type"):void 0,f=m=>`scale(${a}, ${m})`,x=t.getSizeSignalRef(i===En?"width":"height").signal,h=`${i}(unit)`,p=$le(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+Ek},update:Ws(c)?`[${f(`${o}[0]`)}, ${f(`${o}[1]`)}]`:"[0, 0]"}),u?[{name:o,on:[]}]:[Object.assign(Object.assign({name:s},r?{init:z1(r,!0,f)}:{value:[]}),{on:p}),Object.assign(Object.assign({name:o},r?{init:z1(r)}:{}),{on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]})]}function $le(t,e){return t.events.reduce((n,r)=>r.between?e(n,r):(Re(`${r} is not an ordered event stream for interval selections.`),n),[])}const Frt={defined:t=>t.type==="point",signals:(t,e,n)=>{var r;const i=e.name,s=i+LE,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}[${we(t.vgField(h.channel,{}))}], ${u}[${we(t.vgField(h.channel,{binSuffix:"end"}))}]]`:`${u}[${we(h.field)}]`}).join(", "),l=`unit: ${W1(t)}, fields: ${s}, values`,c=e.events,f=bi((r=t.component.selection)!==null&&r!==void 0?r:{}).reduce((h,p)=>p.type==="interval"?h.concat(p.name+Q1):h,[]).map(h=>`indexof(item().mark.name, '${h}') < 0`).join(" && "),x=`datum && item().mark.marktype !== 'group'${f?` && ${f}`:""}`;return n.concat([{name:i+Jc,on:c?[{events:c,update:`${x} ? {${l}: [${a}]} : null`,force:!0}]:[]}])}};function G1(t,e,n,r){const i=S6(e)&&e.condition,s=r(e);if(i){const u=Pe(i).map(a=>{const l=r(a);if(_tt(a)){const{param:c,empty:f}=a,x=s0e(t,{param:c,empty:f});return Object.assign({test:x},l)}else{const c=z6(t,a.test);return Object.assign({test:c},l)}});return{[n]:[...u,...s!==void 0?[s]:[]]}}else return s!==void 0?{[n]:s}:{}}function Ak(t,e="text"){const n=t.encoding[e];return G1(t,n,e,r=>M6(r,t.config))}function M6(t,e,n="datum"){if(t){if(yu(t))return sn(t.value);if(st(t)){const{format:r,formatType:i}=b6(t);return BB({fieldOrDatumDef:t,format:r,formatType:i,expr:n,config:e})}}}function Ble(t,e={}){const{encoding:n,markDef:r,config:i,stack:s}=t,o=n.tooltip;if(_e(o))return{tooltip:Ple({tooltip:o},s,i,e)};{const u=e.reactiveGeom?"datum.datum":"datum";return G1(t,o,"tooltip",a=>{const l=M6(a,i,u);if(l)return l;if(a===null)return;let c=It("tooltip",r,i);if(c===!0&&(c={content:"encoding"}),je(c))return{value:c};if(He(c))return Ye(c)?c:c.content==="encoding"?Ple(n,s,i,e):{signal:u}})}}function kle(t,e,n,{reactiveGeom:r}={}){const i={},s=r?"datum.datum":"datum",o=[];function u(l,c){const f=Mx(c),x=Do(l)?l:Object.assign(Object.assign({},l),{type:t[f].type}),h=x.title||QB(x,n),p=Pe(h).join(", ");let m;if(Ir(c)){const g=c==="x"?"x2":"y2",y=Pa(t[g]);if(Ti(x.bin)&&y){const E=$e(x,{expr:s}),A=$e(y,{expr:s}),{format:v,formatType:S}=b6(x);m=E6(E,A,v,S,n),i[g]=!0}else if(e&&e.fieldChannel===c&&e.offset==="normalize"){const{format:E,formatType:A}=b6(x);m=BB({fieldOrDatumDef:x,format:E,formatType:A,expr:s,config:n,normalizeStack:!0}).signal}}m??(m=M6(x,n,s).signal),o.push({channel:c,key:p,value:m})}YB(t,(l,c)=>{Ie(l)?u(l,c):_6(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 Ple(t,e,n,{reactiveGeom:r}={}){const i=kle(t,e,n,{reactiveGeom:r}),s=Bx(i).map(([o,u])=>`"${o}": ${u}`);return s.length>0?{signal:`{${s.join(", ")}}`}:void 0}function wrt(t){const{markDef:e,config:n}=t,r=It("aria",e,n);return r===!1?{}:Object.assign(Object.assign(Object.assign({},r?{aria:r}:{}),Lrt(t)),Irt(t))}function Lrt(t){const{mark:e,markDef:n,config:r}=t;if(r.aria===!1)return{};const i=It("ariaRoleDescription",n,r);return i!=null?{ariaRoleDescription:{value:i}}:e in k8e?{}:{ariaRoleDescription:{value:e}}}function Irt(t){const{encoding:e,markDef:n,config:r,stack:i}=t,s=e.description;if(s)return G1(t,s,"description",a=>M6(a,t.config));const o=It("description",n,r);if(o!=null)return{description:sn(o)};if(r.aria===!1)return{};const u=kle(e,i,r);if(!Wt(u))return{description:{signal:Bx(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=It(t,r,s,{vgChannel:o,ignoreVgConfig:!0})),a!==void 0&&(u=sn(a)));const l=i[t];return G1(e,l,o??t,c=>$B({channel:t,channelDef:c,markDef:r,config:s,scaleName:e.scaleName(t),scale:e.getScaleComponent(t),stack:null,defaultRef:u}))}function Mle(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:It("filled",o,a),f=Ct(["bar","point","circle","square","geoshape"],l)?"transparent":void 0,x=(i=(r=It(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=It(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:sn(x)}:{}),h?{stroke:sn(h)}:{});return o.color&&(c?o.fill:o.stroke)&&Re(LK("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 $rt(t){const{encoding:e,mark:n}=t,r=e.order;return!Qc(n)&&yu(r)?G1(t,r,"zindex",i=>sn(i.value)):{}}function IE({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:$B({channel:s,channelDef:u,markDef:e,config:r==null?void 0:r.config,scaleName:r.scaleName(s),scale:r.getScaleComponent(s),stack:null,defaultRef:sn(o),bandPosition:i})};const a=e[s];return a?{offsetType:"visual",offset:a}:{}}function ui(t,e,{defaultPos:n,vgChannel:r}){const{encoding:i,markDef:s,config:o,stack:u}=e,a=i[t],l=i[Dl(t)],c=e.scaleName(t),f=e.getScaleComponent(t),{offset:x,offsetType:h}=IE({channel:t,markDef:s,encoding:i,model:e,bandPosition:.5}),p=vk({model:e,defaultPos:n,channel:t,scaleName:c,scale:f}),m=!a&&Ir(t)&&(i.latitude||i.longitude)?{field:e.getName(t)}:Brt({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 Brt(t){const{channel:e,channelDef:n,scaleName:r,stack:i,offset:s,markDef:o}=t;if(st(n)&&i&&e===i.fieldChannel){if(Ie(n)){let u=n.bandPosition;if(u===void 0&&o.type==="text"&&(e==="radius"||e==="theta")&&(u=.5),u!==void 0)return y6({scaleName:r,fieldOrDatumDef:n,startSuffix:"start",bandPosition:u,offset:s})}return Id(n,r,{suffix:"end"},{offset:s})}return LB(t)}function vk({model:t,defaultPos:e,channel:n,scaleName:r,scale:i}){const{markDef:s,config:o}=t;return()=>{const u=Mx(n),a=fc(n),l=It(n,s,o,{vgChannel:a});if(l!==void 0)return TE(n,l);switch(e){case"zeroOrMin":case"zeroOrMax":if(r){const c=i.get("type");if(!Ct([Es.LOG,Es.TIME,Es.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[ls(n)];return Object.assign(Object.assign({},c),{mult:.5})}}}}const krt={left:"x",center:"xc",right:"x2"},Prt={top:"y",middle:"yc",bottom:"y2"};function jle(t,e,n,r="middle"){if(t==="radius"||t==="theta")return fc(t);const i=t==="x"?"align":"baseline",s=It(i,e,n);let o;return Ye(s)?(Re(gwe(i)),o=void 0):o=s,t==="x"?krt[o||(r==="top"?"left":"center")]:Prt[o||r]}function j6(t,e,{defaultPos:n,defaultPos2:r,range:i}){return i?Ule(t,e,{defaultPos:n,defaultPos2:r}):ui(t,e,{defaultPos:n})}function Ule(t,e,{defaultPos:n,defaultPos2:r}){const{markDef:i,config:s}=e,o=Dl(t),u=ls(t),a=Mrt(e,r,o),l=a[u]?jle(t,i,s):fc(t);return Object.assign(Object.assign({},ui(t,e,{defaultPos:n,vgChannel:l})),a)}function Mrt(t,e,n){const{encoding:r,mark:i,markDef:s,stack:o,config:u}=t,a=Mx(n),l=ls(n),c=fc(n),f=r[a],x=t.scaleName(a),h=t.getScaleComponent(a),{offset:p}=n in r||n in s?IE({channel:n,markDef:s,encoding:r,model:t}):IE({channel:a,markDef:s,encoding:r,model:t});if(!f&&(n==="x2"||n==="y2")&&(r.latitude||r.longitude)){const g=ls(n),y=t.markDef[g];return y!=null?{[g]:{value:y}}:{[c]:{field:t.getName(n)}}}const m=jrt({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}:U6(n,s)||U6(n,{[n]:iC(n,s,u.style),[l]:iC(l,s,u.style)})||U6(n,u[i])||U6(n,u.mark)||{[c]:vk({model:t,defaultPos:e,channel:n,scaleName:x,scale:h})()}}function jrt({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l}){return st(e)&&u&&t.charAt(0)===u.fieldChannel.charAt(0)?Id(e,s,{suffix:"start"},{offset:a}):LB({channel:t,channelDef:n,scaleName:s,scale:o,stack:u,markDef:r,config:i,offset:a,defaultRef:l})}function U6(t,e){const n=ls(t),r=fc(t);if(e[r]!==void 0)return{[r]:TE(t,e[r])};if(e[t]!==void 0)return{[r]:TE(t,e[t])};if(e[n]){const i=e[n];if(P1(i))Re(lwe(n));else return{[n]:TE(t,i)}}}function Xc(t,e){var n,r;const{config:i,encoding:s,markDef:o}=t,u=o.type,a=Dl(e),l=ls(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:It("size",o,i,{vgChannel:l}),g=u==="bar"&&(e==="x"?p==="vertical":p==="horizontal");return Ie(c)&&(Kt(c.bin)||Ti(c.bin)||c.timeUnit&&!f)&&!(m&&!P1(m))&&!Cr(h)?Hrt({fieldDef:c,fieldDef2:f,channel:e,model:t}):(st(c)&&Cr(h)||g)&&!f?qrt(c,e,t):Ule(e,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function Urt(t,e,n,r,i){if(P1(i))if(n){const o=n.get("type");if(o==="band")return{scale:e,band:i.band};i.band!==1&&(Re(Awe(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(pc(o)&&nn(o.step))return{value:o.step-2}}return{value:$6(r.view,t)-2}}function qrt(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=ls(e),f=Dl(e),x=m8e(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:sn(r.size)}):Re(Cwe(r.type)));const g=Sae({channel:e,fieldDef:t,markDef:r,config:s,scaleType:l==null?void 0:l.get("type"),useVlSizeChannel:p});m=m||{[c]:Urt(c,h||a,l,s,g)};const y=(l==null?void 0:l.get("type"))!=="band"||!("band"in m[c])?"middle":"top",E=jle(e,r,s,y),A=E==="xc"||E==="yc",{offset:v,offsetType:S}=IE({channel:e,markDef:r,encoding:i,model:n,bandPosition:A?.5:0}),C=LB({channel:e,channelDef:t,markDef:r,config:s,scaleName:a,scale:l,stack:o,offset:v,defaultRef:vk({model:n,defaultPos:"mid",channel:e,scaleName:a,scale:l}),bandPosition:A?S==="encoding"?0:.5:Ye(g)?{signal:`(1-${g})/2`}:P1(g)?(1-g.band)/2:0});if(c)return Object.assign({[E]:C},m);{const _=fc(f),b=m[c],R=v?Object.assign(Object.assign({},b),{offset:v}):b;return{[E]:C,[_]:_e(C)?[C[0],Object.assign(Object.assign({},C[1]),{offset:R})]:Object.assign(Object.assign({},C),{offset:R})}}}function $E(t,e,n,r,i){if(tK(t))return 0;const s=t==="x"||t==="y2"?-e/2:e/2;if(Ye(n)||Ye(i)||Ye(r)){const o=Ll(n),u=Ll(i),a=Ll(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 Hrt({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=Sae({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=Ir(n)&&(o=It("binSpacing",a,u))!==null&&o!==void 0?o:0,E=Dl(n),A=fc(n),v=fc(E),{offset:S}=IE({channel:n,markDef:a,encoding:l,model:r,bandPosition:0}),C=Ye(p)?{signal:`(1-${p.signal})/2`}:P1(p)?(1-p.band)/2:.5;if(Kt(t.bin)||t.timeUnit)return{[v]:qle({fieldDef:t,scaleName:f,bandPosition:C,offset:$E(E,y,h,g,S)}),[A]:qle({fieldDef:t,scaleName:f,bandPosition:Ye(C)?{signal:`1-${C.signal}`}:1-C,offset:$E(n,y,h,g,S)})};if(Ti(t.bin)){const _=Id(t,f,{},{offset:$E(E,y,h,g,S)});if(Ie(e))return{[v]:_,[A]:Id(e,f,{},{offset:$E(n,y,h,g,S)})};if(jx(t.bin)&&t.bin.step)return{[v]:_,[A]:{signal:`scale("${f}", ${$e(t,{expr:"datum"})} + ${t.bin.step})`,offset:$E(n,y,h,g,S)}}}Re(PK(E))}function qle({fieldDef:t,scaleName:e,bandPosition:n,offset:r}){return y6({scaleName:e,fieldOrDatumDef:t,bandPosition:n,offset:r})}const zrt=new Set(["aria","width","height"]);function Fo(t,e){const{fill:n=void 0,stroke:r=void 0}=e.color==="include"?Mle(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({},Qrt(t.markDef,e)),Hle(t,"fill",n)),Hle(t,"stroke",r)),br("opacity",t)),br("fillOpacity",t)),br("strokeOpacity",t)),br("strokeWidth",t)),br("strokeDash",t)),$rt(t)),Ble(t)),Ak(t,"href")),wrt(t))}function Hle(t,e,n){const{config:r,mark:i,markDef:s}=t;if(It("invalid",s,r)==="hide"&&n&&!Qc(i)){const u=Grt(t,{invalid:!0,channels:nC});if(u)return{[e]:[{test:u,value:null},...Pe(n)]}}return n?{[e]:n}:{}}function Qrt(t,e){return B8e.reduce((n,r)=>(!zrt.has(r)&&t[r]!==void 0&&e[r]!=="ignore"&&(n[r]=sn(t[r])),n),{})}function Grt(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&&Ws(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>IB(o,e)).join(` ${s} `)}}function Sk(t){const{config:e,markDef:n}=t;if(It("invalid",n,e)){const i=Wrt(t,{channels:fa});if(i)return{defined:{signal:i}}}return{}}function Wrt(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&&Ws(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>IB(o,e)).join(` ${s} `)}}function zle(t,e){if(e!==void 0)return{[t]:sn(e)}}const _k="voronoi",Qle={defined:t=>t.type==="point"&&t.nearest,parse:(t,e)=>{if(e.events)for(const n of e.events)n.markname=t.getName(_k)},marks:(t,e,n)=>{const{x:r,y:i}=e.project.hasChannel,s=t.mark;if(Qc(s))return Re(q8e(s)),n;const o={name:t.getName(_k),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}},Ble(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(_k)>=0&&(a=!0)}),a||n.splice(u+1,0,o),n}},Gle={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!nk(t.bind),parse:(t,e,n)=>n0e(e,n),topLevelSignals:(t,e,n)=>{const r=e.name,i=e.project,s=e.bind,o=e.init&&e.init[0],u=Qle.defined(e)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((a,l)=>{var c,f;const x=yn(`${r}_${a.field}`);n.filter(p=>p.name===x).length||n.unshift(Object.assign(Object.assign({name:x},o?{init:z1(o[l])}:{value:null}),{on:e.events?[{events:e.events,update:`datum && item().mark.marktype !== 'group' ? ${u}[${we(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+Jc)[0],o=r+LE,u=i.items.map(l=>yn(`${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}},q6="_toggle",Wle={defined:t=>t.type==="point"&&!!t.toggle,signals:(t,e,n)=>n.concat({name:e.name+q6,value:!1,on:[{events:e.events,update:e.toggle}]}),modifyExpr:(t,e)=>{const n=e.name+Jc,r=e.name+q6;return`${r} ? null : ${n}, `+(e.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${W1(t)}}, `)+`${r} ? ${n} : null`}},Vrt={defined:t=>t.clear!==void 0&&t.clear!==!1,parse:(t,e)=>{e.clear&&(e.clear=je(e.clear)?Rd(e.clear,"view"):e.clear)},topLevelSignals:(t,e,n)=>{if(Gle.defined(e))for(const r of e.project.items){const i=n.findIndex(s=>s.name===yn(`${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+Jc);r(i,"null"),Wle.defined(e)&&(i=n.findIndex(s=>s.name===e.name+q6),r(i,"false"))}return n}},Vle={defined:t=>{const e=t.resolve==="global"&&t.bind&&nk(t.bind),n=t.project.items.length===1&&t.project.items[0].field!==FE;return e&&!n&&Re(Q8e),e&&n},parse:(t,e,n)=>{var r;const i=ut(n);if(i.select=je(i.select)?{type:i.select,toggle:e.toggle}:Object.assign(Object.assign({},i.select),{toggle:e.toggle}),n0e(e,i),He(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=rk(e.bind)?e.bind.legend:"click",o=je(s)?Rd(s,"view"):Pe(s);e.bind={legend:{merge:o}}},topLevelSignals:(t,e,n)=>{const r=e.name,i=rk(e.bind)&&e.bind.legend,s=o=>u=>{const a=ut(u);return a.markname=o,a};for(const o of e.project.items){if(!o.hasLegend)continue;const u=`${yn(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+Jc),o=r+LE,u=i.items.filter(x=>x.hasLegend).map(x=>yn(`${r}_${yn(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+q6),f=rk(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 Yrt(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 bi((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&&Vle.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 Yle="_translate_anchor",Kle="_translate_delta",Krt={defined:t=>t.type==="interval"&&t.translate,signals:(t,e,n)=>{const r=e.name,i=Kc.defined(e),s=r+Yle,{x:o,y:u}=e.project.hasChannel;let a=Rd(e.translate,"scope");return i||(a=a.map(l=>(l.between[0].markname=r+Q1,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?mk(t,En):`slice(${o.signals.visual})`}`:"")+(u!==void 0?`, extent_y: ${i?mk(t,gr):`slice(${u.signals.visual})`}`:"")+"}"}]},{name:r+Kle,value:{},on:[{events:a,update:`{x: ${s}.x - x(unit), y: ${s}.y - y(unit)}`}]}),o!==void 0&&Xle(t,e,o,"width",n),u!==void 0&&Xle(t,e,u,"height",n),n}};function Xle(t,e,n,r,i){var s,o;const u=e.name,a=u+Yle,l=u+Kle,c=n.channel,f=Kc.defined(e),x=i.filter(_=>_.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===En?g?"":"-":g?"-":"":"",E=`${a}.extent_${c}`,A=`${y}${l}.${c} / ${f?`${h}`:`span(${E})`}`,v=f?m==="log"?"panLog":m==="symlog"?"panSymlog":m==="pow"?"panPow":"panLinear":"panLinear",S=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}`:"":"",C=`${v}(${E}, ${A}${S})`;x.on.push({events:{signal:l},update:f?C:`clampRange(${C}, 0, ${h})`})}const Jle="_zoom_anchor",Zle="_zoom_delta",Xrt={defined:t=>t.type==="interval"&&t.zoom,signals:(t,e,n)=>{const r=e.name,i=Kc.defined(e),s=r+Zle,{x:o,y:u}=e.project.hasChannel,a=we(t.scaleName(En)),l=we(t.scaleName(gr));let c=Rd(e.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+Q1,f))),n.push({name:r+Jle,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&&e0e(t,e,o,"width",n),u!==void 0&&e0e(t,e,u,"height",n),n}};function e0e(t,e,n,r,i){var s,o;const u=e.name,a=n.channel,l=Kc.defined(e),c=i.filter(v=>v.name===n.signals[l?"data":"visual"])[0],f=t.getSizeSignalRef(r).signal,x=t.getScaleComponent(a),h=x.get("type"),p=l?mk(t,a):c.name,m=u+Zle,g=`${u}${Jle}.${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 Pd="_store",Jc="_tuple",Jrt="_modify",t0e="vlSelectionResolve",H6=[Frt,Nrt,Rrt,Wle,Gle,Kc,Vle,Vrt,Krt,Xrt,Qle];function Zrt(t){let e=t.parent;for(;e&&!vu(e);)e=e.parent;return e}function W1(t,{escape:e}={escape:!0}){let n=e?we(t.name):t.name;const r=Zrt(t);if(r){const{facet:i}=r;for(const s of mo)i[s]&&(n+=` + '__facet_${s}_' + (facet[${we(r.vgField(s))}])`)}return n}function Ck(t){var e;return bi((e=t.component.selection)!==null&&e!==void 0?e:{}).reduce((n,r)=>n||r.project.items.some(i=>i.field===FE),!1)}function n0e(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 bk(t){const e=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(e.push(...bk(t.object)),e.push(...bk(t.property))),e)}function r0e(t){return t.object.type==="MemberExpression"?r0e(t.object):t.object.name==="datum"}function i0e(t){const e=noe(t),n=new Set;return e.visit(r=>{r.type==="MemberExpression"&&r0e(r)&&n.add(bk(r).slice(1).join("."))}),n}class V1 extends Ut{constructor(e,n,r){super(e),this.model=n,this.filter=r,this.expr=z6(this.model,this.filter,this),this._dependentFields=i0e(this.expr)}clone(){return new V1(null,this.model,ut(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function eit(t,e){var n;const r={},i=t.config.selection;if(!e||!e.length)return r;for(const s of e){const o=yn(s.name),u=s.select,a=je(u)?u:u.type,l=He(u)?ut(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)?Rd(l.on,"scope"):Pe(ut(l.on))});for(const x of H6)x.defined(f)&&x.parse&&x.parse(t,f,s)}return r}function s0e(t,e,n,r="datum"){const i=je(e)?e:e.param,s=yn(i),o=we(s+Pd);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"?")":`, ${we(u.resolve)})`}`,l=`length(data(${o}))`;return e.empty===!1?`${l} && ${a}`:`!${l} || ${a}`}function o0e(t,e,n){const r=yn(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&&Re(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${we(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,Re((u.length?"Multiple ":"No ")+`matching ${we(i)} encoding found for selection ${we(n.param)}. Using "field": ${we(s)}.`)):s=u[0].field}return`${o.name}[${we(eu(s))}]`}function tit(t,e){var n;for(const[r,i]of Bx((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=t.getName(`lookup_${r}`);t.component.data.outputNodes[s]=i.materialized=new zi(new V1(e,t,{param:r}),s,Jt.Lookup,t.component.data.outputNodeRefCounts)}}function z6(t,e,n){return W5(e,r=>je(r)?r:o9e(r)?s0e(t,r,n):GK(r))}var Q6=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 nit(t,e){if(t)return _e(t)&&!hc(t)?t.map(n=>QB(n,e)).join(", "):t}function Tk(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 BE(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=Q6(o,["disable","orient","scale","labelExpr","title","zindex"]);if(!u){for(const p in h){const m=ktt[p],g=h[p];if(m&&m!==e&&m!=="both")delete h[p];else if(DE(g)){const{condition:y}=g,E=Q6(g,["condition"]),A=Pe(y),v=Fae[p];if(v){const{vgProp:S,part:C}=v,_=[...A.map(b=>{const{test:R}=b,O=Q6(b,["test"]);return Object.assign({test:z6(null,R)},O)}),E];Tk(h,C,S,_),delete h[p]}else if(v===null){const S={signal:A.map(C=>{const{test:_}=C,b=Q6(C,["test"]);return`${z6(null,_)} ? ${mK(b)} : `}).join("")+mK(E)};h[p]=S}}else if(Ye(g)){const y=Fae[p];if(y){const{vgProp:E,part:A}=y;Tk(h,A,E,g),delete h[p]}}Ct(["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:er(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=$2(c,"datum.label",h.encode.labels.update.text.signal)),Tk(h,"labels","text",{signal:m})}if(h.labelAlign===null&&delete h.labelAlign,h.encode){for(const m of wae)t.hasAxisPart(m)||delete h.encode[m];Wt(h.encode)&&delete h.encode}const p=nit(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:er(x,0)})}}}function u0e(t){const{axes:e}=t.component,n=[];for(const r of fa)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 rit(t,e){const{x:n=[],y:r=[]}=t;return[...n.map(i=>BE(i,"grid",e)),...r.map(i=>BE(i,"grid",e)),...n.map(i=>BE(i,"main",e)),...r.map(i=>BE(i,"main",e))].filter(i=>i)}function a0e(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([...Te(o),...Te(u)]),l={};for(const c of a.values())l[c]={signal:`${r.signal} === "${s}" ? ${Ll(o[c])} : ${Ll(u[c])}`};return l}return e[i]})])}function iit(t,e,n,r){const i=e==="band"?["axisDiscrete","axisBand"]:e==="point"?["axisDiscrete","axisPoint"]:Zue(e)?["axisQuantitative"]:e==="time"||e==="utc"?["axisTemporal"]:[],s=t==="x"?"axisX":"axisY",o=Ye(n)?"axisOrient":`axis${V5(n)}`,u=[...i,...i.map(l=>s+l.substr(4))],a=["axis",o,s];return{vlOnlyAxisConfig:a0e(u,r,t,n),vgAxisConfig:a0e(a,r,t,n),axisConfigStyle:sit([...a,...u],r)}}function sit(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 Rk(t,e,n,r={}){var i;const s=EK(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 l0e={scale:({model:t,channel:e})=>t.scaleName(e),format:({fieldOrDatumDef:t,config:e,axis:n})=>{const{format:r,formatType:i}=n;return xae(t,t.type,r,i,e,!0)},formatType:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return dae(r,e,n)},grid:({fieldOrDatumDef:t,axis:e,scaleType:n})=>{var r;return(r=e.grid)!==null&&r!==void 0?r:oit(n,t)},gridScale:({model:t,channel:e})=>uit(t,e),labelAlign:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelAlign||f0e(e,n,r),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelBaseline||c0e(e,n,r),labelFlush:({axis:t,fieldOrDatumDef:e,channel:n})=>{var r;return(r=t.labelFlush)!==null&&r!==void 0?r:lit(e.type,n)},labelOverlap:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{var r;return(r=t.labelOverlap)!==null&&r!==void 0?r:cit(e.type,n,Ie(e)&&!!e.timeUnit,Ie(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:xit({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=x0e(e,n);if(r!==void 0)return r;const i=e.typedFieldDef(n),s=n==="x"?"x2":"y2",o=e.fieldDef(s);return vK(i?[Aae(i)]:[],Ie(o)?[Aae(o)]:[])},values:({axis:t,fieldOrDatumDef:e})=>dit(t,e),zindex:({axis:t,fieldOrDatumDef:e,mark:n})=>{var r;return(r=t.zindex)!==null&&r!==void 0?r:hit(n,e)}};function oit(t,e){return!Cr(t)&&Ie(e)&&!Kt(e==null?void 0:e.bin)&&!Ti(e==null?void 0:e.bin)}function uit(t,e){const n=e==="x"?"y":"x";if(t.getScaleComponent(n))return t.scaleName(n)}function ait(t,e,n,r,i){const s=e==null?void 0:e.labelAngle;if(s!==void 0)return Ye(s)?s:Y5(s);{const{configValue:o}=Rk("labelAngle",r,e==null?void 0:e.style,i);return o!==void 0?Y5(o):n===En&&Ct([RB,TB],t.type)&&!(Ie(t)&&t.timeUnit)?270:void 0}}function Ok(t){return`(((${t.signal} % 360) + 360) % 360)`}function c0e(t,e,n,r){if(t!==void 0)if(n==="x"){if(Ye(t)){const i=Ok(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=Ok(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 f0e(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=Ok(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 lit(t,e){if(e==="x"&&Ct(["quantitative","temporal"],t))return!0}function cit(t,e,n,r){if(n&&!He(r)||t!=="nominal"&&t!=="ordinal")return e==="log"||e==="symlog"?"greedy":!0}function fit(t){return t==="x"?"bottom":"left"}function xit({fieldOrDatumDef:t,scaleType:e,size:n,values:r}){var i;if(!r&&!Cr(e)&&e!=="log"){if(Ie(t)){if(Kt(t.bin))return{signal:`ceil(${n.signal}/10)`};if(t.timeUnit&&Ct(["month","hours","day","quarter"],(i=Ri(t.timeUnit))===null||i===void 0?void 0:i.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function x0e(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 SK(s,o);if(s)return s;if(o)return o;if(s!==void 0)return s;if(o!==void 0)return o}function dit(t,e){const n=t.values;if(_e(n))return Dae(e,n);if(Ye(n))return n}function hit(t,e){return t==="rect"&&C6(e)?1:0}class Y1 extends Ut{constructor(e,n){super(e),this.transform=n,this._dependentFields=i0e(this.transform.calculate)}clone(){return new Y1(null,ut(this.transform))}static parseAllForSortIndex(e,n){return n.forEachFieldDef((r,i)=>{if(Bd(r)&&Eae(r.sort)){const{field:s,timeUnit:o}=r,u=r.sort,a=u.map((l,c)=>`${GK({field:s,timeUnit:o,equal:l})} ? ${c} : `).join("")+u.length;e=new Y1(e,{calculate:a,as:K1(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 ${_t(this.transform)}`}}function K1(t,e,n){return $e(t,Object.assign({prefix:e,suffix:"sort_index"},n??{}))}function G6(t,e){return Ct(["top","bottom"],e)?"column":Ct(["left","right"],e)||t==="row"?"row":"column"}function X1(t,e,n,r){const i=r==="row"?n.headerRow:r==="column"?n.headerColumn:n.headerFacet;return er((e||{})[t],i[t],n.header[t])}function W6(t,e,n,r){const i={};for(const s of t){const o=X1(s,e||{},n,r);o!==void 0&&(i[s]=o)}return i}const Nk=["row","column"],Dk=["header","footer"];function pit(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}=W6(["titleAnchor","titleAngle","titleOrient"],i.header,r,e),a=G6(e,u),l=Y5(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"}),h0e(l,a)),d0e(a,l,s)),p0e(r,i,e,snt,Jae))}}function d0e(t,e,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const r=f0e(e,t==="row"?"left":"top",t==="row"?"y":"x");return r?{align:r}:{}}function h0e(t,e){const n=c0e(t,e==="row"?"left":"top",e==="row"?"y":"x",!0);return n?{baseline:n}:{}}function git(t,e){const n=t.component.layoutHeaders[e],r=[];for(const i of Dk)if(n[i])for(const s of n[i]){const o=yit(t,e,i,n,s);o!=null&&r.push(o)}return r}function mit(t,e){var n;const{sort:r}=t;return $a(r)?{field:$e(r,{expr:"datum"}),order:(n=r.order)!==null&&n!==void 0?n:"ascending"}:_e(r)?{field:K1(t,e,{expr:"datum"}),order:"ascending"}:{field:$e(t,{expr:"datum"}),order:r??"ascending"}}function Fk(t,e,n){const{format:r,formatType:i,labelAngle:s,labelAnchor:o,labelOrient:u,labelExpr:a}=W6(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,n,e),l=BB({fieldOrDatumDef:t,format:r,formatType:i,expr:"parent",config:n}).signal,c=G6(e,u);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:a?$2($2(a,"datum.label",l),"datum.value",$e(t,{expr:"parent"})):l}},e==="row"?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),h0e(s,c)),d0e(c,s,o)),p0e(n,t,e,ont,Zae))}function yit(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}=W6(["labelOrient"],o.header,u,e);(e==="row"&&!Ct(["top","bottom"],f)||e==="column"&&!Ct(["left","right"],f))&&(s=Fk(o,e,u))}const a=vu(t)&&!RE(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:mit(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 Eit={column:{start:0,end:1},row:{start:1,end:0}};function Ait(t,e){return Eit[e][t]}function vit(t,e){const n={};for(const r of mo){const i=t[r];if(i!=null&&i.facetFieldDef){const{titleAnchor:s,titleOrient:o}=W6(["titleAnchor","titleOrient"],i.facetFieldDef.header,e,r),u=G6(r,o),a=Ait(s,u);a!==void 0&&(n[u]=a)}}return Wt(n)?void 0:n}function p0e(t,e,n,r,i){const s={};for(const o of r){if(!i[o])continue;const u=X1(o,e==null?void 0:e.header,t,n);u!==void 0&&(s[i[o]]=u)}return s}function wk(t){return[...V6(t,"width"),...V6(t,"height"),...V6(t,"childWidth"),...V6(t,"childHeight")]}function V6(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)&&pc(u)){const a=t.scaleName(n);return vu(t.parent)&&t.parent.component.resolve.scale[n]==="independent"?[g0e(a,u)]:[g0e(a,u),{name:i,update:m0e(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=uk(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 g0e(t,e){const n=`${t}_step`;return Ye(e.step)?{name:n,update:e.step.signal}:{name:n,value:e.step}}function m0e(t,e,n){const r=e.get("type"),i=e.get("padding"),s=er(e.get("paddingOuter"),i);let o=e.get("paddingInner");return o=r==="band"?o!==void 0?o:i:1,`bandspace(${n}, ${Ll(o)}, ${Ll(s)}) * ${t}_step`}function y0e(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function E0e(t,e){return Te(t).reduce((n,r)=>{const i=t[r];return Object.assign(Object.assign({},n),G1(e,i,r,s=>sn(s.value)))},{})}function A0e(t,e){if(vu(e))return t==="theta"?"independent":"shared";if(ep(e))return"shared";if(Vk(e))return Ir(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function Lk(t,e){const n=t.scale[e],r=Ir(e)?"axis":"legend";return n==="independent"?(t[r][e]==="shared"&&Re(Nwe(e)),"independent"):t[r][e]||"shared"}const Sit=Object.assign(Object.assign({},ant),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),v0e=Te(Sit);class _it extends u0{}const S0e={symbols:Cit,gradient:bit,labels:Tit,entries:Rit};function Cit(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({},M8e({},n,att)),Mle(n,{filled:E}));const v=(o=i.get("symbolOpacity"))!==null&&o!==void 0?o:g.legend.symbolOpacity,S=(u=i.get("symbolFillColor"))!==null&&u!==void 0?u:g.legend.symbolFillColor,C=(a=i.get("symbolStrokeColor"))!==null&&a!==void 0?a:g.legend.symbolStrokeColor,_=v===void 0?(l=_0e(m.opacity))!==null&&l!==void 0?l:p.opacity:void 0;if(A.fill){if(r==="fill"||E&&r===us)delete A.fill;else if(A.fill.field)S?delete A.fill:(A.fill=sn((c=g.legend.symbolBaseFillColor)!==null&&c!==void 0?c:"black"),A.fillOpacity=sn(_??1));else if(_e(A.fill)){const b=(h=(x=Ik((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=sn(b))}}if(A.stroke){if(r==="stroke"||!E&&r===us)delete A.stroke;else if(A.stroke.field||C)delete A.stroke;else if(_e(A.stroke)){const b=er(Ik(m.stroke||m.color),p.stroke,E?p.color:void 0);b&&(A.stroke={value:b})}}if(r!==Nl){const b=Ie(e)&&b0e(n,i,e);b?A.opacity=[Object.assign({test:b},sn(_??1)),sn(g.legend.unselectedOpacity)]:_&&(A.opacity=sn(_))}return A=Object.assign(Object.assign({},A),t),Wt(A)?void 0:A}function bit(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?_0e(u.opacity)||o.opacity:void 0;return c&&(a.opacity=sn(c)),a=Object.assign(Object.assign({},a),t),Wt(a)?void 0:a}function Tit(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i}){const s=n.legend(r)||{},o=n.config,u=Ie(e)?b0e(n,i,e):void 0,a=u?[{test:u,value:1},{value:o.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=s,f=$d(c)?kB({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 Rit(t,{legendCmpt:e}){const n=e.get("selections");return n!=null&&n.length?Object.assign(Object.assign({},t),{fill:{value:"transparent"}}):t}function _0e(t){return C0e(t,(e,n)=>Math.max(e,n.value))}function Ik(t){return C0e(t,(e,n)=>er(e,n.value))}function C0e(t,e){if(btt(t))return Pe(t.condition).reduce(e,t.value);if(yu(t))return t.value}function b0e(t,e,n){const r=e.get("selections");if(!(r!=null&&r.length))return;const i=we(n.field);return r.map(s=>`(!length(data(${we(yn(s)+Pd)})) || (${s}[${i}] && indexof(${s}[${i}], datum.value) >= 0))`).join(" || ")}const T0e={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:e,config:n})=>{const{format:r,formatType:i}=e;return xae(t,t.type,r,i,n,!1)},formatType:({legend:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return dae(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:Iit(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:$it(n)},symbolType:({legend:t,markDef:e,channel:n,encoding:r})=>{var i;return(i=t.symbolType)!==null&&i!==void 0?i:Nit(e.type,n,r.shape,e.shape)},title:({fieldOrDatumDef:t,config:e})=>M1(t,e,{allowDisabling:!0}),type:({legendType:t,scaleType:e,channel:n})=>{if(k2(n)&&mu(e)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:e})=>Oit(e,t)};function Oit(t,e){const n=t.values;if(_e(n))return Dae(e,n);if(Ye(n))return n}function Nit(t,e,n,r){var i;if(e!=="shape"){const s=(i=Ik(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 Dit(t){const{legend:e}=t;return er(e.type,Fit(t))}function Fit({channel:t,timeUnit:e,scaleType:n}){if(k2(t)){if(Ct(["quarter","month","day"],e))return"symbol";if(mu(n))return"gradient"}return"symbol"}function wit({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:Lit(n,e)}function Lit(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 Iit({legendConfig:t,model:e,direction:n,orient:r,scaleType:i}){const{gradientHorizontalMaxLength:s,gradientHorizontalMinLength:o,gradientVerticalMaxLength:u,gradientVerticalMinLength:a}=t;if(mu(i))return n==="horizontal"?r==="top"||r==="bottom"?R0e(e,"width",o,s):o:R0e(e,"height",a,u)}function R0e(t,e,n,r){return{signal:`clamp(${t.getSizeSignalRef(e).signal}, ${n}, ${r})`}}function $it(t){if(Ct(["quantile","threshold","log","symlog"],t))return"greedy"}function O0e(t){const e=Gn(t)?Bit(t):jit(t);return t.component.legends=e,e}function Bit(t){const{encoding:e}=t,n={};for(const r of[us,...tle]){const i=ur(e[r]);!i||!t.getScaleComponent(r)||r===as&&Ie(i)&&i.type===B1||(n[r]=Mit(t,r))}return n}function kit(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 Pit(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 Mit(t,e){var n,r,i;let s=t.legend(e);const{markDef:o,encoding:u,config:a}=t,l=a.legend,c=new _it({},kit(t,e));Yrt(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=ur(u[e]),p=Ie(h)?(n=Ri(h.timeUnit))===null||n===void 0?void 0:n.unit:void 0,m=s.orient||a.legend.orient||"right",g=Dit({legend:s,channel:e,timeUnit:p,scaleType:x}),y=wit({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 _ of v0e){if(g==="gradient"&&_.startsWith("symbol")||g==="symbol"&&_.startsWith("gradient"))continue;const b=_ in T0e?T0e[_](E):s[_];if(b!==void 0){const R=Pit(b,_,s,t.fieldDef(e));(R||a.legend[_]===void 0)&&c.set(_,b,R)}}const A=(r=s==null?void 0:s.encoding)!==null&&r!==void 0?r:{},v=c.get("selections"),S={},C={fieldOrDatumDef:h,model:t,channel:e,legendCmpt:c,legendType:g};for(const _ of["labels","legend","title","symbols","gradient","entries"]){const b=E0e((i=A[_])!==null&&i!==void 0?i:{},t),R=_ in S0e?S0e[_](b,C):b;R!==void 0&&!Wt(R)&&(S[_]=Object.assign(Object.assign(Object.assign({},v!=null&&v.length&&Ie(h)?{name:`${yn(h.field)}_legend_${_}`}:{}),v!=null&&v.length?{interactive:!!v}:{}),{update:R}))}return Wt(S)||c.set("encode",S,!!(s!=null&&s.encoding)),c}function jit(t){const{legends:e,resolve:n}=t.component;for(const r of t.children){O0e(r);for(const i of Te(r.component.legends))n.legend[i]=Lk(t.component.resolve,i),n.legend[i]==="shared"&&(e[i]=N0e(e[i],r.component.legends[i]),e[i]||(n.legend[i]="independent",delete e[i]))}for(const r of Te(e))for(const i of t.children)i.component.legends[r]&&n.legend[r]==="shared"&&delete i.component.legends[r];return e}function N0e(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 v0e){const c=Vc(t.getWithExplicit(l),e.getWithExplicit(l),l,"legend",(f,x)=>{switch(l){case"symbolType":return Uit(f,x);case"title":return _K(f,x);case"type":return a=!0,Vs("symbol")}return P6(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&&KF(t.implicit,["encode","gradient"]),!((s=(i=t.explicit)===null||i===void 0?void 0:i.encode)===null||s===void 0)&&s.gradient&&KF(t.explicit,["encode","gradient"])),t}function Uit(t,e){return e.value==="circle"?e:t}var qit=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 Hit(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 D0e(t){const e=t.component.legends,n={};for(const i of Te(e)){const s=t.getScaleComponent(i),o=rn(s.get("domains"));if(n[o])for(const u of n[o])N0e(u,e[i])||n[o].push(e[i]);else n[o]=[e[i].clone()]}return bi(n).flat().map(i=>zit(i,t.config)).filter(i=>i!==void 0)}function zit(t,e){var n,r,i;const s=t.combine(),{disable:o,labelExpr:u,selections:a}=s,l=qit(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 tle)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=$2(u,"datum.label",l.encode.labels.update.text.signal)),Hit(l,"labels","text",{signal:c})}return l}}function Qit(t){return ep(t)||Vk(t)?Git(t):F0e(t)}function Git(t){return t.children.reduce((e,n)=>e.concat(n.assembleProjections()),F0e(t))}function F0e(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 Ct(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 Wit=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class w0e extends u0{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 L0e(t){t.component.projection=Gn(t)?Vit(t):Xit(t)}function Vit(t){var e;if(t.hasProjection){const n=cs(t.specifiedProjection),r=!(n&&(n.scale!=null||n.translate!=null)),i=r?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,s=r?Yit(t):void 0,o=new w0e(t.projectionName(!0),Object.assign(Object.assign({},(e=cs(t.config.projection))!==null&&e!==void 0?e:{}),n??{}),i,s);return o.get("type")||o.set("type","equalEarth",!1),o}}function Yit(t){const e=[],{encoding:n}=t;for(const r of[[aa,ua],[go,ru]])(ur(n[r[0]])||ur(n[r[1]]))&&e.push({signal:t.getName(`geojson_${e.length}`)});return t.channelHasField(as)&&t.typedFieldDef(as).type===B1&&e.push({signal:t.getName(`geojson_${e.length}`)}),e.length===0&&e.push(t.requestDataName(Jt.Main)),e}function Kit(t,e){const n=VY(Wit,i=>!!(!Je(t.explicit,i)&&!Je(e.explicit,i)||Je(t.explicit,i)&&Je(e.explicit,i)&&Sl(t.get(i),e.get(i))));if(Sl(t.size,e.size)){if(n)return t;if(Sl(t.explicit,{}))return e;if(Sl(e.explicit,{}))return t}return null}function Xit(t){if(t.children.length===0)return;let e;for(const r of t.children)L0e(r);const n=VY(t.children,r=>{const i=r.component.projection;if(i)if(e){const s=Kit(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 w0e(r,e.specifiedProjection,e.size,ut(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 Jit=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 Zit(t,e,n,r){var i,s;if(NE(e,n)){const o=Gn(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:E6(u,a,o.format,o.formatType,r)}}return{}}function I0e(t,e){return`${xK(t)}_${e}`}function est(t,e){return{signal:t.getName(`${e}_bins`),extentSignal:t.getName(`${e}_extent`)}}function $k(t,e,n){var r;const i=(r=R6(n,void 0))!==null&&r!==void 0?r:{},s=I0e(i,e);return t.getName(`${s}_bins`)}function tst(t){return"as"in t}function $0e(t,e,n){let r,i;tst(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({},R6(e,void 0)),o=I0e(s,t.field),{signal:u,extentSignal:a}=est(n,o);if(rC(s.extent)){const c=s.extent;i=o0e(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 qa extends Ut{constructor(e,n){super(e),this.bins=n}clone(){return new qa(null,ut(this.bins))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s,o)=>{if(Do(s)&&Kt(s.bin)){const{key:u,binComponent:a}=$0e(s,s.bin,n);i[u]=Object.assign(Object.assign(Object.assign({},a),i[u]),Zit(n,s,o,n.config))}return i},{});return Wt(r)?null:new qa(e,r)}static makeFromTransform(e,n,r){const{key:i,binComponent:s}=$0e(n,n.bin,r);return new qa(e,{[i]:s})}merge(e,n){for(const r of Te(e.bins))r in this.bins?(n(e.bins[r].signal,this.bins[r].signal),this.bins[r].as=_l([...this.bins[r].as,...e.bins[r].as],_t)):this.bins[r]=e.bins[r];for(const r of e.children)e.removeChild(r),r.parent=this;e.remove()}producedFields(){return new Set(bi(this.bins).map(e=>e.as).flat(2))}dependentFields(){return new Set(bi(this.bins).map(e=>e.field))}hash(){return`Bin ${_t(this.bins)}`}assemble(){return bi(this.bins).flatMap(e=>{const n=[],[r,...i]=e.as,s=e.bin,{extent:o}=s,u=Jit(s,["extent"]),a=Object.assign(Object.assign(Object.assign({type:"bin",field:eu(e.field),as:r,signal:e.signal},rC(o)?{extent:null}:{extent:o}),e.span?{span:{signal:`span(${e.span})`}}:{}),u);!o&&e.extentSignal&&(n.push({type:"extent",field:eu(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 nst(t,e,n,r){var i;const s=Gn(r)?r.encoding[Dl(e)]:void 0;if(Do(n)&&Gn(r)&&_ae(n,s,r.markDef,r.config))t.add($e(n,{})),t.add($e(n,{suffix:"end"})),n.bin&&NE(n,e)&&t.add($e(n,{binSuffix:"range"}));else if(c8e(e)){const o=l8e(e);t.add(r.getName(o))}else t.add($e(n));return Bd(n)&&Xet((i=n.scale)===null||i===void 0?void 0:i.range)&&t.add(n.scale.range.field),t}function rst(t,e){var n;for(const r of Te(e)){const i=e[r];for(const s of Te(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 Eu extends Ut{constructor(e,n,r){super(e),this.dimensions=n,this.measures=r}clone(){return new Eu(null,new Set(this.dimensions),ut(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(Fl(x)||dc(x)){const p=Fl(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})]);xc(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 nst(s,u,o,n)}),s.size+Te(i).length===0)?null:new Eu(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+Te(u).length===0?null:new Eu(e,o,u)}merge(e){return t8e(this.dimensions,e.dimensions)?(rst(this.measures,e.measures),!0):(Qwe("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...Te(this.measures)])}producedFields(){const e=new Set;for(const n of Te(this.measures))for(const r of Te(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 ${_t({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],n=[],r=[];for(const s of Te(this.measures))for(const o of Te(this.measures[s]))for(const u of this.measures[s][o])r.push(u),e.push(o),n.push(s==="*"?null:eu(s));return{type:"aggregate",groupby:[...this.dimensions].map(eu),ops:e,fields:n,as:r}}}class J1 extends Ut{constructor(e,n,r,i){super(e),this.model=n,this.name=r,this.data=i;for(const s of mo){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"})]:[]]},$a(a)?{sortField:a}:_e(a)?{sortIndexField:K1(o,s)}:{})}}this.childModel=n.child}hash(){let e="Facet";for(const n of mo)this[n]&&(e+=` ${n.charAt(0)}:${_t(this[n])}`);return e}get fields(){var e;const n=[];for(const r of mo)!((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 mo)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 fa){const r=this.childModel.component.scales[n];if(r&&!r.merged){const i=r.get("type"),s=r.get("range");if(Cr(i)&&pc(s)){const o=K6(this.childModel,n),u=Qk(o);u?e[n]=u:Re(l8(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=A6,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 Nk){for(const f of Dk){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[bl,Cl])this[l]&&r.push(this.assembleRowColumnHeaderData(l,i,s));if(a){const l=this.assembleFacetHeaderData(s);l&&r.push(...l)}return r}}function B0e(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function ist(t,e){const n=JY(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=B0e(e.slice(5,e.length));return`timeParse(${n},'${r}')`}else if(e.startsWith("utc:")){const r=B0e(e.slice(4,e.length));return`utcParse(${n},'${r}')`}else return Re(J8e(e)),null}function sst(t){const e={};return Q5(t.filter,n=>{var r;if(QK(n)){let i=null;g8(n)?i=Ps(n.equal):y8(n)?i=Ps(n.lte):m8(n)?i=Ps(n.lt):E8(n)?i=Ps(n.gt):A8(n)?i=Ps(n.gte):v8(n)?i=n.range[0]:S8(n)&&(i=((r=n.oneOf)!==null&&r!==void 0?r:n.in)[0]),i&&(qx(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 ost(t){const e={};function n(r){U1(r)?e[r.field]="date":r.type==="quantitative"&&D8e(r.aggregate)?e[r.field]="number":C3(r.field)>1?r.field in e||(e[r.field]="flatten"):Bd(r)&&$a(r.sort)&&C3(r.sort.field)>1&&(r.sort.field in e||(e[r.sort.field]="flatten"))}if((Gn(t)||vu(t))&&t.forEachFieldDef((r,i)=>{if(Do(r))n(r);else{const s=Mx(i),o=t.fieldDef(s);n(Object.assign(Object.assign({},r),{type:o.type}))}}),Gn(t)){const{mark:r,markDef:i,encoding:s}=t;if(Qc(r)&&!t.encoding.order){const o=i.orient==="horizontal"?"y":"x",u=s[o];Ie(u)&&u.type==="quantitative"&&!(u.field in e)&&(e[u.field]="number")}}return e}function ust(t){const e={};if(Gn(t)&&t.component.selection)for(const n of Te(t.component.selection)){const r=t.component.selection[n];for(const i of r.project.items)!i.channel&&C3(i.field)>1&&(e[i.field]="flatten")}return e}class ai extends Ut{constructor(e,n){super(e),this._parse=n}clone(){return new ai(null,ut(this._parse))}hash(){return`Parse ${_t(this._parse)}`}static makeExplicit(e,n,r){var i;let s={};const o=n.data;return!Yc(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 Te(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]:Re(DK(u,r[u],a.value)))}for(const u of Te(n)){const a=i.get(u);a!==void 0&&(a===n[u]?delete n[u]:Re(DK(u,n[u],a)))}const s=new u0(n,r);i.copyAll(s);const o={};for(const u of Te(s.combine())){const a=s.get(u);a!==null&&(o[u]=a)}return Te(o).length===0||i.parseNothing?null:new ai(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 Te(this._parse)){const r=this._parse[n];C3(n)===1&&(e[n]=r)}return e}producedFields(){return new Set(Te(this._parse))}dependentFields(){return new Set(Te(this._parse))}assembleTransforms(e=!1){return Te(this._parse).filter(n=>e?C3(n)>1:!0).map(n=>{const r=ist(n,this._parse[n]);return r?{type:"formula",expr:r,as:ZY(n)}:null}).filter(n=>n!==null)}}class Zc extends Ut{clone(){return new Zc(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([FE])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:FE}}}class kE extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new kE(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${_t(this.params)}`}assemble(){return Object.assign({type:"graticule"},this.params===!0?{}:this.params)}}class PE extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new PE(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 ${_t(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class Md extends Ut{constructor(e){super(null),e??(e={name:"source"});let n;if(Yc(e)||(n=e.format?Object.assign({},po(e.format,["parse"])):{}),wE(e))this._data={values:e.values};else if(H1(e)){if(this._data={url:e.url},!n.type){let r=/(?:\.([^.]+))?$/.exec(e.url)[1];Ct(["json","csv","tsv","dsv","topojson"],r)||(r="json"),n.type=r}}else wle(e)?this._data={values:[{type:"Sphere"}]}:(Dle(e)||Yc(e))&&(this._data={});this._generator=Yc(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 k0e=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},ast=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)},ME;function Bk(t){return t instanceof Md||t instanceof kE||t instanceof PE}class kk{constructor(){ME.set(this,void 0),k0e(this,ME,!1,"f")}setModified(){k0e(this,ME,!0,"f")}get modifiedFlag(){return ast(this,ME,"f")}}ME=new WeakMap;class jd extends kk{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 Pk extends kk{optimize(e){this.run(e);for(const n of e.children)this.optimize(n);return this.modifiedFlag}}class lst extends Pk{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 Te(r))r[i].length>1&&(this.setModified(),this.mergeNodes(e,r[i]))}}class cst extends Pk{constructor(e){super(),this.requiresSelectionId=e&&Ck(e)}run(e){e instanceof Zc&&(this.requiresSelectionId&&(Bk(e.parent)||e.parent instanceof Eu||e.parent instanceof ai)||(this.setModified(),e.remove()))}}class fst extends kk{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,n){let r=new Set;e instanceof Ua&&(r=e.producedFields(),YY(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 xst extends Pk{constructor(){super()}run(e){e instanceof zi&&!e.isRequired()&&(this.setModified(),e.remove())}}class dst extends jd{run(e){if(!Bk(e)&&!(e.numChildren()>1)){for(const n of e.children)if(n instanceof ai)if(e instanceof ai)this.setModified(),e.merge(n);else{if(XY(e.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class hst extends jd{run(e){const n=[...e.children],r=e.children.filter(i=>i instanceof ai);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 Te(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 ai(e,i);for(const u of n){if(u instanceof ai)for(const a of Te(i))delete u.parse[a];e.removeChild(u),u.parent=o,u instanceof ai&&Te(u.parse).length===0&&u.remove()}}}}}class pst extends jd{run(e){e instanceof zi||e.numChildren()>0||e instanceof J1||e instanceof Md||(this.setModified(),e.remove())}}class gst extends jd{run(e){const n=e.children.filter(i=>i instanceof Ua),r=n.pop();for(const i of n)this.setModified(),r.merge(i)}}class mst extends jd{run(e){const n=e.children.filter(i=>i instanceof Eu),r={};for(const i of n){const s=_t(i.groupBy);s in r||(r[s]=[]),r[s].push(i)}for(const i of Te(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 yst extends jd{constructor(e){super(),this.model=e}run(e){const n=!(Bk(e)||e instanceof V1||e instanceof ai||e instanceof Zc),r=[],i=[];for(const s of e.children)s instanceof qa&&(n&&!XY(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 qa?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 Est extends jd{run(e){const n=[...e.children];if(!I2(n,o=>o instanceof zi)||e.numChildren()<=1)return;const i=[];let s;for(const o of n)if(o instanceof zi){let u=o;for(;u.numChildren()===1;){const[a]=u.children;if(a instanceof zi)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 Ud extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new Ud(null,ut(this.transform))}addDimensions(e){this.transform.groupby=_l(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 ${_t(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 Ast(t){return t.stack.stackBy.reduce((e,n)=>{const r=n.fieldDef,i=$e(r);return i&&e.push(i),e},[])}function vst(t){return _e(t)&&t.every(e=>je(e))&&t.length>1}class a0 extends Ut{constructor(e,n){super(e),this._stack=n}clone(){return new a0(null,ut(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(er(f.order,"ascending"));const l={field:u,order:a};let c;return vst(s)?c=s:je(s)?c=[s,`${s}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new a0(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 Pa(p)}).filter(h=>!!h),c=Ast(n),f=n.encoding.order;let x;return _e(f)||Ie(f)?x=AK(f):x=c.reduce((h,p)=>(h.field.push(p),h.order.push(o==="y"?"descending":"ascending"),h),{field:[],order:[]}),new a0(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 ${_t(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 Z1 extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new Z1(null,ut(this.transform))}addDimensions(e){this.transform.groupby=_l(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 ${_t(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=>s8(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 Sst(t){function e(n){if(!(n instanceof J1)){const r=n.clone();if(r instanceof zi){const i=jk+r.getSource();r.setSource(i),t.model.component.data.outputNodes[i]=r}else(r instanceof Eu||r instanceof a0||r instanceof Z1||r instanceof Ud)&&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 Mk(t){if(t instanceof J1)if(t.numChildren()===1&&!(t.children[0]instanceof zi)){const e=t.children[0];(e instanceof Eu||e instanceof a0||e instanceof Z1||e instanceof Ud)&&e.addDimensions(t.fields),e.swapWithParent(),Mk(t)}else{const e=t.model.component.data.main;P0e(e);const n=Sst(t),r=t.children.map(n).flat();for(const i of r)i.parent=e}else t.children.map(Mk)}function P0e(t){if(t instanceof zi&&t.type===Jt.Main&&t.numChildren()===1){const e=t.children[0];e instanceof J1||(e.swapWithParent(),P0e(t))}}const jk="scale_",Y6=5;function Uk(t){for(const e of t){for(const n of e.children)if(n.parent!==e)return!1;if(!Uk(e.children))return!1}return!0}function Au(t,e){let n=!1;for(const r of e)n=t.optimize(r)||n;return n}function M0e(t,e,n){let r=t.sources,i=!1;return i=Au(new xst,r)||i,i=Au(new cst(e),r)||i,r=r.filter(s=>s.numChildren()>0),i=Au(new pst,r)||i,r=r.filter(s=>s.numChildren()>0),n||(i=Au(new dst,r)||i,i=Au(new yst(e),r)||i,i=Au(new fst,r)||i,i=Au(new hst,r)||i,i=Au(new mst,r)||i,i=Au(new gst,r)||i,i=Au(new lst,r)||i,i=Au(new Est,r)||i),t.sources=r,i}function _st(t,e){Uk(t.sources);let n=0,r=0;for(let i=0;i<Y6&&M0e(t,e,!0);i++)n++;t.sources.map(Mk);for(let i=0;i<Y6&&M0e(t,e,!1);i++)r++;Uk(t.sources),Math.max(n,r)===Y6&&Re(`Maximum optimization runs(${Y6}) reached.`)}class As{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,n){return new As(()=>e(n))}}var Cst=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 j0e(t){Gn(t)?bst(t):Tst(t)}function bst(t){const e=t.component.scales;for(const n of Te(e)){const r=Ost(t,n);if(e[n].setWithExplicit("domains",r),Dst(t,n),t.component.data.isFaceted){let s=t;for(;!vu(s)&&s.parent;)s=s.parent;if(s.component.resolve.scale[n]==="shared")for(const u of r.value)wl(u)&&(u.data=jk+u.data.replace(jk,""))}}}function Tst(t){for(const n of t.children)j0e(n);const e=t.component.scales;for(const n of Te(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=Vc(r,o.getWithExplicit("domains"),"domains","scale",zk);const u=o.get("selectionExtent");i&&u&&i.param!==u.param&&Re(V8e),i=u}}e[n].setWithExplicit("domains",r),i&&e[n].set("selectionExtent",i,!0)}}function Rst(t,e,n,r){if(t==="unaggregated"){const{valid:i,reason:s}=U0e(e,n);if(!i){Re(s);return}}else if(t===void 0&&r.useUnaggregatedDomain){const{valid:i}=U0e(e,n);if(i)return"unaggregated"}return t}function Ost(t,e){const n=t.getScaleComponent(e).get("type"),{encoding:r}=t,i=Rst(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"&&ur(r.x2)?ur(r.x)?Vc(ef(n,i,t,"x"),ef(n,i,t,"x2"),"domain","scale",zk):ef(n,i,t,"x2"):e==="y"&&ur(r.y2)?ur(r.y)?Vc(ef(n,i,t,"y"),ef(n,i,t,"y2"),"domain","scale",zk):ef(n,i,t,"y2"):ef(n,i,t,e)}function Nst(t,e,n){return t.map(r=>({signal:`{data: ${O6(r,{timeUnit:n,type:e})}}`}))}function qk(t,e,n){var r;const i=(r=Ri(n))===null||r===void 0?void 0:r.unit;return e==="temporal"||i?Nst(t,e,i):[t]}function ef(t,e,n,r){const{encoding:i}=n,s=ur(i[r]),{type:o}=s,u=s.timeUnit;if(Ket(e)){const f=ef(t,void 0,n,r),x=qk(e.unionWith,o,u);return ja([...f.value,...x])}else{if(Ye(e))return ja([e]);if(e&&e!=="unaggregated"&&!tae(e))return ja(qk(e,o,u))}const a=n.stack;if(a&&r===a.fieldChannel){if(a.offset==="normalize")return Vs([[0,1]]);const f=n.requestDataName(Jt.Main);return Vs([{data:f,field:n.vgField(r,{suffix:"start"})},{data:f,field:n.vgField(r,{suffix:"end"})}])}const l=xc(r)&&Ie(s)?Fst(n,r,t):void 0;if(Ba(s)){const f=qk([s.datum],o,u);return Vs(f)}const c=s;if(e==="unaggregated"){const f=n.requestDataName(Jt.Main),{field:x}=s;return Vs([{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 Vs(t==="bin-ordinal"?[]:[{data:G5(l)?n.requestDataName(Jt.Main):n.requestDataName(Jt.Raw),field:n.vgField(r,NE(c,r)?{binSuffix:"range"}:{}),sort:l===!0||!He(l)?{field:n.vgField(r,{}),op:"min"}:l}]);{const{bin:f}=c;if(Kt(f)){const x=$k(n,c.field,f);return Vs([new As(()=>{const h=n.getSignalName(x);return`[${h}.start, ${h}.stop]`})])}else return Vs([{data:n.requestDataName(Jt.Main),field:n.vgField(r,{})}])}}else if(c.timeUnit&&Ct(["time","utc"],t)&&_ae(c,Gn(n)?n.encoding[Dl(r)]:void 0,n.markDef,n.config)){const f=n.requestDataName(Jt.Main);return Vs([{data:f,field:n.vgField(r)},{data:f,field:n.vgField(r,{suffix:"end"})}])}else return Vs(l?[{data:G5(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 Hk(t,e){const{op:n,field:r,order:i}=t;return Object.assign(Object.assign({op:n??(e?"sum":A6)},r?{field:eu(r)}:{}),i?{order:i}:{})}function Dst(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=tae(i)&&i,u=jx(s)&&rC(s.extent)&&s.extent;(o||u)&&r.set("selectionExtent",o??u,!0)}function Fst(t,e,n){if(!Cr(n))return;const r=t.fieldDef(e),i=r.sort;if(Eae(i))return{op:"min",field:K1(r,e),order:"ascending"};const{stack:s}=t,o=s?new Set([...s.groupbyFields,...s.stackBy.map(u=>u.fieldDef.field)]):void 0;if($a(i)){const u=s&&!o.has(i.field);return Hk(i,u)}else if(yae(i)){const{encoding:u,order:a}=i,l=t.fieldDef(u),{aggregate:c,field:f}=l,x=s&&!o.has(f);if(Fl(c)||dc(c))return Hk({field:$e(l),order:a},x);if(s8(c)||!c)return Hk({op:c,field:f,order:a},x)}else{if(i==="descending")return{op:"min",field:t.vgField(e),order:"descending"};if(Ct(["ascending",void 0],i))return!0}}function U0e(t,e){const{aggregate:n,type:r}=t;return n?je(n)&&!w8e.has(n)?{valid:!1,reason:Swe(n)}:r==="quantitative"&&e==="log"?{valid:!1,reason:_we(t)}:{valid:!0}:{valid:!1,reason:vwe(t)}}function zk(t,e,n,r){return t.explicit&&e.explicit&&Re(Owe(n,r,t.value,e.value)),{explicit:t.explicit,value:[...t.value,...e.value]}}function wst(t){const e=_l(t.map(o=>wl(o)?Cst(o,["sort"]):o),_t),n=_l(t.map(o=>{if(wl(o)){const u=o.sort;return u!==void 0&&!G5(u)&&("op"in u&&u.op==="count"&&delete u.field,u.order==="ascending"&&delete u.order),u}}).filter(o=>o!==void 0),_t);if(e.length===0)return;if(e.length===1){const o=t[0];if(wl(o)&&n.length>0){let u=n[0];if(n.length>1)Re(BK),u=!0;else if(He(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=_l(n.map(o=>G5(o)||!("op"in o)||je(o.op)&&o.op in O8e?o:(Re(Dwe(o)),!0)),_t);let i;r.length===1?i=r[0]:r.length>1&&(Re(BK),i=!0);const s=_l(t.map(o=>wl(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 Qk(t){if(wl(t)&&je(t.field))return t.field;if(I8e(t)){let e;for(const n of t.fields)if(wl(n)&&je(n.field)){if(!e)e=n.field;else if(e!==n.field)return Re(Fwe),e}return Re(wwe),e}else if($8e(t)){Re(Lwe);const e=t.fields[0];return je(e)?e:void 0}}function K6(t,e){const r=t.component.scales[e].get("domains").map(i=>(wl(i)&&(i.data=t.lookupDataSource(i.data)),i));return wst(r)}var Lst=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 q0e(t){return ep(t)||Vk(t)?t.children.reduce((e,n)=>e.concat(q0e(n)),H0e(t)):H0e(t)}function H0e(t){return Te(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=Lst(i,["name","type","selectionExtent","domains","range","reverse"]),x=Ist(i.range,s,n,t),h=K6(t,n),p=u?Crt(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 Ist(t,e,n,r){if(Ir(n)){if(pc(t))return{step:{signal:`${e}_step`}}}else if(He(t)&&wl(t))return Object.assign(Object.assign({},t),{data:r.lookupDataSource(t.data)});return t}class z0e extends u0{constructor(e,n){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:I2(this.get("domains"),e=>_e(e)&&e.length===2&&e[0]<=0&&e[1]>=0)}}const $st=["range","scheme"];function Bst(t){const e=t.component.scales;for(const n of nC){const r=e[n];if(!r)continue;const i=kst(n,t);r.setWithExplicit("range",i)}}function Q0e(t,e){const n=t.fieldDef(e);if(n!=null&&n.bin){const{bin:r,field:i}=n,s=ls(e),o=t.getName(s);if(He(r)&&r.binned&&r.step!==void 0)return new As(()=>{const u=t.scaleName(e),a=`(domain("${u}")[1] - domain("${u}")[0]) / ${r.step}`;return`${t.getSignalName(o)} / (${a})`});if(Kt(r)){const u=$k(t,i,r);return new As(()=>{const a=t.getSignalName(u),l=`(${a}.stop - ${a}.start) / ${a}.step`;return`${t.getSignalName(o)} / (${l})`})}}}function kst(t,e){const n=e.specifiedScales[t],{size:r}=e,s=e.getScaleComponent(t).get("type");for(const f of $st)if(n[f]!==void 0){const x=NB(s,f),h=nae(t,f);if(!x)Re(IK(s,f,t));else if(h)Re(h);else switch(f){case"range":{const p=n.range;if(_e(p)){if(Ir(t))return ja(p.map(m=>{if(m==="width"||m==="height"){const g=e.getName(m),y=e.getSignalName.bind(e);return As.fromName(y,g)}return m}))}else if(He(p))return ja({data:e.requestDataName(Jt.Main),field:p.field,sort:{op:"min",field:e.vgField(t)}});return ja(p)}case"scheme":return ja(Pst(n[f]))}}const o=t===En||t==="xOffset"?"width":"height",u=r[o];if(Ma(u)){if(Ir(t))if(Cr(s)){const f=G0e(u,e,t);if(f)return ja({step:f})}else Re($K(o));else if(P2(t)){const f=t===oc?"x":"y";if(e.getScaleComponent(f).get("type")==="band"){const p=W0e(u,s);if(p)return ja(p)}}}const{rangeMin:a,rangeMax:l}=n,c=Mst(t,e);return(a!==void 0||l!==void 0)&&NB(s,"rangeMin")&&_e(c)&&c.length===2?ja([a??c[0],l??c[1]]):Vs(c)}function Pst(t){return Yet(t)?Object.assign({scheme:t.name},po(t,["name"])):{scheme:t}}function Mst(t,e){const{size:n,config:r,mark:i,encoding:s}=e,o=e.getSignalName.bind(e),{type:u}=ur(s[t]),l=e.getScaleComponent(t).get("type"),{domain:c,domainMid:f}=e.specifiedScales[t];switch(t){case En:case gr:{if(Ct(["point","band"],l)){const p=V0e(t,n,r.view);if(Ma(p))return{step:G0e(p,e,t)}}const x=ls(t),h=e.getName(x);return t===gr&&Ws(l)?[As.fromName(o,h),0]:[0,As.fromName(o,h)]}case oc:case B2:return jst(t,e,l);case Ol:{const x=e.component.scales[t].get("zero"),h=Y0e(i,x,r),p=Hst(i,n,e,r);return k1(l)?qst(h,p,Ust(l,r,c,t)):[h,p]}case nu:return[0,Math.PI*2];case kx:return[0,360];case oa:return[0,new As(()=>{const x=e.getSignalName("width"),h=e.getSignalName("height");return`min(${x},${h})/2`})];case lc:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case cc:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case as:return"symbol";case us:case la:case ca:return l==="ordinal"?u==="nominal"?"category":"ordinal":f!==void 0?"diverging":i==="rect"||i==="geoshape"?"heatmap":"ramp";case Nl:case uc:case ac:return[r.scale.minOpacity,r.scale.maxOpacity]}}function G0e(t,e,n){var r,i,s,o,u;const{encoding:a}=e,l=e.getScaleComponent(n),c=sK(n),f=a[c];if(rle({step:t,offsetIsDiscrete:st(f)&&Yue(f.type)})==="offset"&&Bae(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-${P8e(g)})`}}else return t.step}function W0e(t,e){if(rle({step:t,offsetIsDiscrete:Cr(e)})==="offset")return{step:t.step}}function jst(t,e,n){const r=t===oc?"x":"y",s=e.getScaleComponent(r).get("type"),o=e.scaleName(r);if(s==="band"){const u=V0e(r,e.size,e.config.view);if(Ma(u)){const a=W0e(u,n);if(a)return a}return[0,{signal:`bandwidth('${o}')`}]}else return JFe(`Cannot use ${t} scale if ${r} scale is not discrete.`)}function V0e(t,e,n){const r=t===En?"width":"height",i=e[r];return i||B6(n,r)}function Ust(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:(Re(qwe(r)),3)}}function qst(t,e,n){const r=()=>{const i=Ll(e),s=Ll(t),o=`(${i} - ${s}) / (${n} - 1)`;return`sequence(${s}, ${i} + ${o}, ${o})`};return Ye(e)?new As(r):{signal:r()}}function Y0e(t,e,n){if(e)return Ye(e)?{signal:`${e.signal} ? 0 : ${Y0e(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(sC("size",t))}const K0e=.95;function Hst(t,e,n,r){const i={x:Q0e(n,"x"),y:Q0e(n,"y")};switch(t){case"bar":case"tick":{if(r.scale.maxBandSize!==void 0)return r.scale.maxBandSize;const s=X0e(e,i,r.view);return nn(s)?s-1:new As(()=>`${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=X0e(e,i,r.view);return nn(s)?Math.pow(K0e*s,2):new As(()=>`pow(${K0e} * ${s.signal}, 2)`)}}throw new Error(sC("size",t))}function X0e(t,e,n){const r=Ma(t.width)?t.width.step:$6(n,"width"),i=Ma(t.height)?t.height.step:$6(n,"height");return e.x||e.y?new As(()=>`min(${[e.x?e.x.signal:r,e.y?e.y.signal:i].join(", ")})`):Math.min(r,i)}function J0e(t,e){Gn(t)?zst(t,e):tce(t,e)}function zst(t,e){const n=t.component.scales,{config:r,encoding:i,markDef:s,specifiedScales:o}=t;for(const u of Te(n)){const a=o[u],l=n[u],c=t.getScaleComponent(u),f=ur(i[u]),x=a[e],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=NB(h,e),y=nae(u,e);if(x!==void 0&&(g?y&&Re(y):Re(IK(h,e,u))),g&&y===void 0)if(x!==void 0){const E=f.timeUnit,A=f.type;switch(e){case"domainMax":case"domainMin":qx(a[e])||A==="temporal"||E?l.set(e,{signal:O6(a[e],{type:A,timeUnit:E})},!0):l.set(e,a[e],!0);break;default:l.copyKeyFromObject(e,a)}}else{const E=e in Z0e?Z0e[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:WB(i,u)}):r.scale[e];E!==void 0&&l.set(e,E,!1)}}}const Z0e={bins:({model:t,fieldOrDatumDef:e})=>Ie(e)?Qst(t,e):void 0,interpolate:({channel:t,fieldOrDatumDef:e})=>Gst(t,e.type),nice:({scaleType:t,channel:e,domain:n,domainMin:r,domainMax:i,fieldOrDatumDef:s})=>Wst(t,e,n,r,i,s),padding:({channel:t,scaleType:e,fieldOrDatumDef:n,markDef:r,config:i})=>Vst(t,e,i.scale,n,r,i.bar),paddingInner:({scalePadding:t,channel:e,markDef:n,scaleType:r,config:i,hasNestedOffsetScale:s})=>Yst(t,e,n.type,r,i.scale,s),paddingOuter:({scalePadding:t,channel:e,scaleType:n,scalePaddingInner:r,config:i,hasNestedOffsetScale:s})=>Kst(t,e,n,r,i.scale,s),reverse:({fieldOrDatumDef:t,scaleType:e,channel:n,config:r})=>{const i=Ie(t)?t.sort:void 0;return Xst(e,i,n,r.scale)},zero:({channel:t,fieldOrDatumDef:e,domain:n,markDef:r,scaleType:i})=>Jst(t,e,n,r,i)};function ece(t){Gn(t)?Bst(t):tce(t,"range")}function tce(t,e){const n=t.component.scales;for(const r of t.children)e==="range"?ece(r):J0e(r,e);for(const r of Te(n)){let i;for(const s of t.children){const o=s.component.scales[r];if(o){const u=o.getWithExplicit(e);i=Vc(i,u,e,"scale",Nle((a,l)=>{switch(e){case"range":return a.step&&l.step?a.step-l.step:0}return 0}))}}n[r].setWithExplicit(e,i)}}function Qst(t,e){const n=e.bin;if(Kt(n)){const r=$k(t,e.field,n);return new As(()=>t.getSignalName(r))}else if(Ti(n)&&jx(n)&&n.step!==void 0)return{step:n.step}}function Gst(t,e){if(Ct([us,la,ca],t)&&e!=="nominal")return"hcl"}function Wst(t,e,n,r,i,s){var o;if(!(!((o=Pa(s))===null||o===void 0)&&o.bin||_e(n)||i!=null||r!=null||Ct([Es.TIME,Es.UTC],t)))return Ir(e)?!0:void 0}function Vst(t,e,n,r,i,s){if(Ir(t)){if(mu(e)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:o,orient:u}=i;if(o==="bar"&&!(Ie(r)&&(r.bin||r.timeUnit))&&(u==="vertical"&&t==="x"||u==="horizontal"&&t==="y"))return s.continuousBandSize}if(e===Es.POINT)return n.pointPadding}}function Yst(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingInner:o,barBandPaddingInner:u,rectBandPaddingInner:a,bandWithNestedOffsetPaddingInner:l}=i;return s?l:er(o,n==="bar"?u:a)}else if(P2(e)&&r===Es.BAND)return i.offsetBandPaddingInner}}function Kst(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingOuter:o,bandWithNestedOffsetPaddingOuter:u}=i;if(s)return u;if(n===Es.BAND)return er(o,Ye(r)?{signal:`${r.signal}/2`}:r/2)}else if(P2(e)){if(n===Es.POINT)return .5;if(n===Es.BAND)return i.offsetBandPaddingOuter}}}function Xst(t,e,n,r){if(n==="x"&&r.xReverse!==void 0)return Ws(t)&&e==="descending"?Ye(r.xReverse)?{signal:`!${r.xReverse.signal}`}:!r.xReverse:r.xReverse;if(Ws(t)&&e==="descending")return!0}function Jst(t,e,n,r,i){if(!!n&&n!=="unaggregated"&&Ws(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"&&!k1(i))return!0;if(!(Ie(e)&&e.bin)&&Ct([...fa,...A8e],t)){const{orient:o,type:u}=r;return!(Ct(["bar","area","line","trail"],u)&&(o==="horizontal"&&t==="y"||o==="vertical"&&t==="x"))}return!1}function Zst(t,e,n,r,i=!1){const s=eot(e,n,r,i),{type:o}=t;return xc(e)?o!==void 0?ttt(e,o)?Ie(n)&&!ett(o,n.type)?(Re(Twe(o,s)),s):o:(Re(bwe(e,o,s)),s):s:null}function eot(t,e,n,r){var i;switch(e.type){case"nominal":case"ordinal":{if(k2(t)||i8(t)==="discrete")return t==="shape"&&e.type==="ordinal"&&Re(f8(t,"ordinal")),"ordinal";if(Ir(t)||P2(t)){if(Ct(["rect","bar","image","rule"],n.type)||r)return"band"}else if(n.type==="arc"&&t in r8)return"band";const s=n[ls(t)];return P1(s)||HB(e)&&(!((i=e.axis)===null||i===void 0)&&i.tickBand)?"band":"point"}case"temporal":return k2(t)?"time":i8(t)==="discrete"?(Re(f8(t,"temporal")),"ordinal"):Ie(e)&&e.timeUnit&&Ri(e.timeUnit).utc?"utc":"time";case"quantitative":return k2(t)?Ie(e)&&Kt(e.bin)?"bin-ordinal":"linear":i8(t)==="discrete"?(Re(f8(t,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(wK(e.type))}function tot(t,{ignoreRange:e}={}){nce(t),j0e(t);for(const n of Zet)J0e(t,n);e||ece(t)}function nce(t){Gn(t)?t.component.scales=not(t):t.component.scales=iot(t)}function not(t){const{encoding:e,mark:n,markDef:r}=t,i={};for(const s of nC){const o=ur(e[s]);if(o&&n===sae&&s===as&&o.type===B1)continue;let u=o&&o.scale;if(P2(s)){const a=oK(s);if(!WB(e,a)){u&&Re(fwe(s));continue}}if(o&&u!==null&&u!==!1){u??(u={});const a=WB(e,s),l=Zst(u,s,o,r,a);i[s]=new z0e(t.scaleName(`${s}`,!0),{value:l,explicit:u.type===l})}}return i}const rot=Nle((t,e)=>Kue(t)-Kue(e));function iot(t){var e,n;const r=t.component.scales={},i={},s=t.component.resolve;for(const o of t.children){nce(o);for(const u of Te(o.component.scales))if((e=(n=s.scale)[u])!==null&&e!==void 0||(n[u]=A0e(u,t)),s.scale[u]==="shared"){const a=i[u],l=o.component.scales[u].getWithExplicit("type");a?zet(a.value,l.value)?i[u]=Vc(a,l,"type","scale",rot):(s.scale[u]="independent",delete i[u]):i[u]=l}}for(const o of Te(i)){const u=t.scaleName(o,!0),a=i[o];r[o]=new z0e(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 Gk=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 Wk{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 Gn(t){return(t==null?void 0:t.type)==="unit"}function vu(t){return(t==null?void 0:t.type)==="facet"}function Vk(t){return(t==null?void 0:t.type)==="concat"}function ep(t){return(t==null?void 0:t.type)==="layer"}class Yk{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=cs(u),this.name=(a=e.name)!==null&&a!==void 0?a:i,this.title=hc(e.title)?{text:e.title}:e.title?cs(e.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new Wk,this.projectionNameMap=r?r.projectionNameMap:new Wk,this.signalNameMap=r?r.signalNameMap:new Wk,this.data=e.data,this.description=e.description,this.transforms=ort((l=e.transform)!==null&&l!==void 0?l:[]),this.layout=n==="layer"||n==="unit"?{}:dnt(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:v6(e)||(r==null?void 0:r.component.data.isFaceted)&&e.data===void 0},layoutSize:new u0,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},o?ut(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(){tot(this)}parseProjection(){L0e(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){O0e(this)}assembleEncodeFromView(e){const n=Gk(e,["style"]),r={};for(const i of Te(n)){const s=n[i];s!==void 0&&(r[i]=sn(s))}return r}assembleGroupEncodeEntry(e){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!e&&(this.description&&(n.description=sn(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=Gk(e,["spacing"]),{component:i,config:s}=this,o=vit(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 mo)e[r].title&&n.push(pit(this,r));for(const r of Nk)n=n.concat(git(this,r));return n}assembleAxes(){return rit(this.component.axes,this.config)}assembleLegends(){return D0e(this)}assembleProjections(){return Qit(this)}assembleTitle(){var e,n,r;const i=(e=this.title)!==null&&e!==void 0?e:{},{encoding:s}=i,o=Gk(i,["encoding"]),u=Object.assign(Object.assign(Object.assign({},hK(this.config.title).nonMarkTitleProperties),o),s?{encode:{update:s}}:{});if(u.text)return Ct(["unit","layer"],this.type)?Ct(["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||vu(this.parent)?q0e(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 yn((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(vu(this.parent)){const n=y0e(e),r=tC(n),i=this.component.scales[r];if(i&&!i.merged){const s=i.get("type"),o=i.get("range");if(Cr(s)&&pc(o)){const u=i.get("name"),a=K6(this,r),l=Qk(a);if(l){const c=$e({aggregate:"distinct",field:l},{expr:"datum"});return{signal:m0e(u,i,c)}}else return Re(l8(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(rK(e)&&xc(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(H8e(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 rce extends Yk{vgField(e,n={}){const r=this.fieldDef(e);if(r)return $e(r,n)}reduceFieldDef(e,n){return Htt(this.getMapping(),(r,i,s)=>{const o=Pa(i);return o?e(r,o,s):r},n)}forEachFieldDef(e,n){YB(this.getMapping(),(r,i)=>{const s=Pa(r);s&&e(s,i)},n)}}var sot=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 X6 extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(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 X6(null,ut(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 ${_t(this.transform)}`}assemble(){const e=this.transform,{density:n}=e,r=sot(e,["density"]);return Object.assign({type:"kde",field:n},r)}}class jE extends Ut{constructor(e,n){super(e),this.filter=n}clone(){return new jE(null,Object.assign({},this.filter))}static make(e,n){const{config:r,mark:i,markDef:s}=n;if(It("invalid",s,r)!=="filter")return null;const u=n.reduceFieldDef((a,l,c)=>{const f=xc(c)&&n.getScaleComponent(c);if(f){const x=f.get("type");Ws(x)&&l.aggregate!=="count"&&!Qc(i)&&(a[l.field]=l)}return a},{});return Te(u).length?new jE(e,u):null}dependentFields(){return new Set(Te(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${_t(this.filter)}`}assemble(){const e=Te(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 J6 extends Ut{constructor(e,n){super(e),this.transform=n,this.transform=ut(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 J6(this.parent,ut(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${_t(this.transform)}`}assemble(){const{flatten:e,as:n}=this.transform;return{type:"flatten",fields:e,as:n}}}class Z6 extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(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 Z6(null,ut(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${_t(this.transform)}`}assemble(){const{fold:e,as:n}=this.transform;return{type:"fold",fields:e,as:n}}}class tp extends Ut{constructor(e,n,r,i){super(e),this.fields=n,this.geojson=r,this.signal=i}clone(){return new tp(null,ut(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[[aa,ua],[go,ru]]){const s=i.map(o=>{const u=ur(n.encoding[o]);return Ie(u)?u.field:Ba(u)?{expr:`${u.datum}`}:yu(u)?{expr:`${u.value}`}:void 0});(s[0]||s[1])&&(e=new tp(e,s,null,n.getName(`geojson_${r++}`)))}if(n.channelHasField(as)){const i=n.typedFieldDef(as);i.type===B1&&(e=new tp(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} ${_t(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 UE extends Ut{constructor(e,n,r,i){super(e),this.projection=n,this.fields=r,this.as=i}clone(){return new UE(null,this.projection,ut(this.fields),ut(this.as))}static parseAll(e,n){if(!n.projectionName())return e;for(const r of[[aa,ua],[go,ru]]){const i=r.map(o=>{const u=ur(n.encoding[o]);return Ie(u)?u.field:Ba(u)?{expr:`${u.datum}`}:yu(u)?{expr:`${u.value}`}:void 0}),s=r[0]===go?"2":"";(i[0]||i[1])&&(e=new UE(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} ${_t(this.fields)} ${_t(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class qd extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new qd(null,ut(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 qd(e,n)}static makeFromEncoding(e,n){const r=n.encoding,i=r.x,s=r.y;if(Ie(i)&&Ie(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=Pae(n.mark,r);return new qd(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 ${_t(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:qnt(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 oot=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 eR extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(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 eR(null,ut(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 ${_t(this.transform)}`}assemble(){const e=this.transform,{loess:n,on:r}=e,i=oot(e,["loess","on"]);return Object.assign({type:"loess",x:r,y:n},i)}}class qE extends Ut{constructor(e,n,r){super(e),this.transform=n,this.secondary=r}clone(){return new qE(null,ut(this.transform),this.secondary)}static make(e,n,r,i){const s=n.component.data.sources,{from:o}=r;let u=null;if(Hnt(o)){let a=uce(o.data,s);a||(a=new Md(o.data),s.push(a));const l=n.getName(`lookup_${i}`);u=new zi(a,l,Jt.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=u}else if(znt(o)){const a=o.param;r=Object.assign({as:a},r);let l;try{l=n.getSelectionComponent(yn(a),a)}catch{throw new Error(G8e(a))}if(u=l.materialized,!u)throw new Error(W8e(a))}return new qE(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 ${_t({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)||(Re(twe),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 uot=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 tR extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(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 tR(null,ut(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 ${_t(this.transform)}`}assemble(){const e=this.transform,{quantile:n}=e,r=uot(e,["quantile"]);return Object.assign({type:"quantile",field:n},r)}}var aot=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 nR extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(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 nR(null,ut(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 ${_t(this.transform)}`}assemble(){const e=this.transform,{regression:n,on:r}=e,i=aot(e,["regression","on"]);return Object.assign({type:"regression",x:r,y:n},i)}}class rR extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new rR(null,ut(this.transform))}addDimensions(e){var n;this.transform.groupby=_l(((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 ${_t(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 iR extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new iR(null,ut(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${_t(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function ice(t){let e=0;function n(r,i){var s;if(r instanceof Md&&!r.isGenerator&&!H1(r.data)&&(t.push(i),i={name:null,source:i.name,transform:[]}),r instanceof ai&&(r.parent instanceof Md&&!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 J1){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 kE||r instanceof PE||r instanceof jE||r instanceof V1||r instanceof Y1||r instanceof UE||r instanceof Eu||r instanceof qE||r instanceof Z1||r instanceof Ud||r instanceof Z6||r instanceof J6||r instanceof X6||r instanceof eR||r instanceof tR||r instanceof nR||r instanceof Zc||r instanceof iR||r instanceof rR)&&i.transform.push(r.assemble()),(r instanceof qa||r instanceof Ua||r instanceof qd||r instanceof a0||r instanceof tp)&&i.transform.push(...r.assemble()),r instanceof zi&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof zi?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 zi&&(!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 lot(t){const e=[],n=ice(e);for(const r of t.children)n(r,{source:t.name,name:null,transform:[]});return e}function cot(t,e){var n,r;const i=[],s=ice(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 fot(t){return t==="top"||t==="left"||Ye(t)?"header":"footer"}function xot(t){for(const e of mo)dot(t,e);oce(t,"x"),oce(t,"y")}function dot(t,e){var n;const{facet:r,config:i,child:s,component:o}=t;if(t.channelHasField(e)){const u=r[e],a=X1("title",null,i,e);let l=M1(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=X1("labelOrient",u.header,i,e),f=u.header!==null?er((n=u.header)===null||n===void 0?void 0:n.labels,i.header.labels,!0):!1,x=Ct(["bottom","right"],c)?"footer":"header";o.layoutHeaders[e]={title:u.header!==null?l:null,facetFieldDef:u,[x]:e==="facet"?[]:[sce(t,e,f)]}}}function sce(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 oce(t,e){var n;const{child:r}=t;if(r.component.axes[e]){const{layoutHeaders:i,resolve:s}=t.component;if(s.axis[e]=Lk(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=fot(a.get("orient"));(n=u[l])!==null&&n!==void 0||(u[l]=[sce(t,o,!1)]);const c=BE(a,"main",t.config,{header:!0});c&&u[l][0].axes.push(c),a.mainExtracted=!0}}}}function hot(t){Kk(t),sR(t,"width"),sR(t,"height")}function pot(t){Kk(t);const e=t.layout.columns===1?"width":"childWidth",n=t.layout.columns===void 0?"height":"childHeight";sR(t,e),sR(t,n)}function Kk(t){for(const e of t.children)e.parseLayoutSize()}function sR(t,e){var n;const r=y0e(e),i=tC(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:A0e(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=Vc(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 got(t){const{size:e,component:n}=t;for(const r of fa){const i=ls(r);if(e[i]){const s=e[i];n.layoutSize.set(i,Ma(s)?"step":s,!0)}else{const s=mot(t,i);n.layoutSize.set(i,s,!1)}}}function mot(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=B6(r.view,e);return pc(o)||Ma(u)?"step":u}else return uk(r.view,e)}else{if(t.hasProjection||t.mark==="arc")return uk(r.view,e);{const s=B6(r.view,e);return Ma(s)?s.step:s}}}function Xk(t,e,n){return $e(e,Object.assign({suffix:`by_${$e(t)}`},n??{}))}class HE extends rce{constructor(e,n,r,i){super(e,"facet",n,r,i,e.resolve),this.child=nP(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!RE(e))return{facet:this.initFacetFieldDef(e,"facet")};const n=Te(e),r={};for(const i of n){if(![Cl,bl].includes(i)){Re(sC(i,"facet"));break}const s=e[i];if(s.field===void 0){Re(c8(s,i));break}r[i]=this.initFacetFieldDef(s,i)}return r}initFacetFieldDef(e,n){const r=GB(e,n);return r.header?r.header=cs(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=oR(this),this.child.parseData()}parseLayoutSize(){Kk(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),xot(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 mo)for(const o of Dk){const u=this.component.layoutHeaders[s],a=u[o],{facetFieldDef:l}=u;if(l){const c=X1("titleOrient",l.header,this.config,s);if(["right","bottom"].includes(c)){const f=G6(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 HE))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof HE?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 HE){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 fa){const s=this.child.component.scales[i];if(s&&!s.merged){const o=s.get("type"),u=s.get("range");if(Cr(o)&&pc(u)){const a=K6(this.child,i),l=Qk(a);l?(e.push(l),n.push("distinct"),r.push(`distinct_${l}`)):Re(l8(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 mo){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"})),$a(h)){const{field:p,op:m=A6}=h,g=Xk(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=K1(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?$a(r.sort)?[Xk(r,r.sort,{expr:"datum"})]:_e(r.sort)?[K1(r,e,{expr:"datum"})]:[$e(r,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:n}=this,r=n[e];if(r){const{sort:i}=r;return[($a(i)?i.order:!_e(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:n,config:r}=this;if(n.facet)return Fk(n.facet,"facet",r);const i={row:["top","bottom"],column:["left","right"]};for(const s of Nk)if(n[s]){const o=X1("labelOrient",(e=n[s])===null||e===void 0?void 0:e.header,r,s);if(i[s].includes(o))return Fk(n[s],s,r)}}assembleMarks(){const{child:e}=this,n=this.component.data.facetRoot,r=lot(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:mo.map(a=>this.facetSortFields(a)).flat(),order:mo.map(a=>this.facetSortOrder(a)).flat()}}),r.length>0?{data:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup(Art(this,[])))]}getMapping(){return this.facet}}function yot(t,e){const{row:n,column:r}=e;if(n&&r){let i=null;for(const s of[n,r])if($a(s.sort)){const{field:o,op:u=A6}=s.sort;t=i=new Ud(t,{joinaggregate:[{op:u,field:o,as:Xk(s,s.sort,{forAs:!0})}],groupby:[$e(s)]})}return i}return null}function uce(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(wE(t)&&wE(u)){if(Sl(t.values,u.values))return o}else if(H1(t)&&H1(u)){if(t.url===u.url)return o}else if(Dle(t)&&t.name===o.dataName)return o}}return null}function Eot(t,e){if(t.data||!t.parent){if(t.data===null){const r=new Md({values:[]});return e.push(r),r}const n=uce(t.data,e);if(n)return Yc(t.data)||(n.data.format=ZFe({},t.data.format,n.data.format)),!n.hasName()&&t.data.name&&(n.dataName=t.data.name),n;{const r=new Md(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 Aot(t,e,n){var r,i;let s=0;for(const o of e.transforms){let u,a;if(ert(o))a=t=new Y1(t,o),u="derived";else if(xk(o)){const l=sst(o);a=t=(r=ai.makeWithAncestors(t,{},l,n))!==null&&r!==void 0?r:t,t=new V1(t,e,o.filter)}else if(Sle(o))a=t=qa.makeFromTransform(t,o,e),u="number";else if(nrt(o))u="date",n.getWithExplicit(o.field).value===void 0&&(t=new ai(t,{[o.field]:u}),n.set(o.field,u,!1)),a=t=Ua.makeFromTransform(t,o);else if(rrt(o))a=t=Eu.makeFromTransform(t,o),u="number",Ck(e)&&(t=new Zc(t));else if(vle(o))a=t=qE.make(t,e,o,s++),u="derived";else if(Xnt(o))a=t=new Z1(t,o),u="number";else if(Jnt(o))a=t=new Ud(t,o),u="number";else if(irt(o))a=t=a0.makeFromTransform(t,o),u="derived";else if(srt(o))a=t=new Z6(t,o),u="derived";else if(Znt(o))a=t=new J6(t,o),u="derived";else if(Qnt(o))a=t=new rR(t,o),u="derived";else if(Knt(o))t=new iR(t,o);else if(trt(o))a=t=qd.makeFromTransform(t,o),u="derived";else if(Gnt(o))a=t=new X6(t,o),u="derived";else if(Wnt(o))a=t=new tR(t,o),u="derived";else if(Vnt(o))a=t=new nR(t,o),u="derived";else if(Ynt(o))a=t=new eR(t,o),u="derived";else{Re(ewe(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 oR(t){var e,n,r,i,s,o,u,a,l,c;let f=Eot(t,t.component.data.sources);const{outputNodes:x,outputNodeRefCounts:h}=t.component.data,p=t.data,g=!(p&&(Yc(p)||H1(p)||wE(p)))&&t.parent?t.parent.component.data.ancestorParse.clone():new mrt;Yc(p)?(Fle(p)?f=new PE(f,p.sequence):pk(p)&&(f=new kE(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=ai.makeExplicit(f,t,g))!==null&&n!==void 0?n:f,f=new Zc(f);const y=t.parent&&ep(t.parent);(Gn(t)||vu(t))&&y&&(f=(r=qa.makeFromEncoding(f,t))!==null&&r!==void 0?r:f),t.transforms.length>0&&(f=Aot(f,t,g));const E=ust(t),A=ost(t);f=(i=ai.makeWithAncestors(f,{},Object.assign(Object.assign({},E),A),g))!==null&&i!==void 0?i:f,Gn(t)&&(f=tp.parseAll(f,t),f=UE.parseAll(f,t)),(Gn(t)||vu(t))&&(y||(f=(s=qa.makeFromEncoding(f,t))!==null&&s!==void 0?s:f),f=(o=Ua.makeFromEncoding(f,t))!==null&&o!==void 0?o:f,f=Y1.parseAllForSortIndex(f,t));const v=t.getDataName(Jt.Raw),S=new zi(f,v,Jt.Raw,h);if(x[v]=S,f=S,Gn(t)){const R=Eu.makeFromEncoding(f,t);R&&(f=R,Ck(t)&&(f=new Zc(f))),f=(u=qd.makeFromEncoding(f,t))!==null&&u!==void 0?u:f,f=(a=a0.makeFromEncoding(f,t))!==null&&a!==void 0?a:f}Gn(t)&&(f=(l=jE.make(f,t))!==null&&l!==void 0?l:f);const C=t.getDataName(Jt.Main),_=new zi(f,C,Jt.Main,h);x[C]=_,f=_,Gn(t)&&tit(t,_);let b=null;if(vu(t)){const R=t.getName("facet");f=(c=yot(f,t.facet))!==null&&c!==void 0?c:f,b=new J1(f,t,R,_.getSource()),x[R]=b}return Object.assign(Object.assign({},t.component.data),{outputNodes:x,outputNodeRefCounts:h,raw:S,main:_,facetRoot:b,ancestorParse:g})}class vot extends Yk{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")&&Re(X8e),this.children=this.getChildren(e).map((l,c)=>nP(l,this,this.getName(`concat_${c}`),void 0,i))}parseData(){this.component.data=oR(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 Te(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 I6(e)?e.vconcat:ok(e)?e.hconcat:e.concat}parseLayoutSize(){pot(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=wk(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 Sot(t){return t===!1||t===null}const _ot=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},Lae),{labelExpr:1,encode:1}),ace=Te(_ot);class Jk extends u0{constructor(e={},n={},r=!1){super(),this.explicit=e,this.implicit=n,this.mainExtracted=r}clone(){return new Jk(ut(this.explicit),ut(this.implicit),this.mainExtracted)}hasAxisPart(e){return e==="axis"?!0:e==="grid"||e==="title"?!!this.get(e):!Sot(this.get(e))}hasOrientSignalRef(){return Ye(this.explicit.orient)}}function Cot(t,e,n){var r;const{encoding:i,config:s}=t,o=(r=ur(i[e]))!==null&&r!==void 0?r:ur(i[Dl(e)]),u=t.axis(e)||{},{format:a,formatType:l}=u;return $d(l)?Object.assign({text:kB({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:l,config:s})},n):n}function bot(t){return fa.reduce((e,n)=>(t.component.scales[n]&&(e[n]=[wot(n,t)]),e),{})}const Tot={bottom:"top",top:"bottom",left:"right",right:"left"};function Rot(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 Te(s.component.axes))r.axis[o]=Lk(t.component.resolve,o),r.axis[o]==="shared"&&(n[o]=Oot(n[o],s.component.axes[o]),n[o]||(r.axis[o]="independent",delete n[o]))}for(const s of fa){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=Tot[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 Oot(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]=Not(i,s)}}}else return e.map(n=>n.clone());return t}function Not(t,e){for(const n of ace){const r=Vc(t.getWithExplicit(n),e.getWithExplicit(n),n,"axis",(i,s)=>{switch(n){case"title":return _K(i,s);case"gridScale":return{explicit:i.explicit,value:er(i.value,s.value)}}return P6(i,s,n,"axis")});t.setWithExplicit(n,r)}return t}function Dot(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:Y5(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(t===x0e(r,i))return!0}return t===n[e]}const Fot=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function wot(t,e){var n,r,i;let s=e.axis(t);const o=new Jk,u=ur(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)||fit(t),f=e.getScaleComponent(t).get("type"),x=iit(t,f,c,e.config),h=s!==void 0?!s:Rk("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=ait(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 ace){const A=E in l0e?l0e[E](m):Iae(E)?s[E]:void 0,v=A!==void 0,S=Dot(A,E,s,e,t);if(v&&S)o.set(E,A,S);else{const{configValue:C=void 0,configFrom:_=void 0}=Iae(E)&&E!=="values"?Rk(E,l.style,s.style,x):{},b=C!==void 0;v&&!b?o.set(E,A,S):(_!=="vgAxisConfig"||Fot.has(E)&&b||DE(C)||Ye(C))&&o.set(E,C,!1)}}const g=(i=s.encoding)!==null&&i!==void 0?i:{},y=wae.reduce((E,A)=>{var v;if(!o.hasAxisPart(A))return E;const S=E0e((v=g[A])!==null&&v!==void 0?v:{},e),C=A==="labels"?Cot(e,t,S):S;return C!==void 0&&!Wt(C)&&(E[A]={update:C}),E},{});return Wt(y)||o.set("encode",y,!!s.encoding||s.labelAngle!==void 0),o}function Lot({encoding:t,size:e}){for(const n of fa){const r=ls(n);Ma(e[r])&&ka(t[n])&&(delete e[r],Re($K(r)))}return e}function Iot(t,e,n){const r=cs(t),i=It("orient",r,n);if(r.orient=Pot(r.type,e,i),i!==void 0&&i!==r.orient&&Re(ywe(r.orient,i)),r.type==="bar"&&r.orient){const u=It("cornerRadiusEnd",r,n);if(u!==void 0){const a=r.orient==="horizontal"&&e.x2||r.orient==="vertical"&&e.y2?["cornerRadius"]:ftt[r.orient];for(const l of a)r[l]=u;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}return It("opacity",r,n)===void 0&&(r.opacity=Bot(r.type,e)),It("cursor",r,n)===void 0&&(r.cursor=$ot(r,e,n)),r}function $ot(t,e,n){return e.href||t.href||It("href",t,n)?"pointer":t.cursor}function Bot(t,e){if(Ct([g6,DB,FB,wB],t)&&!VB(e))return .7}function kot(t,e,{graticule:n}){if(n)return!1;const r=Ux("filled",t,e),i=t.type;return er(r,i!==g6&&i!==p6&&i!==m6)}function Pot(t,e,n){switch(t){case g6:case FB:case wB:case iae:case rtt:case ntt:return}const{x:r,y:i,x2:s,y2:o}=e;switch(t){case h6:if(Ie(r)&&(Ti(r.bin)||Ie(i)&&i.aggregate&&!r.aggregate))return"vertical";if(Ie(i)&&(Ti(i.bin)||Ie(r)&&r.aggregate&&!i.aggregate))return"horizontal";if(o||s){if(n)return n;if(!s&&(Ie(r)&&r.type===Ld&&!Kt(r.bin)||qB(r)))return"horizontal";if(!o&&(Ie(i)&&i.type===Ld&&!Kt(i.bin)||qB(i)))return"vertical"}case m6:if(s&&!(Ie(r)&&Ti(r.bin))&&o&&!(Ie(i)&&Ti(i.bin)))return;case d6:if(o)return Ie(i)&&Ti(i.bin)?"horizontal":"vertical";if(s)return Ie(r)&&Ti(r.bin)?"vertical":"horizontal";if(t===m6){if(r&&!i)return"vertical";if(i&&!r)return"horizontal"}case p6:case DB:{const u=ka(r),a=ka(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===$1,x=c.type===$1;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 Mot={vgMark:"arc",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),Xc(t,"radius")),Xc(t,"theta"))},jot={vgMark:"area",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),j6("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"})),j6("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"})),Sk(t))},Uot={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Xc(t,"x")),Xc(t,"y"))},qot={vgMark:"shape",encodeEntry:t=>Object.assign({},Fo(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&&Ie(n)&&n.type===B1?{field:$e(n,{expr:"datum"})}:{})]}},Hot={vgMark:"image",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),Xc(t,"x")),Xc(t,"y")),Ak(t,"url"))},zot={vgMark:"line",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t,{vgChannel:"strokeWidth"})),Sk(t))},Qot={vgMark:"trail",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t)),Sk(t))};function Zk(t,e){const{config:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t)),br("angle",t)),Got(t,n,e))}function Got(t,e,n){return n?{shape:{value:n}}:br("shape",t)}const Wot={vgMark:"symbol",encodeEntry:t=>Zk(t)},Vot={vgMark:"symbol",encodeEntry:t=>Zk(t,"circle")},Yot={vgMark:"symbol",encodeEntry:t=>Zk(t,"square")},Kot={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Xc(t,"x")),Xc(t,"y"))},Xot={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({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),j6("x",t,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"})),j6("y",t,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"})),br("size",t,{vgChannel:"strokeWidth"}))}},Jot={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({},Fo(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),Ak(t)),br("size",t,{vgChannel:"fontSize"})),br("angle",t)),zle("align",Zot(t.markDef,n,e))),zle("baseline",eut(t.markDef,n,e))),ui("radius",t,{defaultPos:null})),ui("theta",t,{defaultPos:null}))}};function Zot(t,e,n){if(It("align",t,n)===void 0)return"center"}function eut(t,e,n){if(It("baseline",t,n)===void 0)return"middle"}const tut={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({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid",vgChannel:"xc"})),ui("y",t,{defaultPos:"mid",vgChannel:"yc"})),br("size",t,{defaultValue:nut(t),vgChannel:i})),{[s]:sn(It("thickness",n,e))})}};function nut(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=It("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&&pc(a)&&nn(a.step)?a.step*3/4:$6(n.view,s)*3/4}}const uR={arc:Mot,area:jot,bar:Uot,circle:Vot,geoshape:qot,image:Hot,line:zot,point:Wot,rect:Kot,rule:Xot,square:Yot,text:Jot,tick:tut,trail:Qot};function rut(t){if(Ct([p6,d6,itt],t.mark)){const e=Pae(t.mark,t.encoding);if(e.length>0)return iut(t,e)}else if(t.mark===h6){const e=o8.some(n=>It(n,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&e)return sut(t)}return eP(t)}const lce="faceted_path_";function iut(t,e){return[{name:t.getName("pathgroup"),type:"group",from:{facet:{name:lce+t.requestDataName(Jt.Main),data:t.requestDataName(Jt.Main),groupby:e}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:eP(t,{fromPrefix:lce})}]}const cce="stack_group_";function sut(t){var e;const[n]=eP(t,{fromPrefix:cce}),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({},_3(n.encode.update,["y","yc","y2","height",...o8])),{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({},po(n.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(o=Object.assign(Object.assign({},_3(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({},po(n.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const c of o8){const f=Ux(c,t.markDef,t.config);n.encode.update[c]?(o[c]=n.encode.update[c],delete n.encode.update[c]):f&&(o[c]=sn(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=Ux(f,t.markDef,t.config);return x!==void 0?Object.assign(Object.assign({},c),{[f]:sn(x)}):c}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:t.requestDataName(Jt.Main),name:cce+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 out(t){var e;const{encoding:n,stack:r,mark:i,markDef:s,config:o}=t,u=n.order;if(!(!_e(u)&&yu(u)&&WY(u.value)||!u&&WY(It("order",s,o)))){if((_e(u)||Ie(u))&&!r)return AK(u,{expr:"datum"});if(Qc(i)){const a=s.orient==="horizontal"?"y":"x",l=n[a];if(Ie(l)){const c=l.sort;if(_e(c))return{field:$e(l,{prefix:a,suffix:"sort_index",expr:"datum"})};if($a(c))return{field:$e({aggregate:VB(t.encoding)?c.op:void 0,field:c.field},{expr:"datum"})};if(yae(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 eP(t,e={fromPrefix:""}){const{mark:n,markDef:r,encoding:i,config:s}=t,o=er(r.clip,uut(t),aut(t)),u=yK(r),a=i.key,l=out(t),c=lut(t),f=It("aria",r,s),x=uR[n].postEncodingTransform?uR[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:uR[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:uR[n].encodeEntry(t)}}),x?{transform:x}:{})]}function uut(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 aut(t){const e=t.component.projection;return e&&!e.isFit?!0:void 0}function lut(t){if(!t.component.selection)return null;const e=Te(t.component.selection).length;let n=e,r=t.parent;for(;r&&n===0;)n=Te(r.component.selection).length,r=r.parent;return n?{interactive:e>0||!!t.encoding.tooltip}:null}class fce extends rce{constructor(e,n,r,i={},s){var o;super(e,"unit",n,r,s,void 0,ile(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const u=Ia(e.mark)?Object.assign({},e.mark):{type:e.mark},a=u.type;u.filled===void 0&&(u.filled=kot(u,s,{graticule:e.data&&pk(e.data)}));const l=this.encoding=Utt(e.encoding||{},a,u.filled,s);this.markDef=Iot(u,l,s),this.size=Lot({encoding:l,size:ile(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=xle(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=>ik(c))}get hasProjection(){const{encoding:e}=this,n=this.mark===sae,r=e&&f8e.some(i=>st(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 nC.reduce((r,i)=>{var s;const o=ur(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=cs(e);return _e(n)&&(i.domain=n.map(Ps)),_e(r)&&(i.range=r.map(Ps)),i}initAxes(e){return fa.reduce((n,r)=>{const i=e[r];if(st(i)||r===En&&st(e.x2)||r===gr&&st(e.y2)){const s=st(i)?i.axis:void 0;n[r]=s&&this.initAxis(Object.assign({},s))}return n},{})}initAxis(e){const n=Te(e),r={};for(const i of n){const s=e[i];r[i]=DE(s)?pK(s):Ps(s)}return r}initLegends(e){return v8e.reduce((n,r)=>{const i=ur(e[r]);if(i&&_8e(r)){const s=i.legend;n[r]=s&&cs(s)}return n},{})}parseData(){this.component.data=oR(this)}parseLayoutSize(){got(this)}parseSelections(){this.component.selection=eit(this,this.selection)}parseMarkGroup(){this.component.mark=rut(this)}parseAxesAndHeaders(){this.component.axes=bot(this)}assembleSelectionTopLevelSignals(e){return vrt(this,e)}assembleSignals(){return[...u0e(this),...Ert(this,[])]}assembleSelectionData(e){return Srt(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return wk(this)}assembleMarks(){var e;let n=(e=this.component.mark)!==null&&e!==void 0?e:[];return(!this.parent||!ep(this.parent))&&(n=Lle(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 kd(this.encoding,e)}fieldDef(e){const n=this.encoding[e];return Pa(n)}typedFieldDef(e){const n=this.fieldDef(e);return Do(n)?n:null}}class tP extends Yk{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(k6(u))return new tP(u,this,this.getName(`layer_${a}`),o,s);if(s0(u))return new fce(u,this,this.getName(`layer_${a}`),o,s);throw new Error(a8(u))})}parseData(){this.component.data=oR(this);for(const e of this.children)e.parseData()}parseLayoutSize(){hot(this)}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of Te(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){Rot(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleSignals()),u0e(this))}assembleLayoutSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleLayoutSignals()),wk(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 _rt(this,this.children.flatMap(e=>e.assembleMarks()))}assembleLegends(){return this.children.reduce((e,n)=>e.concat(n.assembleLegends()),D0e(this))}}function nP(t,e,n,r,i){if(v6(t))return new HE(t,e,n,i);if(k6(t))return new tP(t,e,n,r,i);if(s0(t))return new fce(t,e,n,r,i);if(fnt(t))return new vot(t,e,n,i);throw new Error(a8(t))}var cut=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 xce(t,e={}){e.logger&&Hwe(e.logger),e.fieldTitle&&Oae(e.fieldTitle);try{const n=cle(HF(e.config,t.config)),r=art(t,n),i=nP(r,null,"",void 0,n);return i.parse(),_st(i.component.data,i),{spec:xut(i,fut(t,r.autosize,n,i),t.datasets,t.usermeta),normalized:r}}finally{e.logger&&zwe(),e.fieldTitle&&wtt()}}function fut(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&&hrt(e.type)){if(i==="step"&&s==="step")Re(TK()),e.type="pad";else if(i==="step"||s==="step"){const o=i==="step"?"width":"height";Re(TK(tC(o)));const u=o==="width"?"height":"width";e.type=prt(u)}}return Object.assign(Object.assign(Object.assign({},Te(e).length===1&&e.type?e.type==="pad"?{}:{autosize:e.type}:{autosize:e}),Ole(n,!1)),Ole(t,!0))}function xut(t,e,n={},r){const i=t.config?Cnt(t.config):void 0,s=[].concat(t.assembleSelectionData([]),cot(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=cut(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([]),...nle(f)])),i?{config:i}:{}),r?{usermeta:r}:{})}class zE{constructor(e,n,r,i={},s){this.document=e,this.styleDefaults=n,this.options=r,this.timezone=s,this.size=i.size||this.styleDefaults.size||"medium"}mapData(e){const n=[];for(const r of e){const i={};for(const s of e.field.allFields){let o=this.getDataValue(r.cell(s));o instanceof Date&&(o=XDe(o,this.timezone)),i[s.name]=o}n.push(i)}return n}getSize(){return this.size==="large"?{height:350,width:500}:{height:175,width:250}}async render(e){if(!e.isArray())throw new Error("Invalid type for chart renderer");const n=this.getVegaLiteSpec(e),r=xce(n,{logger:{level(o){return o!==void 0?this:0},info(){return this},error(){return this},warn(){return this},debug(){return this}}}).spec,i=new Z$(Vue(r),{renderer:"none"});i.logger().level(-1);const s=this.document.createElement("div");return s.innerHTML=await i.toSVG(),s}}const dut={AL:"01",Alabama:"01",AK:"02",Alaska:"02",AZ:"04",Arizona:"04",AR:"05",Arkansas:"05",CA:"06",California:"06",CO:"08",Colorado:"08",CT:"09",Connecticut:"09",DE:"10",Delaware:"10",DC:"11","District of Columbia":"11",FL:"12",Florida:"12",GA:"13",Georgia:"13",HI:"15",Hawaii:"12",ID:"16",Idaho:"16",IL:"17",Illinois:"17",IN:"18",Indiana:"18",IA:"19",Iowa:"19",KS:"20",Kansas:"20",KY:"21",Kentucky:"21",LA:"22",Louisiana:"22",ME:"23",Maine:"23",MD:"24",Maryland:"24",MA:"25",Massachusetts:"25",MI:"26",Michigan:"26",MN:"27",Minnesota:"27",MS:"28",Mississippi:"28",MO:"29",Missouri:"29",MT:"30",Montana:"30",NE:"31",Nebraska:"31",NV:"32",Nevada:"32",NH:"33","New Hampshire":"33",NJ:"34","New Jersey":"34",NM:"35","New Mexico":"35",NY:"36","New York":"36",NC:"37","North Carolina":"37",ND:"38","North Dakota":"38",OH:"39",Ohio:"39",OK:"40",Oklahoma:"40",OR:"41",Oregon:"41",PA:"42",Pennsylvania:"42",RI:"44","Rhode Island":"44",SC:"45","South Carolina":"45",SD:"46","South Dakota":"46",TN:"47",Tennessee:"47",TX:"48",Texas:"48",UT:"49",Utah:"49",VT:"50",Vermont:"50",VA:"51",Virginia:"51",WA:"53",Washington:"53",WV:"54","West Virginia":"54",WI:"55",Wisconsin:"55",WY:"56",Wyoming:"56",PR:"72","Puerto Rico":"72",VI:"78",AS:"60",MP:"69",GU:"66"};class hut extends zE{getRegionField(e){return e.allFields[0]}getColorField(e){return e.allFields[1]}getDataValue(e){if(e.isNumber())return e.value;if(e.isString())if(e.field===this.getRegionField(e.field.parentExplore)){const n=dut[e.value];return n===void 0?void 0:n}else return e.value;else{if(e.isNull())return;throw new Error("Invalid field type for shape map.")}}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"nominal";if(e.isString())return e===this.getRegionField(e.parentExplore)?"quantitative":"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for shape map.")}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");if(!e.isArray())throw new Error("Invalid data for shape map");const n=this.getRegionField(e.field),r=this.getColorField(e.field),i=r?this.getDataType(r):void 0,s=r!==void 0?{field:r.name,type:i,axis:{title:os(this.options,r,void 0,this.timezone)},scale:ss(i,!1)}:void 0,o=this.mapData(e).filter(u=>u[n.name]!==void 0);return{...this.getSize(),data:{values:o},projection:{type:"albersUsa"},layer:[{data:{values:B5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"#efefef",stroke:"white"}},{transform:[{lookup:n.name,from:{data:{values:B5,format:{type:"topojson",feature:"states"}},key:"id"},as:"geo"}],mark:"geoshape",encoding:{shape:{field:"geo",type:"geojson"},color:s}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-font-family, Roboto)"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const OR=class OR extends fn{create(e,n,r,i,s,o){return new hut(e,n,r,s,o)}get rendererName(){return"shape_map"}};OR.instance=new OR;let rP=OR;class put extends zE{getDataValue(e){if(e.isNumber()||e.isString())return e.value;if(e.isTimestamp()||e.isDate())return F5(e.value,e.field.timeframe||wt.TimestampTimeframe.Second,this.timezone);throw new Error("Invalid field type for point map chart.")}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for point map.")}isTimeFieldDef(e){return!!(e.isAtomicField()&&(e.isDate()||e.isTimestamp()))}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=s?this.getDataType(s):void 0,l=o?this.getDataType(o):void 0,c=u?this.getDataType(u):void 0,f=s!==void 0?{field:s.name,type:a,axis:{title:os(this.options,s,void 0,this.timezone)},scale:ss(a,!1)}:void 0,x=o?{field:o.name,type:l,axis:{title:os(this.options,o,void 0,this.timezone)}}:{value:5},h=u?{field:u.name,type:c,axis:{title:os(this.options,u,void 0,this.timezone)}}:{value:"circle"};return{...this.getSize(),data:{values:this.mapData(e)},projection:{type:"albersUsa"},layer:[{data:{values:B5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"#efefef",stroke:"white"}},{mark:"point",encoding:{latitude:{field:r.name,type:"quantitative"},longitude:{field:i.name,type:"quantitative"},size:x,color:f,shape:h}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-Roboto"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const NR=class NR extends fn{create(e,n,r,i,s,o){return new put(e,n,r,s,o)}get rendererName(){return"point_map"}};NR.instance=new NR;let iP=NR;class gut{constructor(e){this.document=e}async render(e){if(!e.isString())return $s(this.document,"Invalid field for Image renderer");const{tag:n}=e.field.tagParse(),r=n.tag("image");if(!r)return $s(this.document,"Missing tag for Image renderer");const i=e.isNull()?p3(this.document):this.document.createElement("img"),s=r.text("width"),o=r.text("height");s&&(i.style.width=s),o&&(i.style.height=o);const u=i,a=r.tag("alt");if(a){const l=eFe({tag:a,data:e})??a.text();l&&(u.alt=l)}return e.isNull()||(u.src=e.value),i}}const DR=class DR extends fn{create(e,n,r,i,s){return new gut(e)}get rendererName(){return"image"}};DR.instance=new DR;let sP=DR;class mut extends zE{getDataValue(e){if(e.isNull()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for segment map.")}getDataType(e){if(e.isAtomicField()){if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for segment map.")}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=u?this.getDataType(u):void 0,l=u!==void 0?{field:u.name,type:a,axis:{title:os(this.options,u,void 0,this.timezone)},scale:ss(a,!1)}:void 0;return{...this.getSize(),data:{values:this.mapData(e)},projection:{type:"albersUsa"},layer:[{data:{values:B5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"lightgray",stroke:"white"}},{mark:"line",encoding:{latitude:{field:r.name,type:"quantitative"},longitude:{field:i.name,type:"quantitative"},latitude2:{field:s.name,type:"quantitative"},longitude2:{field:o.name,type:"quantitative"},color:l}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-font-family, Roboto)"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const FR=class FR extends fn{create(e,n,r,i,s,o){return new mut(e,n,r,s,o)}get rendererName(){return"segment_map"}};FR.instance=new FR;let oP=FR;const tf={$schema:"https://vega.github.io/schema/vega-lite/v5.json",config:{params:[{name:"defaultFont",value:"var(--malloy-font-family, 'Roboto')"},{name:"titleColor",value:"var(--malloy-title-color, #505050)"},{name:"labelColor",value:"var(--malloy-label-color, #505050)"}],background:void 0,color:{expr:"titleColor"},header:{labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"},titleFontWeight:500},text:{font:{expr:"defaultFont"},color:{expr:"labelColor"}},mark:{font:{expr:"defaultFont"},color:{expr:"labelColor"}},title:{font:{expr:"defaultFont"},subtitleFont:{expr:"defaultFont"},fontWeight:500},axis:{labelColor:{expr:"labelColor"},labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"},titleFontWeight:500,titleColor:{expr:"titleColor"},titleFontSize:12},legend:{titleFontWeight:500,titleColor:{expr:"titleColor"},titleFontSize:12,labelColor:{expr:"labelColor"},labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"}}}},nf={config:tf.config,encoding:{y:{field:"#{1}",type:"nominal",axis:null,sort:null}},layer:[{mark:{type:"bar",color:"#aec7e8"},encoding:{x:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}},{mark:{type:"text",align:"left",x:5},encoding:{text:{field:"#{1}"}}}]},aR={...tf,mark:"bar",data:[],encoding:{x:{field:"#{1}",type:"nominal",sort:null},y:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}};({...aR,encoding:{...aR.encoding,color:ss("quantitative",!0,!0)}},{...aR,encoding:{...aR.encoding,color:ss("nominal",!0,!0)}}),{...nf,layer:({...nf.layer[0],encoding:{...nf.layer[0].encoding,color:ss("nominal",!0,!0)}},nf.layer[1])},{...nf,layer:({...nf.layer[0],encoding:{...nf.layer[0].encoding,color:ss("quantitative",!0,!0)}},nf.layer[1])};const lR={...tf,mark:"bar",data:[],encoding:{x:{field:"#{1}",type:"nominal",sort:null},y:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}};({...lR,encoding:{...lR.encoding,color:ss("nominal",!0)}},{...lR,encoding:{...lR.encoding,color:ss("quantitative",!0)}});function dce(t){return Array.isArray(t)||t!==null&&typeof t=="object"}class yut extends zE{constructor(e,n,r,i,s){super(e,n,r);const o=s.spec;if(o)this.spec=o;else if(s.spec_name){const u=r.dataStyles[s.spec_name];if(u!==void 0&&u.renderer==="vega")if(u.spec)this.spec=u.spec;else throw new Error(`No spec defined on ${s.spec_name}`);else throw new Error(`No Vega renderer named ${s.spec_name}`)}else throw new Error(`No top level vega spec defined for ${i.name}`)}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for vega chart.")}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for vega chart.")}translateField(e,n){const r=n.match(/#\{(\d+)\}/);return r&&r.groups?e.allFields[parseInt(r.groups[1])-1].name:n}translateFields(e,n){if(Array.isArray(e))for(const r of e)dce(r)&&this.translateFields(r,n);else if(e&&typeof e=="object")for(const[r,i]of Object.entries(e))if(r==="field"&&typeof i=="string")e[r]=this.translateField(n,i);else if(r==="repeat"&&Array.isArray(i))for(const s of i.keys()){const o=i[s];typeof o=="string"&&(i[s]=this.translateField(n,o))}else dce(i)&&this.translateFields(i,n)}getVegaLiteSpec(e){if(e.isNull()||!e.isArray())throw new Error("Expected struct value not to be null.");const n=structuredClone(this.spec);this.translateFields(n,e.field);const r={values:this.mapData(e)};return n.data=r,n}}const wR=class wR extends fn{create(e,n,r,i,s){return new yut(e,n,r,i,s)}get rendererName(){return"vega"}};wR.instance=new wR;let uP=wR;class aP extends zE{getVegaLiteSpec(e){const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=this.getDataType(r),l=this.getDataType(i),c=s?this.getDataType(s):void 0,f=o?this.getDataType(o):void 0,x=u?this.getDataType(u):void 0,h=this.getMark(),p=s!==void 0?{field:s.name,type:c,axis:{title:os(this.options,s,void 0,this.timezone)},scale:ss(c,h==="bar")}:{value:"#4285F4"},m=o?{field:o.name,type:f,axis:{title:os(this.options,o,void 0,this.timezone)}}:void 0,g=u?{field:u.name,type:x,axis:{title:os(this.options,u,void 0,this.timezone)}}:void 0,y=a==="nominal"?null:void 0,E=l==="nominal"?null:void 0,A={field:r.name,type:a,sort:y,axis:{title:os(this.options,r,void 0,this.timezone)},scale:{zero:!1}},v={field:i.name,type:l,sort:E,axis:{title:os(this.options,i,void 0,this.timezone)},scale:{zero:!1}};return{...tf,...this.getSize(),data:{values:this.mapData(e)},mark:h,encoding:{x:A,y:v,size:m,color:p,shape:g},background:"transparent"}}}class hce extends aP{getMark(){return"line"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"temporal";if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for line chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for line chart.")}}const LR=class LR extends fn{create(e,n,r,i,s,o){return new hce(e,n,r,s,o)}get rendererName(){return"line_chart"}};LR.instance=new LR;let lP=LR;class pce extends hce{getSize(){return this.size==="large"?{height:100,width:250}:{height:50,width:125}}getVegaLiteSpec(e){const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!1)}:{value:"#4285F4"},c=o==="nominal"?null:void 0,f=u==="nominal"?null:void 0,x={field:r.name,type:o,sort:c,axis:{title:null,domain:!1,grid:!1,lables:!1,ticks:!1,values:[]},scale:{zero:!1}},h={field:i.name,type:u,sort:f,axis:{title:null,domain:!1,ticks:!1,grid:!1,lables:!1,values:[]},scale:{zero:!1}};return{...tf,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:{type:"line",tooltip:!0},encoding:{x,y:h,color:l},background:"transparent"}}}const IR=class IR extends fn{create(e,n,r,i,s,o){return new pce(e,n,r,s,o)}get rendererName(){return"sparkline"}};IR.instance=new IR;let cP=IR;class fP extends aP{getMark(){return"bar"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for bar chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate())return F5(e.value,e.field.timeframe,this.timezone);if(e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for bar chart.")}}const $R=class $R extends fn{create(e,n,r,i,s,o){return new fP(e,n,r,s,o)}get rendererName(){return"bar_chart"}};$R.instance=new $R;let xP=$R;class Eut extends fP{getSize(){return this.size==="large"?{height:250,width:100}:{height:125,width:50}}getVegaLiteSpec(e){const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l={type:this.getMark(),tooltip:!0},c=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!0)}:{value:"#4285F4"},f=o==="nominal"?null:void 0,x=u==="nominal"?null:void 0,h={field:r.name,type:o,sort:f,axis:{title:null,domain:!1,grid:!1,ticks:!1,values:[]},scale:{zero:!1}},p={field:i.name,type:u,sort:x,axis:{title:null,domain:!1,ticks:!1,grid:!1,values:[]},scale:{zero:!1}};return{...tf,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:l,encoding:{y:h,x:p,color:c},background:"transparent"}}}const BR=class BR extends fn{isValidMatch(e){return e.name.endsWith("_bar")}create(e,n,r,i,s,o){return new Eut(e,n,r,s,o)}get rendererName(){return"sparkline"}};BR.instance=new BR;let dP=BR;class Aut extends pce{getVegaLiteSpec(e){const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!1)}:{value:"#4285F4"},c=o==="nominal"?null:void 0,f=u==="nominal"?null:void 0,x={field:r.name,type:o,sort:c,axis:{title:null,domain:!1,grid:!1,lables:!1,ticks:!1,values:[]},scale:{zero:!1}},h={field:i.name,type:u,sort:f,axis:{title:null,domain:!1,ticks:!1,grid:!1,lables:!1,values:[]},scale:{zero:!1}};return{...tf,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:{type:"area",line:{color:"#4285F4"},point:!1},encoding:{x,y:h,color:l},background:"transparent"}}}const kR=class kR extends fn{isValidMatch(e){return e.name.endsWith("area")}create(e,n,r,i,s,o){return new Aut(e,n,r,s,o)}get rendererName(){return"sparkline"}};kR.instance=new kR;let hP=kR;class vut extends fP{getSize(){return this.size==="large"?{height:100,width:250}:{height:50,width:125}}getVegaLiteSpec(e){const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l={type:this.getMark(),tooltip:!0},c=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!0)}:{value:"#4285F4"},f=o==="nominal"?null:void 0,x=u==="nominal"?null:void 0,h={field:r.name,type:o,sort:f,axis:{title:null,domain:!1,grid:!1,ticks:!1,values:[]},scale:{zero:!1}},p={field:i.name,type:u,sort:x,axis:{title:null,domain:!1,ticks:!1,grid:!1,values:[]},scale:{zero:!1}};return{...tf,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:l,encoding:{x:h,y:p,color:c},background:"transparent"}}}const PR=class PR extends fn{isValidMatch(e){return e.name.endsWith("_column")}create(e,n,r,i,s,o){return new vut(e,n,r,s,o)}get rendererName(){return"sparkline"}};PR.instance=new PR;let pP=PR;class Sut extends aP{getMark(){return"point"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"temporal";if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for scatter chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for scatter chart.")}}const MR=class MR extends fn{create(e,n,r,i,s,o){return new Sut(e,n,r,s,o)}get rendererName(){return"scatter_chart"}};MR.instance=new MR;let gP=MR;class _ut{constructor(e,n){this.document=e,this.queryTimezone=n}async render(e){if(e.isNull())return p3(this.document);if(!e.isDate()&&!e.isTimestamp())return $s(this.document,"Invalid field for date renderer");const n=e.field.timeframe||(e.isTimestamp()?wt.TimestampTimeframe.Second:wt.DateTimeframe.Day),r=F5(e.value,n,this.queryTimezone),i=this.document.createElement("span");return i.appendChild(this.document.createTextNode(r)),i}}const jR=class jR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&(e.type===wt.AtomicFieldType.Date||e.type===wt.AtomicFieldType.Timestamp)}create(e,n,r,i,s,o){return new _ut(e,o)}get rendererName(){return"time"}};jR.instance=new jR;let mP=jR;var l0=(t=>(t.Dollars="usd",t.Euros="euro",t.Pounds="pound",t))(l0||{}),rf=(t=>(t.Bytes="bytes",t.Kilobytes="kb",t.Megabytes="mb",t.Gigabytes="gb",t.Terabytes="tb",t))(rf||{}),Wn=(t=>(t.Nanoseconds="nanoseconds",t.Microseconds="microseconds",t.Milliseconds="milliseconds",t.Seconds="seconds",t.Minutes="minutes",t.Hours="hours",t.Days="days",t))(Wn||{});function gce(t){return Object.values(Wn).includes(t)}class Cut extends sc{constructor(e,n){super(e),this.options=n}getText(e){if(e.isNull())return null;let n="$";switch(this.options.currency){case l0.Euros:n="€";break;case l0.Pounds:n="£";break;case l0.Dollars:break}const r=e.number.value.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2});return`${n}${r}`}}const UR=class UR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.currency=(n==null?void 0:n.text())??l0.Dollars},this.rendererName)}create(e,n,r,i,s){return new Cut(e,s)}get rendererName(){return"currency"}};UR.instance=new UR;let yP=UR;class but extends $5{getText(e){if(e.isNull())return null;const n=e.number.value;return n===null?n:(n*100).toLocaleString("en",{maximumFractionDigits:2})+"%"}}const qR=class qR extends fn{create(e,n,r,i,s){return new but(e,s)}get rendererName(){return"percent"}};qR.instance=new qR;let EP=qR;class Tut extends sc{getText(e){return e.isNull()?null:e.bytes.value.toString("base64")}}const HR=class HR extends fn{create(e,n,r,i,s){return new Tut(e)}get rendererName(){return"bytes"}};HR.instance=new HR;let AP=HR;class Rut extends sc{getText(e){return e.isNull()?null:`${e.boolean.value}`}}const zR=class zR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&e.type===wt.AtomicFieldType.Boolean}create(e,n,r,i,s){return new Rut(e)}get rendererName(){return"boolean"}};zR.instance=new zR;let vP=zR;class Out{constructor(e){this.document=e}async render(e){if(e.isNull())return p3(this.document);const{tag:n}=e.field.tagParse(),r=n.tag("link");if(!r)return $s(this.document,"Missing tag for Link renderer");if(!e.isString())return $s(this.document,"Invalid type for link renderer.");const i=r.text("url_template"),s=this.document.createElement("a");return s.href=e.value,i&&(i.indexOf("$$")>-1?s.href=i.replace("$$",e.value):s.href=i+e.value),s.target="_blank",s.appendChild(this.document.createTextNode(e.value.replace(/\//g,"/‌"))),s}}const QR=class QR extends fn{create(e,n,r,i,s){return new Out(e)}get rendererName(){return"link"}};QR.instance=new QR;let SP=QR;class Nut{constructor(e){this.document=e}getText(e){const n=e.value;if(typeof n=="string")return n;if(n===null)return null;if(typeof e.value=="object"){const r=e.value;if("value"in r&&typeof r.value=="string")return r.value}return JSON.stringify(e.value)}async render(e){const n=this.getText(e);if(n===null)return p3(this.document);const r=this.document.createElement("span");return r.appendChild(this.document.createTextNode(n)),r}}const GR=class GR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&e.isUnsupported()}create(e,n,r,i,s){return new Nut(e)}get rendererName(){return"unsupported"}};GR.instance=new GR;let _P=GR;const ci=class ci extends sc{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 data volume since its not a number`);let n=e.number.value,r="Bytes";switch(this.options.data_volume_unit){case rf.Bytes:break;case rf.Kilobytes:n=n/ci.kbMultiplier,r="KB";break;case rf.Megabytes:n=n/ci.mbMultiplier,r="MB";break;case rf.Gigabytes:n=n/ci.gbMultiplier,r="GB";break;case rf.Terabytes:n=n/ci.tbMultiplier,r="TB";break}return n===null?n:`${n.toLocaleString()} ${r}`}};ci.kbMultiplier=1024,ci.mbMultiplier=ci.kbMultiplier*ci.kbMultiplier,ci.gbMultiplier=ci.mbMultiplier*ci.kbMultiplier,ci.tbMultiplier=ci.gbMultiplier*ci.kbMultiplier;let CP=ci;const WR=class WR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.data_volume_unit=(n==null?void 0:n.text())??rf.Bytes},this.rendererName)}create(e,n,r,i,s){return new CP(e,s)}get rendererName(){return"data_volume"}};WR.instance=new WR;let bP=WR;function mce(t,e,n={}){let r=e.toString();return n.terse?r=Dut.get(e)??r:t===1&&(r=r.substring(0,r.length-1)),`${n.numFormat?g3.format(n.numFormat,t):t.toLocaleString()}${n.terse?"":" "}${r}`}const Dut=new Map([[Wn.Nanoseconds,"ns"],[Wn.Microseconds,"µs"],[Wn.Milliseconds,"ms"],[Wn.Seconds,"s"],[Wn.Minutes,"m"],[Wn.Hours,"h"],[Wn.Days,"d"]]),Fut=new Map([[Wn.Nanoseconds,1e3],[Wn.Microseconds,1e3],[Wn.Milliseconds,1e3],[Wn.Seconds,60],[Wn.Minutes,60],[Wn.Hours,24],[Wn.Days,Number.MAX_VALUE]]);function yce(t,e,n){const r=n.durationUnit&&gce(n.durationUnit)?n.durationUnit:Wn.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 Fut)if(f===r&&(c=!0),!!c&&(a=u%x,u=Math.floor(u/=x),a>0&&(l=[mce(a,f,{numFormat:s,terse:o}),...l]),u===0))break;return l.length>0?l.slice(0,2).join(" "):mce(0,r,{numFormat:s,terse:o})}class wut extends sc{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 yce(e.field,e.number.value,{durationUnit:this.options.duration_unit})}}const VR=class VR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.duration_unit=(n==null?void 0:n.text())??Wn.Seconds},this.rendererName)}create(e,n,r,i,s){return new wut(e,s)}get rendererName(){return"duration"}};VR.instance=new VR;let TP=VR;const YR=class YR{create(e,n,r,i,s,o,u){let a;for(const l of YR.renderFactories)if((this.matchesRenderDef(e,l)||this.matchesTag(n,l))&&l.isValidMatch(o)||l.activates(o)){a=l;break}return a==null?void 0:a.create(r,i,s,o,e||a.parseTagParameters(n)||{},u)}matchesRenderDef(e,n){return e&&n.rendererName&&e.renderer===n.rendererName}matchesTag(e,n){return n.rendererName&&e.has(n.rendererName)}};YR.renderFactories=[rP.instance,iP.instance,sP.instance,oP.instance,kF.instance,lP.instance,pP.instance,dP.instance,hP.instance,cP.instance,gP.instance,xP.instance,uP.instance,mP.instance,yP.instance,EP.instance,bP.instance,AP.instance,SP.instance,TP.instance,vP.instance,qF.instance,_P.instance,MF.instance];let RP=YR;function Lut(t){return Object.keys(t).reduce((n,r)=>{const i=t[r];return n[r]=Object.assign({},i),vce(i.value)&&!Put(i.value)&&!Array.isArray(i.value)&&(n[r].value=Object.assign({},i.value)),Array.isArray(i.value)&&(n[r].value=i.value.slice(0)),n},{})}function Iut(t){return t?Object.keys(t).reduce((n,r)=>{const i=t[r];return n[r]=vce(i)&&"value"in i?i:{value:i},n[r].attribute||(n[r].attribute=kut(r)),n[r].parse="parse"in n[r]?n[r].parse:typeof n[r].value!="string",n},{}):{}}function $ut(t){return Object.keys(t).reduce((n,r)=>(n[r]=t[r].value,n),{})}function But(t,e){const n=Lut(e);return Object.keys(e).forEach(i=>{const s=n[i],o=t.getAttribute(s.attribute),u=t[i];o&&(s.value=s.parse?Ece(o):o),u!=null&&(s.value=Array.isArray(u)?u.slice(0):u),s.reflect&&Ace(t,s.attribute,s.value),Object.defineProperty(t,i,{get(){return s.value},set(a){const l=s.value;s.value=a,s.reflect&&Ace(this,s.attribute,s.value);for(let c=0,f=this.__propertyChangedCallbacks.length;c<f;c++)this.__propertyChangedCallbacks[c](i,a,l)},enumerable:!0,configurable:!0})}),n}function Ece(t){if(t)try{return JSON.parse(t)}catch{return t}}function Ace(t,e,n){if(n==null||n===!1)return t.removeAttribute(e);let r=JSON.stringify(n);t.__updating[e]=!0,r==="true"&&(r=""),t.setAttribute(e,r),Promise.resolve().then(()=>delete t.__updating[e])}function kut(t){return t.replace(/\.?([A-Z]+)/g,(e,n)=>"-"+n.toLowerCase()).replace("_","-").replace(/^-/,"")}function vce(t){return t!=null&&(typeof t=="object"||typeof t=="function")}function Put(t){return Object.prototype.toString.call(t)==="[object Function]"}function Mut(t){return typeof t=="function"&&t.toString().indexOf("class")===0}let OP;function jut(t,e){const n=Object.keys(e);return class extends t{static get observedAttributes(){return n.map(i=>e[i].attribute)}constructor(){super(),this.__initialized=!1,this.__released=!1,this.__releaseCallbacks=[],this.__propertyChangedCallbacks=[],this.__updating={},this.props={}}connectedCallback(){if(this.__initialized)return;this.__releaseCallbacks=[],this.__propertyChangedCallbacks=[],this.__updating={},this.props=But(this,e);const i=$ut(this.props),s=this.Component,o=OP;try{OP=this,this.__initialized=!0,Mut(s)?new s(i,{element:this}):s(i,{element:this})}finally{OP=o}}async disconnectedCallback(){if(await Promise.resolve(),this.isConnected)return;this.__propertyChangedCallbacks.length=0;let i=null;for(;i=this.__releaseCallbacks.pop();)i(this);delete this.__initialized,this.__released=!0}attributeChangedCallback(i,s,o){if(this.__initialized&&!this.__updating[i]&&(i=this.lookupProp(i),i in e)){if(o==null&&!this[i])return;this[i]=e[i].parse?Ece(o):o}}lookupProp(i){if(e)return n.find(s=>i===s||i===e[s].attribute)}get renderRoot(){return this.shadowRoot||this.attachShadow({mode:"open"})}addReleaseCallback(i){this.__releaseCallbacks.push(i)}addPropertyChangedCallback(i){this.__propertyChangedCallbacks.push(i)}}}function Uut(...t){return t.length===0?e=>e:t.length===1?t[0]:t.reduce((e,n)=>(...r)=>e(n(...r)))}function qut(t,e={},n={}){const{BaseElement:r=HTMLElement,extension:i}=n;return s=>{if(!t)throw new Error("tag is required to register a Component");let o=customElements.get(t);return o?(o.prototype.Component=s,o):(o=jut(r,Iut(e)),o.prototype.Component=s,o.prototype.registeredTag=t,customElements.define(t,o,i),o)}}const Hut=(t,e)=>t===e,NP=Symbol("solid-proxy"),zut=Symbol("solid-track"),cR={equals:Hut};let Sce=Nce;const sf=1,fR=2,_ce={owned:null,cleanups:null,context:null,owner:null};var un=null;let DP=null,Qut=null,Vn=null,li=null,c0=null,xR=0;function dR(t,e){const n=Vn,r=un,i=t.length===0,s=e===void 0?r:e,o=i?_ce:{owned:null,cleanups:null,context:s?s.context:null,owner:s},u=i?t:()=>t(()=>Su(()=>gR(o)));un=o,Vn=null;try{return GE(u,!0)}finally{Vn=n,un=r}}function FP(t,e){e=e?Object.assign({},cR,e):cR;const n={value:t,observers:null,observerSlots:null,comparator:e.equals||void 0},r=i=>(typeof i=="function"&&(i=i(n.value)),Oce(n,i));return[Rce.bind(n),r]}function of(t,e,n){const r=LP(t,e,!1,sf);QE(r)}function wP(t,e,n){Sce=Yut;const r=LP(t,e,!1,sf);(!n||!n.render)&&(r.user=!0),c0?c0.push(r):QE(r)}function wo(t,e,n){n=n?Object.assign({},cR,n):cR;const r=LP(t,e,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,QE(r),Rce.bind(r)}function Su(t){if(Vn===null)return t();const e=Vn;Vn=null;try{return t()}finally{Vn=e}}function Gut(t){return un===null||(un.cleanups===null?un.cleanups=[t]:un.cleanups.push(t)),t}function Cce(t,e){const n=Symbol("context");return{id:n,Provider:Xut(n),defaultValue:t}}function bce(t){return un&&un.context&&un.context[t.id]!==void 0?un.context[t.id]:t.defaultValue}function Tce(t){const e=wo(t),n=wo(()=>IP(e()));return n.toArray=()=>{const r=n();return Array.isArray(r)?r:r!=null?[r]:[]},n}function Rce(){if(this.sources&&this.state)if(this.state===sf)QE(this);else{const t=li;li=null,GE(()=>pR(this),!1),li=t}if(Vn){const t=this.observers?this.observers.length:0;Vn.sources?(Vn.sources.push(this),Vn.sourceSlots.push(t)):(Vn.sources=[this],Vn.sourceSlots=[t]),this.observers?(this.observers.push(Vn),this.observerSlots.push(Vn.sources.length-1)):(this.observers=[Vn],this.observerSlots=[Vn.sources.length-1])}return this.value}function Oce(t,e,n){let r=t.value;return(!t.comparator||!t.comparator(r,e))&&(t.value=e,t.observers&&t.observers.length&&GE(()=>{for(let i=0;i<t.observers.length;i+=1){const s=t.observers[i],o=DP&&DP.running;o&&DP.disposed.has(s),(o?!s.tState:!s.state)&&(s.pure?li.push(s):c0.push(s),s.observers&&Dce(s)),o||(s.state=sf)}if(li.length>1e6)throw li=[],new Error},!1)),e}function QE(t){if(!t.fn)return;gR(t);const e=xR;Wut(t,t.value,e)}function Wut(t,e,n){let r;const i=un,s=Vn;Vn=un=t;try{r=t.fn(e)}catch(o){return t.pure&&(t.state=sf,t.owned&&t.owned.forEach(gR),t.owned=null),t.updatedAt=n+1,Fce(o)}finally{Vn=s,un=i}(!t.updatedAt||t.updatedAt<=n)&&(t.updatedAt!=null&&"observers"in t?Oce(t,r):t.value=r,t.updatedAt=n)}function LP(t,e,n,r=sf,i){const s={fn:t,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:e,owner:un,context:un?un.context:null,pure:n};return un===null||un!==_ce&&(un.owned?un.owned.push(s):un.owned=[s]),s}function hR(t){if(t.state===0)return;if(t.state===fR)return pR(t);if(t.suspense&&Su(t.suspense.inFallback))return t.suspense.effects.push(t);const e=[t];for(;(t=t.owner)&&(!t.updatedAt||t.updatedAt<xR);)t.state&&e.push(t);for(let n=e.length-1;n>=0;n--)if(t=e[n],t.state===sf)QE(t);else if(t.state===fR){const r=li;li=null,GE(()=>pR(t,e[0]),!1),li=r}}function GE(t,e){if(li)return t();let n=!1;e||(li=[]),c0?n=!0:c0=[],xR++;try{const r=t();return Vut(n),r}catch(r){n||(c0=null),li=null,Fce(r)}}function Vut(t){if(li&&(Nce(li),li=null),t)return;const e=c0;c0=null,e.length&&GE(()=>Sce(e),!1)}function Nce(t){for(let e=0;e<t.length;e++)hR(t[e])}function Yut(t){let e,n=0;for(e=0;e<t.length;e++){const r=t[e];r.user?t[n++]=r:hR(r)}for(e=0;e<n;e++)hR(t[e])}function pR(t,e){t.state=0;for(let n=0;n<t.sources.length;n+=1){const r=t.sources[n];if(r.sources){const i=r.state;i===sf?r!==e&&(!r.updatedAt||r.updatedAt<xR)&&hR(r):i===fR&&pR(r,e)}}}function Dce(t){for(let e=0;e<t.observers.length;e+=1){const n=t.observers[e];n.state||(n.state=fR,n.pure?li.push(n):c0.push(n),n.observers&&Dce(n))}}function gR(t){let e;if(t.sources)for(;t.sources.length;){const n=t.sources.pop(),r=t.sourceSlots.pop(),i=n.observers;if(i&&i.length){const s=i.pop(),o=n.observerSlots.pop();r<i.length&&(s.sourceSlots[o]=r,i[r]=s,n.observerSlots[r]=o)}}if(t.owned){for(e=t.owned.length-1;e>=0;e--)gR(t.owned[e]);t.owned=null}if(t.cleanups){for(e=t.cleanups.length-1;e>=0;e--)t.cleanups[e]();t.cleanups=null}t.state=0}function Kut(t){return t instanceof Error?t:new Error(typeof t=="string"?t:"Unknown error",{cause:t})}function Fce(t,e=un){throw Kut(t)}function IP(t){if(typeof t=="function"&&!t.length)return IP(t());if(Array.isArray(t)){const e=[];for(let n=0;n<t.length;n++){const r=IP(t[n]);Array.isArray(r)?e.push.apply(e,r):e.push(r)}return e}return t}function Xut(t,e){return function(r){let i;return of(()=>i=Su(()=>(un.context={...un.context,[t]:r.value},Tce(()=>r.children))),void 0),i}}const Jut=Symbol("fallback");function wce(t){for(let e=0;e<t.length;e++)t[e]()}function Zut(t,e,n={}){let r=[],i=[],s=[],o=0,u=e.length>1?[]:null;return Gut(()=>wce(s)),()=>{let a=t()||[],l,c;return a[zut],Su(()=>{let x=a.length,h,p,m,g,y,E,A,v,S;if(x===0)o!==0&&(wce(s),s=[],r=[],i=[],o=0,u&&(u=[])),n.fallback&&(r=[Jut],i[0]=dR(C=>(s[0]=C,n.fallback())),o=1);else if(o===0){for(i=new Array(x),c=0;c<x;c++)r[c]=a[c],i[c]=dR(f);o=x}else{for(m=new Array(x),g=new Array(x),u&&(y=new Array(x)),E=0,A=Math.min(o,x);E<A&&r[E]===a[E];E++);for(A=o-1,v=x-1;A>=E&&v>=E&&r[A]===a[v];A--,v--)m[v]=i[A],g[v]=s[A],u&&(y[v]=u[A]);for(h=new Map,p=new Array(v+1),c=v;c>=E;c--)S=a[c],l=h.get(S),p[c]=l===void 0?-1:l,h.set(S,c);for(l=E;l<=A;l++)S=r[l],c=h.get(S),c!==void 0&&c!==-1?(m[c]=i[l],g[c]=s[l],u&&(y[c]=u[l]),c=p[c],h.set(S,c)):s[l]();for(c=E;c<x;c++)c in m?(i[c]=m[c],s[c]=g[c],u&&(u[c]=y[c],u[c](c))):i[c]=dR(f);i=i.slice(0,o=x),r=a.slice(0)}return i});function f(x){if(s[c]=x,u){const[h,p]=FP(c);return u[c]=p,e(a[c],h)}return e(a[c])}}}function In(t,e){return Su(()=>t(e||{}))}function mR(){return!0}const eat={get(t,e,n){return e===NP?n:t.get(e)},has(t,e){return e===NP?!0:t.has(e)},set:mR,deleteProperty:mR,getOwnPropertyDescriptor(t,e){return{configurable:!0,enumerable:!0,get(){return t.get(e)},set:mR,deleteProperty:mR}},ownKeys(t){return t.keys()}};function $P(t){return(t=typeof t=="function"?t():t)?t:{}}function tat(){for(let t=0,e=this.length;t<e;++t){const n=this[t]();if(n!==void 0)return n}}function nat(...t){let e=!1;for(let o=0;o<t.length;o++){const u=t[o];e=e||!!u&&NP in u,t[o]=typeof u=="function"?(e=!0,wo(u)):u}if(e)return new Proxy({get(o){for(let u=t.length-1;u>=0;u--){const a=$P(t[u])[o];if(a!==void 0)return a}},has(o){for(let u=t.length-1;u>=0;u--)if(o in $P(t[u]))return!0;return!1},keys(){const o=[];for(let u=0;u<t.length;u++)o.push(...Object.keys($P(t[u])));return[...new Set(o)]}},eat);const n={},r=Object.create(null);for(let o=t.length-1;o>=0;o--){const u=t[o];if(!u)continue;const a=Object.getOwnPropertyNames(u);for(let l=a.length-1;l>=0;l--){const c=a[l];if(c==="__proto__"||c==="constructor")continue;const f=Object.getOwnPropertyDescriptor(u,c);if(!r[c])r[c]=f.get?{enumerable:!0,configurable:!0,get:tat.bind(n[c]=[f.get.bind(u)])}:f.value!==void 0?f:void 0;else{const x=n[c];x&&(f.get?x.push(f.get.bind(u)):f.value!==void 0&&x.push(()=>f.value))}}}const i={},s=Object.keys(r);for(let o=s.length-1;o>=0;o--){const u=s[o],a=r[u];a&&a.get?Object.defineProperty(i,u,a):i[u]=a?a.value:void 0}return i}const Lce=t=>`Stale read from <${t}>.`;function rat(t){const e="fallback"in t&&{fallback:()=>t.fallback};return wo(Zut(()=>t.each,t.children,e||void 0))}function Ice(t){const e=t.keyed,n=wo(()=>t.when,void 0,{equals:(r,i)=>e?r===i:!r==!i});return wo(()=>{const r=n();if(r){const i=t.children;return typeof i=="function"&&i.length>0?Su(()=>i(e?r:()=>{if(!Su(n))throw Lce("Show");return t.when})):i}return t.fallback},void 0,void 0)}function $ce(t){let e=!1;const n=(s,o)=>(e?s[1]===o[1]:!s[1]==!o[1])&&s[2]===o[2],r=Tce(()=>t.children),i=wo(()=>{let s=r();Array.isArray(s)||(s=[s]);for(let o=0;o<s.length;o++){const u=s[o].when;if(u)return e=!!s[o].keyed,[o,u,s[o]]}return[-1]},void 0,{equals:n});return wo(()=>{const[s,o,u]=i();if(s<0)return t.fallback;const a=u.children;return typeof a=="function"&&a.length>0?Su(()=>a(e?o:()=>{if(Su(i)[0]!==s)throw Lce("Match");return u.when})):a},void 0,void 0)}function BP(t){return t}function iat(t,e,n){let r=n.length,i=e.length,s=r,o=0,u=0,a=e[i-1].nextSibling,l=null;for(;o<i||u<s;){if(e[o]===n[u]){o++,u++;continue}for(;e[i-1]===n[s-1];)i--,s--;if(i===o){const c=s<r?u?n[u-1].nextSibling:n[s-u]:a;for(;u<s;)t.insertBefore(n[u++],c)}else if(s===u)for(;o<i;)(!l||!l.has(e[o]))&&e[o].remove(),o++;else if(e[o]===n[s-1]&&n[u]===e[i-1]){const c=e[--i].nextSibling;t.insertBefore(n[u++],e[o++].nextSibling),t.insertBefore(n[--s],c),e[i]=n[s]}else{if(!l){l=new Map;let f=u;for(;f<s;)l.set(n[f],f++)}const c=l.get(e[o]);if(c!=null)if(u<c&&c<s){let f=o,x=1,h;for(;++f<i&&f<s&&!((h=l.get(e[f]))==null||h!==c+x);)x++;if(x>c-u){const p=e[o];for(;u<c;)t.insertBefore(n[u++],p)}else t.replaceChild(n[u++],e[o++])}else o++;else e[o++].remove()}}}function Hd(t,e,n){let r;const i=()=>{const o=document.createElement("template");return o.innerHTML=t,n?o.content.firstChild.firstChild:o.content.firstChild},s=e?()=>Su(()=>document.importNode(r||(r=i()),!0)):()=>(r||(r=i())).cloneNode(!0);return s.cloneNode=s,s}function sat(t,e,n){n==null?t.removeAttribute(e):t.setAttribute(e,n)}function oat(t,e,n){if(!e)return n?sat(t,"style"):e;const r=t.style;if(typeof e=="string")return r.cssText=e;typeof n=="string"&&(r.cssText=n=void 0),n||(n={}),e||(e={});let i,s;for(s in n)e[s]==null&&r.removeProperty(s),delete n[s];for(s in e)i=e[s],i!==n[s]&&(r.setProperty(s,i),n[s]=i);return n}function uat(t,e,n){return Su(()=>t(e,n))}function f0(t,e,n,r){if(n!==void 0&&!r&&(r=[]),typeof e!="function")return yR(t,e,r,n);of(i=>yR(t,e(),i,n),r)}function yR(t,e,n,r,i){for(;typeof n=="function";)n=n();if(e===n)return n;const s=typeof e,o=r!==void 0;if(t=o&&n[0]&&n[0].parentNode||t,s==="string"||s==="number")if(s==="number"&&(e=e.toString()),o){let u=n[0];u&&u.nodeType===3?u.data!==e&&(u.data=e):u=document.createTextNode(e),n=np(t,n,r,u)}else n!==""&&typeof n=="string"?n=t.firstChild.data=e:n=t.textContent=e;else if(e==null||s==="boolean")n=np(t,n,r);else{if(s==="function")return of(()=>{let u=e();for(;typeof u=="function";)u=u();n=yR(t,u,n,r)}),()=>n;if(Array.isArray(e)){const u=[],a=n&&Array.isArray(n);if(kP(u,e,n,i))return of(()=>n=yR(t,u,n,r,!0)),()=>n;if(u.length===0){if(n=np(t,n,r),o)return n}else a?n.length===0?Bce(t,u,r):iat(t,n,u):(n&&np(t),Bce(t,u));n=u}else if(e.nodeType){if(Array.isArray(n)){if(o)return n=np(t,n,r,e);np(t,n,null,e)}else n==null||n===""||!t.firstChild?t.appendChild(e):t.replaceChild(e,t.firstChild);n=e}}return n}function kP(t,e,n,r){let i=!1;for(let s=0,o=e.length;s<o;s++){let u=e[s],a=n&&n[t.length],l;if(!(u==null||u===!0||u===!1))if((l=typeof u)=="object"&&u.nodeType)t.push(u);else if(Array.isArray(u))i=kP(t,u,a)||i;else if(l==="function")if(r){for(;typeof u=="function";)u=u();i=kP(t,Array.isArray(u)?u:[u],Array.isArray(a)?a:[a])||i}else t.push(u),i=!0;else{const c=String(u);a&&a.nodeType===3&&a.data===c?t.push(a):t.push(document.createTextNode(c))}}return i}function Bce(t,e,n=null){for(let r=0,i=e.length;r<i;r++)t.insertBefore(e[r],n)}function np(t,e,n,r){if(n===void 0)return t.textContent="";const i=r||document.createTextNode("");if(e.length){let s=!1;for(let o=e.length-1;o>=0;o--){const u=e[o];if(i!==u){const a=u.parentNode===t;!s&&!o?a?t.replaceChild(i,u):t.insertBefore(i,n):a&&u.remove()}else s=!0}}else t.insertBefore(i,n);return[i]}function aat(t){const e=Object.keys(t),n={};for(let r=0;r<e.length;r++){const[i,s]=FP(t[e[r]]);Object.defineProperty(n,e[r],{get:i,set(o){s(()=>o)}})}return n}function lat(t){if(t.assignedSlot&&t.assignedSlot._$owner)return t.assignedSlot._$owner;let e=t.parentNode;for(;e&&!e._$owner&&!(e.assignedSlot&&e.assignedSlot._$owner);)e=e.parentNode;return e&&e.assignedSlot?e.assignedSlot._$owner:t._$owner}function cat(t){return(e,n)=>{const{element:r}=n;return dR(i=>{const s=aat(e);r.addPropertyChangedCallback((u,a)=>s[u]=a),r.addReleaseCallback(()=>{r.renderRoot.textContent="",i()});const o=t(s,n);return f0(r.renderRoot,o)},lat(r))}}function PP(t,...e){return e.some(n=>Array.isArray(n)?t.has(...n):t.has(n))}function kce(t){const e=t.parentExplore;return(e==null?void 0:e.allFields.findIndex(n=>n.name===t.name))??-1}function MP(t){return t.parentExplore?kce(t)===t.parentExplore.allFields.length-1:!0}function jP(t){return kce(t)===0}function Pce(t,e){return t.isAtomicField()&&t.isNumber()&&e!==null}function Mce(t,e){return t.isAtomicField()&&t.isString()&&e!==null}function WE(t,e,n){const i=(n??document.createElement("canvas")).getContext("2d");return i.font=e,i.measureText(t).width}function fat(t,e,n){return Math.max(t,Math.min(e,n))}function jce(t,e){if(!t.isExplore()&&t.isAtomicField())return"cell";const n=e??t.tagParse().tag;return PP(n,"bar_chart")?"chart":"table"}function zd(t){return JSON.stringify(t.fieldPath)}function xat(){return{x:{fields:[],type:null},y:{fields:[],type:null},color:{fields:[],type:null},fx:{fields:[],type:null},fy:{fields:[],type:null},marks:[]}}function Uce(t,e){t.allFields.forEach(n=>{e(n),n.isExplore()&&Uce(n,e)})}function qce(t){const e=t.isExplore()&&!t.isExploreField()?[]:[t.name];let n=t.parentExplore;for(;n!=null&&n.isExploreField();)e.unshift(n.name),n=n.parentExplore;return e}function ER(t,e){const n=qce(t),r=qce(e),i=n.length;let s=0;for(;n[s];){if(n[s]!==r[s])throw new Error("Tried to get path from parent field to child field, but parent field is not a parent of child field.");s++}return r.slice(i).join(".")}function dat(t,e){const n=e??t.tagParse().tag,r=n.tag("bar_chart")??n.tag("bar");if(!r)throw new Error("Tried to render a bar_chart, but no bar_chart tag was found");const i=xat();r.text("x")&&i.x.fields.push(r.text("x")),r.text("y")&&i.y.fields.push(r.text("y"));const s=[],o=[];if(Uce(t,a=>{const{tag:l}=a.tagParse();l.has("x")&&s.push(ER(t,a)),l.has("y")&&o.push(ER(t,a))}),s.forEach(a=>{i.x.fields.push(a)}),o.at(0)&&i.y.fields.push(o.at(0)),i.x.fields.length===0){const a=t.allFields.filter(l=>l.isAtomicField()&&l.isString());a.length>0&&i.x.fields.push(ER(t,a[0]))}if(i.y.fields.length===0){const a=t.allFields.find(l=>l.isAtomicField()&&l.isNumber());a&&i.y.fields.push(ER(t,a))}const u={id:"bar",type:"bar_y",x:null,y:null};return i.marks.push(u),i.x.type="nominal",i.y.type="quantitative",i}const hat={spark:[180,1],xs:[170,2],sm:[216,3],md:[256,4],lg:[472,7],xl:[508,10],"2xl":[730,14]},AR=28;function pat(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]=hat[l],o=o*AR);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[zd(t)];let v=l!=="spark"?AR-1:0,S;const C=zd(r),_=e.fields[C].max,b=Ot("linear")().domain([0,_]).nice().range([o,0]),R=b.domain();if(E){const q=b.domain().at(1),B=nJ().format(",")(q);f=WE(B,"Inter, sans-serif 12px")+5+31;const X=Math.ceil(o/40),de=b.ticks(X);if(de.at(-1)<q){const be=(q-de.at(-1))/q,ee=o/(1-be);v=v-(ee-o),o=ee,S=X}}if(y){const q=zd(n),W=e.fields[q].maxString,B=WE(W,"Inter, sans-serif 12px"),G=.3;g=22+15,c=Math.min(B,G*o),m=c;const X=(s-f)/A.maxRecordCt;X>c&&(x=0,m=X,h=void 0,p="top")}const O=o+c+g,L=Math.ceil(O/AR)*AR;g+=L-O;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:S,hidden:M},yScale:{domain:R},padding:M?{top:0,left:0,bottom:0,right:0}:{top:v+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 vR="#727883",SR="#E5E7EB";function gat(t,e){const n=pat(e.field,e.metadata),r={$schema:"https://vega.github.io/schema/vega/v5.json",width:n.plotWidth,height:n.plotHeight,config:{axisY:{gridColor:SR,tickColor:SR,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelColor:vR,labelPadding:5,titleColor:vR,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10,labelOverlap:!1},axisX:{gridColor:SR,tickColor:SR,tickSize:0,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelPadding:5,labelColor:vR,titleColor:vR,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 mat(){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 yat(t){const e=new WeakMap,n=u=>{if(e.has(u))return e.get(u);const a=zd(u);return e.set(u,a),a},r=mat(),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},Hce(t.data.field,i),zce(t.data,i),Object.values(i.fields).forEach(u=>{const a=u.field;a.isExploreField()?Qce(a,a.tagParse().tag,i):a.isExplore()&&Qce(a,t.tagParse().tag,i)}),i}function Hce(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()&&Hce(n,e)}}const zce=(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(Pce(o,u)){const l=u;a.min=Math.min(a.min??l,l),a.max=Math.max(a.max??l,l)}else if(Mce(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);zce(l,e)}}}const r=t.field,i=e.field(r);i.maxRecordCt=Math.max(i.maxRecordCt??n,n)};function Qce(t,e,n){const r=n.field(t);if(PP(e,"bar","bar_chart")){const i=dat(t,e);r.vegaChartProps=gat(i,{field:t,metadata:n})}}const Gce=Cce(),Wce=()=>{const t=bce(Gce);if(!t)throw Error("useResultContext must be used within a ResultContext.Provider");return t};function vlt(t){return t}function Slt(t){return t}var Eat=Hd("<div>");function Aat(t){let e,n=null;return wP(()=>{n&&n.finalize();const r=t.type==="vega-lite"?xce(t.spec).spec:t.spec;n=new Z$(Vue(r)).initialize(e).renderer("svg").hover(),n.run()}),wP(()=>{n&&(t.width&&n.width(t.width),t.height&&n.height(t.height),n.run())}),(()=>{var r=Eat(),i=e;return typeof i=="function"?uat(i,r):e=r,r})()}function Vce(t){const{field:e,data:n}=t,r=t.metadata.field(e).vegaChartProps,i=structuredClone(r.spec);return i.data[0].values=n,In(Aat,{spec:i,type:"vega",get width(){return r.plotWidth},get height(){return r.plotHeight}})}function Yce(t,e){let n=e;const{tag:r}=t.tagParse();if(r.has("currency")){let i="$";switch(r.text("currency")){case l0.Euros:i="€";break;case l0.Pounds:i="£";break;case l0.Dollars:break}n=g3.format(`${i}#,##0.00`,e)}else if(r.has("percent"))n=g3.format("#,##0.00%",e);else if(r.has("duration")){const s=r.text("duration")??Wn.Seconds;return yce(t,e,{durationUnit:s})??e.toLocaleString()}else r.has("number")?n=g3.format(r.text("number"),e):n=e.toLocaleString();return n}const vat=32,Sat=384,Kce=12,_at=28;function Cat(t){const e={};for(const[n,r]of Object.entries(t.fields)){const i=r.field,s={metadata:r,width:i.isExplore()?0:bat(i,t),height:null},{tag:o}=i.tagParse();PP(o,"bar","bar_chart")&&i.isExploreField()?(s.width=r.vegaChartProps.totalWidth,s.height=r.vegaChartProps.totalHeight):!i.isExplore()&&i.isAtomicField()&&(s.height=_at),e[n]=s}return e}function bat(t,e){const n=zd(t),r=e.fields[n];let i=0;if(t.isAtomicField()){const s="12px Inter, sans-serif",o=WE(t.name,s);if(t.isAtomicField()&&t.isString())i=Math.max(WE(r.maxString,s),o)+Kce;else if(t.isAtomicField()&&t.isNumber()){const u=r.max===null?"∅":Yce(t,r.max);i=Math.max(WE(u,s),o)+Kce}else i=130;i=fat(vat,Sat,i)}return i}const Xce=Cce(),VE=()=>bce(Xce);var Tat=Hd("<div class=cell-wrapper><div class=cell-gutter></div><div class=cell-content></div><div class=cell-gutter>"),Rat=Hd("<th class=column-cell>"),Oat=Hd("<td class=column-cell>"),Nat=Hd("<div class=sticky-header><div class=sticky-header-content>"),Dat=Hd("<div class=malloy-table><table><thead><tr></tr></thead><tbody>"),Fat=Hd("<tr>");const Jce=t=>{const e=()=>{const n=VE().layout,r=n[zd(t.field)].width,i=n[zd(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=Tat(),r=n.firstChild,i=r.nextSibling,s=i.nextSibling;return f0(i,()=>t.value),of(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=oat(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})()},wat=t=>{const e=jP(t.field),n=jP(t.field.parentExplore),r=!t.field.parentExplore.isExploreField(),i=e&&(n||r),s=MP(t.field),o=MP(t.field.parentExplore),u=s&&(o||r);return(()=>{var a=Rat();return f0(a,In(Jce,{get field(){return t.field},get value(){return t.field.name},hideStartGutter:i,hideEndGutter:u,isHeader:!0})),of(()=>a.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),a})()},Lat=t=>{const e=VE(),n=jce(t.field);let r="";if(e.pinnedHeader)r="";else if(n==="cell"){const i=t.row.cell(t.field).value;Pce(t.field,i)?r=Yce(t.field,i):i===null?r="∅":Mce(t.field,i)&&(r=i)}else if(n==="chart"){const i=Wce();r=In(Vce,{get field(){return t.field},get data(){return i.getData(t.row.cell(t.field))},metadata:i})}return(()=>{var i=Oat();return f0(i,In($ce,{get children(){return[In(BP,{when:n==="table",get children(){return In(UP,{get data(){return t.row.cell(t.field)},get pinnedHeader(){return e.pinnedHeader},get rowLimit(){return e.pinnedHeader?1:1/0}})}}),In(BP,{when:!0,get children(){return In(Jce,{get field(){return t.field},value:r,get hideStartGutter(){return jP(t.field)},get hideEndGutter(){return MP(t.field)}})}})]}})),of(()=>i.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),i})()},Iat=t=>{const e=nat({rowLimit:1/0,pinnedHeader:!1},t),n=VE(),[r,i]=FP(!1),s=u=>{const a=u.target;i(a.scrollTop>0)},o=wo(()=>{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=Dat(),a=u.firstChild,l=a.firstChild,c=l.firstChild,f=l.nextSibling;return u.addEventListener("scroll",s),f0(u,In(Ice,{get when(){return n.root},get children(){var x=Nat(),h=x.firstChild;return f0(h,In(UP,{get data(){return e.data},rowLimit:1,pinnedHeader:!0})),x}}),a),f0(c,()=>e.data.field.allFields.map(x=>In(wat,{field:x}))),f0(f,In(rat,{get each(){return o()},children:x=>(()=>{var h=Fat();return f0(h,()=>e.data.field.allFields.map(p=>In(Lat,{field:p,row:x}))),h})()})),of(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})()},UP=t=>{const e=Wce(),n=!!VE(),r=wo(()=>{if(n){const i=VE();return{root:!1,pinnedHeader:t.pinnedHeader??i.pinnedHeader,layout:i.layout}}return{root:!0,pinnedHeader:t.pinnedHeader??!1,layout:Cat(e)}});return In(Xce.Provider,{get value(){return r()},get children(){return In(Iat,t)}})};function $at(t,{element:e}){const n=wo(()=>t.result?t.result:t.queryResult&&t.modelDef?new wt.Result(t.queryResult,t.modelDef):null);return In(Ice,{get when(){return n()},get children(){return In(Bat,{get result(){return n()},element:e})}})}function Bat(t){const e=wo(()=>yat(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}};wP(()=>{if(t.element){const i=kat(n().modelTheme,n().localTheme);for(const[s,o]of Object.entries(i))t.element.style.setProperty(s,o)}});const r=()=>{const i=n().resultTag,s=t.result.resultExplore;return jce(s,i)};return In(Gce.Provider,{get value(){return e()},get children(){return In($ce,{get fallback(){return In(UP,{get data(){return t.result.data}})},get children(){return In(BP,{get when(){return r()==="chart"},get children(){return In(Vce,{get field(){return t.result.resultExplore},get data(){return e().getData(t.result.data)},get metadata(){return e()}})}})}})}})}function Lo(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 kat(t,e){const n={},r=Lo("tableRowHeight",e,t),i=Lo("tableBodyColor",e,t),s=Lo("tableFontSize",e,t),o=Lo("tableHeaderColor",e,t),u=Lo("tableHeaderWeight",e,t),a=Lo("tableBodyWeight",e,t),l=Lo("tableBorder",e,t),c=Lo("tableBackground",e,t),f=Lo("tableGutterSize",e,t),x=Lo("tablePinnedBackground",e,t),h=Lo("tablePinnedBorder",e,t),p=Lo("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 Pat=`:host {
1475
+ `)}function Hoe(t){return"["+t.map(zoe).join(", ")+"]"}function zoe(t){return _e(t)?"[…]":He(t)&&!Ix(t)?"{…}":t}function Z$(t,e){const n=this;if(e=e||{},K3.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=ft({},t.locale,e.locale);n.locale(nJ(s.number,s.time))}n._el=null,n._elBind=null,n._renderType=e.renderer||pd.Canvas,n._scenegraph=new Zte;const r=n._scenegraph.root;n._renderer=null,n._tooltip=e.tooltip||BXe,n._redraw=!0,n._handler=new Tb().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=rXe(t.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=RXe(n,t,e.expr);n._runtime=i,n._signals=i.signals,n._bind=(t.bindings||[]).map(s=>({state:null,param:ft({},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=Uoe(n,n._width),n._viewHeight=qoe(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,NXe(n),GKe(n),WKe(n),n.description(t.description),e.hover&&n.hover(),e.container&&n.initialize(e.container,e.bind)}function VT(t,e){return Je(t._signals,e)?t._signals[e]:Se("Unrecognized signal name: "+we(e))}function Qoe(t,e){const n=(t._targets||[]).filter(r=>r._update&&r._update.handler===e);return n.length?n[0]:null}function Goe(t,e,n,r){let i=Qoe(n,r);return i||(i=Y$(t,()=>r(e,n.value)),i.handler=r,t.on(n,null,i)),t}function Woe(t,e,n){const r=Qoe(e,n);return r&&e._targets.remove(r),t}Fe(Z$,K3,{async evaluate(t,e,n){if(await K3.prototype.evaluate.call(this,t,e),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,XKe(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&SC(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&&Ooe(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=VT(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",koe(t)):koe(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?(_L(t)||Se("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&&(K3.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(VT(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:DXe,addEventListener(t,e,n){let r=e;return n&&n.trap===!1||(r=Y$(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 Goe(this,t,VT(this,t),e)},removeSignalListener(t,e){return Woe(this,VT(this,t),e)},addDataListener(t,e){return Goe(this,t,HT(this,t).values,e)},removeDataListener(t,e){return Woe(this,HT(this,t).values,e)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const e=V$(this,null);this._globalCursor=!!t,e&&V$(this,e)}return this}else return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:$Xe,events:sXe,finalize:uXe,hover:oXe,data:VKe,change:zT,insert:YKe,remove:KKe,scale:OXe,initialize:vXe,toImageURL:_Xe,toCanvas:bXe,toSVG:TXe,getState:FXe,setState:IXe});const MXe="view",YT="[",KT="]",Voe="{",Yoe="}",jXe=":",Koe=",",UXe="@",qXe=">",HXe=/[[\]{}]/,zXe={"*":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 Xoe,Joe;function Rd(t,e,n){return Xoe=e||MXe,Joe=n||zXe,Zoe(t.trim()).map(eB)}function QXe(t){return Joe[t]}function gE(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 Zoe(t){const e=[],n=t.length;let r=0,i=0;for(;i<n;)i=gE(t,i,Koe,YT+Voe,KT+Yoe),e.push(t.substring(r,i).trim()),r=++i;if(e.length===0)throw"Empty event selector: "+t;return e}function eB(t){return t[0]==="["?GXe(t):WXe(t)}function GXe(t){const e=t.length;let n=1,r;if(n=gE(t,n,KT,YT,KT),n===e)throw"Empty between selector: "+t;if(r=Zoe(t.substring(1,n)),r.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(n+1).trim(),t[0]!==qXe)throw"Expected '>' after between selector: "+t;r=r.map(eB);const i=eB(t.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)}function WXe(t){const e={source:Xoe},n=[];let r=[0,0],i=0,s=0,o=t.length,u=0,a,l;if(t[o-1]===Yoe){if(u=t.lastIndexOf(Voe),u>=0){try{r=VXe(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]===UXe&&(i=++u),a=gE(t,u,jXe),a<o&&(n.push(t.substring(s,a).trim()),s=u=++a),u=gE(t,u,YT),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=gE(t,u,KT),u===o)throw"Unmatched left bracket: "+t;if(l.push(t.substring(s,u).trim()),u<o-1&&t[++u]!==YT)throw"Expected left bracket: "+t;s=++u}if(!(o=n.length)||HXe.test(n[o-1]))throw"Invalid event selector: "+t;return o>1?(e.type=n[1],i?e.markname=n[0].slice(1):QXe(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 VXe(t){const e=t.split(Koe);if(!t.length||e.length>2)throw t;return e.map(n=>{const r=+n;if(r!==r)throw t;return r})}function YXe(t){return He(t)?t:{type:t||"pad"}}const mE=t=>+t||0,KXe=t=>({top:t,bottom:t,left:t,right:t});function XXe(t){return He(t)?t.signal?t:{top:mE(t.top),bottom:mE(t.bottom),left:mE(t.left),right:mE(t.right)}:KXe(mE(t))}const Sr=t=>He(t)&&!_e(t)?ft({},t):{value:t};function eue(t,e,n,r){return n!=null?(He(n)&&!_e(n)||_e(n)&&n.length&&He(n[0])?t.update[e]=n:t[r||"enter"][e]={value:n},1):0}function Pr(t,e,n){for(const r in e)eue(t,r,e[r]);for(const r in n)eue(t,r,n[r],"update")}function R1(t,e,n){for(const r in e)n&&Je(n,r)||(t[r]=ft(t[r]||{},e[r]));return t}function O1(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}const tB="mark",nB="frame",rB="scope",JXe="axis",ZXe="axis-domain",eJe="axis-grid",tJe="axis-label",nJe="axis-tick",rJe="axis-title",iJe="legend",sJe="legend-band",oJe="legend-entry",uJe="legend-gradient",tue="legend-label",aJe="legend-symbol",lJe="legend-title",cJe="title",fJe="title-text",xJe="title-subtitle";function dJe(t,e,n,r,i){const s={},o={};let u,a,l,c;a="lineBreak",e==="text"&&i[a]!=null&&!O1(a,t)&&iB(s,a,i[a]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===nB?i.group:n===tB?ft({},i.mark,i[e]):null;for(a in c)l=O1(a,t)||(a==="fill"||a==="stroke")&&(O1("fill",t)||O1("stroke",t)),l||iB(s,a,c[a]);Pe(r).forEach(f=>{const x=i.style&&i.style[f];for(const h in x)O1(h,t)||iB(s,h,x[h])}),t=ft({},t);for(a in s)c=s[a],c.signal?(u=u||{})[a]=c:o[a]=c;return t.enter=ft(o,t.enter),u&&(t.update=ft(u,t.update)),t}function iB(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}const nue=t=>je(t)?we(t):t.signal?`(${t.signal})`:rue(t);function XT(t){if(t.gradient!=null)return pJe(t);let e=t.signal?`(${t.signal})`:t.color?hJe(t.color):t.field!=null?rue(t.field):t.value!==void 0?we(t.value):void 0;return t.scale!=null&&(e=gJe(t,e)),e===void 0&&(e=null),t.exponent!=null&&(e=`pow(${e},${ZT(t.exponent)})`),t.mult!=null&&(e+=`*${ZT(t.mult)}`),t.offset!=null&&(e+=`+${ZT(t.offset)}`),t.round&&(e=`round(${e})`),e}const JT=(t,e,n,r)=>`(${t}(${[e,n,r].map(XT).join(",")})+'')`;function hJe(t){return t.c?JT("hcl",t.h,t.c,t.l):t.h||t.s?JT("hsl",t.h,t.s,t.l):t.l||t.a?JT("lab",t.l,t.a,t.b):t.r||t.g||t.b?JT("rgb",t.r,t.g,t.b):null}function pJe(t){const e=[t.start,t.stop,t.count].map(n=>n==null?null:we(n));for(;e.length&&St(e)==null;)e.pop();return e.unshift(nue(t.gradient)),`gradient(${e.join(",")})`}function ZT(t){return He(t)?"("+XT(t)+")":t}function rue(t){return iue(He(t)?t:{datum:t})}function iue(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):Se("Invalid field reference: "+we(t));return t.signal||(r=je(r)?Al(r).map(we).join("]["):iue(r)),e+"["+r+"]"}function gJe(t,e){const n=nue(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?"":"*"+ZT(t.band)),t.extra&&(e=`(datum.extra ? _scale(${n}, datum.extra.value) : ${e})`)),e==null&&(e="0")),e}function mJe(t){let e="";return t.forEach(n=>{const r=XT(n);e+=n.test?`(${n.test})?${r}:`:r}),St(e)===":"&&(e+="null"),e}function sue(t,e,n,r,i,s){const o={};s=s||{},s.encoders={$encode:o},t=dJe(t,e,n,r,i.config);for(const u in t)o[u]=yJe(t[u],e,s,i);return s}function yJe(t,e,n,r){const i={},s={};for(const o in t)t[o]!=null&&(i[o]=AJe(EJe(t[o]),r,n,s));return{$expr:{marktype:e,channels:i},$fields:Object.keys(s),$output:Object.keys(t)}}function EJe(t){return _e(t)?mJe(t):XT(t)}function AJe(t,e,n,r){const i=La(t,e);return i.$fields.forEach(s=>r[s]=1),ft(n,i.$params),i.$expr}const vJe="outer",SJe=["value","update","init","react","bind"];function oue(t,e){Se(t+' for "outer" push: '+we(e))}function uue(t,e){const n=t.name;if(t.push===vJe)e.signals[n]||oue("No prior signal definition",n),SJe.forEach(r=>{t[r]!==void 0&&oue("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 sB(t,e,n,r){this.id=-1,this.type=t,this.value=e,this.params=n,r&&(this.parent=r)}function e6(t,e,n,r){return new sB(t,e,n,r)}function t6(t,e){return e6("operator",t,e)}function Xe(t){const e={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(e),e}function yE(t,e){return e?{$field:t,$name:e}:{$field:t}}const oB=yE("key");function aue(t,e){return{$compare:t,$order:e}}function _Je(t,e){const n={$key:t};return e&&(n.$flat=!0),n}const CJe="ascending",bJe="descending";function TJe(t){return He(t)?(t.order===bJe?"-":"+")+n6(t.op,t.field):""}function n6(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}const uB="scope",aB="view";function or(t){return t&&t.signal}function RJe(t){return t&&t.expr}function r6(t){if(or(t))return!0;if(He(t)){for(const e in t)if(r6(t[e]))return!0}return!1}function du(t,e){return t??e}function Od(t){return t&&t.signal||t}const lue="timer";function EE(t,e){return(t.merge?NJe:t.stream?DJe:t.type?FJe:Se("Invalid stream specification: "+we(t)))(t,e)}function OJe(t){return t===uB?aB:t||aB}function NJe(t,e){const n=t.merge.map(i=>EE(i,e)),r=lB({merge:n},t,e);return e.addStream(r).id}function DJe(t,e){const n=EE(t.stream,e),r=lB({stream:n},t,e);return e.addStream(r).id}function FJe(t,e){let n;t.type===lue?(n=e.event(lue,t.throttle),t={between:t.between,filter:t.filter}):n=e.event(OJe(t.source),t.type);const r=lB({stream:n},t,e);return Object.keys(r).length===1?n:e.addStream(r).id}function lB(t,e,n){let r=e.between;return r&&(r.length!==2&&Se('Stream "between" parameter must have 2 entries: '+we(e)),t.between=[EE(r[0],n),EE(r[1],n)]),r=e.filter?[].concat(e.filter):[],(e.marktype||e.markname||e.markrole)&&r.push(wJe(e.marktype,e.markname,e.markrole)),e.source===uB&&r.push("inScope(event.item)"),r.length&&(t.filter=La("("+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 wJe(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 LJe={code:"_.$value",ast:{type:"Identifier",value:"value"}};function IJe(t,e,n){const r=t.encode,i={target:n};let s=t.events,o=t.update,u=[];s||Se("Signal update missing events specification."),je(s)&&(s=Rd(s,e.isSubscope()?uB:aB)),s=Pe(s).filter(a=>a.signal||a.scale?(u.push(a),0):1),u.length>1&&(u=[BJe(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),r!=null&&(o&&Se("Signal encode and update are mutually exclusive."),o="encode(item(),"+we(r)+")"),i.update=je(o)?La(o,e):o.expr!=null?La(o.expr,e):o.value!=null?o.value:o.signal!=null?{$expr:LJe,$params:{$value:e.signalRef(o.signal)}}:Se("Invalid signal update specification."),t.force&&(i.options={force:!0}),u.forEach(a=>e.addUpdate(ft($Je(a,e),i)))}function $Je(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):EE(t,e)}}function BJe(t){return{signal:"["+t.map(e=>e.scale?'scale("'+e.scale+'")':e.signal)+"]"}}function kJe(t,e){const n=e.getSignal(t.name);let r=t.update;t.init&&(r?Se("Signals can not include both init and update expressions."):(r=t.init,n.initonly=!0)),r&&(r=La(r,e),n.update=r.$expr,n.params=r.$params),t.on&&t.on.forEach(i=>IJe(i,e,n.id))}const jt=t=>(e,n,r)=>e6(t,n,e||void 0,r),cue=jt("aggregate"),PJe=jt("axisticks"),fue=jt("bound"),hu=jt("collect"),xue=jt("compare"),MJe=jt("datajoin"),due=jt("encode"),jJe=jt("expression"),UJe=jt("facet"),qJe=jt("field"),HJe=jt("key"),zJe=jt("legendentries"),QJe=jt("load"),GJe=jt("mark"),WJe=jt("multiextent"),VJe=jt("multivalues"),YJe=jt("overlap"),KJe=jt("params"),hue=jt("prefacet"),XJe=jt("projection"),JJe=jt("proxy"),ZJe=jt("relay"),pue=jt("render"),eZe=jt("scale"),Nd=jt("sieve"),tZe=jt("sortitems"),gue=jt("viewlayout"),nZe=jt("values");let rZe=0;const mue={min:"min",max:"max",count:"sum"};function iZe(t,e){const n=t.type||"linear";Zee(n)||Se("Unrecognized scale type: "+we(n)),e.addScale(t.name,{type:n,domain:void 0})}function sZe(t,e){const n=e.getScale(t.name).params;let r;n.domain=yue(t.domain,t,e),t.range!=null&&(n.range=Aue(t,e,n)),t.interpolate!=null&&pZe(t.interpolate,n),t.nice!=null&&(n.nice=hZe(t.nice)),t.bins!=null&&(n.bins=dZe(t.bins,e));for(r in t)Je(n,r)||r==="name"||(n[r]=Ro(t[r],e))}function Ro(t,e){return He(t)?t.signal?e.signalRef(t.signal):Se("Unsupported object: "+we(t)):t}function i6(t,e){return t.signal?e.signalRef(t.signal):t.map(n=>Ro(n,e))}function s6(t){Se("Can not find data set: "+we(t))}function yue(t,e,n){if(!t){(e.domainMin!=null||e.domainMax!=null)&&Se("No scale domain defined for domainMin/domainMax to override.");return}return t.signal?n.signalRef(t.signal):(_e(t)?oZe:t.fields?aZe:uZe)(t,e,n)}function oZe(t,e,n){return t.map(r=>Ro(r,n))}function uZe(t,e,n){const r=n.getData(t.data);return r||s6(t.data),s1(e.type)?r.valuesRef(n,t.field,Eue(t.sort,!1)):nte(e.type)?r.domainRef(n,t.field):r.extentRef(n,t.field)}function aZe(t,e,n){const r=t.data,i=t.fields.reduce((s,o)=>(o=je(o)?{data:r,field:o}:_e(o)||o.signal?lZe(o,n):o,s.push(o),s),[]);return(s1(e.type)?cZe:nte(e.type)?fZe:xZe)(t,n,i)}function lZe(t,e){const n="_:vega:_"+rZe++,r=hu({});if(_e(t))r.value={$ingest:t};else if(t.signal){const i="setdata("+we(n)+","+t.signal+")";r.params.input=e.signalRef(i)}return e.addDataPipeline(n,[r,Nd({})]),{data:n,field:"data"}}function cZe(t,e,n){const r=Eue(t.sort,!0);let i,s;const o=n.map(l=>{const c=e.getData(l.data);return c||s6(l.data),c.countsRef(e,l.field,r)}),u={groupby:oB,pulse:o};r&&(i=r.op||"count",s=r.field?n6(i,r.field):"count",u.ops=[mue[i]],u.fields=[e.fieldRef(s)],u.as=[s]),i=e.add(cue(u));const a=e.add(hu({pulse:Xe(i)}));return s=e.add(nZe({field:oB,sort:e.sortRef(r),pulse:Xe(a)})),Xe(s)}function Eue(t,e){return t&&(!t.field&&!t.op?He(t)?t.field="key":t={field:"key"}:!t.field&&t.op!=="count"?Se("No field provided for sort aggregate op: "+t.op):e&&t.field&&t.op&&!mue[t.op]&&Se("Multiple domain scales can not be sorted using "+t.op)),t}function fZe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||s6(i.data),s.domainRef(e,i.field)});return Xe(e.add(VJe({values:r})))}function xZe(t,e,n){const r=n.map(i=>{const s=e.getData(i.data);return s||s6(i.data),s.extentRef(e,i.field)});return Xe(e.add(WJe({extents:r})))}function dZe(t,e){return t.signal||_e(t)?i6(t,e):e.objectProperty(t)}function hZe(t){return He(t)?{interval:Ro(t.interval),step:Ro(t.step)}:Ro(t)}function pZe(t,e){e.interpolate=Ro(t.type||t),t.gamma!=null&&(e.interpolateGamma=Ro(t.gamma))}function Aue(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=ft({},t,{range:r[i]}),Aue(t,e,n);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=s1(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:Se("Unrecognized scale range value: "+we(i))}else if(i.scheme){n.scheme=_e(i.scheme)?i6(i.scheme,e):Ro(i.scheme,e),i.extent&&(n.schemeExtent=i6(i.extent,e)),i.count&&(n.schemeCount=Ro(i.count,e));return}else if(i.step){n.rangeStep=Ro(i.step,e);return}else{if(s1(t.type)&&!_e(i))return yue(i,t,e);_e(i)||Se("Unsupported range type: "+we(i))}return i.map(s=>(_e(s)?i6:Ro)(s,e))}function gZe(t,e){const n=e.config.projection||{},r={};for(const i in t)i!=="name"&&(r[i]=cB(t[i],i,e));for(const i in n)r[i]==null&&(r[i]=cB(n[i],i,e));e.addProjection(t.name,r)}function cB(t,e,n){return _e(t)?t.map(r=>cB(r,e,n)):He(t)?t.signal?n.signalRef(t.signal):e==="fit"?t:Se("Unsupported parameter object: "+we(t)):t}const pu="top",N1="left",D1="right",zc="bottom",vue="center",mZe="vertical",yZe="start",EZe="middle",AZe="end",fB="index",xB="label",vZe="offset",F1="perc",SZe="perc2",Oo="value",AE="guide-label",dB="guide-title",_Ze="group-title",CZe="group-subtitle",Sue="symbol",o6="gradient",hB="discrete",pB="size",gB=[pB,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],vE={name:1,style:1,interactive:1},bt={value:0},No={value:1},u6="group",_ue="rect",mB="rule",bZe="symbol",Dd="text";function SE(t){return t.type=u6,t.interactive=t.interactive||!1,t}function ys(t,e){const n=(r,i)=>du(t[r],du(e[r],i));return n.isVertical=r=>mZe===du(t.direction,e.direction||(r?e.symbolDirection:e.gradientDirection)),n.gradientLength=()=>du(t.gradientLength,e.gradientLength||e.gradientWidth),n.gradientThickness=()=>du(t.gradientThickness,e.gradientThickness||e.gradientHeight),n.entryColumns=()=>du(t.columns,du(e.columns,+n.isVertical(!0))),n}function Cue(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 TZe(t,e,n){const r=e.config.style[n];return r&&r[t]}function a6(t,e,n){return`item.anchor === '${yZe}' ? ${t} : item.anchor === '${AZe}' ? ${e} : ${n}`}const yB=a6(we(N1),we(D1),we(vue));function RZe(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'`},He(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 bue(t,e){return e?t?He(t)?Object.assign({},t,{offset:bue(t.offset,e)}):{value:t,offset:e}:e:t}function Gs(t,e){return e?(t.name=e.name,t.style=e.style||t.style,t.interactive=!!e.interactive,t.encode=R1(t.encode,e,vE)):t.interactive=!1,t}function OZe(t,e,n,r){const i=ys(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:bt,x:bt,y:bt,width:Sr(f),height:Sr(x)},update:ft({},a,{opacity:No,fill:{gradient:e,start:l,stop:c}}),exit:{opacity:bt}};return Pr(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),Gs({type:_ue,role:uJe,encode:h},r)}function NZe(t,e,n,r,i){const s=ys(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:bt,fill:{scale:e,field:Oo}};p[l]={signal:h+"datum."+F1,mult:a},p[c]=bt,p[f]={signal:h+"datum."+SZe,mult:a},p[x]=Sr(u);const m={enter:p,update:ft({},p,{opacity:No}),exit:{opacity:bt}};return Pr(m,{stroke:s("gradientStrokeColor"),strokeWidth:s("gradientStrokeWidth")},{opacity:s("gradientOpacity")}),Gs({type:_ue,role:sJe,key:Oo,from:i,encode:m},r)}const DZe=`datum.${F1}<=0?"${N1}":datum.${F1}>=1?"${D1}":"${vue}"`,FZe=`datum.${F1}<=0?"${zc}":datum.${F1}>=1?"${pu}":"${EZe}"`;function Tue(t,e,n,r){const i=ys(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:bt},update:c={opacity:No,text:{field:xB}},exit:{opacity:bt}};return Pr(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:du(t.labelLimit,e.gradientLabelLimit)}),s?(l.align={value:"left"},l.baseline=c.baseline={signal:FZe},f="y",x="x",h="1-"):(l.align=c.align={signal:DZe},l.baseline={value:"top"},f="x",x="y"),l[f]=c[f]={signal:h+"datum."+F1,mult:u},l[x]=c[x]=o,o.offset=du(t.labelOffset,e.gradientLabelOffset)||0,a=a?{separation:i("labelSeparation"),method:a,order:"datum."+fB}:void 0,Gs({type:Dd,role:tue,style:AE,key:Oo,from:r,encode:p,overlap:a},n)}function wZe(t,e,n,r,i){const s=ys(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.${vZe} : datum.${pB}`,h=l?Sr(l):{field:pB},p=`datum.${fB}`,m=`max(1, ${i})`;let g,y,E,A,v;h.mult=.5,g={enter:y={opacity:bt,x:{signal:x,mult:.5,offset:c},y:h},update:E={opacity:No,x:y.x,y:y.y},exit:{opacity:bt}};let S=null,C=null;t.fill||(S=e.symbolBaseFillColor,C=e.symbolBaseStrokeColor),Pr(g,{fill:s("symbolFillColor",S),shape:s("symbolType"),size:s("symbolSize"),stroke:s("symbolStrokeColor",C),strokeDash:s("symbolDash"),strokeDashOffset:s("symbolDashOffset"),strokeWidth:s("symbolStrokeWidth")},{opacity:s("symbolOpacity")}),gB.forEach(O=>{t[O]&&(E[O]=y[O]={scale:t[O],field:Oo})});const _=Gs({type:bZe,role:aJe,key:Oo,from:f,clip:l?!0:void 0,encode:g},n.symbols),b=Sr(c);b.offset=s("labelOffset"),g={enter:y={opacity:bt,x:{signal:x,offset:b},y:h},update:E={opacity:No,text:{field:xB},x:y.x,y:y.y},exit:{opacity:bt}},Pr(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 R=Gs({type:Dd,role:tue,style:AE,key:Oo,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!l},width:bt,height:l?Sr(l):bt,opacity:bt},exit:{opacity:bt},update:E={opacity:No,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})`,v={field:["row",p]}):(E.row.signal=`floor(${p} / ${m})`,E.column.signal=`${p} % ${m}`,v={field:p}),E.column.signal=`(${i})?${E.column.signal}:${p}`,r={facet:{data:r,name:"value",groupby:fB}},SE({role:rB,from:r,encode:R1(g,o,vE),marks:[_,R],name:a,interactive:u,sort:v})}function LZe(t,e){const n=ys(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const EB='item.orient === "left"',AB='item.orient === "right"',l6=`(${EB} || ${AB})`,IZe=`datum.vgrad && ${l6}`,$Ze=a6('"top"','"bottom"','"middle"'),BZe=a6('"right"','"left"','"center"'),kZe=`datum.vgrad && ${AB} ? (${BZe}) : (${l6} && !(datum.vgrad && ${EB})) ? "left" : ${yB}`,PZe=`item._anchor || (${l6} ? "middle" : "start")`,MZe=`${IZe} ? (${EB} ? -90 : 90) : 0`,jZe=`${l6} ? (datum.vgrad ? (${AB} ? "bottom" : "top") : ${$Ze}) : "top"`;function UZe(t,e,n,r){const i=ys(t,e),s={enter:{opacity:bt},update:{opacity:No,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:bt}};return Pr(s,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:PZe},angle:{signal:MZe},align:{signal:kZe},baseline:{signal:jZe},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")}),Gs({type:Dd,role:lJe,style:dB,from:r,encode:s},n)}function qZe(t,e){let n;return He(t)&&(t.signal?n=t.signal:t.path?n="pathShape("+Rue(t.path)+")":t.sphere&&(n="geoShape("+Rue(t.sphere)+', {type: "Sphere"})')),n?e.signalRef(n):!!t}function Rue(t){return He(t)&&t.signal?t.signal:we(t)}function Oue(t){const e=t.role||"";return!e.indexOf("axis")||!e.indexOf("legend")||!e.indexOf("title")?e:t.type===u6?rB:e||tB}function HZe(t){return{marktype:t.type,name:t.name||void 0,role:t.role||Oue(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function zZe(t,e){return t&&t.signal?e.signalRef(t.signal):t!==!1}function vB(t,e){const n=I$e(t.type);n||Se("Unrecognized transform type: "+we(t.type));const r=e6(n.type.toLowerCase(),null,Nue(n,t,e));return t.signal&&e.addSignal(t.signal,e.proxy(r)),r.metadata=n.metadata||{},r}function Nue(t,e,n){const r={},i=t.params.length;for(let s=0;s<i;++s){const o=t.params[s];r[o.name]=QZe(o,e,n)}return r}function QZe(t,e,n){const r=t.type,i=e[t.name];if(r==="index")return GZe(t,e,n);if(i===void 0){t.required&&Se("Missing required "+we(e.type)+" parameter: "+we(t.name));return}else{if(r==="param")return WZe(t,e,n);if(r==="projection")return n.projectionRef(e[t.name])}return t.array&&!or(i)?i.map(s=>Due(t,s,n)):Due(t,i,n)}function Due(t,e,n){const r=t.type;if(or(e))return wue(r)?Se("Expression references can not be signals."):SB(r)?n.fieldRef(e):Lue(r)?n.compareRef(e):n.signalRef(e.signal);{const i=t.expr||SB(r);return i&&VZe(e)?n.exprRef(e.expr,e.as):i&&YZe(e)?yE(e.field,e.as):wue(r)?La(e,n):KZe(r)?Xe(n.getData(e).values):SB(r)?yE(e):Lue(r)?n.compareRef(e):e}}function GZe(t,e,n){return je(e.from)||Se('Lookup "from" parameter must be a string literal.'),n.getData(e.from).lookupRef(n,e.key)}function WZe(t,e,n){const r=e[t.name];return t.array?(_e(r)||Se("Expected an array of sub-parameters. Instead: "+we(r)),r.map(i=>Fue(t,i,n))):Fue(t,r,n)}function Fue(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||Se("Unsupported parameter: "+we(e));const s=ft(Nue(i,e,n),i.key);return Xe(n.add(KJe(s)))}const VZe=t=>t&&t.expr,YZe=t=>t&&t.field,KZe=t=>t==="data",wue=t=>t==="expr",SB=t=>t==="field",Lue=t=>t==="compare";function XZe(t,e,n){let r,i,s,o,u;return t?(r=t.facet)&&(e||Se("Only group marks can be faceted."),r.field!=null?o=u=c6(r,n):(t.data?u=Xe(n.getData(t.data).aggregate):(s=vB(ft({type:"aggregate",groupby:Pe(r.groupby)},r.aggregate),n),s.params.key=n.keyRef(r.groupby),s.params.pulse=c6(r,n),o=u=Xe(n.add(s))),i=n.keyRef(r.groupby,!0))):o=Xe(n.add(hu(null,[{}]))),o||(o=c6(t,n)),{key:i,pulse:o,parent:u}}function c6(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:Xe(e.getData(t.data).output)}function Fd(t,e,n,r,i){this.scope=t,this.input=e,this.output=n,this.values=r,this.aggregate=i,this.index={}}Fd.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=Xe(e[u-1]),t.add(e[u]),e[u].type==="aggregate"&&(o=e[u]);return new Fd(t,s,i,r,o)};function Iue(t){return je(t)?t:null}function $ue(t,e,n){const r=n6(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 _E(t,e,n,r,i,s,o){const u=e[n]||(e[n]={}),a=TJe(s);let l=Iue(i),c,f;if(l!=null&&(t=e.scope,l=l+(a?"|"+a:""),c=u[l]),!c){const x=s?{field:oB,pulse:e.countsRef(t,i,s)}:{field:t.fieldRef(i),pulse:Xe(e.output)};a&&(x.sort=t.sortRef(s)),f=t.add(e6(r,void 0,x)),o&&(e.index[i]=f),c=Xe(f),l!=null&&(u[l]=c)}return c}Fd.prototype={countsRef(t,e,n){const r=this,i=r.counts||(r.counts={}),s=Iue(e);let o,u,a;return s!=null&&(t=r.scope,o=i[s]),o?n&&n.field&&$ue(t,o.agg.params,n):(a={groupby:t.fieldRef(e,"key"),pulse:Xe(r.output)},n&&n.field&&$ue(t,a,n),u=t.add(cue(a)),o=t.add(hu({pulse:Xe(u)})),o={agg:u,ref:Xe(o)},s!=null&&(i[s]=o)),o.ref},tuplesRef(){return Xe(this.values)},extentRef(t,e){return _E(t,this,"extent","extent",e,!1)},domainRef(t,e){return _E(t,this,"domain","values",e,!1)},valuesRef(t,e,n){return _E(t,this,"vals","values",e,n||!0)},lookupRef(t,e){return _E(t,this,"lookup","tupleindex",e,!1)},indataRef(t,e){return _E(t,this,"indata","tupleindex",e,!0,!0)}};function JZe(t,e,n){const r=t.from.facet,i=r.name,s=c6(r,e);let o;r.name||Se("Facet must have a name: "+we(r)),r.data||Se("Facet must reference a data set: "+we(r)),r.field?o=e.add(hue({field:e.fieldRef(r.field),pulse:s})):r.groupby?o=e.add(UJe({key:e.keyRef(r.groupby),group:Xe(e.proxy(n.parent)),pulse:s})):Se("Facet must specify groupby or field: "+we(r));const u=e.fork(),a=u.add(hu()),l=u.add(Nd({pulse:Xe(a)}));u.addData(i,new Fd(u,a,a,l)),u.addSignal("parent",null),o.params.subflow={$subflow:u.parse(t).toRuntime()}}function ZZe(t,e,n){const r=e.add(hue({pulse:n.pulse})),i=e.fork();i.add(Nd()),i.addSignal("parent",null),r.params.subflow={$subflow:i.parse(t).toRuntime()}}function Bue(t,e,n){const r=t.remove,i=t.insert,s=t.toggle,o=t.modify,u=t.values,a=e.add(t6()),l="if("+t.trigger+',modify("'+n+'",'+[i,r,s,o,u].map(f=>f??"null").join(",")+"),0)",c=La(l,e);a.update=c.$expr,a.params=c.$params}function f6(t,e){const n=Oue(t),r=t.type===u6,i=t.from&&t.from.facet,s=t.overlap;let o=t.layout||n===rB||n===nB,u,a,l,c,f,x,h;const p=n===tB||o||i,m=XZe(t.from,r,e);a=e.add(MJe({key:m.key||(t.key?yE(t.key):void 0),pulse:m.pulse,clean:!r}));const g=Xe(a);a=l=e.add(hu({pulse:g})),a=e.add(GJe({markdef:HZe(t),interactive:zZe(t.interactive,e),clip:qZe(t.clip,e),context:{$context:!0},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:Xe(a)}));const y=Xe(a);a=c=e.add(due(sue(t.encode,t.type,n,t.style,e,{mod:!1,pulse:y}))),a.params.parent=e.encode(),t.transform&&t.transform.forEach(C=>{const _=vB(C,e),b=_.metadata;(b.generates||b.changes)&&Se("Mark transforms should not generate new data."),b.nomod||(c.params.mod=!0),_.params.pulse=Xe(a),e.add(a=_)}),t.sort&&(a=e.add(tZe({sort:e.compareRef(t.sort),pulse:Xe(a)})));const E=Xe(a);(i||o)&&(o=e.add(gue({layout:e.objectProperty(t.layout),legends:e.legends,mark:y,pulse:E})),x=Xe(o));const A=e.add(fue({mark:y,pulse:x||E}));h=Xe(A),r&&(p&&(u=e.operators,u.pop(),o&&u.pop()),e.pushState(E,x||h,g),i?JZe(t,e,m):p?ZZe(t,e,m):e.parse(t),e.popState(),p&&(o&&u.push(o),u.push(A))),s&&(h=eet(s,h,e));const v=e.add(pue({pulse:h})),S=e.add(Nd({pulse:Xe(v)},void 0,e.parent()));t.name!=null&&(f=t.name,e.addData(f,new Fd(e,l,v,S)),t.on&&t.on.forEach(C=>{(C.insert||C.remove||C.toggle)&&Se("Marks only support modify triggers."),Bue(C,e,f)}))}function eet(t,e,n){const r=t.method,i=t.bound,s=t.separation,o={separation:or(s)?n.signalRef(s.signal):s,method:or(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=or(u)?n.signalRef(u.signal):+u,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return Xe(n.add(YJe(o)))}function tet(t,e){const n=e.config.legend,r=t.encode||{},i=ys(t,n),s=r.legend||{},o=s.name||void 0,u=s.interactive,a=s.style,l={};let c=0,f,x,h;gB.forEach(A=>t[A]?(l[A]=t[A],c=c||t[A]):0),c||Se("Missing valid scale for legend.");const p=net(t,e.scaleType(c)),m={title:t.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&i.isVertical()},g=Xe(e.add(hu(null,[m]))),y={enter:{x:{value:0},y:{value:0}}},E=Xe(e.add(zJe(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===o6?(h=[OZe(t,c,n,r.gradient),Tue(t,n,r.labels,E)],x.count=x.count||e.signalRef(`max(2,2*floor((${Od(i.gradientLength())})/100))`)):p===hB?h=[NZe(t,c,n,r.gradient,E),Tue(t,n,r.labels,E)]:(f=LZe(t,n),h=[wZe(t,n,r,E,Od(f.columns))],x.size=set(t,e,h[0].marks)),h=[SE({role:oJe,from:g,encode:y,marks:h,layout:f,interactive:u})],m.title&&h.push(UZe(t,n,r.title,g)),f6(SE({role:iJe,from:g,encode:R1(iet(i,t,n),s,vE),marks:h,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:u,style:a}),e)}function net(t,e){let n=t.type||Sue;return!t.type&&ret(t)===1&&(t.fill||t.stroke)&&(n=F9(e)?o6:w9(e)?hB:Sue),n!==o6?n:w9(e)?hB:o6}function ret(t){return gB.reduce((e,n)=>e+(t[n]?1:0),0)}function iet(t,e,n){const r={enter:{},update:{}};return Pr(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 set(t,e,n){const r=Od(kue("size",t,n)),i=Od(kue("strokeWidth",t,n)),s=Od(oet(n[1].encode,e,AE));return La(`max(ceil(sqrt(${r})+${i}),${s})`,e)}function kue(t,e,n){return e[t]?`scale("${e[t]}",datum)`:Cue(t,n[0].encode)}function oet(t,e,n){return Cue("fontSize",t)||TZe("fontSize",e,n)}const uet=`item.orient==="${N1}"?-90:item.orient==="${D1}"?90:0`;function aet(t,e){t=je(t)?{text:t}:t;const n=ys(t,e.config.title),r=t.encode||{},i=r.group||{},s=i.name||void 0,o=i.interactive,u=i.style,a=[],l={},c=Xe(e.add(hu(null,[l])));return a.push(xet(t,n,cet(t),c)),t.subtitle&&a.push(det(t,n,r.subtitle,c)),f6(SE({role:cJe,from:c,encode:fet(n,i),marks:a,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:s,interactive:o,style:u}),e)}function cet(t){const e=t.encode;return e&&e.title||ft({name:t.name,interactive:t.interactive,style:t.style},e)}function fet(t,e){const n={enter:{},update:{}};return Pr(n,{orient:t("orient"),anchor:t("anchor"),align:{signal:yB},angle:{signal:uet},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),R1(n,e,vE)}function xet(t,e,n,r){const i={value:0},s=t.text,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Pr(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")}),Gs({type:Dd,role:fJe,style:_Ze,from:r,encode:o},n)}function det(t,e,n,r){const i={value:0},s=t.subtitle,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Pr(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")}),Gs({type:Dd,role:xJe,style:CZe,from:r,encode:o},n)}function het(t,e){const n=[];t.transform&&t.transform.forEach(r=>{n.push(vB(r,e))}),t.on&&t.on.forEach(r=>{Bue(r,e,t.name)}),e.addDataPipeline(t.name,pet(t,e,n))}function pet(t,e,n){const r=[];let i=null,s=!1,o=!1,u,a,l,c,f;for(t.values?or(t.values)||r6(t.format)?(r.push(Pue(e,t)),r.push(i=wd())):r.push(i=wd({$ingest:t.values,$format:t.format})):t.url?r6(t.url)||r6(t.format)?(r.push(Pue(e,t)),r.push(i=wd())):r.push(i=wd({$request:t.url,$format:t.format})):t.source&&(i=u=Pe(t.source).map(x=>Xe(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=wd()),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]=ZJe({derive:s,pulse:l?u:u[0]}),(s||l)&&r.splice(1,0,wd())),i||r.push(wd()),r.push(Nd({})),r}function wd(t){const e=hu({},t);return e.metadata={source:!0},e}function Pue(t,e){return QJe({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 Mue=t=>t===zc||t===pu,x6=(t,e,n)=>or(t)?Eet(t.signal,e,n):t===N1||t===pu?e:n,_r=(t,e,n)=>or(t)?met(t.signal,e,n):Mue(t)?e:n,gu=(t,e,n)=>or(t)?yet(t.signal,e,n):Mue(t)?n:e,jue=(t,e,n)=>or(t)?Aet(t.signal,e,n):t===pu?{value:e}:{value:n},get=(t,e,n)=>or(t)?vet(t.signal,e,n):t===D1?{value:e}:{value:n},met=(t,e,n)=>Uue(`${t} === '${pu}' || ${t} === '${zc}'`,e,n),yet=(t,e,n)=>Uue(`${t} !== '${pu}' && ${t} !== '${zc}'`,e,n),Eet=(t,e,n)=>_B(`${t} === '${N1}' || ${t} === '${pu}'`,e,n),Aet=(t,e,n)=>_B(`${t} === '${pu}'`,e,n),vet=(t,e,n)=>_B(`${t} === '${D1}'`,e,n),Uue=(t,e,n)=>(e=e!=null?Sr(e):e,n=n!=null?Sr(n):n,que(e)&&que(n)?(e=e?e.signal||we(e.value):null,n=n?n.signal||we(n.value):null,{signal:`${t} ? (${e}) : (${n})`}):[ft({test:t},e)].concat(n||[])),que=t=>t==null||Object.keys(t).length===1,_B=(t,e,n)=>({signal:`${t} ? (${w1(e)}) : (${w1(n)})`}),_et=(t,e,n,r,i)=>({signal:(r!=null?`${t} === '${N1}' ? (${w1(r)}) : `:"")+(n!=null?`${t} === '${zc}' ? (${w1(n)}) : `:"")+(i!=null?`${t} === '${D1}' ? (${w1(i)}) : `:"")+(e!=null?`${t} === '${pu}' ? (${w1(e)}) : `:"")+"(null)"}),w1=t=>or(t)?t.signal:t==null?null:we(t),Cet=(t,e)=>e===0?0:or(t)?{signal:`(${t.signal}) * ${e}`}:{value:t*e},L1=(t,e)=>{const n=t.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+e.signal}:t};function I1(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[dB][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[AE][i]}return null}function Hue(t){const e={};for(const n of t)if(n)for(const r in n)e[r]=1;return Object.keys(e)}function bet(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(or(o)){const f=Hue([n.axisX,n.axisY]),x=Hue([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);u={};for(l of f)u[l]=_r(o,I1(l,n.axisX,i,r),I1(l,n.axisY,i,r));a={};for(l of x)a[l]=_et(o.signal,I1(l,n.axisTop,i,r),I1(l,n.axisBottom,i,r),I1(l,n.axisLeft,i,r),I1(l,n.axisRight,i,r))}else u=o===pu||o===zc?n.axisX:n.axisY,a=n["axis"+o[0].toUpperCase()+o.slice(1)];return u||a||s?ft({},i,u,a,s):i}function Tet(t,e,n,r){const i=ys(t,e),s=t.orient;let o,u;const a={enter:o={opacity:bt},update:u={opacity:No},exit:{opacity:bt}};Pr(a,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const l=zue(t,0),c=zue(t,1);return o.x=u.x=_r(s,l,bt),o.x2=u.x2=_r(s,c),o.y=u.y=gu(s,l,bt),o.y2=u.y2=gu(s,c),Gs({type:mB,role:ZXe,from:r,encode:a},n)}function zue(t,e){return{scale:t.scale,range:e}}function Ret(t,e,n,r,i){const s=ys(t,e),o=t.orient,u=t.gridScale,a=x6(o,1,-1),l=Oet(t.offset,a);let c,f,x;const h={enter:c={opacity:bt},update:x={opacity:No},exit:f={opacity:bt}};Pr(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:Oo,band:i.band,extra:i.extra,offset:i.offset,round:s("tickRound")},m=_r(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}:ft(m,{mult:a,offset:l});return c.x=x.x=_r(o,p,g),c.y=x.y=gu(o,p,g),c.x2=x.x2=gu(o,y),c.y2=x.y2=_r(o,y),f.x=_r(o,p),f.y=gu(o,p),Gs({type:mB,role:eJe,key:Oo,from:r,encode:h},n)}function Oet(t,e){if(e!==1)if(!He(t))t=or(e)?{signal:`(${e.signal}) * (${t||0})`}:e*(t||0);else{let n=t=ft({},t);for(;n.mult!=null;)if(He(n.mult))n=n.mult=ft({},n.mult);else return n.mult=or(e)?{signal:`(${n.mult}) * (${e.signal})`}:n.mult*e,t;n.mult=e}return t}function Net(t,e,n,r,i,s){const o=ys(t,e),u=t.orient,a=x6(u,-1,1);let l,c,f;const x={enter:l={opacity:bt},update:f={opacity:No},exit:c={opacity:bt}};Pr(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:Oo,band:s.band,extra:s.extra,offset:s.offset,round:o("tickRound")};return f.y=l.y=_r(u,bt,p),f.y2=l.y2=_r(u,h),c.x=_r(u,p),f.x=l.x=gu(u,bt,p),f.x2=l.x2=gu(u,h),c.y=gu(u,p),Gs({type:mB,role:nJe,key:Oo,from:r,encode:x},n)}function CB(t,e,n,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+e+","+n+","+r+","+i+")"}}function Det(t,e,n,r,i,s){const o=ys(t,e),u=t.orient,a=t.scale,l=x6(u,-1,1),c=Od(o("labelFlush")),f=Od(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:Oo,band:.5,offset:bue(s.offset,o("labelOffset"))},E=_r(u,p?CB(a,c,'"left"','"right"','"center"'):{value:"center"},get(u,"left","right")),A=_r(u,jue(u,"bottom","top"),p?CB(a,c,'"top"','"bottom"','"middle"'):{value:"middle"}),v=CB(a,c,`-(${f})`,f,0);p=p&&f;const S={opacity:bt,x:_r(u,y,g),y:gu(u,y,g)},C={enter:S,update:m={opacity:No,text:{field:xB},x:S.x,y:S.y,align:E,baseline:A},exit:{opacity:bt,x:S.x,y:S.y}};Pr(C,{dx:!x&&p?_r(u,v):null,dy:!h&&p?gu(u,v):null}),Pr(C,{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 _=o("labelBound");let b=o("labelOverlap");return b=b||_?{separation:o("labelSeparation"),method:b,order:"datum.index",bound:_?{scale:a,orient:u,tolerance:_}:null}:void 0,m.align!==E&&(m.align=L1(m.align,E)),m.baseline!==A&&(m.baseline=L1(m.baseline,A)),Gs({type:Dd,role:tJe,style:AE,key:Oo,from:r,encode:C,overlap:b},n)}function Fet(t,e,n,r){const i=ys(t,e),s=t.orient,o=x6(s,-1,1);let u,a;const l={enter:u={opacity:bt,anchor:Sr(i("titleAnchor",null)),align:{signal:yB}},update:a=ft({},u,{opacity:No,text:Sr(t.title)}),exit:{opacity:bt}},c={signal:`lerp(range("${t.scale}"), ${a6(0,1,.5)})`};return a.x=_r(s,c),a.y=gu(s,c),u.angle=_r(s,bt,Cet(o,90)),u.baseline=_r(s,jue(s,zc,pu),{value:zc}),a.angle=u.angle,a.baseline=u.baseline,Pr(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")}),wet(i,s,l,n),l.update.align=L1(l.update.align,u.align),l.update.angle=L1(l.update.angle,u.angle),l.update.baseline=L1(l.update.baseline,u.baseline),Gs({type:Dd,role:rJe,style:dB,from:r,encode:l},n)}function wet(t,e,n,r){const i=(u,a)=>u!=null?(n.update[a]=L1(Sr(u),n.update[a]),!1):!O1(a,r),s=i(t("titleX"),"x"),o=i(t("titleY"),"y");n.enter.auto=o===s?Sr(o):_r(e,Sr(o),Sr(s))}function Let(t,e){const n=bet(t,e),r=t.encode||{},i=r.axis||{},s=i.name||void 0,o=i.interactive,u=i.style,a=ys(t,n),l=RZe(a),c={scale:t.scale,ticks:!!a("ticks"),labels:!!a("labels"),grid:!!a("grid"),domain:!!a("domain"),title:t.title!=null},f=Xe(e.add(hu({},[c]))),x=Xe(e.add(PJe({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(Ret(t,n,r.grid,x,l)),c.ticks&&(p=a("tickSize"),h.push(Net(t,n,r.ticks,x,p,l))),c.labels&&(p=c.ticks?p:0,h.push(Det(t,n,r.labels,x,p,l))),c.domain&&h.push(Tet(t,n,r.domain,f)),c.title&&h.push(Fet(t,n,r.title,f)),f6(SE({role:JXe,from:f,encode:R1(Iet(a,t),i,vE),marks:h,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:s,interactive:o,style:u}),e)}function Iet(t,e){const n={enter:{},update:{}};return Pr(n,{orient:t("orient"),offset:t("offset")||0,position:du(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 Que(t,e,n){const r=Pe(t.signals),i=Pe(t.scales);return n||r.forEach(s=>uue(s,e)),Pe(t.projections).forEach(s=>gZe(s,e)),i.forEach(s=>iZe(s,e)),Pe(t.data).forEach(s=>het(s,e)),i.forEach(s=>sZe(s,e)),(n||r).forEach(s=>kJe(s,e)),Pe(t.axes).forEach(s=>Let(s,e)),Pe(t.marks).forEach(s=>f6(s,e)),Pe(t.legends).forEach(s=>tet(s,e)),t.title&&aet(t.title,e),e.parseLambdas(),e}const $et=t=>R1({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function Bet(t,e){const n=e.config,r=Xe(e.root=e.add(t6())),i=ket(t,n);i.forEach(l=>uue(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(hu()),o=e.add(due(sue($et(t.encode),u6,nB,t.style,e,{pulse:Xe(s)}))),u=e.add(gue({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:r,pulse:Xe(o)}));e.operators.pop(),e.pushState(Xe(o),Xe(u),null),Que(t,e,i),e.operators.push(u);let a=e.add(fue({mark:r,pulse:Xe(u)}));return a=e.add(pue({pulse:Xe(a)})),a=e.add(Nd({pulse:Xe(a)})),e.addData("root",new Fd(e,s,s,a)),e}function CE(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function ket(t,e){const n=o=>du(t[o],e[o]),r=[CE("background",n("background")),CE("autosize",YXe(n("autosize"))),CE("padding",XXe(n("padding"))),CE("width",n("width")||0),CE("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=ft(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 Gue(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 Wue(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}Gue.prototype=Wue.prototype={parse(t){return Que(t,this)},fork(){return new Wue(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 sB?Xe(t):t;return this.add(JJe({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(Xe(this.add(Nd({pulse:t})))),this._parent.push(e),this._lookup.push(n?Xe(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return St(this._parent)},encode(){return St(this._encode)},lookup(){return St(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,e){if(je(t))return yE(t,e);t.signal||Se("Unsupported field reference: "+we(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=Xe(this.add(qJe(i)))}return r},compareRef(t){let e=!1;const n=s=>or(s)?(e=!0,this.signalRef(s.signal)):RJe(s)?(e=!0,this.exprRef(s.expr)):s,r=Pe(t.field).map(n),i=Pe(t.order).map(n);return e?Xe(this.add(xue({fields:r,orders:i}))):aue(r,i)},keyRef(t,e){let n=!1;const r=s=>or(s)?(n=!0,Xe(i[s.signal])):s,i=this.signals;return t=Pe(t).map(r),n?Xe(this.add(HJe({fields:t,flat:e}))):_Je(t,e)},sortRef(t){if(!t)return t;const e=n6(t.op,t.field),n=t.order||CJe;return n.signal?Xe(this.add(xue({fields:e,orders:this.signalRef(n.signal)}))):aue(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)&&Se("Duplicate signal name: "+we(t));const n=e instanceof sB?e:this.add(t6(e));return this.signals[t]=n},getSignal(t){return this.signals[t]||Se("Unrecognized signal name: "+we(t)),this.signals[t]},signalRef(t){return this.signals[t]?Xe(this.signals[t]):(Je(this.lambdas,t)||(this.lambdas[t]=this.add(t6(null))),Xe(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=La(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||!He(t)?t:this.signalRef(t.signal||bB(t))},exprRef(t,e){const n={expr:La(t,this)};return e&&(n.expr.$name=e),Xe(this.add(jJe(n)))},addBinding(t,e){this.bindings||Se("Nested signals do not support binding: "+we(t)),this.bindings.push(ft({signal:t},e))},addScaleProj(t,e){Je(this.scales,t)&&Se("Duplicate scale or projection name: "+we(t)),this.scales[t]=this.add(e)},addScale(t,e){this.addScaleProj(t,eZe(e))},addProjection(t,e){this.addScaleProj(t,XJe(e))},getScale(t){return this.scales[t]||Se("Unrecognized scale name: "+we(t)),this.scales[t]},scaleRef(t){return Xe(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)&&Se("Duplicate data set name: "+we(t)),this.data[t]=e},getData(t){return this.data[t]||Se("Undefined data set name: "+we(t)),this.data[t]},addDataPipeline(t,e){return Je(this.data,t)&&Se("Duplicate data set name: "+we(t)),this.addData(t,Fd.fromEntries(this,e))}};function bB(t){return(_e(t)?Pet:Met)(t)}function Pet(t){const e=t.length;let n="[";for(let r=0;r<e;++r){const i=t[r];n+=(r>0?",":"")+(He(i)?i.signal||bB(i):we(i))}return n+"]"}function Met(t){let e="{",n=0,r,i;for(r in t)i=t[r],e+=(++n>1?",":"")+we(r)+":"+(He(i)?i.signal||bB(i):we(i));return e+"}"}function jet(){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 Vue(t,e,n){return He(t)||Se("Input Vega specification must be an object."),e=HF(jet(),e,t.config),Bet(t,new Gue(e,n)).toRuntime()}ft(J3,HBe,Aqe,Qqe,Dze,CQe,XGe,DGe,ZGe,SWe,wWe,MWe);const bE={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Uet(t){return t==="quantitative"||t==="temporal"}function Yue(t){return t==="ordinal"||t==="nominal"}const Ld=bE.quantitative,TB=bE.ordinal,$1=bE.temporal,RB=bE.nominal,B1=bE.geojson;function qet(t){if(t)switch(t=t.toLowerCase(),t){case"q":case Ld:return"quantitative";case"t":case $1:return"temporal";case"o":case TB:return"ordinal";case"n":case RB:return"nominal";case B1:return"geojson"}}var Het=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 Es={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"},OB={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 zet(t,e){const n=OB[t],r=OB[e];return n===r||n==="ordinal-position"&&r==="time"||r==="ordinal-position"&&n==="time"}const Qet={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 Kue(t){return Qet[t]}const Xue=new Set(["linear","log","pow","sqrt","symlog"]),Jue=new Set([...Xue,"time","utc"]);function Zue(t){return Xue.has(t)}const eae=new Set(["quantile","quantize","threshold"]),Get=new Set([...Jue,...eae,"sequential","identity"]),Wet=new Set(["ordinal","bin-ordinal","point","band"]);function Cr(t){return Wet.has(t)}function Ws(t){return Get.has(t)}function mu(t){return Jue.has(t)}function k1(t){return eae.has(t)}const Vet={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 Yet(t){return!je(t)&&!!t.name}function tae(t){return t==null?void 0:t.param}function Ket(t){return t&&t.unionWith}function Xet(t){return He(t)&&"field"in t}const Jet=Het({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"]),Zet=Te(Jet);function NB(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 mu(t)||t==="band"||t==="point";case"padding":case"rangeMin":case"rangeMax":return mu(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 mu(t);case"nice":return mu(t)||t==="quantize"||t==="threshold";case"exponent":return t==="pow";case"base":return t==="log";case"constant":return t==="symlog";case"zero":return Ws(t)&&!Ct(["log","time","utc","threshold","quantile"],t)}}function nae(t,e){switch(e){case"interpolate":case"scheme":case"domainMid":return k2(t)?void 0:Ewe(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 ett(t,e){return Ct([TB,RB],e)?t===void 0||Cr(t):e===$1?Ct([Es.TIME,Es.UTC,void 0],t):e===Ld?Zue(t)||k1(t)||t===void 0:!0}function ttt(t,e,n=!1){if(!xc(t))return!1;switch(t){case En:case gr:case oc:case B2:case nu:case oa:return mu(e)||e==="band"?!0:e==="point"?!n:!1;case Ol:case lc:case Nl:case uc:case ac:case kx:return mu(e)||k1(e)||Ct(["band","point","ordinal"],e);case us:case la:case ca:return e!=="band";case cc:case as:return e==="ordinal"||k1(e)}}const Hi={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"},rae=Hi.arc,d6=Hi.area,h6=Hi.bar,ntt=Hi.image,p6=Hi.line,g6=Hi.point,rtt=Hi.rect,m6=Hi.rule,iae=Hi.text,DB=Hi.tick,itt=Hi.trail,FB=Hi.circle,wB=Hi.square,sae=Hi.geoshape;function Qc(t){return["line","area","trail"].includes(t)}function oae(t){return["rect","bar","image","arc"].includes(t)}const stt=new Set(Te(Hi));function Ia(t){return t.type}const ott=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],utt=["fill","fillOpacity"],att=[...ott,...utt],uae=Te({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),ltt={area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]},ctt={color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},aae=Te({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 P1(t){return t&&t.band!=null}const ftt={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},lae=5,xtt={binSpacing:1,continuousBandSize:lae,timeUnitBandPosition:.5},dtt={binSpacing:0,continuousBandSize:lae,timeUnitBandPosition:.5},htt={thickness:1};function ptt(t){return Ia(t)?t.type:t}function LB(t){const{channel:e,channelDef:n,markDef:r,scale:i,config:s}=t,o=$B(t);return Ie(n)&&!fK(n.aggregate)&&i&&mu(i.get("type"))?gtt({fieldDef:n,channel:e,markDef:r,ref:o,config:s}):o}function gtt({fieldDef:t,channel:e,markDef:n,ref:r,config:i}){return Qc(n.type)?r:It("invalid",n,i)===null?[mtt(t,e),r]:r}function mtt(t,e){const n=IB(t,!0),i=Mx(e)==="y"?{field:{group:"height"}}:{value:0};return Object.assign({test:n},i)}function IB(t,e=!0){return _8(je(t)?t:$e(t,{expr:"datum"}),!e)}function ytt(t){const{datum:e}=t;return qx(e)?D3(e):`${rn(e)}`}function Id(t,e,n,r){const i={};if(e&&(i.scale=e),Ba(t)){const{datum:s}=t;qx(s)?i.signal=D3(s):Ye(s)?i.signal=s.signal:N3(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 y6({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 $B({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(st(e)){const x=o==null?void 0:o.get("type");if(Do(e)){c??(c=vae({fieldDef:e,fieldDef2:n,markDef:r,config:i}));const{bin:h,timeUnit:p,type:m}=e;if(Kt(h)||c&&p&&m===$1)return u!=null&&u.impute?Id(e,s,{binSuffix:"mid"},{offset:a}):c&&!Cr(x)?y6({scaleName:s,fieldOrDatumDef:e,bandPosition:c,offset:a}):Id(e,s,NE(e,t)?{binSuffix:"range"}:{},{offset:a});if(Ti(h)){if(Ie(n))return y6({scaleName:s,fieldOrDatumDef:e,fieldOrDatumDef2:n,bandPosition:c,offset:a});Re(PK(t===En?tu:sa))}}return Id(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(yu(e)){const x=e.value,h=a?{offset:a}:{};return Object.assign(Object.assign({},TE(t,x)),h)}}return ct(l)&&(l=l()),l&&Object.assign(Object.assign({},l),a?{offset:a}:{})}function TE(t,e){return Ct(["x","x2"],t)&&e==="width"?{field:{group:"width"}}:Ct(["y","y2"],t)&&e==="height"?{field:{group:"height"}}:sn(e)}function $d(t){return t&&t!=="number"&&t!=="time"}function cae(t,e,n){return`${t}(${e}${n?`, ${rn(n)}`:""})`}const Ett=" – ";function BB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s}){var o,u;if($d(n))return kB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,config:s});const a=fae(t,r,i);if(U1(t)){const l=vtt(a,Ie(t)?(o=Ri(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0,e,s.timeFormat,Bd(t)&&((u=t.scale)===null||u===void 0?void 0:u.type)===Es.UTC);return l?{signal:l}:void 0}if(e=hae(UB(t),e,s),Ie(t)&&Kt(t.bin)){const l=$e(t,{expr:r,binSuffix:"end"});return{signal:E6(a,l,e,n,s)}}else return e||UB(t)==="quantitative"?{signal:`${pae(a,e)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function fae(t,e,n){return Ie(t)?n?`${$e(t,{expr:e,suffix:"end"})}-${$e(t,{expr:e,suffix:"start"})}`:$e(t,{expr:e}):ytt(t)}function kB({fieldOrDatumDef:t,format:e,formatType:n,expr:r,normalizeStack:i,config:s,field:o}){if(o??(o=fae(t,r,i)),Ie(t)&&Kt(t.bin)){const u=$e(t,{expr:r,binSuffix:"end"});return{signal:E6(o,u,e,n,s)}}return{signal:cae(n,o,e)}}function xae(t,e,n,r,i,s){var o;if(!$d(r)){if(U1(t)){const u=Ie(t)?(o=Ri(t.timeUnit))===null||o===void 0?void 0:o.unit:void 0;return Att(n,u,i,s)}return hae(e,n,i)}}function dae(t,e,n){if(t&&(Ye(t)||t==="number"||t==="time"))return t;if(U1(e)&&n!=="time"&&n!=="utc")return"time"}function hae(t,e,n){if(je(e))return e;if(t===Ld)return n.numberFormat}function Att(t,e,n,r){return t||(e?{signal:zK(e)}:r?void 0:n.timeFormat)}function pae(t,e){return`format(${t}, "${e||""}")`}function gae(t,e,n,r){var i;return $d(n)?cae(n,t,e):pae(t,(i=je(e)?e:void 0)!==null&&i!==void 0?i:r.numberFormat)}function E6(t,e,n,r,i){const s=gae(t,n,r,i),o=gae(e,n,r,i);return`${_8(t,!1)} ? "null" : ${s} + "${Ett}" + ${o}`}function vtt(t,e,n,r,i){return!e||n?(n=je(n)?n:r,`${i?"utc":"time"}Format(${t}, '${n}')`):i9e(e,t,i)}const A6="min",Stt={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 mae(t){return t in Stt}function yae(t){return!!t&&!!t.encoding}function $a(t){return!!t&&(t.op==="count"||!!t.field)}function Eae(t){return!!t&&_e(t)}function RE(t){return"row"in t||"column"in t}function PB(t){return!!t&&"header"in t}function v6(t){return"facet"in t}var MB=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){return t.param}function Ctt(t){return t&&!je(t)&&"repeat"in t}function Aae(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 jB(t){return"sort"in t}function vae({fieldDef:t,fieldDef2:e,markDef:n,config:r}){if(st(t)&&t.bandPosition!==void 0)return t.bandPosition;if(Ie(t)){const{timeUnit:i,bin:s}=t;if(i&&!e)return oae(n.type)?0:Ux("timeUnitBandPosition",n,r);if(Kt(s))return .5}}function Sae({channel:t,fieldDef:e,fieldDef2:n,markDef:r,config:i,scaleType:s,useVlSizeChannel:o}){var u,a,l;const c=ls(t),f=It(o?"size":c,r,i,{vgChannel:c});if(f!==void 0)return f;if(Ie(e)){const{timeUnit:x,bin:h}=e;if(x&&!n)return{band:Ux("timeUnitBandSize",r,i)};if(Kt(h)&&!Cr(s))return{band:1}}if(oae(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 _ae(t,e,n,r){return Kt(t.bin)||t.timeUnit&&Do(t)&&t.type==="temporal"?vae({fieldDef:t,fieldDef2:e,markDef:n,config:r})!==void 0:!1}function S6(t){return t&&"condition"in t}function _6(t){const e=t&&t.condition;return!!e&&!_e(e)&&Ie(e)}function OE(t){const e=t&&t.condition;return!!e&&!_e(e)&&st(e)}function btt(t){const e=t&&t.condition;return!!e&&(_e(e)||yu(e))}function Ie(t){return t&&(!!t.field||t.aggregate==="count")}function UB(t){return t&&t.type}function Ba(t){return t&&"datum"in t}function ka(t){return Do(t)&&!C6(t)||qB(t)}function qB(t){return Ba(t)&&nn(t.datum)}function st(t){return Ie(t)||Ba(t)}function Do(t){return t&&("field"in t||t.aggregate==="count")&&"type"in t}function yu(t){return t&&"value"in t&&"value"in t}function Bd(t){return t&&("scale"in t||"sort"in t)}function HB(t){return t&&("axis"in t||"stack"in t||"impute"in t)}function Cae(t){return t&&"legend"in t}function bae(t){return t&&("format"in t||"formatType"in t)}function Ttt(t){return po(t,["legend","axis","header","scale"])}function Rtt(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(Ntt(t))s=o8e("count");else{let l;if(!e.nofn)if(Rtt(t))l=t.op;else{const{bin:c,aggregate:f,timeUnit:x}=t;Kt(c)?(l=xK(c),u=((n=e.binSuffix)!==null&&n!==void 0?n:"")+((r=e.suffix)!==null&&r!==void 0?r:"")):f?dc(f)?(a=`["${s}"]`,s=`argmax_${f.argmax}`):Fl(f)?(a=`["${s}"]`,s=`argmin_${f.argmin}`):l=String(f):x&&(l=s9e(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?ZY(s):e.expr?n8e(s,e.expr)+a:eu(s)+a}function C6(t){switch(t.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return Ie(t)&&!!t.bin;case"temporal":return!1}throw new Error(wK(t.type))}function Ott(t){var e;return Bd(t)&&k1((e=t.scale)===null||e===void 0?void 0:e.type)}function Ntt(t){return t.aggregate==="count"}function Dtt(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=Ri(s))===null||n===void 0?void 0:n.unit;if(u)return`${r} (${p8(u).join("-")})`}else if(o)return dc(o)?`${r} for max ${o.argmax}`:Fl(o)?`${r} for min ${o.argmin}`:`${V5(o)} of ${r}`;return r}function Ftt(t){const{aggregate:e,bin:n,timeUnit:r,field:i}=t;if(dc(e))return`${i} for argmax(${e.argmax})`;if(Fl(e))return`${i} for argmin(${e.argmin})`;const s=Ri(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 Tae=(t,e)=>{switch(e.fieldTitle){case"plain":return t.field;case"functional":return Ftt(t);default:return Dtt(t,e)}};let Rae=Tae;function Oae(t){Rae=t}function wtt(){Oae(Tae)}function M1(t,e,{allowDisabling:n,includeDefault:r=!0}){var i,s;const o=(i=zB(t))===null||i===void 0?void 0:i.title;if(!Ie(t))return o??t.title;const u=t,a=r?QB(u,e):void 0;return n?er(o,u.title,a):(s=o??u.title)!==null&&s!==void 0?s:a}function zB(t){if(HB(t)&&t.axis)return t.axis;if(Cae(t)&&t.legend)return t.legend;if(PB(t)&&t.header)return t.header}function QB(t,e){return Rae(t,e)}function b6(t){var e;if(bae(t)){const{format:n,formatType:r}=t;return{format:n,formatType:r}}else{const n=(e=zB(t))!==null&&e!==void 0?e:{},{format:r,formatType:i}=n;return{format:r,formatType:i}}}function Ltt(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(jB(t)&&_e(t.sort))return"ordinal";const{aggregate:r,bin:i,timeUnit:s}=t;if(s)return"temporal";if(i||r&&!dc(r)&&!Fl(r))return"quantitative";if(Bd(t)&&(!((n=t.scale)===null||n===void 0)&&n.type))switch(OB[t.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function Pa(t){if(Ie(t))return t;if(_6(t))return t.condition}function ur(t){if(st(t))return t;if(OE(t))return t.condition}function Nae(t,e,n,r={}){if(je(t)||nn(t)||w2(t)){const i=je(t)?"string":nn(t)?"number":"boolean";return Re(owe(e,i,t)),{value:t}}return st(t)?T6(t,e,n,r):OE(t)?Object.assign(Object.assign({},t),{condition:T6(t.condition,e,n,r)}):t}function T6(t,e,n,r){if(bae(t)){const{format:i,formatType:s}=t,o=MB(t,["format","formatType"]);if($d(s)&&!n.customFormatTypes)return Re(FK(e)),T6(o,e,n,r)}else{const i=HB(t)?"axis":Cae(t)?"legend":PB(t)?"header":null;if(i&&t[i]){const s=t[i],{format:o,formatType:u}=s,a=MB(s,["format","formatType"]);if($d(u)&&!n.customFormatTypes)return Re(FK(e)),T6(Object.assign(Object.assign({},t),{[i]:a}),e,n,r)}}return Ie(t)?GB(t,e,r):Itt(t)}function Itt(t){let e=t.type;if(e)return t;const{datum:n}=t;return e=nn(n)?"quantitative":je(n)?"nominal":qx(n)?"temporal":void 0,Object.assign(Object.assign({},t),{type:e})}function GB(t,e,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:i,bin:s,field:o}=t,u=Object.assign({},t);if(!n&&r&&!s8(r)&&!dc(r)&&!Fl(r)&&(Re(awe(r)),delete u.aggregate),i&&(u.timeUnit=Ri(i)),o&&(u.field=`${o}`),Kt(s)&&(u.bin=R6(s,e)),Ti(s)&&!Ir(e)&&Re(Uwe(e)),Do(u)){const{type:a}=u,l=qet(a);a!==l&&(u.type=l),a!=="quantitative"&&fK(r)&&(Re(uwe(a,r)),u.type="quantitative")}else if(!iK(e)){const a=Ltt(u,e);u.type=a}if(Do(u)){const{compatible:a,warning:l}=$tt(u,e)||{};a===!1&&Re(l)}if(jB(u)&&je(u.sort)){const{sort:a}=u;if(mae(a))return Object.assign(Object.assign({},u),{sort:{encoding:a}});const l=a.substr(1);if(a.charAt(0)==="-"&&mae(l))return Object.assign(Object.assign({},u),{sort:{encoding:l,order:"descending"}})}if(PB(u)){const{header:a}=u;if(a){const{orient:l}=a,c=MB(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 R6(t,e){return w2(t)?{maxbins:dK(e)}:t==="binned"?{binned:!0}:!t.maxbins&&!t.step?Object.assign(Object.assign({},t),{maxbins:dK(e)}):t}const j1={compatible:!0};function $tt(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 Cl:case bl:case K5:return C6(t)?j1:{compatible:!1,warning:dwe(e)};case En:case gr:case oc:case B2:case us:case la:case ca:case T3:case O3:case X5:case Px:case J5:case Z5:case kx:case nu:case oa:case eC:return j1;case aa:case go:case ua:case ru:return n!==Ld?{compatible:!1,warning:`Channel ${e} should be used with a quantitative field only, not ${t.type} field.`}:j1;case Nl:case uc:case ac:case lc:case Ol:case Rl:case Tl:case tu:case sa:return n==="nominal"&&!t.sort?{compatible:!1,warning:`Channel ${e} should not be used with an unsorted discrete field.`}:j1;case as:case cc:return!C6(t)&&!Ott(t)?{compatible:!1,warning:hwe(e)}:j1;case R3:return t.type==="nominal"&&!("sort"in t)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:j1}}function U1(t){const{formatType:e}=b6(t);return e==="time"||!e&&Btt(t)}function Btt(t){return t&&(t.type==="temporal"||Ie(t)&&!!t.timeUnit)}function O6(t,{timeUnit:e,type:n,wrapTime:r,undefinedIfExprNotRequired:i}){var s;const o=e&&((s=Ri(e))===null||s===void 0?void 0:s.unit);let u=o||n==="temporal",a;return N3(t)?a=t.expr:Ye(t)?a=t.signal:qx(t)?(u=!0,a=D3(t)):(je(t)||nn(t))&&u&&(a=`datetime(${rn(t)})`,e9e(o)&&(nn(t)&&t<1e4||je(t)&&isNaN(Date.parse(t)))&&(a=D3({[o]:t}))),a?r&&u?`time(${a})`:a:i?void 0:rn(t)}function Dae(t,e){const{type:n}=t;return e.map(r=>{const i=O6(r,{timeUnit:Ie(t)?t.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return i!==void 0?{signal:i}:r})}function NE(t,e){return Kt(t.bin)?xc(e)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const Fae={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 DE(t){return t&&t.condition}const wae=["domain","grid","labels","ticks","title"],ktt={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"},Lae={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},Ptt=Object.assign(Object.assign({},Lae),{style:1,labelExpr:1,encoding:1});function Iae(t){return!!Ptt[t]}const $ae=Te({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 s0(t){return"mark"in t}class N6{constructor(e,n){this.name=e,this.run=n}hasMatchingType(e){return s0(e)?ptt(e.mark)===this.name:!1}}var Mtt=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 kd(t,e){const n=t&&t[e];return n?_e(n)?I2(n,r=>!!r.field):Ie(n)||_6(n):!1}function Bae(t,e){const n=t&&t[e];return n?_e(n)?I2(n,r=>!!r.field):Ie(n)||Ba(n)||OE(n):!1}function WB(t,e){if(Ir(e)){const n=t[e];if((Ie(n)||Ba(n))&&Yue(n.type)){const r=sK(e);return Bae(t,r)}}return!1}function VB(t){return I2(x8e,e=>{if(kd(t,e)){const n=t[e];if(_e(n))return I2(n,r=>!!r.aggregate);{const r=Pa(n);return r&&!!r.aggregate}}return!1})}function kae(t,e){const n=[],r=[],i=[],s=[],o={};return YB(t,(u,a)=>{if(Ie(u)){const{field:l,aggregate:c,bin:f,timeUnit:x}=u,h=Mtt(u,["field","aggregate","bin","timeUnit"]);if(c||x||f){const p=zB(u),m=p==null?void 0:p.title;let g=$e(u,{forAs:!0});const y=Object.assign(Object.assign(Object.assign({},m?[]:{title:M1(u,e,{allowDisabling:!0})}),h),{field:g});if(c){let E;if(dc(c)?(E="argmax",g=$e({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${g}.${l}`):Fl(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),Do(u)&&Kt(f)){if(r.push({bin:f,field:l,as:g}),n.push($e(u,{binSuffix:"end"})),NE(u,a)&&n.push($e(u,{binSuffix:"range"})),Ir(a)){const E={field:`${g}_end`};o[`${a}2`]=E}y.bin="binned",iK(a)||(y.type=Ld)}else if(x){i.push({timeUnit:x,field:l,as:g});const E=Do(u)&&u.type!==$1&&"time";E&&(a===T3||a===Px?y.formatType=E:S8e(a)?y.legend=Object.assign({formatType:E},y.legend):Ir(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 jtt(t,e,n){const r=C8e(e,n);if(r){if(r==="binned"){const i=t[e===tu?En:gr];return!!(Ie(i)&&Ie(t[e])&&Ti(i.bin))}}else return!1;return!0}function Utt(t,e,n,r){const i={};for(const s of Te(t))rK(s)||Re(xwe(s));for(let s of y8e){if(!t[s])continue;const o=t[s];if(P2(s)){const u=oK(s),a=i[u];if(Ie(a)){if(Uet(a.type)&&Ie(o)){Re(iwe(u));continue}}else s=u,Re(swe(u))}if(s==="angle"&&e==="arc"&&!t.theta&&(Re(rwe),s=nu),!jtt(t,s,e)){Re(sC(s,e));continue}if(s===Ol&&e==="line"){const u=Pa(t[s]);if(u!=null&&u.aggregate){Re(cwe);continue}}if(s===us&&(n?"fill"in t:"stroke"in t)){Re(LK("encoding",{fill:"fill"in t,stroke:"stroke"in t}));continue}if(s===O3||s===R3&&!_e(o)&&!yu(o)||s===Px&&_e(o))o&&(i[s]=Pe(o).reduce((u,a)=>(Ie(a)?u.push(GB(a,s)):Re(c8(a,s)),u),[]));else{if(s===Px&&o===null)i[s]=null;else if(!Ie(o)&&!Ba(o)&&!yu(o)&&!S6(o)&&!Ye(o)){Re(c8(o,s));continue}i[s]=Nae(o,s,r)}}return i}function D6(t,e){const n={};for(const r of Te(t)){const i=Nae(t[r],r,e,{compositeMark:!0});n[r]=i}return n}function qtt(t){const e=[];for(const n of Te(t))if(kd(t,n)){const r=t[n],i=Pe(r);for(const s of i)Ie(s)?e.push(s):_6(s)&&e.push(s.condition)}return e}function YB(t,e,n){if(t)for(const r of Te(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 Htt(t,e,n,r){return t?Te(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 Pae(t,e){return Te(e).reduce((n,r)=>{switch(r){case En:case gr:case J5:case eC:case Z5:case tu:case sa:case oc:case B2:case nu:case Rl:case oa:case Tl:case ua:case aa:case ru:case go:case T3:case as:case kx:case Px:return n;case R3:if(t==="line"||t==="trail")return n;case O3:case X5:{const i=e[r];if(_e(i)||Ie(i))for(const s of Pe(i))s.aggregate||n.push($e(s,{}));return n}case Ol:if(t==="trail")return n;case us:case la:case ca:case Nl:case uc:case ac:case cc:case lc:{const i=Pa(e[r]);return i&&!i.aggregate&&n.push($e(i,{})),n}}},[])}var Mae=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 ztt(t){const{tooltip:e}=t,n=Mae(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 KB(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 ${XB(e)}`:"";return{field:o+e.field,type:e.type,title:Ye(u)?{signal:`${u}"${escape(a)}"`}:u+a}}),s=qtt(n).map(Ttt);return{tooltip:[...i,..._l(s,_t)]}}function XB(t){const{title:e,field:n}=t;return er(e,n)}function JB(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=XB(n);return jae(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 jae(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}:{}),Ia(r.mark)?r.mark:{type:r.mark}),{style:`${u}-${e}`}),w2(t[e])?{}:t[e])})]:[]}function Uae(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:F6(s,n),continuousAxisChannelDef2:F6(o,n),continuousAxisChannelDefError:F6(u,n),continuousAxisChannelDefError2:F6(a,n),continuousAxis:i}}function F6(t,e){if(t!=null&&t.aggregate){const{aggregate:n}=t,r=Mae(t,["aggregate"]);return n!==e&&Re(jwe(n,e)),r}else return t}function qae(t,e){const{mark:n,encoding:r}=t,{x:i,y:s}=r;if(Ia(n)&&n.orient)return n.orient;if(ka(i)){if(ka(s)){const o=Ie(i)&&i.aggregate,u=Ie(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 U1(s)&&!U1(i)?"horizontal":"vertical"}return"horizontal"}else{if(ka(s))return"vertical";throw new Error(`Need a valid continuous axis for ${e}s`)}}var w6=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 L6="boxplot",Qtt=["box","median","outliers","rule","ticks"],Gtt=new N6(L6,zae);function Hae(t){return nn(t)?"tukey":t}function zae(t,{config:e}){var n,r;t=Object.assign(Object.assign({},t),{encoding:D6(t.encoding,e)});const{mark:i,encoding:s,params:o,projection:u}=t,a=w6(t,["mark","encoding","params","projection"]),l=Ia(i)?i:{type:i};o&&Re(OK("boxplot"));const c=(n=l.extent)!==null&&n!==void 0?n:e.boxplot.extent,f=It("size",l,e),x=Hae(c),{bins:h,timeUnits:p,transform:m,continuousAxisChannelDef:g,continuousAxis:y,groupby:E,aggregate:A,encodingWithoutContinuousAxis:v,ticksOrient:S,boxOrient:C,customTooltipWithoutAggregatedField:_}=Wtt(t,c,e),{color:b,size:R}=v,O=w6(v,["color","size"]),L=J=>JB(l,y,g,J,e.boxplot),M=L(O),q=L(v),W=L(Object.assign(Object.assign({},O),R?{size:R}:{})),B=KB([{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,v),G={type:"tick",color:"black",opacity:1,orient:S,invalid:null,aria:!1},te=x==="min-max"?B:KB([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,v),X=[...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:te}),...M({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"lower_whisker",extraEncoding:te}),...M({partName:"ticks",mark:G,positionPrefix:"upper_whisker",extraEncoding:te})],de=[...x!=="tukey"?X:[],...q({partName:"box",mark:Object.assign(Object.assign({type:"bar"},f?{size:f}:{}),{orient:C,invalid:null,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:B}),...W({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},He(e.boxplot.median)&&e.boxplot.median.color?{color:e.boxplot.median.color}:{}),f?{size:f}:{}),{orient:S,aria:!1}),positionPrefix:"mid_box",extraEncoding:B})];if(x==="min-max")return Object.assign(Object.assign({},a),{transform:((r=a.transform)!==null&&r!==void 0?r:[]).concat(m),layer:de});const be=`datum["lower_box_${g.field}"]`,ee=`datum["upper_box_${g.field}"]`,U=`(${ee} - ${be})`,T=`${be} - ${c} * ${U}`,w=`${ee} + ${c} * ${U}`,k=`datum["${g.field}"]`,z={joinaggregate:Qae(g.field),groupby:E},Y={transform:[{filter:`(${T} <= ${k}) && (${k} <= ${w})`},{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:X},V=w6(O,["tooltip"]),{scale:D,axis:$}=g,j=XB(g),Q=po($,["title"]),I=jae(l,"outliers",e.boxplot,{transform:[{filter:`(${k} < ${T}) || (${k} > ${w})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[y]:Object.assign(Object.assign(Object.assign({field:g.field,type:g.type},j!==void 0?{title:j}:{}),D!==void 0?{scale:D}:{}),Wt(Q)?{}:{axis:Q})},V),b?{color:b}:{}),_?{tooltip:_}:{})})[0];let H;const P=[...h,...p,z];return I?H={transform:P,layer:[I,Y]}:(H=Y,H.transform.unshift(...P)),Object.assign(Object.assign({},a),{layer:[H,{transform:m,layer:de}]})}function Qae(t){return[{op:"q1",field:t,as:`lower_box_${t}`},{op:"q3",field:t,as:`upper_box_${t}`}]}function Wtt(t,e,n){const r=qae(t,L6),{continuousAxisChannelDef:i,continuousAxis:s}=Uae(t,r,L6),o=i.field,u=Hae(e),a=[...Qae(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=w6(c,[typeof f=="symbol"?f:f+""]),{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=ztt(x),{bins:m,timeUnits:g,aggregate:y,groupby:E,encoding:A}=kae(p,n),v=r==="vertical"?"horizontal":"vertical",S=r,C=[...m,...g,{aggregate:[...y,...a],groupby:E},...l];return{bins:m,timeUnits:g,transform:C,groupby:E,aggregate:y,continuousAxisChannelDef:i,continuousAxis:s,encodingWithoutContinuousAxis:A,ticksOrient:v,boxOrient:S,customTooltipWithoutAggregatedField:h}}var Gae=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 ZB="errorbar",Vtt=["ticks","rule"],Ytt=new N6(ZB,Wae);function Wae(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:D6(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,ticksOrient:o,markDef:u,outerSpec:a,tooltipEncoding:l}=Vae(t,ZB,e);delete s.size;const c=JB(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 Ktt(t,e){const{encoding:n}=t;if(Xtt(n))return{orient:qae(t,e),inputType:"raw"};const r=Jtt(n),i=Ztt(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(st(u)&&st(a))throw new Error(`${e} cannot have both x2 and y2`);if(st(u)){if(ka(s))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${e}`)}else if(st(a)){if(ka(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(st(a)&&!st(u))throw new Error(`${e} cannot have xError2 without xError`);if(st(c)&&!st(l))throw new Error(`${e} cannot have yError2 without yError`);if(st(u)&&st(l))throw new Error(`${e} cannot have both xError and yError with both are quantiative`);if(st(u)){if(ka(s))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(st(l)){if(ka(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 Xtt(t){return(st(t.x)||st(t.y))&&!st(t.x2)&&!st(t.y2)&&!st(t.xError)&&!st(t.xError2)&&!st(t.yError)&&!st(t.yError2)}function Jtt(t){return st(t.x2)||st(t.y2)}function Ztt(t){return st(t.xError)||st(t.xError2)||st(t.yError)||st(t.yError2)}function Vae(t,e,n){var r;const{mark:i,encoding:s,params:o,projection:u}=t,a=Gae(t,["mark","encoding","params","projection"]),l=Ia(i)?i:{type:i};o&&Re(OK(e));const{orient:c,inputType:f}=Ktt(t,e),{continuousAxisChannelDef:x,continuousAxisChannelDef2:h,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:m,continuousAxis:g}=Uae(t,c,e),{errorBarSpecificAggregate:y,postAggregateCalculates:E,tooltipSummary:A,tooltipTitleWithFieldName:v}=ent(l,x,h,p,m,f,e,n),S=s,C=g;S[C];const _=g==="x"?"x2":"y2";S[_];const b=g==="x"?"xError":"yError";S[b];const R=g==="x"?"xError2":"yError2";S[R];const O=Gae(S,[typeof C=="symbol"?C:C+"",typeof _=="symbol"?_:_+"",typeof b=="symbol"?b:b+"",typeof R=="symbol"?R:R+""]),{bins:L,timeUnits:M,aggregate:q,groupby:W,encoding:B}=kae(O,n),G=[...q,...y],te=f!=="raw"?[]:W,X=KB(A,x,B,v);return{transform:[...(r=a.transform)!==null&&r!==void 0?r:[],...L,...M,...G.length===0?[]:[{aggregate:G,groupby:te}],...E],groupby:te,continuousAxisChannelDef:x,continuousAxis:g,encodingWithoutContinuousAxis:B,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:l,outerSpec:a,tooltipEncoding:X}}function ent(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")&&Re(Mwe(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:V5(h)},{fieldPrefix:"upper_",titlePrefix:Yae(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:Yae(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:M1({field:c,aggregate:y,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:M1({field:c,aggregate:g,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:M1({field:c,aggregate:m,type:"quantitative"},u,{allowDisabling:!1})}]}}else{(t.center||t.extent)&&Re(Pwe(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:$2($2(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:a,tooltipSummary:f,tooltipTitleWithFieldName:x}}function Yae(t,e,n){return`${V5(t)} ${n} ${e}`}const ek="errorband",tnt=["band","borders"],nnt=new N6(ek,Kae);function Kae(t,{config:e}){t=Object.assign(Object.assign({},t),{encoding:D6(t.encoding,e)});const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:s,markDef:o,outerSpec:u,tooltipEncoding:a}=Vae(t,ek,e),l=o,c=JB(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?Re(kK("interpolate")):l.tension&&Re(kK("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 Xae={};function tk(t,e,n){const r=new N6(t,e);Xae[t]={normalizer:r,parts:n}}function rnt(){return Te(Xae)}tk(L6,zae,Qtt),tk(ZB,Wae,Vtt),tk(ek,Kae,tnt);const int=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Jae={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"},Zae={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"},snt=Te(Jae),ont=Te(Zae),ele=Te({header:1,headerRow:1,headerColumn:1,headerFacet:1}),tle=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],unt={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},ant={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},FE="_vgsid_",lnt={point:{on:"click",fields:[FE],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 nk(t){return!!t&&(t==="legend"||!!t.legend)}function rk(t){return nk(t)&&He(t)}function ik(t){return!!t.select}var cnt=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 nle(t){const e=[];for(const n of t||[]){if(ik(n))continue;const{expr:r,bind:i}=n,s=cnt(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 fnt(t){return I6(t)||ok(t)||sk(t)}function sk(t){return"concat"in t}function I6(t){return"vconcat"in t}function ok(t){return"hconcat"in t}function rle({step:t,offsetIsDiscrete:e}){var n;return e?(n=t.for)!==null&&n!==void 0?n:"offset":"position"}function Ma(t){return He(t)&&t.step!==void 0}function ile(t){return t.view||t.width||t.height}const sle=20,xnt=Te({align:1,bounds:1,center:1,columns:1,spacing:1});function dnt(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&&(v6(t)&&!RE(t.facet)||sk(t))&&(o.columns=a),I6(t)&&(o.columns=1);for(const l of xnt)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 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};function uk(t,e){var n;return(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"continuousWidth":"continuousHeight"]}function $6(t,e){const n=B6(t,e);return Ma(n)?n.step:ole}function B6(t,e){var n;const r=(n=t[e])!==null&&n!==void 0?n:t[e==="width"?"discreteWidth":"discreteHeight"];return er(r,{step:t.step})}const ole=20,pnt={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:ole},mark:ctt,arc:{},area:{},bar:xtt,circle:{},geoshape:{},image:{},line:{},point:{},rect:dtt,rule:{color:"black"},square:{},text:{color:"black"},tick:htt,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:Vet,projection:{},legend:unt,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:lnt,style:{},title:{},facet:{spacing:sle},concat:{spacing:sle}},o0=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],ule={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},ale={blue:o0[0],orange:o0[1],red:o0[2],teal:o0[3],green:o0[4],yellow:o0[5],purple:o0[6],pink:o0[7],brown:o0[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 gnt(t={}){return{signals:[{name:"color",value:He(t)?Object.assign(Object.assign({},ale),t):ale}],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 mnt(t){return{signals:[{name:"fontSize",value:He(t)?Object.assign(Object.assign({},ule),t):ule}],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 ynt(t){return{text:{font:t},style:{"guide-label":{font:t},"guide-title":{font:t},"group-title":{font:t},"group-subtitle":{font:t}}}}function lle(t){const e=Te(t||{}),n={};for(const r of e){const i=t[r];n[r]=DE(i)?pK(i):Ps(i)}return n}function Ent(t){const e=Te(t),n={};for(const r of e)n[r]=lle(t[r]);return n}const Ant=[...aae,...$ae,...ele,"background","padding","legend","lineBreak","scale","style","title","view"];function cle(t={}){const{color:e,font:n,fontSize:r,selection:i}=t,s=hnt(t,["color","font","fontSize","selection"]),o=HF({},ut(pnt),n?ynt(n):{},e?gnt(e):{},r?mnt(r):{},s||{});i&&P5(o,"selection",i,!0);const u=po(o,Ant);for(const a of["background","lineBreak","padding"])o[a]&&(u[a]=Ps(o[a]));for(const a of aae)o[a]&&(u[a]=cs(o[a]));for(const a of $ae)o[a]&&(u[a]=lle(o[a]));for(const a of ele)o[a]&&(u[a]=cs(o[a]));return o.legend&&(u.legend=cs(o.legend)),o.scale&&(u.scale=cs(o.scale)),o.style&&(u.style=Ent(o.style)),o.title&&(u.title=cs(o.title)),o.view&&(u.view=cs(o.view)),u}const vnt=new Set(["view",...stt]),Snt=["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"],_nt=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},ltt);function Cnt(t){t=ut(t);for(const e of Snt)delete t[e];if(t.axis)for(const e in t.axis)DE(t.axis[e])&&delete t.axis[e];if(t.legend)for(const e of int)delete t.legend[e];if(t.mark){for(const e of uae)delete t.mark[e];t.mark.tooltip&&He(t.mark.tooltip)&&delete t.mark.tooltip}t.params&&(t.signals=(t.signals||[]).concat(nle(t.params)),delete t.params);for(const e of vnt){for(const r of uae)delete t[e][r];const n=_nt[e];if(n)for(const r of n)delete t[e][r];Tnt(t,e)}for(const e of rnt())delete t[e];bnt(t);for(const e in t)He(t[e])&&Wt(t[e])&&delete t[e];return Wt(t)?void 0:t}function bnt(t){const{titleMarkConfig:e,subtitleMarkConfig:n,subtitle:r}=hK(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 Tnt(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 k6(t){return"layer"in t}function Rnt(t){return"repeat"in t}function Ont(t){return!_e(t.repeat)&&t.repeat.layer}var Nnt=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 ak{map(e,n){return v6(e)?this.mapFacet(e,n):Rnt(e)?this.mapRepeat(e,n):ok(e)?this.mapHConcat(e,n):I6(e)?this.mapVConcat(e,n):sk(e)?this.mapConcat(e,n):this.mapLayerOrUnit(e,n)}mapLayerOrUnit(e,n){if(k6(e))return this.mapLayer(e,n);if(s0(e))return this.mapUnit(e,n);throw new Error(a8(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=Nnt(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 Dnt={zero:1,center:1,normalize:1};function Fnt(t){return t in Dnt}const wnt=new Set([rae,h6,d6,m6,g6,FB,wB,p6,iae,DB]),Lnt=new Set([h6,d6,rae]);function q1(t){return Ie(t)&&UB(t)==="quantitative"&&!t.bin}function fle(t,e){var n,r;const i=e==="x"?"y":"radius",s=t[e],o=t[i];if(Ie(s)&&Ie(o))if(q1(s)&&q1(o)){if(s.stack)return e;if(o.stack)return i;const u=Ie(s)&&!!s.aggregate,a=Ie(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(q1(s))return e;if(q1(o))return i}else{if(q1(s))return e;if(q1(o))return i}}function Int(t){switch(t){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function xle(t,e,n={}){var r,i;const s=Ia(t)?t.type:t;if(!wnt.has(s))return null;const o=fle(e,"x")||fle(e,"theta");if(!o)return null;const u=e[o],a=Ie(u)?$e(u,{}):void 0,l=Int(o),c=[],f=new Set;if(e[l]){const p=e[l],m=Ie(p)?$e(p,{}):void 0;m&&m!==a&&(c.push(l),f.add(m));const g=l==="x"?"xOffset":"yOffset",y=e[g],E=Ie(y)?$e(y,{}):void 0;E&&E!==a&&(c.push(g),f.add(E))}const x=E8e.reduce((p,m)=>{if(m!=="tooltip"&&kd(e,m)){const g=e[m];for(const y of Pe(g)){const E=Pa(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?w2(u.stack)?h=u.stack?"zero":null:h=u.stack:Lnt.has(s)&&(h="zero"),!h||!Fnt(h)||VB(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)!==Es.LINEAR){if(n.disallowNonLinearStack)return null;Re($we(u.scale.type))}return st(e[Dl(o)])?(u.stack!==void 0&&Re(Iwe(o)),null):(Ie(u)&&u.aggregate&&!F8e.has(u.aggregate)&&Re(Bwe(u.aggregate)),{groupbyChannels:c,groupbyFields:f,fieldChannel:o,impute:u.impute===null?!1:Qc(s),stackBy:x,offset:h})}var dle=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 $nt(t){const e=dle(t,["point","line"]);return Te(e).length>1?e:e.type}function Bnt(t){for(const e of["line","area","rule","trail"])t[e]&&(t=Object.assign(Object.assign({},t),{[e]:po(t[e],["point","line"])}));return t}function lk(t,e={},n){return t.point==="transparent"?{opacity:0}:t.point?He(t.point)?t.point:{}:t.point!==void 0?null:e.point||n.shape?He(e.point)?e.point:{}:void 0}function hle(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 knt{constructor(){this.name="path-overlay"}hasMatchingType(e,n){if(s0(e)){const{mark:r,encoding:i}=e,s=Ia(r)?r:{type:r};switch(s.type){case"line":case"rule":case"trail":return!!lk(s,n[s.type],i);case"area":return!!lk(s,n[s.type],i)||!!hle(s,n[s.type])}}return!1}run(e,n,r){const{config:i}=n,{params:s,projection:o,mark:u,encoding:a}=e,l=dle(e,["params","projection","mark","encoding"]),c=D6(a,i),f=Ia(u)?u:{type:u},x=lk(f,i[f.type],c),h=f.type==="area"&&hle(f,i[f.type]),p=[Object.assign(Object.assign({},s?{params:s}:{}),{mark:$nt(Object.assign(Object.assign({},f.type==="area"&&f.opacity===void 0&&f.fillOpacity===void 0?{opacity:.7}:{}),f)),encoding:po(c,["shape"])})],m=xle(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"},_3(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},_3(f,["clip","tooltip"])),x),encoding:g})),r(Object.assign(Object.assign({},l),{layer:p}),Object.assign(Object.assign({},n),{config:Bnt(i)}))}}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 Mnt(t,e){return e?RE(t)?yle(t,e):ple(t,e):t}function ck(t,e){return e?yle(t,e):t}function fk(t,e,n){const r=e[t];if(Ctt(r)){if(r.repeat in n)return Object.assign(Object.assign({},e),{[t]:n[r.repeat]});Re(K8e(r.repeat));return}return e}function ple(t,e){if(t=fk("field",t,e),t!==void 0){if(t===null)return null;if(jB(t)&&$a(t.sort)){const n=fk("field",t.sort,e);t=Object.assign(Object.assign({},t),n?{sort:n}:{})}return t}}function gle(t,e){if(Ie(t))return ple(t,e);{const n=fk("datum",t,e);return n!==t&&!n.type&&(n.type="nominal"),n}}function mle(t,e){if(st(t)){const n=gle(t,e);if(n)return n;if(S6(t))return{condition:t.condition}}else{if(OE(t)){const n=gle(t.condition,e);return n?Object.assign(Object.assign({},t),{condition:n}):Pnt(t,["condition"])}return t}}function yle(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=>mle(s,e)).filter(s=>s);else{const s=mle(i,e);s!==void 0&&(n[r]=s)}}return n}class jnt{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(s0(e)){const{encoding:n,mark:r}=e;if(r==="line"||Ia(r)&&r.type==="line")for(const i of g8e){const s=Mx(i),o=n[s];if(n[i]&&(Ie(o)&&!Ti(o.bin)||Ba(o)))return!0}}return!1}run(e,n,r){const{encoding:i,mark:s}=e;return Re(mwe(!!i.x2,!!i.y2)),r(Object.assign(Object.assign({},e),{mark:He(s)?Object.assign(Object.assign({},s),{type:"rule"}):"rule"}),n)}}var Gc=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 Unt extends ak{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[Gtt,Ytt,nnt,new knt,new jnt]}map(e,n){if(s0(e)){const r=kd(e.encoding,Cl),i=kd(e.encoding,bl),s=kd(e.encoding,K5);if(r||i||s)return this.mapFacetedUnit(e,n)}return super.map(e,n)}mapUnit(e,n){const{parentEncoding:r,parentProjection:i}=n,s=ck(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 Ont(e)?this.mapLayerRepeat(e,n):this.mapNonLayerRepeat(e,n)}mapLayerRepeat(e,n){const{repeat:r,spec:i}=e,s=Gc(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_${yn(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=Gc(e,["repeat","spec","data"]);!_e(i)&&e.columns&&(e=po(e,["columns"]),Re(NK("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)?`${yn(m)}`:(i.row?`row_${yn(g)}`:"")+(i.column?`column_${yn(y)}`:"")),v=this.map(s,Object.assign(Object.assign({},n),{repeater:E,repeaterPrefix:A}));v.name=A,a.push(po(v,["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 RE(r)&&e.columns&&(e=po(e,["columns"]),Re(NK("facet"))),super.mapFacet(e,n)}mapUnitWithParentEncodingOrProjection(e,n){const{encoding:r,projection:i}=e,{parentEncoding:s,parentProjection:o,config:u}=n,a=Ale({parentProjection:o,projection:i}),l=Ele({parentEncoding:s,encoding:ck(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=Gc(r,["row","column","facet"]),{mark:a,width:l,projection:c,height:f,view:x,params:h,encoding:p}=e,m=Gc(e,["mark","width","projection","height","view","params","encoding"]),{facetMapping:g,layout:y}=this.getFacetMappingAndLayout({row:i,column:s,facet:o},n),E=ck(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&&Re(pwe([...i?[Cl]:[],...s?[bl]:[]]));const u={},a={};for(const l of[Cl,bl]){const c=e[l];if(c){const f=Gc(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=Gc(o,["align","center","spacing","columns"]);return{facetMapping:Mnt(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=Gc(n,["parentEncoding","parentProjection"]);const{encoding:o,projection:u}=e,a=Gc(e,["encoding","projection"]),l=Object.assign(Object.assign({},s),{parentEncoding:Ele({parentEncoding:r,encoding:o,layer:!0}),parentProjection:Ale({parentProjection:i,projection:u})});return super.mapLayer(a,l)}}function Ele({parentEncoding:t,encoding:e={},layer:n}){let r={};if(t){const i=new Set([...Te(t),...Te(e)]);for(const s of i){const o=e[s],u=t[s];if(st(o)){const a=Object.assign(Object.assign({},u),o);r[s]=a}else OE(o)?r[s]=Object.assign(Object.assign({},o),{condition:Object.assign(Object.assign({},u),o.condition)}):o||o===null?r[s]=o:(n||yu(u)||Ye(u)||st(u)||_e(u))&&(r[s]=u)}}else r=e;return!r||Wt(r)?void 0:r}function Ale(t){const{parentProjection:e,projection:n}=t;return e&&n&&Re(nwe({parentProjection:e,projection:n})),n??e}function xk(t){return"filter"in t}function qnt(t){return(t==null?void 0:t.stop)!==void 0}function vle(t){return"lookup"in t}function Hnt(t){return"data"in t}function znt(t){return"param"in t}function Qnt(t){return"pivot"in t}function Gnt(t){return"density"in t}function Wnt(t){return"quantile"in t}function Vnt(t){return"regression"in t}function Ynt(t){return"loess"in t}function Knt(t){return"sample"in t}function Xnt(t){return"window"in t}function Jnt(t){return"joinaggregate"in t}function Znt(t){return"flatten"in t}function ert(t){return"calculate"in t}function Sle(t){return"bin"in t}function trt(t){return"impute"in t}function nrt(t){return"timeUnit"in t}function rrt(t){return"aggregate"in t}function irt(t){return"stack"in t}function srt(t){return"fold"in t}function ort(t){return t.map(e=>xk(e)?{filter:L2(e.filter,l9e)}:e)}var Wc=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 urt extends ak{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=_le(e,n),super.map(e,n)}mapLayerOrUnit(e,n){if(e=_le(e,n),e.encoding){const r={};for(const[i,s]of Bx(e.encoding))r[i]=Cle(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=Wc(r,["selection"]);return i?Object.assign(Object.assign({},s),{params:Bx(i).map(([o,u])=>{var a;const l=u,{init:c,bind:f,empty:x}=l,h=Wc(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 bi((a=n.selectionPredicates[o])!==null&&a!==void 0?a:{}))p.empty=x!=="none";return{name:o,value:c,select:h,bind:f}})}):e}}function _le(t,e){const{transform:n}=t,r=Wc(t,["transform"]);if(n){const i=n.map(s=>{if(xk(s))return{filter:dk(s,e)};if(Sle(s)&&jx(s.bin))return Object.assign(Object.assign({},s),{bin:ble(s.bin)});if(vle(s)){const o=s.from,{selection:u}=o,a=Wc(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 Cle(t,e){var n,r;const i=ut(t);if(Ie(i)&&jx(i.bin)&&(i.bin=ble(i.bin)),Bd(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=Wc(s,["selection"]);i.scale.domain=Object.assign(Object.assign({},u),o?{param:o}:{})}if(S6(i))if(_e(i.condition))i.condition=i.condition.map(s=>{const{selection:o,param:u,test:a}=s,l=Wc(s,["selection","param","test"]);return u?s:Object.assign(Object.assign({},l),{test:dk(s,e)})});else{const s=Cle(i.condition,e),{selection:o,param:u,test:a}=s,l=Wc(s,["selection","param","test"]);i.condition=u?i.condition:Object.assign(Object.assign({},l),{test:dk(i.condition,e)})}return i}function ble(t){const e=t.extent;if(e!=null&&e.selection){const{selection:n}=e,r=Wc(e,["selection"]);return Object.assign(Object.assign({},t),{extent:Object.assign(Object.assign({},r),{param:n})})}return t}function dk(t,e){const n=r=>L2(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):L2(t.test||t.filter,r=>r.selection?n(r.selection):r)}class hk extends ak{map(e,n){var r;const i=(r=n.selections)!==null&&r!==void 0?r:[];if(e.params&&!s0(e)){const s=[];for(const o of e.params)ik(o)?i.push(o):s.push(o);e.params=s}return n.selections=i,super.map(e,Tle(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=hk.prototype[t];hk.prototype[t]=function(n,r){return e.call(this,n,Tle(n,r))}}function Tle(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 art(t,e){e===void 0&&(e=cle(t.config));const n=xrt(t,e),{width:r,height:i}=t,s=drt(n,{width:r,height:i,autosize:t.autosize},e);return Object.assign(Object.assign({},n),s?{autosize:s}:{})}const lrt=new Unt,crt=new urt,frt=new hk;function xrt(t,e={}){const n={config:e};return frt.map(lrt.map(crt.map(t,n),n),n)}function Rle(t){return je(t)?{type:t}:t??{}}function drt(t,e,n){let{width:r,height:i}=e;const s=s0(t)||k6(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"&&(Re(CK("width")),r=void 0),i=="container"&&(Re(CK("height")),i=void 0));const u=Object.assign(Object.assign(Object.assign({type:"pad"},o),n?Rle(n.autosize):{}),Rle(t.autosize));if(u.type==="fit"&&!s&&(Re(j8e),u.type="pad"),r=="container"&&!(u.type=="fit"||u.type=="fit-x")&&Re(bK("width")),i=="container"&&!(u.type=="fit"||u.type=="fit-y")&&Re(bK("height")),!Sl(u,{type:"pad"}))return u}function hrt(t){return t==="fit"||t==="fit-x"||t==="fit-y"}function prt(t){return t?`fit-${tC(t)}`:"fit"}const grt=["background","padding"];function Ole(t,e){const n={};for(const r of grt)t&&t[r]!==void 0&&(n[r]=Ps(t[r]));return e&&(n.params=t.params),n}class u0{constructor(e={},n={}){this.explicit=e,this.implicit=n}clone(){return new u0(ut(this.explicit),ut(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return er(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 Te(e.combine())){const r=e.getWithExplicit(n);this.setWithExplicit(n,r)}}}function ja(t){return{explicit:!0,value:t}}function Vs(t){return{explicit:!1,value:t}}function Nle(t){return(e,n,r,i)=>{const s=t(e.value,n.value);return s>0?e:s<0?n:P6(e,n,r,i)}}function P6(t,e,n,r){return t.explicit&&e.explicit&&Re(Rwe(n,r,t.value,e.value)),t}function Vc(t,e,n,r,i=P6){return t===void 0||t.value===void 0?e:t.explicit&&!e.explicit?t:e.explicit&&!t.explicit?e:Sl(t.value,e.value)?t:i(t,e,n,r)}class mrt extends u0{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 H1(t){return"url"in t}function wE(t){return"values"in t}function Dle(t){return"name"in t&&!H1(t)&&!wE(t)&&!Yc(t)}function Yc(t){return t&&(Fle(t)||wle(t)||pk(t))}function Fle(t){return"sequence"in t}function wle(t){return"sphere"in t}function pk(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 yrt=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 z1(t,e=!0,n=Si){if(_e(t)){const r=t.map(i=>z1(i,e,n));return e?`[${r.join(", ")}]`:r}else if(qx(t))return n(e?D3(t):Jwe(t));return e?n(rn(t)):t}function Ert(t,e){var n;for(const r of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const i=r.name;let s=`${i}${Jc}, ${r.resolve==="global"?"true":`{unit: ${W1(t)}}`}`;for(const o of H6)o.defined(r)&&(o.signals&&(e=o.signals(t,r,e)),o.modifyExpr&&(s=o.modifyExpr(t,r,s)));e.push({name:i+Jrt,on:[{events:{signal:r.name+Jc},update:`modify(${we(r.name+Pd)}, ${s})`}]})}return gk(e)}function Art(t,e){if(t.component.selection&&Te(t.component.selection).length){const n=we(t.getName("cell"));e.unshift({name:"facet",value:{},on:[{events:Rd("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return gk(e)}function vrt(t,e){var n;let r=!1;for(const i of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=i.name,o=we(s+Pd);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:`${t0e}(${o}, ${we(a)}${l}`})}r=!0;for(const a of H6)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"}]}),gk(e)}function Srt(t,e){var n;const r=[...e];for(const i of bi((n=t.component.selection)!==null&&n!==void 0?n:{})){const s={name:i.name+Pd};if(i.init){const u=i.project.items.map(a=>yrt(a,["signals"]));s.values=i.init.map(a=>({unit:W1(t,{escape:!1}),fields:u,values:z1(a,!1)}))}r.filter(u=>u.name===i.name+Pd).length||r.push(s)}return r}function Lle(t,e){var n;for(const r of bi((n=t.component.selection)!==null&&n!==void 0?n:{}))for(const i of H6)i.defined(r)&&i.marks&&(e=i.marks(t,r,e));return e}function _rt(t,e){for(const n of t.children)Gn(n)&&(e=Lle(n,e));return e}function Crt(t,e,n,r){const i=o0e(t,e.param,e);return{signal:Ws(n.get("type"))&&_e(r)&&r[0]>r[1]?`isValid(${i}) && reverse(${i})`:i}}function gk(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)){Re(Z8e);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 zi 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 ${s8e()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var Ile=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 Ua extends Ut{constructor(e,n){super(e),this.formula=n}clone(){return new Ua(null,ut(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[_t({as:a,field:o,timeUnit:u})]={as:a,field:o,timeUnit:u}}return i},{});return Wt(r)?null:new Ua(e,r)}static makeFromTransform(e,n){const r=Object.assign({},n),{timeUnit:i}=r,s=Ile(r,["timeUnit"]),o=Ri(i),u=Object.assign(Object.assign({},s),{timeUnit:o});return new Ua(e,{[_t(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 Bx(this.formula))e.has(i.as)||(n[r]=i);this.formula=n}producedFields(){return new Set(bi(this.formula).map(e=>e.as))}dependentFields(){return new Set(bi(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${_t(this.formula)}`}assemble(){const e=[];for(const n of bi(this.formula)){const{field:r,as:i,timeUnit:s}=n,o=Ri(s),{unit:u,utc:a}=o,l=Ile(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:eu(r),type:"timeunit"},u?{units:p8(u)}:{}),a?{timezone:"utc"}:{}),l),{as:[i,`${i}_end`]}))}return e}}var brt=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 LE="_tuple_fields";class Trt{constructor(...e){this.items=e,this.hasChannel={},this.hasField={}}}const Rrt={defined:()=>!0,parse:(t,e,n)=>{var r;const i=e.name,s=(r=e.project)!==null&&r!==void 0?r:e.project=new Trt,o={},u={},a=new Set,l=(m,g)=>{const y=g==="visual"?m.channel:m.field;let E=yn(`${i}_${y}`);for(let A=1;a.has(E);A++)E=yn(`${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}=He(n.select)?n.select:{};if(!h&&!p&&x){for(const m of x)if(He(m))for(const g of Te(m))p8e(g)?(p||(p=[])).push(g):c==="interval"?(Re(Y8e),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){Re(U8e(m,g.aggregate));continue}else if(!y){Re(RK(m));continue}if(g.timeUnit){y=t.vgField(m);const E={timeUnit:g.timeUnit,as:y,field:g.field};u[_t(E)]=E}if(!o[y]){let E="E";if(c==="interval"){const v=t.getScaleComponent(m).get("type");Ws(v)&&(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 Re(RK(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=>He(m)?m[g.channel]!==void 0?m[g.channel]:m[g.field]:m))),Wt(u)||(s.timeUnit=new Ua(null,u))},signals:(t,e,n)=>{const r=e.name+LE;return n.filter(s=>s.name===r).length>0?n:n.concat({name:r,value:e.project.items.map(s=>{const o=brt(s,["signals","hasLegend"]);return o.field=eu(o.field),o})})}},Kc={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(!xc(i))continue;const s=t.getScaleComponent(i),o=s?s.get("type"):void 0;if(!s||!Ws(o)){Re(z8e);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||yk(t)||r.length===0)return n;const i=n.filter(o=>o.name===e.name)[0];let s=i.update;if(s.indexOf(t0e)>=0)i.update=`{${r.map(o=>`${we(eu(o.field))}: ${o.signals.data}`).join(", ")}}`;else{for(const o of r){const u=`${we(eu(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&&!yk(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 mk(t,e){return`domain(${we(t.scaleName(e))})`}function yk(t){var e;return t.parent&&ep(t.parent)&&((e=!t.parent.parent)!==null&&e!==void 0?e:yk(t.parent.parent))}var Ort=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 Q1="_brush",Ek="_scale_trigger",Nrt={defined:t=>t.type==="interval",signals:(t,e,n)=>{const r=e.name,i=r+LE,s=Kc.defined(e),o=e.init?e.init[0]:null,u=[],a=[];if(e.translate&&!s){const c=`!event.item || event.item.mark.name !== ${we(r+Q1)}`;$le(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!==En&&x!==gr){Re("Interval selections only support x and y encoding channels.");return}const h=o?o[f]:null,p=Drt(t,e,c,h),m=c.signals.data,g=c.signals.visual,y=we(t.scaleName(x)),E=t.getScaleComponent(x).get("type"),A=Ws(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+Ek,value:{},on:[{events:a.map(c=>({scale:c.scaleName})),update:`${a.map(c=>c.expr).join(" && ")} ? ${r+Ek} : {}`}]});const l=`unit: ${W1(t)}, fields: ${i}, values`;return n.concat(Object.assign(Object.assign({name:r+Jc},o?{init:`{${l}: ${z1(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(${we(e.name+Pd)})`;if(Kc.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 Te(l))l[g]=[Object.assign({test:`${a}.length && ${a}[0].unit === ${W1(t)}`},l[g]),{value:0}];const c=e.mark,{fill:f,fillOpacity:x,cursor:h}=c,p=Ort(c,["fill","fillOpacity","cursor"]),m=Te(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+Q1}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:x}},update:l}},...n,{name:r+Q1,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 Drt(t,e,n,r){const i=n.channel,s=n.signals.visual,o=n.signals.data,u=Kc.defined(e),a=we(t.scaleName(i)),l=t.getScaleComponent(i),c=l?l.get("type"):void 0,f=m=>`scale(${a}, ${m})`,x=t.getSizeSignalRef(i===En?"width":"height").signal,h=`${i}(unit)`,p=$le(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+Ek},update:Ws(c)?`[${f(`${o}[0]`)}, ${f(`${o}[1]`)}]`:"[0, 0]"}),u?[{name:o,on:[]}]:[Object.assign(Object.assign({name:s},r?{init:z1(r,!0,f)}:{value:[]}),{on:p}),Object.assign(Object.assign({name:o},r?{init:z1(r)}:{}),{on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]})]}function $le(t,e){return t.events.reduce((n,r)=>r.between?e(n,r):(Re(`${r} is not an ordered event stream for interval selections.`),n),[])}const Frt={defined:t=>t.type==="point",signals:(t,e,n)=>{var r;const i=e.name,s=i+LE,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}[${we(t.vgField(h.channel,{}))}], ${u}[${we(t.vgField(h.channel,{binSuffix:"end"}))}]]`:`${u}[${we(h.field)}]`}).join(", "),l=`unit: ${W1(t)}, fields: ${s}, values`,c=e.events,f=bi((r=t.component.selection)!==null&&r!==void 0?r:{}).reduce((h,p)=>p.type==="interval"?h.concat(p.name+Q1):h,[]).map(h=>`indexof(item().mark.name, '${h}') < 0`).join(" && "),x=`datum && item().mark.marktype !== 'group'${f?` && ${f}`:""}`;return n.concat([{name:i+Jc,on:c?[{events:c,update:`${x} ? {${l}: [${a}]} : null`,force:!0}]:[]}])}};function G1(t,e,n,r){const i=S6(e)&&e.condition,s=r(e);if(i){const u=Pe(i).map(a=>{const l=r(a);if(_tt(a)){const{param:c,empty:f}=a,x=s0e(t,{param:c,empty:f});return Object.assign({test:x},l)}else{const c=z6(t,a.test);return Object.assign({test:c},l)}});return{[n]:[...u,...s!==void 0?[s]:[]]}}else return s!==void 0?{[n]:s}:{}}function Ak(t,e="text"){const n=t.encoding[e];return G1(t,n,e,r=>M6(r,t.config))}function M6(t,e,n="datum"){if(t){if(yu(t))return sn(t.value);if(st(t)){const{format:r,formatType:i}=b6(t);return BB({fieldOrDatumDef:t,format:r,formatType:i,expr:n,config:e})}}}function Ble(t,e={}){const{encoding:n,markDef:r,config:i,stack:s}=t,o=n.tooltip;if(_e(o))return{tooltip:Ple({tooltip:o},s,i,e)};{const u=e.reactiveGeom?"datum.datum":"datum";return G1(t,o,"tooltip",a=>{const l=M6(a,i,u);if(l)return l;if(a===null)return;let c=It("tooltip",r,i);if(c===!0&&(c={content:"encoding"}),je(c))return{value:c};if(He(c))return Ye(c)?c:c.content==="encoding"?Ple(n,s,i,e):{signal:u}})}}function kle(t,e,n,{reactiveGeom:r}={}){const i={},s=r?"datum.datum":"datum",o=[];function u(l,c){const f=Mx(c),x=Do(l)?l:Object.assign(Object.assign({},l),{type:t[f].type}),h=x.title||QB(x,n),p=Pe(h).join(", ");let m;if(Ir(c)){const g=c==="x"?"x2":"y2",y=Pa(t[g]);if(Ti(x.bin)&&y){const E=$e(x,{expr:s}),A=$e(y,{expr:s}),{format:v,formatType:S}=b6(x);m=E6(E,A,v,S,n),i[g]=!0}else if(e&&e.fieldChannel===c&&e.offset==="normalize"){const{format:E,formatType:A}=b6(x);m=BB({fieldOrDatumDef:x,format:E,formatType:A,expr:s,config:n,normalizeStack:!0}).signal}}m??(m=M6(x,n,s).signal),o.push({channel:c,key:p,value:m})}YB(t,(l,c)=>{Ie(l)?u(l,c):_6(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 Ple(t,e,n,{reactiveGeom:r}={}){const i=kle(t,e,n,{reactiveGeom:r}),s=Bx(i).map(([o,u])=>`"${o}": ${u}`);return s.length>0?{signal:`{${s.join(", ")}}`}:void 0}function wrt(t){const{markDef:e,config:n}=t,r=It("aria",e,n);return r===!1?{}:Object.assign(Object.assign(Object.assign({},r?{aria:r}:{}),Lrt(t)),Irt(t))}function Lrt(t){const{mark:e,markDef:n,config:r}=t;if(r.aria===!1)return{};const i=It("ariaRoleDescription",n,r);return i!=null?{ariaRoleDescription:{value:i}}:e in k8e?{}:{ariaRoleDescription:{value:e}}}function Irt(t){const{encoding:e,markDef:n,config:r,stack:i}=t,s=e.description;if(s)return G1(t,s,"description",a=>M6(a,t.config));const o=It("description",n,r);if(o!=null)return{description:sn(o)};if(r.aria===!1)return{};const u=kle(e,i,r);if(!Wt(u))return{description:{signal:Bx(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=It(t,r,s,{vgChannel:o,ignoreVgConfig:!0})),a!==void 0&&(u=sn(a)));const l=i[t];return G1(e,l,o??t,c=>$B({channel:t,channelDef:c,markDef:r,config:s,scaleName:e.scaleName(t),scale:e.getScaleComponent(t),stack:null,defaultRef:u}))}function Mle(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:It("filled",o,a),f=Ct(["bar","point","circle","square","geoshape"],l)?"transparent":void 0,x=(i=(r=It(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=It(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:sn(x)}:{}),h?{stroke:sn(h)}:{});return o.color&&(c?o.fill:o.stroke)&&Re(LK("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 $rt(t){const{encoding:e,mark:n}=t,r=e.order;return!Qc(n)&&yu(r)?G1(t,r,"zindex",i=>sn(i.value)):{}}function IE({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:$B({channel:s,channelDef:u,markDef:e,config:r==null?void 0:r.config,scaleName:r.scaleName(s),scale:r.getScaleComponent(s),stack:null,defaultRef:sn(o),bandPosition:i})};const a=e[s];return a?{offsetType:"visual",offset:a}:{}}function ui(t,e,{defaultPos:n,vgChannel:r}){const{encoding:i,markDef:s,config:o,stack:u}=e,a=i[t],l=i[Dl(t)],c=e.scaleName(t),f=e.getScaleComponent(t),{offset:x,offsetType:h}=IE({channel:t,markDef:s,encoding:i,model:e,bandPosition:.5}),p=vk({model:e,defaultPos:n,channel:t,scaleName:c,scale:f}),m=!a&&Ir(t)&&(i.latitude||i.longitude)?{field:e.getName(t)}:Brt({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 Brt(t){const{channel:e,channelDef:n,scaleName:r,stack:i,offset:s,markDef:o}=t;if(st(n)&&i&&e===i.fieldChannel){if(Ie(n)){let u=n.bandPosition;if(u===void 0&&o.type==="text"&&(e==="radius"||e==="theta")&&(u=.5),u!==void 0)return y6({scaleName:r,fieldOrDatumDef:n,startSuffix:"start",bandPosition:u,offset:s})}return Id(n,r,{suffix:"end"},{offset:s})}return LB(t)}function vk({model:t,defaultPos:e,channel:n,scaleName:r,scale:i}){const{markDef:s,config:o}=t;return()=>{const u=Mx(n),a=fc(n),l=It(n,s,o,{vgChannel:a});if(l!==void 0)return TE(n,l);switch(e){case"zeroOrMin":case"zeroOrMax":if(r){const c=i.get("type");if(!Ct([Es.LOG,Es.TIME,Es.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[ls(n)];return Object.assign(Object.assign({},c),{mult:.5})}}}}const krt={left:"x",center:"xc",right:"x2"},Prt={top:"y",middle:"yc",bottom:"y2"};function jle(t,e,n,r="middle"){if(t==="radius"||t==="theta")return fc(t);const i=t==="x"?"align":"baseline",s=It(i,e,n);let o;return Ye(s)?(Re(gwe(i)),o=void 0):o=s,t==="x"?krt[o||(r==="top"?"left":"center")]:Prt[o||r]}function j6(t,e,{defaultPos:n,defaultPos2:r,range:i}){return i?Ule(t,e,{defaultPos:n,defaultPos2:r}):ui(t,e,{defaultPos:n})}function Ule(t,e,{defaultPos:n,defaultPos2:r}){const{markDef:i,config:s}=e,o=Dl(t),u=ls(t),a=Mrt(e,r,o),l=a[u]?jle(t,i,s):fc(t);return Object.assign(Object.assign({},ui(t,e,{defaultPos:n,vgChannel:l})),a)}function Mrt(t,e,n){const{encoding:r,mark:i,markDef:s,stack:o,config:u}=t,a=Mx(n),l=ls(n),c=fc(n),f=r[a],x=t.scaleName(a),h=t.getScaleComponent(a),{offset:p}=n in r||n in s?IE({channel:n,markDef:s,encoding:r,model:t}):IE({channel:a,markDef:s,encoding:r,model:t});if(!f&&(n==="x2"||n==="y2")&&(r.latitude||r.longitude)){const g=ls(n),y=t.markDef[g];return y!=null?{[g]:{value:y}}:{[c]:{field:t.getName(n)}}}const m=jrt({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}:U6(n,s)||U6(n,{[n]:iC(n,s,u.style),[l]:iC(l,s,u.style)})||U6(n,u[i])||U6(n,u.mark)||{[c]:vk({model:t,defaultPos:e,channel:n,scaleName:x,scale:h})()}}function jrt({channel:t,channelDef:e,channel2Def:n,markDef:r,config:i,scaleName:s,scale:o,stack:u,offset:a,defaultRef:l}){return st(e)&&u&&t.charAt(0)===u.fieldChannel.charAt(0)?Id(e,s,{suffix:"start"},{offset:a}):LB({channel:t,channelDef:n,scaleName:s,scale:o,stack:u,markDef:r,config:i,offset:a,defaultRef:l})}function U6(t,e){const n=ls(t),r=fc(t);if(e[r]!==void 0)return{[r]:TE(t,e[r])};if(e[t]!==void 0)return{[r]:TE(t,e[t])};if(e[n]){const i=e[n];if(P1(i))Re(lwe(n));else return{[n]:TE(t,i)}}}function Xc(t,e){var n,r;const{config:i,encoding:s,markDef:o}=t,u=o.type,a=Dl(e),l=ls(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:It("size",o,i,{vgChannel:l}),g=u==="bar"&&(e==="x"?p==="vertical":p==="horizontal");return Ie(c)&&(Kt(c.bin)||Ti(c.bin)||c.timeUnit&&!f)&&!(m&&!P1(m))&&!Cr(h)?Hrt({fieldDef:c,fieldDef2:f,channel:e,model:t}):(st(c)&&Cr(h)||g)&&!f?qrt(c,e,t):Ule(e,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function Urt(t,e,n,r,i){if(P1(i))if(n){const o=n.get("type");if(o==="band")return{scale:e,band:i.band};i.band!==1&&(Re(Awe(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(pc(o)&&nn(o.step))return{value:o.step-2}}return{value:$6(r.view,t)-2}}function qrt(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=ls(e),f=Dl(e),x=m8e(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:sn(r.size)}):Re(Cwe(r.type)));const g=Sae({channel:e,fieldDef:t,markDef:r,config:s,scaleType:l==null?void 0:l.get("type"),useVlSizeChannel:p});m=m||{[c]:Urt(c,h||a,l,s,g)};const y=(l==null?void 0:l.get("type"))!=="band"||!("band"in m[c])?"middle":"top",E=jle(e,r,s,y),A=E==="xc"||E==="yc",{offset:v,offsetType:S}=IE({channel:e,markDef:r,encoding:i,model:n,bandPosition:A?.5:0}),C=LB({channel:e,channelDef:t,markDef:r,config:s,scaleName:a,scale:l,stack:o,offset:v,defaultRef:vk({model:n,defaultPos:"mid",channel:e,scaleName:a,scale:l}),bandPosition:A?S==="encoding"?0:.5:Ye(g)?{signal:`(1-${g})/2`}:P1(g)?(1-g.band)/2:0});if(c)return Object.assign({[E]:C},m);{const _=fc(f),b=m[c],R=v?Object.assign(Object.assign({},b),{offset:v}):b;return{[E]:C,[_]:_e(C)?[C[0],Object.assign(Object.assign({},C[1]),{offset:R})]:Object.assign(Object.assign({},C),{offset:R})}}}function $E(t,e,n,r,i){if(tK(t))return 0;const s=t==="x"||t==="y2"?-e/2:e/2;if(Ye(n)||Ye(i)||Ye(r)){const o=Ll(n),u=Ll(i),a=Ll(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 Hrt({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=Sae({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=Ir(n)&&(o=It("binSpacing",a,u))!==null&&o!==void 0?o:0,E=Dl(n),A=fc(n),v=fc(E),{offset:S}=IE({channel:n,markDef:a,encoding:l,model:r,bandPosition:0}),C=Ye(p)?{signal:`(1-${p.signal})/2`}:P1(p)?(1-p.band)/2:.5;if(Kt(t.bin)||t.timeUnit)return{[v]:qle({fieldDef:t,scaleName:f,bandPosition:C,offset:$E(E,y,h,g,S)}),[A]:qle({fieldDef:t,scaleName:f,bandPosition:Ye(C)?{signal:`1-${C.signal}`}:1-C,offset:$E(n,y,h,g,S)})};if(Ti(t.bin)){const _=Id(t,f,{},{offset:$E(E,y,h,g,S)});if(Ie(e))return{[v]:_,[A]:Id(e,f,{},{offset:$E(n,y,h,g,S)})};if(jx(t.bin)&&t.bin.step)return{[v]:_,[A]:{signal:`scale("${f}", ${$e(t,{expr:"datum"})} + ${t.bin.step})`,offset:$E(n,y,h,g,S)}}}Re(PK(E))}function qle({fieldDef:t,scaleName:e,bandPosition:n,offset:r}){return y6({scaleName:e,fieldOrDatumDef:t,bandPosition:n,offset:r})}const zrt=new Set(["aria","width","height"]);function Fo(t,e){const{fill:n=void 0,stroke:r=void 0}=e.color==="include"?Mle(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({},Qrt(t.markDef,e)),Hle(t,"fill",n)),Hle(t,"stroke",r)),br("opacity",t)),br("fillOpacity",t)),br("strokeOpacity",t)),br("strokeWidth",t)),br("strokeDash",t)),$rt(t)),Ble(t)),Ak(t,"href")),wrt(t))}function Hle(t,e,n){const{config:r,mark:i,markDef:s}=t;if(It("invalid",s,r)==="hide"&&n&&!Qc(i)){const u=Grt(t,{invalid:!0,channels:nC});if(u)return{[e]:[{test:u,value:null},...Pe(n)]}}return n?{[e]:n}:{}}function Qrt(t,e){return B8e.reduce((n,r)=>(!zrt.has(r)&&t[r]!==void 0&&e[r]!=="ignore"&&(n[r]=sn(t[r])),n),{})}function Grt(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&&Ws(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>IB(o,e)).join(` ${s} `)}}function Sk(t){const{config:e,markDef:n}=t;if(It("invalid",n,e)){const i=Wrt(t,{channels:fa});if(i)return{defined:{signal:i}}}return{}}function Wrt(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&&Ws(a)&&(s[l]=!0)}return s},{}),i=Te(r);if(i.length>0){const s=e?"||":"&&";return i.map(o=>IB(o,e)).join(` ${s} `)}}function zle(t,e){if(e!==void 0)return{[t]:sn(e)}}const _k="voronoi",Qle={defined:t=>t.type==="point"&&t.nearest,parse:(t,e)=>{if(e.events)for(const n of e.events)n.markname=t.getName(_k)},marks:(t,e,n)=>{const{x:r,y:i}=e.project.hasChannel,s=t.mark;if(Qc(s))return Re(q8e(s)),n;const o={name:t.getName(_k),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}},Ble(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(_k)>=0&&(a=!0)}),a||n.splice(u+1,0,o),n}},Gle={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!nk(t.bind),parse:(t,e,n)=>n0e(e,n),topLevelSignals:(t,e,n)=>{const r=e.name,i=e.project,s=e.bind,o=e.init&&e.init[0],u=Qle.defined(e)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((a,l)=>{var c,f;const x=yn(`${r}_${a.field}`);n.filter(p=>p.name===x).length||n.unshift(Object.assign(Object.assign({name:x},o?{init:z1(o[l])}:{value:null}),{on:e.events?[{events:e.events,update:`datum && item().mark.marktype !== 'group' ? ${u}[${we(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+Jc)[0],o=r+LE,u=i.items.map(l=>yn(`${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}},q6="_toggle",Wle={defined:t=>t.type==="point"&&!!t.toggle,signals:(t,e,n)=>n.concat({name:e.name+q6,value:!1,on:[{events:e.events,update:e.toggle}]}),modifyExpr:(t,e)=>{const n=e.name+Jc,r=e.name+q6;return`${r} ? null : ${n}, `+(e.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${W1(t)}}, `)+`${r} ? ${n} : null`}},Vrt={defined:t=>t.clear!==void 0&&t.clear!==!1,parse:(t,e)=>{e.clear&&(e.clear=je(e.clear)?Rd(e.clear,"view"):e.clear)},topLevelSignals:(t,e,n)=>{if(Gle.defined(e))for(const r of e.project.items){const i=n.findIndex(s=>s.name===yn(`${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+Jc);r(i,"null"),Wle.defined(e)&&(i=n.findIndex(s=>s.name===e.name+q6),r(i,"false"))}return n}},Vle={defined:t=>{const e=t.resolve==="global"&&t.bind&&nk(t.bind),n=t.project.items.length===1&&t.project.items[0].field!==FE;return e&&!n&&Re(Q8e),e&&n},parse:(t,e,n)=>{var r;const i=ut(n);if(i.select=je(i.select)?{type:i.select,toggle:e.toggle}:Object.assign(Object.assign({},i.select),{toggle:e.toggle}),n0e(e,i),He(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=rk(e.bind)?e.bind.legend:"click",o=je(s)?Rd(s,"view"):Pe(s);e.bind={legend:{merge:o}}},topLevelSignals:(t,e,n)=>{const r=e.name,i=rk(e.bind)&&e.bind.legend,s=o=>u=>{const a=ut(u);return a.markname=o,a};for(const o of e.project.items){if(!o.hasLegend)continue;const u=`${yn(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+Jc),o=r+LE,u=i.items.filter(x=>x.hasLegend).map(x=>yn(`${r}_${yn(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+q6),f=rk(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 Yrt(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 bi((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&&Vle.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 Yle="_translate_anchor",Kle="_translate_delta",Krt={defined:t=>t.type==="interval"&&t.translate,signals:(t,e,n)=>{const r=e.name,i=Kc.defined(e),s=r+Yle,{x:o,y:u}=e.project.hasChannel;let a=Rd(e.translate,"scope");return i||(a=a.map(l=>(l.between[0].markname=r+Q1,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?mk(t,En):`slice(${o.signals.visual})`}`:"")+(u!==void 0?`, extent_y: ${i?mk(t,gr):`slice(${u.signals.visual})`}`:"")+"}"}]},{name:r+Kle,value:{},on:[{events:a,update:`{x: ${s}.x - x(unit), y: ${s}.y - y(unit)}`}]}),o!==void 0&&Xle(t,e,o,"width",n),u!==void 0&&Xle(t,e,u,"height",n),n}};function Xle(t,e,n,r,i){var s,o;const u=e.name,a=u+Yle,l=u+Kle,c=n.channel,f=Kc.defined(e),x=i.filter(_=>_.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===En?g?"":"-":g?"-":"":"",E=`${a}.extent_${c}`,A=`${y}${l}.${c} / ${f?`${h}`:`span(${E})`}`,v=f?m==="log"?"panLog":m==="symlog"?"panSymlog":m==="pow"?"panPow":"panLinear":"panLinear",S=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}`:"":"",C=`${v}(${E}, ${A}${S})`;x.on.push({events:{signal:l},update:f?C:`clampRange(${C}, 0, ${h})`})}const Jle="_zoom_anchor",Zle="_zoom_delta",Xrt={defined:t=>t.type==="interval"&&t.zoom,signals:(t,e,n)=>{const r=e.name,i=Kc.defined(e),s=r+Zle,{x:o,y:u}=e.project.hasChannel,a=we(t.scaleName(En)),l=we(t.scaleName(gr));let c=Rd(e.zoom,"scope");return i||(c=c.map(f=>(f.markname=r+Q1,f))),n.push({name:r+Jle,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&&e0e(t,e,o,"width",n),u!==void 0&&e0e(t,e,u,"height",n),n}};function e0e(t,e,n,r,i){var s,o;const u=e.name,a=n.channel,l=Kc.defined(e),c=i.filter(v=>v.name===n.signals[l?"data":"visual"])[0],f=t.getSizeSignalRef(r).signal,x=t.getScaleComponent(a),h=x.get("type"),p=l?mk(t,a):c.name,m=u+Zle,g=`${u}${Jle}.${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 Pd="_store",Jc="_tuple",Jrt="_modify",t0e="vlSelectionResolve",H6=[Frt,Nrt,Rrt,Wle,Gle,Kc,Vle,Vrt,Krt,Xrt,Qle];function Zrt(t){let e=t.parent;for(;e&&!vu(e);)e=e.parent;return e}function W1(t,{escape:e}={escape:!0}){let n=e?we(t.name):t.name;const r=Zrt(t);if(r){const{facet:i}=r;for(const s of mo)i[s]&&(n+=` + '__facet_${s}_' + (facet[${we(r.vgField(s))}])`)}return n}function Ck(t){var e;return bi((e=t.component.selection)!==null&&e!==void 0?e:{}).reduce((n,r)=>n||r.project.items.some(i=>i.field===FE),!1)}function n0e(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 bk(t){const e=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(e.push(...bk(t.object)),e.push(...bk(t.property))),e)}function r0e(t){return t.object.type==="MemberExpression"?r0e(t.object):t.object.name==="datum"}function i0e(t){const e=noe(t),n=new Set;return e.visit(r=>{r.type==="MemberExpression"&&r0e(r)&&n.add(bk(r).slice(1).join("."))}),n}class V1 extends Ut{constructor(e,n,r){super(e),this.model=n,this.filter=r,this.expr=z6(this.model,this.filter,this),this._dependentFields=i0e(this.expr)}clone(){return new V1(null,this.model,ut(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function eit(t,e){var n;const r={},i=t.config.selection;if(!e||!e.length)return r;for(const s of e){const o=yn(s.name),u=s.select,a=je(u)?u:u.type,l=He(u)?ut(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)?Rd(l.on,"scope"):Pe(ut(l.on))});for(const x of H6)x.defined(f)&&x.parse&&x.parse(t,f,s)}return r}function s0e(t,e,n,r="datum"){const i=je(e)?e:e.param,s=yn(i),o=we(s+Pd);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"?")":`, ${we(u.resolve)})`}`,l=`length(data(${o}))`;return e.empty===!1?`${l} && ${a}`:`!${l} || ${a}`}function o0e(t,e,n){const r=yn(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&&Re(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${we(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,Re((u.length?"Multiple ":"No ")+`matching ${we(i)} encoding found for selection ${we(n.param)}. Using "field": ${we(s)}.`)):s=u[0].field}return`${o.name}[${we(eu(s))}]`}function tit(t,e){var n;for(const[r,i]of Bx((n=t.component.selection)!==null&&n!==void 0?n:{})){const s=t.getName(`lookup_${r}`);t.component.data.outputNodes[s]=i.materialized=new zi(new V1(e,t,{param:r}),s,Jt.Lookup,t.component.data.outputNodeRefCounts)}}function z6(t,e,n){return W5(e,r=>je(r)?r:o9e(r)?s0e(t,r,n):GK(r))}var Q6=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 nit(t,e){if(t)return _e(t)&&!hc(t)?t.map(n=>QB(n,e)).join(", "):t}function Tk(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 BE(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=Q6(o,["disable","orient","scale","labelExpr","title","zindex"]);if(!u){for(const p in h){const m=ktt[p],g=h[p];if(m&&m!==e&&m!=="both")delete h[p];else if(DE(g)){const{condition:y}=g,E=Q6(g,["condition"]),A=Pe(y),v=Fae[p];if(v){const{vgProp:S,part:C}=v,_=[...A.map(b=>{const{test:R}=b,O=Q6(b,["test"]);return Object.assign({test:z6(null,R)},O)}),E];Tk(h,C,S,_),delete h[p]}else if(v===null){const S={signal:A.map(C=>{const{test:_}=C,b=Q6(C,["test"]);return`${z6(null,_)} ? ${mK(b)} : `}).join("")+mK(E)};h[p]=S}}else if(Ye(g)){const y=Fae[p];if(y){const{vgProp:E,part:A}=y;Tk(h,A,E,g),delete h[p]}}Ct(["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:er(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=$2(c,"datum.label",h.encode.labels.update.text.signal)),Tk(h,"labels","text",{signal:m})}if(h.labelAlign===null&&delete h.labelAlign,h.encode){for(const m of wae)t.hasAxisPart(m)||delete h.encode[m];Wt(h.encode)&&delete h.encode}const p=nit(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:er(x,0)})}}}function u0e(t){const{axes:e}=t.component,n=[];for(const r of fa)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 rit(t,e){const{x:n=[],y:r=[]}=t;return[...n.map(i=>BE(i,"grid",e)),...r.map(i=>BE(i,"grid",e)),...n.map(i=>BE(i,"main",e)),...r.map(i=>BE(i,"main",e))].filter(i=>i)}function a0e(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([...Te(o),...Te(u)]),l={};for(const c of a.values())l[c]={signal:`${r.signal} === "${s}" ? ${Ll(o[c])} : ${Ll(u[c])}`};return l}return e[i]})])}function iit(t,e,n,r){const i=e==="band"?["axisDiscrete","axisBand"]:e==="point"?["axisDiscrete","axisPoint"]:Zue(e)?["axisQuantitative"]:e==="time"||e==="utc"?["axisTemporal"]:[],s=t==="x"?"axisX":"axisY",o=Ye(n)?"axisOrient":`axis${V5(n)}`,u=[...i,...i.map(l=>s+l.substr(4))],a=["axis",o,s];return{vlOnlyAxisConfig:a0e(u,r,t,n),vgAxisConfig:a0e(a,r,t,n),axisConfigStyle:sit([...a,...u],r)}}function sit(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 Rk(t,e,n,r={}){var i;const s=EK(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 l0e={scale:({model:t,channel:e})=>t.scaleName(e),format:({fieldOrDatumDef:t,config:e,axis:n})=>{const{format:r,formatType:i}=n;return xae(t,t.type,r,i,e,!0)},formatType:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return dae(r,e,n)},grid:({fieldOrDatumDef:t,axis:e,scaleType:n})=>{var r;return(r=e.grid)!==null&&r!==void 0?r:oit(n,t)},gridScale:({model:t,channel:e})=>uit(t,e),labelAlign:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelAlign||f0e(e,n,r),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:e,orient:n,channel:r})=>t.labelBaseline||c0e(e,n,r),labelFlush:({axis:t,fieldOrDatumDef:e,channel:n})=>{var r;return(r=t.labelFlush)!==null&&r!==void 0?r:lit(e.type,n)},labelOverlap:({axis:t,fieldOrDatumDef:e,scaleType:n})=>{var r;return(r=t.labelOverlap)!==null&&r!==void 0?r:cit(e.type,n,Ie(e)&&!!e.timeUnit,Ie(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:xit({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=x0e(e,n);if(r!==void 0)return r;const i=e.typedFieldDef(n),s=n==="x"?"x2":"y2",o=e.fieldDef(s);return vK(i?[Aae(i)]:[],Ie(o)?[Aae(o)]:[])},values:({axis:t,fieldOrDatumDef:e})=>dit(t,e),zindex:({axis:t,fieldOrDatumDef:e,mark:n})=>{var r;return(r=t.zindex)!==null&&r!==void 0?r:hit(n,e)}};function oit(t,e){return!Cr(t)&&Ie(e)&&!Kt(e==null?void 0:e.bin)&&!Ti(e==null?void 0:e.bin)}function uit(t,e){const n=e==="x"?"y":"x";if(t.getScaleComponent(n))return t.scaleName(n)}function ait(t,e,n,r,i){const s=e==null?void 0:e.labelAngle;if(s!==void 0)return Ye(s)?s:Y5(s);{const{configValue:o}=Rk("labelAngle",r,e==null?void 0:e.style,i);return o!==void 0?Y5(o):n===En&&Ct([RB,TB],t.type)&&!(Ie(t)&&t.timeUnit)?270:void 0}}function Ok(t){return`(((${t.signal} % 360) + 360) % 360)`}function c0e(t,e,n,r){if(t!==void 0)if(n==="x"){if(Ye(t)){const i=Ok(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=Ok(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 f0e(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=Ok(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 lit(t,e){if(e==="x"&&Ct(["quantitative","temporal"],t))return!0}function cit(t,e,n,r){if(n&&!He(r)||t!=="nominal"&&t!=="ordinal")return e==="log"||e==="symlog"?"greedy":!0}function fit(t){return t==="x"?"bottom":"left"}function xit({fieldOrDatumDef:t,scaleType:e,size:n,values:r}){var i;if(!r&&!Cr(e)&&e!=="log"){if(Ie(t)){if(Kt(t.bin))return{signal:`ceil(${n.signal}/10)`};if(t.timeUnit&&Ct(["month","hours","day","quarter"],(i=Ri(t.timeUnit))===null||i===void 0?void 0:i.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function x0e(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 SK(s,o);if(s)return s;if(o)return o;if(s!==void 0)return s;if(o!==void 0)return o}function dit(t,e){const n=t.values;if(_e(n))return Dae(e,n);if(Ye(n))return n}function hit(t,e){return t==="rect"&&C6(e)?1:0}class Y1 extends Ut{constructor(e,n){super(e),this.transform=n,this._dependentFields=i0e(this.transform.calculate)}clone(){return new Y1(null,ut(this.transform))}static parseAllForSortIndex(e,n){return n.forEachFieldDef((r,i)=>{if(Bd(r)&&Eae(r.sort)){const{field:s,timeUnit:o}=r,u=r.sort,a=u.map((l,c)=>`${GK({field:s,timeUnit:o,equal:l})} ? ${c} : `).join("")+u.length;e=new Y1(e,{calculate:a,as:K1(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 ${_t(this.transform)}`}}function K1(t,e,n){return $e(t,Object.assign({prefix:e,suffix:"sort_index"},n??{}))}function G6(t,e){return Ct(["top","bottom"],e)?"column":Ct(["left","right"],e)||t==="row"?"row":"column"}function X1(t,e,n,r){const i=r==="row"?n.headerRow:r==="column"?n.headerColumn:n.headerFacet;return er((e||{})[t],i[t],n.header[t])}function W6(t,e,n,r){const i={};for(const s of t){const o=X1(s,e||{},n,r);o!==void 0&&(i[s]=o)}return i}const Nk=["row","column"],Dk=["header","footer"];function pit(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}=W6(["titleAnchor","titleAngle","titleOrient"],i.header,r,e),a=G6(e,u),l=Y5(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"}),h0e(l,a)),d0e(a,l,s)),p0e(r,i,e,snt,Jae))}}function d0e(t,e,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const r=f0e(e,t==="row"?"left":"top",t==="row"?"y":"x");return r?{align:r}:{}}function h0e(t,e){const n=c0e(t,e==="row"?"left":"top",e==="row"?"y":"x",!0);return n?{baseline:n}:{}}function git(t,e){const n=t.component.layoutHeaders[e],r=[];for(const i of Dk)if(n[i])for(const s of n[i]){const o=yit(t,e,i,n,s);o!=null&&r.push(o)}return r}function mit(t,e){var n;const{sort:r}=t;return $a(r)?{field:$e(r,{expr:"datum"}),order:(n=r.order)!==null&&n!==void 0?n:"ascending"}:_e(r)?{field:K1(t,e,{expr:"datum"}),order:"ascending"}:{field:$e(t,{expr:"datum"}),order:r??"ascending"}}function Fk(t,e,n){const{format:r,formatType:i,labelAngle:s,labelAnchor:o,labelOrient:u,labelExpr:a}=W6(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,n,e),l=BB({fieldOrDatumDef:t,format:r,formatType:i,expr:"parent",config:n}).signal,c=G6(e,u);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:a?$2($2(a,"datum.label",l),"datum.value",$e(t,{expr:"parent"})):l}},e==="row"?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),h0e(s,c)),d0e(c,s,o)),p0e(n,t,e,ont,Zae))}function yit(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}=W6(["labelOrient"],o.header,u,e);(e==="row"&&!Ct(["top","bottom"],f)||e==="column"&&!Ct(["left","right"],f))&&(s=Fk(o,e,u))}const a=vu(t)&&!RE(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:mit(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 Eit={column:{start:0,end:1},row:{start:1,end:0}};function Ait(t,e){return Eit[e][t]}function vit(t,e){const n={};for(const r of mo){const i=t[r];if(i!=null&&i.facetFieldDef){const{titleAnchor:s,titleOrient:o}=W6(["titleAnchor","titleOrient"],i.facetFieldDef.header,e,r),u=G6(r,o),a=Ait(s,u);a!==void 0&&(n[u]=a)}}return Wt(n)?void 0:n}function p0e(t,e,n,r,i){const s={};for(const o of r){if(!i[o])continue;const u=X1(o,e==null?void 0:e.header,t,n);u!==void 0&&(s[i[o]]=u)}return s}function wk(t){return[...V6(t,"width"),...V6(t,"height"),...V6(t,"childWidth"),...V6(t,"childHeight")]}function V6(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)&&pc(u)){const a=t.scaleName(n);return vu(t.parent)&&t.parent.component.resolve.scale[n]==="independent"?[g0e(a,u)]:[g0e(a,u),{name:i,update:m0e(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=uk(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 g0e(t,e){const n=`${t}_step`;return Ye(e.step)?{name:n,update:e.step.signal}:{name:n,value:e.step}}function m0e(t,e,n){const r=e.get("type"),i=e.get("padding"),s=er(e.get("paddingOuter"),i);let o=e.get("paddingInner");return o=r==="band"?o!==void 0?o:i:1,`bandspace(${n}, ${Ll(o)}, ${Ll(s)}) * ${t}_step`}function y0e(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function E0e(t,e){return Te(t).reduce((n,r)=>{const i=t[r];return Object.assign(Object.assign({},n),G1(e,i,r,s=>sn(s.value)))},{})}function A0e(t,e){if(vu(e))return t==="theta"?"independent":"shared";if(ep(e))return"shared";if(Vk(e))return Ir(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function Lk(t,e){const n=t.scale[e],r=Ir(e)?"axis":"legend";return n==="independent"?(t[r][e]==="shared"&&Re(Nwe(e)),"independent"):t[r][e]||"shared"}const Sit=Object.assign(Object.assign({},ant),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),v0e=Te(Sit);class _it extends u0{}const S0e={symbols:Cit,gradient:bit,labels:Tit,entries:Rit};function Cit(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({},M8e({},n,att)),Mle(n,{filled:E}));const v=(o=i.get("symbolOpacity"))!==null&&o!==void 0?o:g.legend.symbolOpacity,S=(u=i.get("symbolFillColor"))!==null&&u!==void 0?u:g.legend.symbolFillColor,C=(a=i.get("symbolStrokeColor"))!==null&&a!==void 0?a:g.legend.symbolStrokeColor,_=v===void 0?(l=_0e(m.opacity))!==null&&l!==void 0?l:p.opacity:void 0;if(A.fill){if(r==="fill"||E&&r===us)delete A.fill;else if(A.fill.field)S?delete A.fill:(A.fill=sn((c=g.legend.symbolBaseFillColor)!==null&&c!==void 0?c:"black"),A.fillOpacity=sn(_??1));else if(_e(A.fill)){const b=(h=(x=Ik((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=sn(b))}}if(A.stroke){if(r==="stroke"||!E&&r===us)delete A.stroke;else if(A.stroke.field||C)delete A.stroke;else if(_e(A.stroke)){const b=er(Ik(m.stroke||m.color),p.stroke,E?p.color:void 0);b&&(A.stroke={value:b})}}if(r!==Nl){const b=Ie(e)&&b0e(n,i,e);b?A.opacity=[Object.assign({test:b},sn(_??1)),sn(g.legend.unselectedOpacity)]:_&&(A.opacity=sn(_))}return A=Object.assign(Object.assign({},A),t),Wt(A)?void 0:A}function bit(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?_0e(u.opacity)||o.opacity:void 0;return c&&(a.opacity=sn(c)),a=Object.assign(Object.assign({},a),t),Wt(a)?void 0:a}function Tit(t,{fieldOrDatumDef:e,model:n,channel:r,legendCmpt:i}){const s=n.legend(r)||{},o=n.config,u=Ie(e)?b0e(n,i,e):void 0,a=u?[{test:u,value:1},{value:o.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=s,f=$d(c)?kB({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 Rit(t,{legendCmpt:e}){const n=e.get("selections");return n!=null&&n.length?Object.assign(Object.assign({},t),{fill:{value:"transparent"}}):t}function _0e(t){return C0e(t,(e,n)=>Math.max(e,n.value))}function Ik(t){return C0e(t,(e,n)=>er(e,n.value))}function C0e(t,e){if(btt(t))return Pe(t.condition).reduce(e,t.value);if(yu(t))return t.value}function b0e(t,e,n){const r=e.get("selections");if(!(r!=null&&r.length))return;const i=we(n.field);return r.map(s=>`(!length(data(${we(yn(s)+Pd)})) || (${s}[${i}] && indexof(${s}[${i}], datum.value) >= 0))`).join(" || ")}const T0e={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:e,config:n})=>{const{format:r,formatType:i}=e;return xae(t,t.type,r,i,n,!1)},formatType:({legend:t,fieldOrDatumDef:e,scaleType:n})=>{const{formatType:r}=t;return dae(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:Iit(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:$it(n)},symbolType:({legend:t,markDef:e,channel:n,encoding:r})=>{var i;return(i=t.symbolType)!==null&&i!==void 0?i:Nit(e.type,n,r.shape,e.shape)},title:({fieldOrDatumDef:t,config:e})=>M1(t,e,{allowDisabling:!0}),type:({legendType:t,scaleType:e,channel:n})=>{if(k2(n)&&mu(e)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:e})=>Oit(e,t)};function Oit(t,e){const n=t.values;if(_e(n))return Dae(e,n);if(Ye(n))return n}function Nit(t,e,n,r){var i;if(e!=="shape"){const s=(i=Ik(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 Dit(t){const{legend:e}=t;return er(e.type,Fit(t))}function Fit({channel:t,timeUnit:e,scaleType:n}){if(k2(t)){if(Ct(["quarter","month","day"],e))return"symbol";if(mu(n))return"gradient"}return"symbol"}function wit({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:Lit(n,e)}function Lit(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 Iit({legendConfig:t,model:e,direction:n,orient:r,scaleType:i}){const{gradientHorizontalMaxLength:s,gradientHorizontalMinLength:o,gradientVerticalMaxLength:u,gradientVerticalMinLength:a}=t;if(mu(i))return n==="horizontal"?r==="top"||r==="bottom"?R0e(e,"width",o,s):o:R0e(e,"height",a,u)}function R0e(t,e,n,r){return{signal:`clamp(${t.getSizeSignalRef(e).signal}, ${n}, ${r})`}}function $it(t){if(Ct(["quantile","threshold","log","symlog"],t))return"greedy"}function O0e(t){const e=Gn(t)?Bit(t):jit(t);return t.component.legends=e,e}function Bit(t){const{encoding:e}=t,n={};for(const r of[us,...tle]){const i=ur(e[r]);!i||!t.getScaleComponent(r)||r===as&&Ie(i)&&i.type===B1||(n[r]=Mit(t,r))}return n}function kit(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 Pit(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 Mit(t,e){var n,r,i;let s=t.legend(e);const{markDef:o,encoding:u,config:a}=t,l=a.legend,c=new _it({},kit(t,e));Yrt(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=ur(u[e]),p=Ie(h)?(n=Ri(h.timeUnit))===null||n===void 0?void 0:n.unit:void 0,m=s.orient||a.legend.orient||"right",g=Dit({legend:s,channel:e,timeUnit:p,scaleType:x}),y=wit({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 _ of v0e){if(g==="gradient"&&_.startsWith("symbol")||g==="symbol"&&_.startsWith("gradient"))continue;const b=_ in T0e?T0e[_](E):s[_];if(b!==void 0){const R=Pit(b,_,s,t.fieldDef(e));(R||a.legend[_]===void 0)&&c.set(_,b,R)}}const A=(r=s==null?void 0:s.encoding)!==null&&r!==void 0?r:{},v=c.get("selections"),S={},C={fieldOrDatumDef:h,model:t,channel:e,legendCmpt:c,legendType:g};for(const _ of["labels","legend","title","symbols","gradient","entries"]){const b=E0e((i=A[_])!==null&&i!==void 0?i:{},t),R=_ in S0e?S0e[_](b,C):b;R!==void 0&&!Wt(R)&&(S[_]=Object.assign(Object.assign(Object.assign({},v!=null&&v.length&&Ie(h)?{name:`${yn(h.field)}_legend_${_}`}:{}),v!=null&&v.length?{interactive:!!v}:{}),{update:R}))}return Wt(S)||c.set("encode",S,!!(s!=null&&s.encoding)),c}function jit(t){const{legends:e,resolve:n}=t.component;for(const r of t.children){O0e(r);for(const i of Te(r.component.legends))n.legend[i]=Lk(t.component.resolve,i),n.legend[i]==="shared"&&(e[i]=N0e(e[i],r.component.legends[i]),e[i]||(n.legend[i]="independent",delete e[i]))}for(const r of Te(e))for(const i of t.children)i.component.legends[r]&&n.legend[r]==="shared"&&delete i.component.legends[r];return e}function N0e(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 v0e){const c=Vc(t.getWithExplicit(l),e.getWithExplicit(l),l,"legend",(f,x)=>{switch(l){case"symbolType":return Uit(f,x);case"title":return _K(f,x);case"type":return a=!0,Vs("symbol")}return P6(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&&KF(t.implicit,["encode","gradient"]),!((s=(i=t.explicit)===null||i===void 0?void 0:i.encode)===null||s===void 0)&&s.gradient&&KF(t.explicit,["encode","gradient"])),t}function Uit(t,e){return e.value==="circle"?e:t}var qit=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 Hit(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 D0e(t){const e=t.component.legends,n={};for(const i of Te(e)){const s=t.getScaleComponent(i),o=rn(s.get("domains"));if(n[o])for(const u of n[o])N0e(u,e[i])||n[o].push(e[i]);else n[o]=[e[i].clone()]}return bi(n).flat().map(i=>zit(i,t.config)).filter(i=>i!==void 0)}function zit(t,e){var n,r,i;const s=t.combine(),{disable:o,labelExpr:u,selections:a}=s,l=qit(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 tle)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=$2(u,"datum.label",l.encode.labels.update.text.signal)),Hit(l,"labels","text",{signal:c})}return l}}function Qit(t){return ep(t)||Vk(t)?Git(t):F0e(t)}function Git(t){return t.children.reduce((e,n)=>e.concat(n.assembleProjections()),F0e(t))}function F0e(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 Ct(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 Wit=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class w0e extends u0{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 L0e(t){t.component.projection=Gn(t)?Vit(t):Xit(t)}function Vit(t){var e;if(t.hasProjection){const n=cs(t.specifiedProjection),r=!(n&&(n.scale!=null||n.translate!=null)),i=r?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,s=r?Yit(t):void 0,o=new w0e(t.projectionName(!0),Object.assign(Object.assign({},(e=cs(t.config.projection))!==null&&e!==void 0?e:{}),n??{}),i,s);return o.get("type")||o.set("type","equalEarth",!1),o}}function Yit(t){const e=[],{encoding:n}=t;for(const r of[[aa,ua],[go,ru]])(ur(n[r[0]])||ur(n[r[1]]))&&e.push({signal:t.getName(`geojson_${e.length}`)});return t.channelHasField(as)&&t.typedFieldDef(as).type===B1&&e.push({signal:t.getName(`geojson_${e.length}`)}),e.length===0&&e.push(t.requestDataName(Jt.Main)),e}function Kit(t,e){const n=VY(Wit,i=>!!(!Je(t.explicit,i)&&!Je(e.explicit,i)||Je(t.explicit,i)&&Je(e.explicit,i)&&Sl(t.get(i),e.get(i))));if(Sl(t.size,e.size)){if(n)return t;if(Sl(t.explicit,{}))return e;if(Sl(e.explicit,{}))return t}return null}function Xit(t){if(t.children.length===0)return;let e;for(const r of t.children)L0e(r);const n=VY(t.children,r=>{const i=r.component.projection;if(i)if(e){const s=Kit(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 w0e(r,e.specifiedProjection,e.size,ut(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 Jit=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 Zit(t,e,n,r){var i,s;if(NE(e,n)){const o=Gn(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:E6(u,a,o.format,o.formatType,r)}}return{}}function I0e(t,e){return`${xK(t)}_${e}`}function est(t,e){return{signal:t.getName(`${e}_bins`),extentSignal:t.getName(`${e}_extent`)}}function $k(t,e,n){var r;const i=(r=R6(n,void 0))!==null&&r!==void 0?r:{},s=I0e(i,e);return t.getName(`${s}_bins`)}function tst(t){return"as"in t}function $0e(t,e,n){let r,i;tst(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({},R6(e,void 0)),o=I0e(s,t.field),{signal:u,extentSignal:a}=est(n,o);if(rC(s.extent)){const c=s.extent;i=o0e(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 qa extends Ut{constructor(e,n){super(e),this.bins=n}clone(){return new qa(null,ut(this.bins))}static makeFromEncoding(e,n){const r=n.reduceFieldDef((i,s,o)=>{if(Do(s)&&Kt(s.bin)){const{key:u,binComponent:a}=$0e(s,s.bin,n);i[u]=Object.assign(Object.assign(Object.assign({},a),i[u]),Zit(n,s,o,n.config))}return i},{});return Wt(r)?null:new qa(e,r)}static makeFromTransform(e,n,r){const{key:i,binComponent:s}=$0e(n,n.bin,r);return new qa(e,{[i]:s})}merge(e,n){for(const r of Te(e.bins))r in this.bins?(n(e.bins[r].signal,this.bins[r].signal),this.bins[r].as=_l([...this.bins[r].as,...e.bins[r].as],_t)):this.bins[r]=e.bins[r];for(const r of e.children)e.removeChild(r),r.parent=this;e.remove()}producedFields(){return new Set(bi(this.bins).map(e=>e.as).flat(2))}dependentFields(){return new Set(bi(this.bins).map(e=>e.field))}hash(){return`Bin ${_t(this.bins)}`}assemble(){return bi(this.bins).flatMap(e=>{const n=[],[r,...i]=e.as,s=e.bin,{extent:o}=s,u=Jit(s,["extent"]),a=Object.assign(Object.assign(Object.assign({type:"bin",field:eu(e.field),as:r,signal:e.signal},rC(o)?{extent:null}:{extent:o}),e.span?{span:{signal:`span(${e.span})`}}:{}),u);!o&&e.extentSignal&&(n.push({type:"extent",field:eu(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 nst(t,e,n,r){var i;const s=Gn(r)?r.encoding[Dl(e)]:void 0;if(Do(n)&&Gn(r)&&_ae(n,s,r.markDef,r.config))t.add($e(n,{})),t.add($e(n,{suffix:"end"})),n.bin&&NE(n,e)&&t.add($e(n,{binSuffix:"range"}));else if(c8e(e)){const o=l8e(e);t.add(r.getName(o))}else t.add($e(n));return Bd(n)&&Xet((i=n.scale)===null||i===void 0?void 0:i.range)&&t.add(n.scale.range.field),t}function rst(t,e){var n;for(const r of Te(e)){const i=e[r];for(const s of Te(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 Eu extends Ut{constructor(e,n,r){super(e),this.dimensions=n,this.measures=r}clone(){return new Eu(null,new Set(this.dimensions),ut(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(Fl(x)||dc(x)){const p=Fl(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})]);xc(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 nst(s,u,o,n)}),s.size+Te(i).length===0)?null:new Eu(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+Te(u).length===0?null:new Eu(e,o,u)}merge(e){return t8e(this.dimensions,e.dimensions)?(rst(this.measures,e.measures),!0):(Qwe("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...Te(this.measures)])}producedFields(){const e=new Set;for(const n of Te(this.measures))for(const r of Te(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 ${_t({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],n=[],r=[];for(const s of Te(this.measures))for(const o of Te(this.measures[s]))for(const u of this.measures[s][o])r.push(u),e.push(o),n.push(s==="*"?null:eu(s));return{type:"aggregate",groupby:[...this.dimensions].map(eu),ops:e,fields:n,as:r}}}class J1 extends Ut{constructor(e,n,r,i){super(e),this.model=n,this.name=r,this.data=i;for(const s of mo){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"})]:[]]},$a(a)?{sortField:a}:_e(a)?{sortIndexField:K1(o,s)}:{})}}this.childModel=n.child}hash(){let e="Facet";for(const n of mo)this[n]&&(e+=` ${n.charAt(0)}:${_t(this[n])}`);return e}get fields(){var e;const n=[];for(const r of mo)!((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 mo)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 fa){const r=this.childModel.component.scales[n];if(r&&!r.merged){const i=r.get("type"),s=r.get("range");if(Cr(i)&&pc(s)){const o=K6(this.childModel,n),u=Qk(o);u?e[n]=u:Re(l8(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=A6,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 Nk){for(const f of Dk){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[bl,Cl])this[l]&&r.push(this.assembleRowColumnHeaderData(l,i,s));if(a){const l=this.assembleFacetHeaderData(s);l&&r.push(...l)}return r}}function B0e(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function ist(t,e){const n=JY(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=B0e(e.slice(5,e.length));return`timeParse(${n},'${r}')`}else if(e.startsWith("utc:")){const r=B0e(e.slice(4,e.length));return`utcParse(${n},'${r}')`}else return Re(J8e(e)),null}function sst(t){const e={};return Q5(t.filter,n=>{var r;if(QK(n)){let i=null;g8(n)?i=Ps(n.equal):y8(n)?i=Ps(n.lte):m8(n)?i=Ps(n.lt):E8(n)?i=Ps(n.gt):A8(n)?i=Ps(n.gte):v8(n)?i=n.range[0]:S8(n)&&(i=((r=n.oneOf)!==null&&r!==void 0?r:n.in)[0]),i&&(qx(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 ost(t){const e={};function n(r){U1(r)?e[r.field]="date":r.type==="quantitative"&&D8e(r.aggregate)?e[r.field]="number":C3(r.field)>1?r.field in e||(e[r.field]="flatten"):Bd(r)&&$a(r.sort)&&C3(r.sort.field)>1&&(r.sort.field in e||(e[r.sort.field]="flatten"))}if((Gn(t)||vu(t))&&t.forEachFieldDef((r,i)=>{if(Do(r))n(r);else{const s=Mx(i),o=t.fieldDef(s);n(Object.assign(Object.assign({},r),{type:o.type}))}}),Gn(t)){const{mark:r,markDef:i,encoding:s}=t;if(Qc(r)&&!t.encoding.order){const o=i.orient==="horizontal"?"y":"x",u=s[o];Ie(u)&&u.type==="quantitative"&&!(u.field in e)&&(e[u.field]="number")}}return e}function ust(t){const e={};if(Gn(t)&&t.component.selection)for(const n of Te(t.component.selection)){const r=t.component.selection[n];for(const i of r.project.items)!i.channel&&C3(i.field)>1&&(e[i.field]="flatten")}return e}class ai extends Ut{constructor(e,n){super(e),this._parse=n}clone(){return new ai(null,ut(this._parse))}hash(){return`Parse ${_t(this._parse)}`}static makeExplicit(e,n,r){var i;let s={};const o=n.data;return!Yc(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 Te(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]:Re(DK(u,r[u],a.value)))}for(const u of Te(n)){const a=i.get(u);a!==void 0&&(a===n[u]?delete n[u]:Re(DK(u,n[u],a)))}const s=new u0(n,r);i.copyAll(s);const o={};for(const u of Te(s.combine())){const a=s.get(u);a!==null&&(o[u]=a)}return Te(o).length===0||i.parseNothing?null:new ai(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 Te(this._parse)){const r=this._parse[n];C3(n)===1&&(e[n]=r)}return e}producedFields(){return new Set(Te(this._parse))}dependentFields(){return new Set(Te(this._parse))}assembleTransforms(e=!1){return Te(this._parse).filter(n=>e?C3(n)>1:!0).map(n=>{const r=ist(n,this._parse[n]);return r?{type:"formula",expr:r,as:ZY(n)}:null}).filter(n=>n!==null)}}class Zc extends Ut{clone(){return new Zc(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([FE])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:FE}}}class kE extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new kE(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${_t(this.params)}`}assemble(){return Object.assign({type:"graticule"},this.params===!0?{}:this.params)}}class PE extends Ut{constructor(e,n){super(e),this.params=n}clone(){return new PE(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 ${_t(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class Md extends Ut{constructor(e){super(null),e??(e={name:"source"});let n;if(Yc(e)||(n=e.format?Object.assign({},po(e.format,["parse"])):{}),wE(e))this._data={values:e.values};else if(H1(e)){if(this._data={url:e.url},!n.type){let r=/(?:\.([^.]+))?$/.exec(e.url)[1];Ct(["json","csv","tsv","dsv","topojson"],r)||(r="json"),n.type=r}}else wle(e)?this._data={values:[{type:"Sphere"}]}:(Dle(e)||Yc(e))&&(this._data={});this._generator=Yc(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 k0e=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},ast=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)},ME;function Bk(t){return t instanceof Md||t instanceof kE||t instanceof PE}class kk{constructor(){ME.set(this,void 0),k0e(this,ME,!1,"f")}setModified(){k0e(this,ME,!0,"f")}get modifiedFlag(){return ast(this,ME,"f")}}ME=new WeakMap;class jd extends kk{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 Pk extends kk{optimize(e){this.run(e);for(const n of e.children)this.optimize(n);return this.modifiedFlag}}class lst extends Pk{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 Te(r))r[i].length>1&&(this.setModified(),this.mergeNodes(e,r[i]))}}class cst extends Pk{constructor(e){super(),this.requiresSelectionId=e&&Ck(e)}run(e){e instanceof Zc&&(this.requiresSelectionId&&(Bk(e.parent)||e.parent instanceof Eu||e.parent instanceof ai)||(this.setModified(),e.remove()))}}class fst extends kk{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,n){let r=new Set;e instanceof Ua&&(r=e.producedFields(),YY(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 xst extends Pk{constructor(){super()}run(e){e instanceof zi&&!e.isRequired()&&(this.setModified(),e.remove())}}class dst extends jd{run(e){if(!Bk(e)&&!(e.numChildren()>1)){for(const n of e.children)if(n instanceof ai)if(e instanceof ai)this.setModified(),e.merge(n);else{if(XY(e.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class hst extends jd{run(e){const n=[...e.children],r=e.children.filter(i=>i instanceof ai);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 Te(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 ai(e,i);for(const u of n){if(u instanceof ai)for(const a of Te(i))delete u.parse[a];e.removeChild(u),u.parent=o,u instanceof ai&&Te(u.parse).length===0&&u.remove()}}}}}class pst extends jd{run(e){e instanceof zi||e.numChildren()>0||e instanceof J1||e instanceof Md||(this.setModified(),e.remove())}}class gst extends jd{run(e){const n=e.children.filter(i=>i instanceof Ua),r=n.pop();for(const i of n)this.setModified(),r.merge(i)}}class mst extends jd{run(e){const n=e.children.filter(i=>i instanceof Eu),r={};for(const i of n){const s=_t(i.groupBy);s in r||(r[s]=[]),r[s].push(i)}for(const i of Te(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 yst extends jd{constructor(e){super(),this.model=e}run(e){const n=!(Bk(e)||e instanceof V1||e instanceof ai||e instanceof Zc),r=[],i=[];for(const s of e.children)s instanceof qa&&(n&&!XY(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 qa?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 Est extends jd{run(e){const n=[...e.children];if(!I2(n,o=>o instanceof zi)||e.numChildren()<=1)return;const i=[];let s;for(const o of n)if(o instanceof zi){let u=o;for(;u.numChildren()===1;){const[a]=u.children;if(a instanceof zi)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 Ud extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new Ud(null,ut(this.transform))}addDimensions(e){this.transform.groupby=_l(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 ${_t(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 Ast(t){return t.stack.stackBy.reduce((e,n)=>{const r=n.fieldDef,i=$e(r);return i&&e.push(i),e},[])}function vst(t){return _e(t)&&t.every(e=>je(e))&&t.length>1}class a0 extends Ut{constructor(e,n){super(e),this._stack=n}clone(){return new a0(null,ut(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(er(f.order,"ascending"));const l={field:u,order:a};let c;return vst(s)?c=s:je(s)?c=[s,`${s}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new a0(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 Pa(p)}).filter(h=>!!h),c=Ast(n),f=n.encoding.order;let x;return _e(f)||Ie(f)?x=AK(f):x=c.reduce((h,p)=>(h.field.push(p),h.order.push(o==="y"?"descending":"ascending"),h),{field:[],order:[]}),new a0(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 ${_t(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 Z1 extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new Z1(null,ut(this.transform))}addDimensions(e){this.transform.groupby=_l(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 ${_t(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=>s8(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 Sst(t){function e(n){if(!(n instanceof J1)){const r=n.clone();if(r instanceof zi){const i=jk+r.getSource();r.setSource(i),t.model.component.data.outputNodes[i]=r}else(r instanceof Eu||r instanceof a0||r instanceof Z1||r instanceof Ud)&&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 Mk(t){if(t instanceof J1)if(t.numChildren()===1&&!(t.children[0]instanceof zi)){const e=t.children[0];(e instanceof Eu||e instanceof a0||e instanceof Z1||e instanceof Ud)&&e.addDimensions(t.fields),e.swapWithParent(),Mk(t)}else{const e=t.model.component.data.main;P0e(e);const n=Sst(t),r=t.children.map(n).flat();for(const i of r)i.parent=e}else t.children.map(Mk)}function P0e(t){if(t instanceof zi&&t.type===Jt.Main&&t.numChildren()===1){const e=t.children[0];e instanceof J1||(e.swapWithParent(),P0e(t))}}const jk="scale_",Y6=5;function Uk(t){for(const e of t){for(const n of e.children)if(n.parent!==e)return!1;if(!Uk(e.children))return!1}return!0}function Au(t,e){let n=!1;for(const r of e)n=t.optimize(r)||n;return n}function M0e(t,e,n){let r=t.sources,i=!1;return i=Au(new xst,r)||i,i=Au(new cst(e),r)||i,r=r.filter(s=>s.numChildren()>0),i=Au(new pst,r)||i,r=r.filter(s=>s.numChildren()>0),n||(i=Au(new dst,r)||i,i=Au(new yst(e),r)||i,i=Au(new fst,r)||i,i=Au(new hst,r)||i,i=Au(new mst,r)||i,i=Au(new gst,r)||i,i=Au(new lst,r)||i,i=Au(new Est,r)||i),t.sources=r,i}function _st(t,e){Uk(t.sources);let n=0,r=0;for(let i=0;i<Y6&&M0e(t,e,!0);i++)n++;t.sources.map(Mk);for(let i=0;i<Y6&&M0e(t,e,!1);i++)r++;Uk(t.sources),Math.max(n,r)===Y6&&Re(`Maximum optimization runs(${Y6}) reached.`)}class As{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,n){return new As(()=>e(n))}}var Cst=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 j0e(t){Gn(t)?bst(t):Tst(t)}function bst(t){const e=t.component.scales;for(const n of Te(e)){const r=Ost(t,n);if(e[n].setWithExplicit("domains",r),Dst(t,n),t.component.data.isFaceted){let s=t;for(;!vu(s)&&s.parent;)s=s.parent;if(s.component.resolve.scale[n]==="shared")for(const u of r.value)wl(u)&&(u.data=jk+u.data.replace(jk,""))}}}function Tst(t){for(const n of t.children)j0e(n);const e=t.component.scales;for(const n of Te(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=Vc(r,o.getWithExplicit("domains"),"domains","scale",zk);const u=o.get("selectionExtent");i&&u&&i.param!==u.param&&Re(V8e),i=u}}e[n].setWithExplicit("domains",r),i&&e[n].set("selectionExtent",i,!0)}}function Rst(t,e,n,r){if(t==="unaggregated"){const{valid:i,reason:s}=U0e(e,n);if(!i){Re(s);return}}else if(t===void 0&&r.useUnaggregatedDomain){const{valid:i}=U0e(e,n);if(i)return"unaggregated"}return t}function Ost(t,e){const n=t.getScaleComponent(e).get("type"),{encoding:r}=t,i=Rst(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"&&ur(r.x2)?ur(r.x)?Vc(ef(n,i,t,"x"),ef(n,i,t,"x2"),"domain","scale",zk):ef(n,i,t,"x2"):e==="y"&&ur(r.y2)?ur(r.y)?Vc(ef(n,i,t,"y"),ef(n,i,t,"y2"),"domain","scale",zk):ef(n,i,t,"y2"):ef(n,i,t,e)}function Nst(t,e,n){return t.map(r=>({signal:`{data: ${O6(r,{timeUnit:n,type:e})}}`}))}function qk(t,e,n){var r;const i=(r=Ri(n))===null||r===void 0?void 0:r.unit;return e==="temporal"||i?Nst(t,e,i):[t]}function ef(t,e,n,r){const{encoding:i}=n,s=ur(i[r]),{type:o}=s,u=s.timeUnit;if(Ket(e)){const f=ef(t,void 0,n,r),x=qk(e.unionWith,o,u);return ja([...f.value,...x])}else{if(Ye(e))return ja([e]);if(e&&e!=="unaggregated"&&!tae(e))return ja(qk(e,o,u))}const a=n.stack;if(a&&r===a.fieldChannel){if(a.offset==="normalize")return Vs([[0,1]]);const f=n.requestDataName(Jt.Main);return Vs([{data:f,field:n.vgField(r,{suffix:"start"})},{data:f,field:n.vgField(r,{suffix:"end"})}])}const l=xc(r)&&Ie(s)?Fst(n,r,t):void 0;if(Ba(s)){const f=qk([s.datum],o,u);return Vs(f)}const c=s;if(e==="unaggregated"){const f=n.requestDataName(Jt.Main),{field:x}=s;return Vs([{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 Vs(t==="bin-ordinal"?[]:[{data:G5(l)?n.requestDataName(Jt.Main):n.requestDataName(Jt.Raw),field:n.vgField(r,NE(c,r)?{binSuffix:"range"}:{}),sort:l===!0||!He(l)?{field:n.vgField(r,{}),op:"min"}:l}]);{const{bin:f}=c;if(Kt(f)){const x=$k(n,c.field,f);return Vs([new As(()=>{const h=n.getSignalName(x);return`[${h}.start, ${h}.stop]`})])}else return Vs([{data:n.requestDataName(Jt.Main),field:n.vgField(r,{})}])}}else if(c.timeUnit&&Ct(["time","utc"],t)&&_ae(c,Gn(n)?n.encoding[Dl(r)]:void 0,n.markDef,n.config)){const f=n.requestDataName(Jt.Main);return Vs([{data:f,field:n.vgField(r)},{data:f,field:n.vgField(r,{suffix:"end"})}])}else return Vs(l?[{data:G5(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 Hk(t,e){const{op:n,field:r,order:i}=t;return Object.assign(Object.assign({op:n??(e?"sum":A6)},r?{field:eu(r)}:{}),i?{order:i}:{})}function Dst(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=tae(i)&&i,u=jx(s)&&rC(s.extent)&&s.extent;(o||u)&&r.set("selectionExtent",o??u,!0)}function Fst(t,e,n){if(!Cr(n))return;const r=t.fieldDef(e),i=r.sort;if(Eae(i))return{op:"min",field:K1(r,e),order:"ascending"};const{stack:s}=t,o=s?new Set([...s.groupbyFields,...s.stackBy.map(u=>u.fieldDef.field)]):void 0;if($a(i)){const u=s&&!o.has(i.field);return Hk(i,u)}else if(yae(i)){const{encoding:u,order:a}=i,l=t.fieldDef(u),{aggregate:c,field:f}=l,x=s&&!o.has(f);if(Fl(c)||dc(c))return Hk({field:$e(l),order:a},x);if(s8(c)||!c)return Hk({op:c,field:f,order:a},x)}else{if(i==="descending")return{op:"min",field:t.vgField(e),order:"descending"};if(Ct(["ascending",void 0],i))return!0}}function U0e(t,e){const{aggregate:n,type:r}=t;return n?je(n)&&!w8e.has(n)?{valid:!1,reason:Swe(n)}:r==="quantitative"&&e==="log"?{valid:!1,reason:_we(t)}:{valid:!0}:{valid:!1,reason:vwe(t)}}function zk(t,e,n,r){return t.explicit&&e.explicit&&Re(Owe(n,r,t.value,e.value)),{explicit:t.explicit,value:[...t.value,...e.value]}}function wst(t){const e=_l(t.map(o=>wl(o)?Cst(o,["sort"]):o),_t),n=_l(t.map(o=>{if(wl(o)){const u=o.sort;return u!==void 0&&!G5(u)&&("op"in u&&u.op==="count"&&delete u.field,u.order==="ascending"&&delete u.order),u}}).filter(o=>o!==void 0),_t);if(e.length===0)return;if(e.length===1){const o=t[0];if(wl(o)&&n.length>0){let u=n[0];if(n.length>1)Re(BK),u=!0;else if(He(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=_l(n.map(o=>G5(o)||!("op"in o)||je(o.op)&&o.op in O8e?o:(Re(Dwe(o)),!0)),_t);let i;r.length===1?i=r[0]:r.length>1&&(Re(BK),i=!0);const s=_l(t.map(o=>wl(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 Qk(t){if(wl(t)&&je(t.field))return t.field;if(I8e(t)){let e;for(const n of t.fields)if(wl(n)&&je(n.field)){if(!e)e=n.field;else if(e!==n.field)return Re(Fwe),e}return Re(wwe),e}else if($8e(t)){Re(Lwe);const e=t.fields[0];return je(e)?e:void 0}}function K6(t,e){const r=t.component.scales[e].get("domains").map(i=>(wl(i)&&(i.data=t.lookupDataSource(i.data)),i));return wst(r)}var Lst=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 q0e(t){return ep(t)||Vk(t)?t.children.reduce((e,n)=>e.concat(q0e(n)),H0e(t)):H0e(t)}function H0e(t){return Te(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=Lst(i,["name","type","selectionExtent","domains","range","reverse"]),x=Ist(i.range,s,n,t),h=K6(t,n),p=u?Crt(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 Ist(t,e,n,r){if(Ir(n)){if(pc(t))return{step:{signal:`${e}_step`}}}else if(He(t)&&wl(t))return Object.assign(Object.assign({},t),{data:r.lookupDataSource(t.data)});return t}class z0e extends u0{constructor(e,n){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:I2(this.get("domains"),e=>_e(e)&&e.length===2&&e[0]<=0&&e[1]>=0)}}const $st=["range","scheme"];function Bst(t){const e=t.component.scales;for(const n of nC){const r=e[n];if(!r)continue;const i=kst(n,t);r.setWithExplicit("range",i)}}function Q0e(t,e){const n=t.fieldDef(e);if(n!=null&&n.bin){const{bin:r,field:i}=n,s=ls(e),o=t.getName(s);if(He(r)&&r.binned&&r.step!==void 0)return new As(()=>{const u=t.scaleName(e),a=`(domain("${u}")[1] - domain("${u}")[0]) / ${r.step}`;return`${t.getSignalName(o)} / (${a})`});if(Kt(r)){const u=$k(t,i,r);return new As(()=>{const a=t.getSignalName(u),l=`(${a}.stop - ${a}.start) / ${a}.step`;return`${t.getSignalName(o)} / (${l})`})}}}function kst(t,e){const n=e.specifiedScales[t],{size:r}=e,s=e.getScaleComponent(t).get("type");for(const f of $st)if(n[f]!==void 0){const x=NB(s,f),h=nae(t,f);if(!x)Re(IK(s,f,t));else if(h)Re(h);else switch(f){case"range":{const p=n.range;if(_e(p)){if(Ir(t))return ja(p.map(m=>{if(m==="width"||m==="height"){const g=e.getName(m),y=e.getSignalName.bind(e);return As.fromName(y,g)}return m}))}else if(He(p))return ja({data:e.requestDataName(Jt.Main),field:p.field,sort:{op:"min",field:e.vgField(t)}});return ja(p)}case"scheme":return ja(Pst(n[f]))}}const o=t===En||t==="xOffset"?"width":"height",u=r[o];if(Ma(u)){if(Ir(t))if(Cr(s)){const f=G0e(u,e,t);if(f)return ja({step:f})}else Re($K(o));else if(P2(t)){const f=t===oc?"x":"y";if(e.getScaleComponent(f).get("type")==="band"){const p=W0e(u,s);if(p)return ja(p)}}}const{rangeMin:a,rangeMax:l}=n,c=Mst(t,e);return(a!==void 0||l!==void 0)&&NB(s,"rangeMin")&&_e(c)&&c.length===2?ja([a??c[0],l??c[1]]):Vs(c)}function Pst(t){return Yet(t)?Object.assign({scheme:t.name},po(t,["name"])):{scheme:t}}function Mst(t,e){const{size:n,config:r,mark:i,encoding:s}=e,o=e.getSignalName.bind(e),{type:u}=ur(s[t]),l=e.getScaleComponent(t).get("type"),{domain:c,domainMid:f}=e.specifiedScales[t];switch(t){case En:case gr:{if(Ct(["point","band"],l)){const p=V0e(t,n,r.view);if(Ma(p))return{step:G0e(p,e,t)}}const x=ls(t),h=e.getName(x);return t===gr&&Ws(l)?[As.fromName(o,h),0]:[0,As.fromName(o,h)]}case oc:case B2:return jst(t,e,l);case Ol:{const x=e.component.scales[t].get("zero"),h=Y0e(i,x,r),p=Hst(i,n,e,r);return k1(l)?qst(h,p,Ust(l,r,c,t)):[h,p]}case nu:return[0,Math.PI*2];case kx:return[0,360];case oa:return[0,new As(()=>{const x=e.getSignalName("width"),h=e.getSignalName("height");return`min(${x},${h})/2`})];case lc:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case cc:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case as:return"symbol";case us:case la:case ca:return l==="ordinal"?u==="nominal"?"category":"ordinal":f!==void 0?"diverging":i==="rect"||i==="geoshape"?"heatmap":"ramp";case Nl:case uc:case ac:return[r.scale.minOpacity,r.scale.maxOpacity]}}function G0e(t,e,n){var r,i,s,o,u;const{encoding:a}=e,l=e.getScaleComponent(n),c=sK(n),f=a[c];if(rle({step:t,offsetIsDiscrete:st(f)&&Yue(f.type)})==="offset"&&Bae(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-${P8e(g)})`}}else return t.step}function W0e(t,e){if(rle({step:t,offsetIsDiscrete:Cr(e)})==="offset")return{step:t.step}}function jst(t,e,n){const r=t===oc?"x":"y",s=e.getScaleComponent(r).get("type"),o=e.scaleName(r);if(s==="band"){const u=V0e(r,e.size,e.config.view);if(Ma(u)){const a=W0e(u,n);if(a)return a}return[0,{signal:`bandwidth('${o}')`}]}else return JFe(`Cannot use ${t} scale if ${r} scale is not discrete.`)}function V0e(t,e,n){const r=t===En?"width":"height",i=e[r];return i||B6(n,r)}function Ust(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:(Re(qwe(r)),3)}}function qst(t,e,n){const r=()=>{const i=Ll(e),s=Ll(t),o=`(${i} - ${s}) / (${n} - 1)`;return`sequence(${s}, ${i} + ${o}, ${o})`};return Ye(e)?new As(r):{signal:r()}}function Y0e(t,e,n){if(e)return Ye(e)?{signal:`${e.signal} ? 0 : ${Y0e(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(sC("size",t))}const K0e=.95;function Hst(t,e,n,r){const i={x:Q0e(n,"x"),y:Q0e(n,"y")};switch(t){case"bar":case"tick":{if(r.scale.maxBandSize!==void 0)return r.scale.maxBandSize;const s=X0e(e,i,r.view);return nn(s)?s-1:new As(()=>`${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=X0e(e,i,r.view);return nn(s)?Math.pow(K0e*s,2):new As(()=>`pow(${K0e} * ${s.signal}, 2)`)}}throw new Error(sC("size",t))}function X0e(t,e,n){const r=Ma(t.width)?t.width.step:$6(n,"width"),i=Ma(t.height)?t.height.step:$6(n,"height");return e.x||e.y?new As(()=>`min(${[e.x?e.x.signal:r,e.y?e.y.signal:i].join(", ")})`):Math.min(r,i)}function J0e(t,e){Gn(t)?zst(t,e):tce(t,e)}function zst(t,e){const n=t.component.scales,{config:r,encoding:i,markDef:s,specifiedScales:o}=t;for(const u of Te(n)){const a=o[u],l=n[u],c=t.getScaleComponent(u),f=ur(i[u]),x=a[e],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=NB(h,e),y=nae(u,e);if(x!==void 0&&(g?y&&Re(y):Re(IK(h,e,u))),g&&y===void 0)if(x!==void 0){const E=f.timeUnit,A=f.type;switch(e){case"domainMax":case"domainMin":qx(a[e])||A==="temporal"||E?l.set(e,{signal:O6(a[e],{type:A,timeUnit:E})},!0):l.set(e,a[e],!0);break;default:l.copyKeyFromObject(e,a)}}else{const E=e in Z0e?Z0e[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:WB(i,u)}):r.scale[e];E!==void 0&&l.set(e,E,!1)}}}const Z0e={bins:({model:t,fieldOrDatumDef:e})=>Ie(e)?Qst(t,e):void 0,interpolate:({channel:t,fieldOrDatumDef:e})=>Gst(t,e.type),nice:({scaleType:t,channel:e,domain:n,domainMin:r,domainMax:i,fieldOrDatumDef:s})=>Wst(t,e,n,r,i,s),padding:({channel:t,scaleType:e,fieldOrDatumDef:n,markDef:r,config:i})=>Vst(t,e,i.scale,n,r,i.bar),paddingInner:({scalePadding:t,channel:e,markDef:n,scaleType:r,config:i,hasNestedOffsetScale:s})=>Yst(t,e,n.type,r,i.scale,s),paddingOuter:({scalePadding:t,channel:e,scaleType:n,scalePaddingInner:r,config:i,hasNestedOffsetScale:s})=>Kst(t,e,n,r,i.scale,s),reverse:({fieldOrDatumDef:t,scaleType:e,channel:n,config:r})=>{const i=Ie(t)?t.sort:void 0;return Xst(e,i,n,r.scale)},zero:({channel:t,fieldOrDatumDef:e,domain:n,markDef:r,scaleType:i})=>Jst(t,e,n,r,i)};function ece(t){Gn(t)?Bst(t):tce(t,"range")}function tce(t,e){const n=t.component.scales;for(const r of t.children)e==="range"?ece(r):J0e(r,e);for(const r of Te(n)){let i;for(const s of t.children){const o=s.component.scales[r];if(o){const u=o.getWithExplicit(e);i=Vc(i,u,e,"scale",Nle((a,l)=>{switch(e){case"range":return a.step&&l.step?a.step-l.step:0}return 0}))}}n[r].setWithExplicit(e,i)}}function Qst(t,e){const n=e.bin;if(Kt(n)){const r=$k(t,e.field,n);return new As(()=>t.getSignalName(r))}else if(Ti(n)&&jx(n)&&n.step!==void 0)return{step:n.step}}function Gst(t,e){if(Ct([us,la,ca],t)&&e!=="nominal")return"hcl"}function Wst(t,e,n,r,i,s){var o;if(!(!((o=Pa(s))===null||o===void 0)&&o.bin||_e(n)||i!=null||r!=null||Ct([Es.TIME,Es.UTC],t)))return Ir(e)?!0:void 0}function Vst(t,e,n,r,i,s){if(Ir(t)){if(mu(e)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:o,orient:u}=i;if(o==="bar"&&!(Ie(r)&&(r.bin||r.timeUnit))&&(u==="vertical"&&t==="x"||u==="horizontal"&&t==="y"))return s.continuousBandSize}if(e===Es.POINT)return n.pointPadding}}function Yst(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingInner:o,barBandPaddingInner:u,rectBandPaddingInner:a,bandWithNestedOffsetPaddingInner:l}=i;return s?l:er(o,n==="bar"?u:a)}else if(P2(e)&&r===Es.BAND)return i.offsetBandPaddingInner}}function Kst(t,e,n,r,i,s=!1){if(t===void 0){if(Ir(e)){const{bandPaddingOuter:o,bandWithNestedOffsetPaddingOuter:u}=i;if(s)return u;if(n===Es.BAND)return er(o,Ye(r)?{signal:`${r.signal}/2`}:r/2)}else if(P2(e)){if(n===Es.POINT)return .5;if(n===Es.BAND)return i.offsetBandPaddingOuter}}}function Xst(t,e,n,r){if(n==="x"&&r.xReverse!==void 0)return Ws(t)&&e==="descending"?Ye(r.xReverse)?{signal:`!${r.xReverse.signal}`}:!r.xReverse:r.xReverse;if(Ws(t)&&e==="descending")return!0}function Jst(t,e,n,r,i){if(!!n&&n!=="unaggregated"&&Ws(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"&&!k1(i))return!0;if(!(Ie(e)&&e.bin)&&Ct([...fa,...A8e],t)){const{orient:o,type:u}=r;return!(Ct(["bar","area","line","trail"],u)&&(o==="horizontal"&&t==="y"||o==="vertical"&&t==="x"))}return!1}function Zst(t,e,n,r,i=!1){const s=eot(e,n,r,i),{type:o}=t;return xc(e)?o!==void 0?ttt(e,o)?Ie(n)&&!ett(o,n.type)?(Re(Twe(o,s)),s):o:(Re(bwe(e,o,s)),s):s:null}function eot(t,e,n,r){var i;switch(e.type){case"nominal":case"ordinal":{if(k2(t)||i8(t)==="discrete")return t==="shape"&&e.type==="ordinal"&&Re(f8(t,"ordinal")),"ordinal";if(Ir(t)||P2(t)){if(Ct(["rect","bar","image","rule"],n.type)||r)return"band"}else if(n.type==="arc"&&t in r8)return"band";const s=n[ls(t)];return P1(s)||HB(e)&&(!((i=e.axis)===null||i===void 0)&&i.tickBand)?"band":"point"}case"temporal":return k2(t)?"time":i8(t)==="discrete"?(Re(f8(t,"temporal")),"ordinal"):Ie(e)&&e.timeUnit&&Ri(e.timeUnit).utc?"utc":"time";case"quantitative":return k2(t)?Ie(e)&&Kt(e.bin)?"bin-ordinal":"linear":i8(t)==="discrete"?(Re(f8(t,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(wK(e.type))}function tot(t,{ignoreRange:e}={}){nce(t),j0e(t);for(const n of Zet)J0e(t,n);e||ece(t)}function nce(t){Gn(t)?t.component.scales=not(t):t.component.scales=iot(t)}function not(t){const{encoding:e,mark:n,markDef:r}=t,i={};for(const s of nC){const o=ur(e[s]);if(o&&n===sae&&s===as&&o.type===B1)continue;let u=o&&o.scale;if(P2(s)){const a=oK(s);if(!WB(e,a)){u&&Re(fwe(s));continue}}if(o&&u!==null&&u!==!1){u??(u={});const a=WB(e,s),l=Zst(u,s,o,r,a);i[s]=new z0e(t.scaleName(`${s}`,!0),{value:l,explicit:u.type===l})}}return i}const rot=Nle((t,e)=>Kue(t)-Kue(e));function iot(t){var e,n;const r=t.component.scales={},i={},s=t.component.resolve;for(const o of t.children){nce(o);for(const u of Te(o.component.scales))if((e=(n=s.scale)[u])!==null&&e!==void 0||(n[u]=A0e(u,t)),s.scale[u]==="shared"){const a=i[u],l=o.component.scales[u].getWithExplicit("type");a?zet(a.value,l.value)?i[u]=Vc(a,l,"type","scale",rot):(s.scale[u]="independent",delete i[u]):i[u]=l}}for(const o of Te(i)){const u=t.scaleName(o,!0),a=i[o];r[o]=new z0e(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 Gk=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 Wk{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 Gn(t){return(t==null?void 0:t.type)==="unit"}function vu(t){return(t==null?void 0:t.type)==="facet"}function Vk(t){return(t==null?void 0:t.type)==="concat"}function ep(t){return(t==null?void 0:t.type)==="layer"}class Yk{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=cs(u),this.name=(a=e.name)!==null&&a!==void 0?a:i,this.title=hc(e.title)?{text:e.title}:e.title?cs(e.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new Wk,this.projectionNameMap=r?r.projectionNameMap:new Wk,this.signalNameMap=r?r.signalNameMap:new Wk,this.data=e.data,this.description=e.description,this.transforms=ort((l=e.transform)!==null&&l!==void 0?l:[]),this.layout=n==="layer"||n==="unit"?{}:dnt(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:v6(e)||(r==null?void 0:r.component.data.isFaceted)&&e.data===void 0},layoutSize:new u0,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},o?ut(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(){tot(this)}parseProjection(){L0e(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){O0e(this)}assembleEncodeFromView(e){const n=Gk(e,["style"]),r={};for(const i of Te(n)){const s=n[i];s!==void 0&&(r[i]=sn(s))}return r}assembleGroupEncodeEntry(e){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!e&&(this.description&&(n.description=sn(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=Gk(e,["spacing"]),{component:i,config:s}=this,o=vit(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 mo)e[r].title&&n.push(pit(this,r));for(const r of Nk)n=n.concat(git(this,r));return n}assembleAxes(){return rit(this.component.axes,this.config)}assembleLegends(){return D0e(this)}assembleProjections(){return Qit(this)}assembleTitle(){var e,n,r;const i=(e=this.title)!==null&&e!==void 0?e:{},{encoding:s}=i,o=Gk(i,["encoding"]),u=Object.assign(Object.assign(Object.assign({},hK(this.config.title).nonMarkTitleProperties),o),s?{encode:{update:s}}:{});if(u.text)return Ct(["unit","layer"],this.type)?Ct(["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||vu(this.parent)?q0e(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 yn((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(vu(this.parent)){const n=y0e(e),r=tC(n),i=this.component.scales[r];if(i&&!i.merged){const s=i.get("type"),o=i.get("range");if(Cr(s)&&pc(o)){const u=i.get("name"),a=K6(this,r),l=Qk(a);if(l){const c=$e({aggregate:"distinct",field:l},{expr:"datum"});return{signal:m0e(u,i,c)}}else return Re(l8(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(rK(e)&&xc(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(H8e(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 rce extends Yk{vgField(e,n={}){const r=this.fieldDef(e);if(r)return $e(r,n)}reduceFieldDef(e,n){return Htt(this.getMapping(),(r,i,s)=>{const o=Pa(i);return o?e(r,o,s):r},n)}forEachFieldDef(e,n){YB(this.getMapping(),(r,i)=>{const s=Pa(r);s&&e(s,i)},n)}}var sot=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 X6 extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(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 X6(null,ut(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 ${_t(this.transform)}`}assemble(){const e=this.transform,{density:n}=e,r=sot(e,["density"]);return Object.assign({type:"kde",field:n},r)}}class jE extends Ut{constructor(e,n){super(e),this.filter=n}clone(){return new jE(null,Object.assign({},this.filter))}static make(e,n){const{config:r,mark:i,markDef:s}=n;if(It("invalid",s,r)!=="filter")return null;const u=n.reduceFieldDef((a,l,c)=>{const f=xc(c)&&n.getScaleComponent(c);if(f){const x=f.get("type");Ws(x)&&l.aggregate!=="count"&&!Qc(i)&&(a[l.field]=l)}return a},{});return Te(u).length?new jE(e,u):null}dependentFields(){return new Set(Te(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${_t(this.filter)}`}assemble(){const e=Te(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 J6 extends Ut{constructor(e,n){super(e),this.transform=n,this.transform=ut(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 J6(this.parent,ut(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${_t(this.transform)}`}assemble(){const{flatten:e,as:n}=this.transform;return{type:"flatten",fields:e,as:n}}}class Z6 extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(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 Z6(null,ut(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${_t(this.transform)}`}assemble(){const{fold:e,as:n}=this.transform;return{type:"fold",fields:e,as:n}}}class tp extends Ut{constructor(e,n,r,i){super(e),this.fields=n,this.geojson=r,this.signal=i}clone(){return new tp(null,ut(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[[aa,ua],[go,ru]]){const s=i.map(o=>{const u=ur(n.encoding[o]);return Ie(u)?u.field:Ba(u)?{expr:`${u.datum}`}:yu(u)?{expr:`${u.value}`}:void 0});(s[0]||s[1])&&(e=new tp(e,s,null,n.getName(`geojson_${r++}`)))}if(n.channelHasField(as)){const i=n.typedFieldDef(as);i.type===B1&&(e=new tp(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} ${_t(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 UE extends Ut{constructor(e,n,r,i){super(e),this.projection=n,this.fields=r,this.as=i}clone(){return new UE(null,this.projection,ut(this.fields),ut(this.as))}static parseAll(e,n){if(!n.projectionName())return e;for(const r of[[aa,ua],[go,ru]]){const i=r.map(o=>{const u=ur(n.encoding[o]);return Ie(u)?u.field:Ba(u)?{expr:`${u.datum}`}:yu(u)?{expr:`${u.value}`}:void 0}),s=r[0]===go?"2":"";(i[0]||i[1])&&(e=new UE(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} ${_t(this.fields)} ${_t(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class qd extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new qd(null,ut(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 qd(e,n)}static makeFromEncoding(e,n){const r=n.encoding,i=r.x,s=r.y;if(Ie(i)&&Ie(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=Pae(n.mark,r);return new qd(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 ${_t(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:qnt(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 oot=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 eR extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(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 eR(null,ut(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 ${_t(this.transform)}`}assemble(){const e=this.transform,{loess:n,on:r}=e,i=oot(e,["loess","on"]);return Object.assign({type:"loess",x:r,y:n},i)}}class qE extends Ut{constructor(e,n,r){super(e),this.transform=n,this.secondary=r}clone(){return new qE(null,ut(this.transform),this.secondary)}static make(e,n,r,i){const s=n.component.data.sources,{from:o}=r;let u=null;if(Hnt(o)){let a=uce(o.data,s);a||(a=new Md(o.data),s.push(a));const l=n.getName(`lookup_${i}`);u=new zi(a,l,Jt.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=u}else if(znt(o)){const a=o.param;r=Object.assign({as:a},r);let l;try{l=n.getSelectionComponent(yn(a),a)}catch{throw new Error(G8e(a))}if(u=l.materialized,!u)throw new Error(W8e(a))}return new qE(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 ${_t({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)||(Re(twe),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 uot=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 tR extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(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 tR(null,ut(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 ${_t(this.transform)}`}assemble(){const e=this.transform,{quantile:n}=e,r=uot(e,["quantile"]);return Object.assign({type:"quantile",field:n},r)}}var aot=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 nR extends Ut{constructor(e,n){var r,i,s;super(e),this.transform=n,this.transform=ut(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 nR(null,ut(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 ${_t(this.transform)}`}assemble(){const e=this.transform,{regression:n,on:r}=e,i=aot(e,["regression","on"]);return Object.assign({type:"regression",x:r,y:n},i)}}class rR extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new rR(null,ut(this.transform))}addDimensions(e){var n;this.transform.groupby=_l(((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 ${_t(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 iR extends Ut{constructor(e,n){super(e),this.transform=n}clone(){return new iR(null,ut(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${_t(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function ice(t){let e=0;function n(r,i){var s;if(r instanceof Md&&!r.isGenerator&&!H1(r.data)&&(t.push(i),i={name:null,source:i.name,transform:[]}),r instanceof ai&&(r.parent instanceof Md&&!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 J1){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 kE||r instanceof PE||r instanceof jE||r instanceof V1||r instanceof Y1||r instanceof UE||r instanceof Eu||r instanceof qE||r instanceof Z1||r instanceof Ud||r instanceof Z6||r instanceof J6||r instanceof X6||r instanceof eR||r instanceof tR||r instanceof nR||r instanceof Zc||r instanceof iR||r instanceof rR)&&i.transform.push(r.assemble()),(r instanceof qa||r instanceof Ua||r instanceof qd||r instanceof a0||r instanceof tp)&&i.transform.push(...r.assemble()),r instanceof zi&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof zi?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 zi&&(!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 lot(t){const e=[],n=ice(e);for(const r of t.children)n(r,{source:t.name,name:null,transform:[]});return e}function cot(t,e){var n,r;const i=[],s=ice(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 fot(t){return t==="top"||t==="left"||Ye(t)?"header":"footer"}function xot(t){for(const e of mo)dot(t,e);oce(t,"x"),oce(t,"y")}function dot(t,e){var n;const{facet:r,config:i,child:s,component:o}=t;if(t.channelHasField(e)){const u=r[e],a=X1("title",null,i,e);let l=M1(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=X1("labelOrient",u.header,i,e),f=u.header!==null?er((n=u.header)===null||n===void 0?void 0:n.labels,i.header.labels,!0):!1,x=Ct(["bottom","right"],c)?"footer":"header";o.layoutHeaders[e]={title:u.header!==null?l:null,facetFieldDef:u,[x]:e==="facet"?[]:[sce(t,e,f)]}}}function sce(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 oce(t,e){var n;const{child:r}=t;if(r.component.axes[e]){const{layoutHeaders:i,resolve:s}=t.component;if(s.axis[e]=Lk(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=fot(a.get("orient"));(n=u[l])!==null&&n!==void 0||(u[l]=[sce(t,o,!1)]);const c=BE(a,"main",t.config,{header:!0});c&&u[l][0].axes.push(c),a.mainExtracted=!0}}}}function hot(t){Kk(t),sR(t,"width"),sR(t,"height")}function pot(t){Kk(t);const e=t.layout.columns===1?"width":"childWidth",n=t.layout.columns===void 0?"height":"childHeight";sR(t,e),sR(t,n)}function Kk(t){for(const e of t.children)e.parseLayoutSize()}function sR(t,e){var n;const r=y0e(e),i=tC(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:A0e(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=Vc(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 got(t){const{size:e,component:n}=t;for(const r of fa){const i=ls(r);if(e[i]){const s=e[i];n.layoutSize.set(i,Ma(s)?"step":s,!0)}else{const s=mot(t,i);n.layoutSize.set(i,s,!1)}}}function mot(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=B6(r.view,e);return pc(o)||Ma(u)?"step":u}else return uk(r.view,e)}else{if(t.hasProjection||t.mark==="arc")return uk(r.view,e);{const s=B6(r.view,e);return Ma(s)?s.step:s}}}function Xk(t,e,n){return $e(e,Object.assign({suffix:`by_${$e(t)}`},n??{}))}class HE extends rce{constructor(e,n,r,i){super(e,"facet",n,r,i,e.resolve),this.child=nP(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!RE(e))return{facet:this.initFacetFieldDef(e,"facet")};const n=Te(e),r={};for(const i of n){if(![Cl,bl].includes(i)){Re(sC(i,"facet"));break}const s=e[i];if(s.field===void 0){Re(c8(s,i));break}r[i]=this.initFacetFieldDef(s,i)}return r}initFacetFieldDef(e,n){const r=GB(e,n);return r.header?r.header=cs(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=oR(this),this.child.parseData()}parseLayoutSize(){Kk(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),xot(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 mo)for(const o of Dk){const u=this.component.layoutHeaders[s],a=u[o],{facetFieldDef:l}=u;if(l){const c=X1("titleOrient",l.header,this.config,s);if(["right","bottom"].includes(c)){const f=G6(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 HE))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof HE?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 HE){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 fa){const s=this.child.component.scales[i];if(s&&!s.merged){const o=s.get("type"),u=s.get("range");if(Cr(o)&&pc(u)){const a=K6(this.child,i),l=Qk(a);l?(e.push(l),n.push("distinct"),r.push(`distinct_${l}`)):Re(l8(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 mo){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"})),$a(h)){const{field:p,op:m=A6}=h,g=Xk(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=K1(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?$a(r.sort)?[Xk(r,r.sort,{expr:"datum"})]:_e(r.sort)?[K1(r,e,{expr:"datum"})]:[$e(r,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:n}=this,r=n[e];if(r){const{sort:i}=r;return[($a(i)?i.order:!_e(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:n,config:r}=this;if(n.facet)return Fk(n.facet,"facet",r);const i={row:["top","bottom"],column:["left","right"]};for(const s of Nk)if(n[s]){const o=X1("labelOrient",(e=n[s])===null||e===void 0?void 0:e.header,r,s);if(i[s].includes(o))return Fk(n[s],s,r)}}assembleMarks(){const{child:e}=this,n=this.component.data.facetRoot,r=lot(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:mo.map(a=>this.facetSortFields(a)).flat(),order:mo.map(a=>this.facetSortOrder(a)).flat()}}),r.length>0?{data:r}:{}),i?{encode:{update:i}}:{}),e.assembleGroup(Art(this,[])))]}getMapping(){return this.facet}}function yot(t,e){const{row:n,column:r}=e;if(n&&r){let i=null;for(const s of[n,r])if($a(s.sort)){const{field:o,op:u=A6}=s.sort;t=i=new Ud(t,{joinaggregate:[{op:u,field:o,as:Xk(s,s.sort,{forAs:!0})}],groupby:[$e(s)]})}return i}return null}function uce(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(wE(t)&&wE(u)){if(Sl(t.values,u.values))return o}else if(H1(t)&&H1(u)){if(t.url===u.url)return o}else if(Dle(t)&&t.name===o.dataName)return o}}return null}function Eot(t,e){if(t.data||!t.parent){if(t.data===null){const r=new Md({values:[]});return e.push(r),r}const n=uce(t.data,e);if(n)return Yc(t.data)||(n.data.format=ZFe({},t.data.format,n.data.format)),!n.hasName()&&t.data.name&&(n.dataName=t.data.name),n;{const r=new Md(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 Aot(t,e,n){var r,i;let s=0;for(const o of e.transforms){let u,a;if(ert(o))a=t=new Y1(t,o),u="derived";else if(xk(o)){const l=sst(o);a=t=(r=ai.makeWithAncestors(t,{},l,n))!==null&&r!==void 0?r:t,t=new V1(t,e,o.filter)}else if(Sle(o))a=t=qa.makeFromTransform(t,o,e),u="number";else if(nrt(o))u="date",n.getWithExplicit(o.field).value===void 0&&(t=new ai(t,{[o.field]:u}),n.set(o.field,u,!1)),a=t=Ua.makeFromTransform(t,o);else if(rrt(o))a=t=Eu.makeFromTransform(t,o),u="number",Ck(e)&&(t=new Zc(t));else if(vle(o))a=t=qE.make(t,e,o,s++),u="derived";else if(Xnt(o))a=t=new Z1(t,o),u="number";else if(Jnt(o))a=t=new Ud(t,o),u="number";else if(irt(o))a=t=a0.makeFromTransform(t,o),u="derived";else if(srt(o))a=t=new Z6(t,o),u="derived";else if(Znt(o))a=t=new J6(t,o),u="derived";else if(Qnt(o))a=t=new rR(t,o),u="derived";else if(Knt(o))t=new iR(t,o);else if(trt(o))a=t=qd.makeFromTransform(t,o),u="derived";else if(Gnt(o))a=t=new X6(t,o),u="derived";else if(Wnt(o))a=t=new tR(t,o),u="derived";else if(Vnt(o))a=t=new nR(t,o),u="derived";else if(Ynt(o))a=t=new eR(t,o),u="derived";else{Re(ewe(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 oR(t){var e,n,r,i,s,o,u,a,l,c;let f=Eot(t,t.component.data.sources);const{outputNodes:x,outputNodeRefCounts:h}=t.component.data,p=t.data,g=!(p&&(Yc(p)||H1(p)||wE(p)))&&t.parent?t.parent.component.data.ancestorParse.clone():new mrt;Yc(p)?(Fle(p)?f=new PE(f,p.sequence):pk(p)&&(f=new kE(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=ai.makeExplicit(f,t,g))!==null&&n!==void 0?n:f,f=new Zc(f);const y=t.parent&&ep(t.parent);(Gn(t)||vu(t))&&y&&(f=(r=qa.makeFromEncoding(f,t))!==null&&r!==void 0?r:f),t.transforms.length>0&&(f=Aot(f,t,g));const E=ust(t),A=ost(t);f=(i=ai.makeWithAncestors(f,{},Object.assign(Object.assign({},E),A),g))!==null&&i!==void 0?i:f,Gn(t)&&(f=tp.parseAll(f,t),f=UE.parseAll(f,t)),(Gn(t)||vu(t))&&(y||(f=(s=qa.makeFromEncoding(f,t))!==null&&s!==void 0?s:f),f=(o=Ua.makeFromEncoding(f,t))!==null&&o!==void 0?o:f,f=Y1.parseAllForSortIndex(f,t));const v=t.getDataName(Jt.Raw),S=new zi(f,v,Jt.Raw,h);if(x[v]=S,f=S,Gn(t)){const R=Eu.makeFromEncoding(f,t);R&&(f=R,Ck(t)&&(f=new Zc(f))),f=(u=qd.makeFromEncoding(f,t))!==null&&u!==void 0?u:f,f=(a=a0.makeFromEncoding(f,t))!==null&&a!==void 0?a:f}Gn(t)&&(f=(l=jE.make(f,t))!==null&&l!==void 0?l:f);const C=t.getDataName(Jt.Main),_=new zi(f,C,Jt.Main,h);x[C]=_,f=_,Gn(t)&&tit(t,_);let b=null;if(vu(t)){const R=t.getName("facet");f=(c=yot(f,t.facet))!==null&&c!==void 0?c:f,b=new J1(f,t,R,_.getSource()),x[R]=b}return Object.assign(Object.assign({},t.component.data),{outputNodes:x,outputNodeRefCounts:h,raw:S,main:_,facetRoot:b,ancestorParse:g})}class vot extends Yk{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")&&Re(X8e),this.children=this.getChildren(e).map((l,c)=>nP(l,this,this.getName(`concat_${c}`),void 0,i))}parseData(){this.component.data=oR(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 Te(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 I6(e)?e.vconcat:ok(e)?e.hconcat:e.concat}parseLayoutSize(){pot(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=wk(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 Sot(t){return t===!1||t===null}const _ot=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},Lae),{labelExpr:1,encode:1}),ace=Te(_ot);class Jk extends u0{constructor(e={},n={},r=!1){super(),this.explicit=e,this.implicit=n,this.mainExtracted=r}clone(){return new Jk(ut(this.explicit),ut(this.implicit),this.mainExtracted)}hasAxisPart(e){return e==="axis"?!0:e==="grid"||e==="title"?!!this.get(e):!Sot(this.get(e))}hasOrientSignalRef(){return Ye(this.explicit.orient)}}function Cot(t,e,n){var r;const{encoding:i,config:s}=t,o=(r=ur(i[e]))!==null&&r!==void 0?r:ur(i[Dl(e)]),u=t.axis(e)||{},{format:a,formatType:l}=u;return $d(l)?Object.assign({text:kB({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:l,config:s})},n):n}function bot(t){return fa.reduce((e,n)=>(t.component.scales[n]&&(e[n]=[wot(n,t)]),e),{})}const Tot={bottom:"top",top:"bottom",left:"right",right:"left"};function Rot(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 Te(s.component.axes))r.axis[o]=Lk(t.component.resolve,o),r.axis[o]==="shared"&&(n[o]=Oot(n[o],s.component.axes[o]),n[o]||(r.axis[o]="independent",delete n[o]))}for(const s of fa){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=Tot[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 Oot(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]=Not(i,s)}}}else return e.map(n=>n.clone());return t}function Not(t,e){for(const n of ace){const r=Vc(t.getWithExplicit(n),e.getWithExplicit(n),n,"axis",(i,s)=>{switch(n){case"title":return _K(i,s);case"gridScale":return{explicit:i.explicit,value:er(i.value,s.value)}}return P6(i,s,n,"axis")});t.setWithExplicit(n,r)}return t}function Dot(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:Y5(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(t===x0e(r,i))return!0}return t===n[e]}const Fot=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function wot(t,e){var n,r,i;let s=e.axis(t);const o=new Jk,u=ur(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)||fit(t),f=e.getScaleComponent(t).get("type"),x=iit(t,f,c,e.config),h=s!==void 0?!s:Rk("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=ait(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 ace){const A=E in l0e?l0e[E](m):Iae(E)?s[E]:void 0,v=A!==void 0,S=Dot(A,E,s,e,t);if(v&&S)o.set(E,A,S);else{const{configValue:C=void 0,configFrom:_=void 0}=Iae(E)&&E!=="values"?Rk(E,l.style,s.style,x):{},b=C!==void 0;v&&!b?o.set(E,A,S):(_!=="vgAxisConfig"||Fot.has(E)&&b||DE(C)||Ye(C))&&o.set(E,C,!1)}}const g=(i=s.encoding)!==null&&i!==void 0?i:{},y=wae.reduce((E,A)=>{var v;if(!o.hasAxisPart(A))return E;const S=E0e((v=g[A])!==null&&v!==void 0?v:{},e),C=A==="labels"?Cot(e,t,S):S;return C!==void 0&&!Wt(C)&&(E[A]={update:C}),E},{});return Wt(y)||o.set("encode",y,!!s.encoding||s.labelAngle!==void 0),o}function Lot({encoding:t,size:e}){for(const n of fa){const r=ls(n);Ma(e[r])&&ka(t[n])&&(delete e[r],Re($K(r)))}return e}function Iot(t,e,n){const r=cs(t),i=It("orient",r,n);if(r.orient=Pot(r.type,e,i),i!==void 0&&i!==r.orient&&Re(ywe(r.orient,i)),r.type==="bar"&&r.orient){const u=It("cornerRadiusEnd",r,n);if(u!==void 0){const a=r.orient==="horizontal"&&e.x2||r.orient==="vertical"&&e.y2?["cornerRadius"]:ftt[r.orient];for(const l of a)r[l]=u;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}return It("opacity",r,n)===void 0&&(r.opacity=Bot(r.type,e)),It("cursor",r,n)===void 0&&(r.cursor=$ot(r,e,n)),r}function $ot(t,e,n){return e.href||t.href||It("href",t,n)?"pointer":t.cursor}function Bot(t,e){if(Ct([g6,DB,FB,wB],t)&&!VB(e))return .7}function kot(t,e,{graticule:n}){if(n)return!1;const r=Ux("filled",t,e),i=t.type;return er(r,i!==g6&&i!==p6&&i!==m6)}function Pot(t,e,n){switch(t){case g6:case FB:case wB:case iae:case rtt:case ntt:return}const{x:r,y:i,x2:s,y2:o}=e;switch(t){case h6:if(Ie(r)&&(Ti(r.bin)||Ie(i)&&i.aggregate&&!r.aggregate))return"vertical";if(Ie(i)&&(Ti(i.bin)||Ie(r)&&r.aggregate&&!i.aggregate))return"horizontal";if(o||s){if(n)return n;if(!s&&(Ie(r)&&r.type===Ld&&!Kt(r.bin)||qB(r)))return"horizontal";if(!o&&(Ie(i)&&i.type===Ld&&!Kt(i.bin)||qB(i)))return"vertical"}case m6:if(s&&!(Ie(r)&&Ti(r.bin))&&o&&!(Ie(i)&&Ti(i.bin)))return;case d6:if(o)return Ie(i)&&Ti(i.bin)?"horizontal":"vertical";if(s)return Ie(r)&&Ti(r.bin)?"vertical":"horizontal";if(t===m6){if(r&&!i)return"vertical";if(i&&!r)return"horizontal"}case p6:case DB:{const u=ka(r),a=ka(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===$1,x=c.type===$1;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 Mot={vgMark:"arc",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),Xc(t,"radius")),Xc(t,"theta"))},jot={vgMark:"area",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),j6("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"})),j6("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"})),Sk(t))},Uot={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Xc(t,"x")),Xc(t,"y"))},qot={vgMark:"shape",encodeEntry:t=>Object.assign({},Fo(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&&Ie(n)&&n.type===B1?{field:$e(n,{expr:"datum"})}:{})]}},Hot={vgMark:"image",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),Xc(t,"x")),Xc(t,"y")),Ak(t,"url"))},zot={vgMark:"line",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t,{vgChannel:"strokeWidth"})),Sk(t))},Qot={vgMark:"trail",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t)),Sk(t))};function Zk(t,e){const{config:n}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),br("size",t)),br("angle",t)),Got(t,n,e))}function Got(t,e,n){return n?{shape:{value:n}}:br("shape",t)}const Wot={vgMark:"symbol",encodeEntry:t=>Zk(t)},Vot={vgMark:"symbol",encodeEntry:t=>Zk(t,"circle")},Yot={vgMark:"symbol",encodeEntry:t=>Zk(t,"square")},Kot={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Xc(t,"x")),Xc(t,"y"))},Xot={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({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),j6("x",t,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"})),j6("y",t,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"})),br("size",t,{vgChannel:"strokeWidth"}))}},Jot={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({},Fo(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),ui("x",t,{defaultPos:"mid"})),ui("y",t,{defaultPos:"mid"})),Ak(t)),br("size",t,{vgChannel:"fontSize"})),br("angle",t)),zle("align",Zot(t.markDef,n,e))),zle("baseline",eut(t.markDef,n,e))),ui("radius",t,{defaultPos:null})),ui("theta",t,{defaultPos:null}))}};function Zot(t,e,n){if(It("align",t,n)===void 0)return"center"}function eut(t,e,n){if(It("baseline",t,n)===void 0)return"middle"}const tut={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({},Fo(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),ui("x",t,{defaultPos:"mid",vgChannel:"xc"})),ui("y",t,{defaultPos:"mid",vgChannel:"yc"})),br("size",t,{defaultValue:nut(t),vgChannel:i})),{[s]:sn(It("thickness",n,e))})}};function nut(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=It("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&&pc(a)&&nn(a.step)?a.step*3/4:$6(n.view,s)*3/4}}const uR={arc:Mot,area:jot,bar:Uot,circle:Vot,geoshape:qot,image:Hot,line:zot,point:Wot,rect:Kot,rule:Xot,square:Yot,text:Jot,tick:tut,trail:Qot};function rut(t){if(Ct([p6,d6,itt],t.mark)){const e=Pae(t.mark,t.encoding);if(e.length>0)return iut(t,e)}else if(t.mark===h6){const e=o8.some(n=>It(n,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&e)return sut(t)}return eP(t)}const lce="faceted_path_";function iut(t,e){return[{name:t.getName("pathgroup"),type:"group",from:{facet:{name:lce+t.requestDataName(Jt.Main),data:t.requestDataName(Jt.Main),groupby:e}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:eP(t,{fromPrefix:lce})}]}const cce="stack_group_";function sut(t){var e;const[n]=eP(t,{fromPrefix:cce}),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({},_3(n.encode.update,["y","yc","y2","height",...o8])),{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({},po(n.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(o=Object.assign(Object.assign({},_3(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({},po(n.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const c of o8){const f=Ux(c,t.markDef,t.config);n.encode.update[c]?(o[c]=n.encode.update[c],delete n.encode.update[c]):f&&(o[c]=sn(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=Ux(f,t.markDef,t.config);return x!==void 0?Object.assign(Object.assign({},c),{[f]:sn(x)}):c}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:t.requestDataName(Jt.Main),name:cce+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 out(t){var e;const{encoding:n,stack:r,mark:i,markDef:s,config:o}=t,u=n.order;if(!(!_e(u)&&yu(u)&&WY(u.value)||!u&&WY(It("order",s,o)))){if((_e(u)||Ie(u))&&!r)return AK(u,{expr:"datum"});if(Qc(i)){const a=s.orient==="horizontal"?"y":"x",l=n[a];if(Ie(l)){const c=l.sort;if(_e(c))return{field:$e(l,{prefix:a,suffix:"sort_index",expr:"datum"})};if($a(c))return{field:$e({aggregate:VB(t.encoding)?c.op:void 0,field:c.field},{expr:"datum"})};if(yae(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 eP(t,e={fromPrefix:""}){const{mark:n,markDef:r,encoding:i,config:s}=t,o=er(r.clip,uut(t),aut(t)),u=yK(r),a=i.key,l=out(t),c=lut(t),f=It("aria",r,s),x=uR[n].postEncodingTransform?uR[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:uR[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:uR[n].encodeEntry(t)}}),x?{transform:x}:{})]}function uut(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 aut(t){const e=t.component.projection;return e&&!e.isFit?!0:void 0}function lut(t){if(!t.component.selection)return null;const e=Te(t.component.selection).length;let n=e,r=t.parent;for(;r&&n===0;)n=Te(r.component.selection).length,r=r.parent;return n?{interactive:e>0||!!t.encoding.tooltip}:null}class fce extends rce{constructor(e,n,r,i={},s){var o;super(e,"unit",n,r,s,void 0,ile(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const u=Ia(e.mark)?Object.assign({},e.mark):{type:e.mark},a=u.type;u.filled===void 0&&(u.filled=kot(u,s,{graticule:e.data&&pk(e.data)}));const l=this.encoding=Utt(e.encoding||{},a,u.filled,s);this.markDef=Iot(u,l,s),this.size=Lot({encoding:l,size:ile(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=xle(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=>ik(c))}get hasProjection(){const{encoding:e}=this,n=this.mark===sae,r=e&&f8e.some(i=>st(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 nC.reduce((r,i)=>{var s;const o=ur(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=cs(e);return _e(n)&&(i.domain=n.map(Ps)),_e(r)&&(i.range=r.map(Ps)),i}initAxes(e){return fa.reduce((n,r)=>{const i=e[r];if(st(i)||r===En&&st(e.x2)||r===gr&&st(e.y2)){const s=st(i)?i.axis:void 0;n[r]=s&&this.initAxis(Object.assign({},s))}return n},{})}initAxis(e){const n=Te(e),r={};for(const i of n){const s=e[i];r[i]=DE(s)?pK(s):Ps(s)}return r}initLegends(e){return v8e.reduce((n,r)=>{const i=ur(e[r]);if(i&&_8e(r)){const s=i.legend;n[r]=s&&cs(s)}return n},{})}parseData(){this.component.data=oR(this)}parseLayoutSize(){got(this)}parseSelections(){this.component.selection=eit(this,this.selection)}parseMarkGroup(){this.component.mark=rut(this)}parseAxesAndHeaders(){this.component.axes=bot(this)}assembleSelectionTopLevelSignals(e){return vrt(this,e)}assembleSignals(){return[...u0e(this),...Ert(this,[])]}assembleSelectionData(e){return Srt(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return wk(this)}assembleMarks(){var e;let n=(e=this.component.mark)!==null&&e!==void 0?e:[];return(!this.parent||!ep(this.parent))&&(n=Lle(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 kd(this.encoding,e)}fieldDef(e){const n=this.encoding[e];return Pa(n)}typedFieldDef(e){const n=this.fieldDef(e);return Do(n)?n:null}}class tP extends Yk{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(k6(u))return new tP(u,this,this.getName(`layer_${a}`),o,s);if(s0(u))return new fce(u,this,this.getName(`layer_${a}`),o,s);throw new Error(a8(u))})}parseData(){this.component.data=oR(this);for(const e of this.children)e.parseData()}parseLayoutSize(){hot(this)}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of Te(e.component.selection))this.component.selection[n]=e.component.selection[n]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){Rot(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),e)}assembleSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleSignals()),u0e(this))}assembleLayoutSignals(){return this.children.reduce((e,n)=>e.concat(n.assembleLayoutSignals()),wk(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 _rt(this,this.children.flatMap(e=>e.assembleMarks()))}assembleLegends(){return this.children.reduce((e,n)=>e.concat(n.assembleLegends()),D0e(this))}}function nP(t,e,n,r,i){if(v6(t))return new HE(t,e,n,i);if(k6(t))return new tP(t,e,n,r,i);if(s0(t))return new fce(t,e,n,r,i);if(fnt(t))return new vot(t,e,n,i);throw new Error(a8(t))}var cut=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 xce(t,e={}){e.logger&&Hwe(e.logger),e.fieldTitle&&Oae(e.fieldTitle);try{const n=cle(HF(e.config,t.config)),r=art(t,n),i=nP(r,null,"",void 0,n);return i.parse(),_st(i.component.data,i),{spec:xut(i,fut(t,r.autosize,n,i),t.datasets,t.usermeta),normalized:r}}finally{e.logger&&zwe(),e.fieldTitle&&wtt()}}function fut(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&&hrt(e.type)){if(i==="step"&&s==="step")Re(TK()),e.type="pad";else if(i==="step"||s==="step"){const o=i==="step"?"width":"height";Re(TK(tC(o)));const u=o==="width"?"height":"width";e.type=prt(u)}}return Object.assign(Object.assign(Object.assign({},Te(e).length===1&&e.type?e.type==="pad"?{}:{autosize:e.type}:{autosize:e}),Ole(n,!1)),Ole(t,!0))}function xut(t,e,n={},r){const i=t.config?Cnt(t.config):void 0,s=[].concat(t.assembleSelectionData([]),cot(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=cut(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([]),...nle(f)])),i?{config:i}:{}),r?{usermeta:r}:{})}class zE{constructor(e,n,r,i={},s){this.document=e,this.styleDefaults=n,this.options=r,this.timezone=s,this.size=i.size||this.styleDefaults.size||"medium"}mapData(e){const n=[];for(const r of e){const i={};for(const s of e.field.allFields){let o=this.getDataValue(r.cell(s));o instanceof Date&&(o=XDe(o,this.timezone)),i[s.name]=o}n.push(i)}return n}getSize(){return this.size==="large"?{height:350,width:500}:{height:175,width:250}}async render(e){if(!e.isArray())throw new Error("Invalid type for chart renderer");const n=this.getVegaLiteSpec(e),r=xce(n,{logger:{level(o){return o!==void 0?this:0},info(){return this},error(){return this},warn(){return this},debug(){return this}}}).spec,i=new Z$(Vue(r),{renderer:"none"});i.logger().level(-1);const s=this.document.createElement("div");return s.innerHTML=await i.toSVG(),s}}const dut={AL:"01",Alabama:"01",AK:"02",Alaska:"02",AZ:"04",Arizona:"04",AR:"05",Arkansas:"05",CA:"06",California:"06",CO:"08",Colorado:"08",CT:"09",Connecticut:"09",DE:"10",Delaware:"10",DC:"11","District of Columbia":"11",FL:"12",Florida:"12",GA:"13",Georgia:"13",HI:"15",Hawaii:"12",ID:"16",Idaho:"16",IL:"17",Illinois:"17",IN:"18",Indiana:"18",IA:"19",Iowa:"19",KS:"20",Kansas:"20",KY:"21",Kentucky:"21",LA:"22",Louisiana:"22",ME:"23",Maine:"23",MD:"24",Maryland:"24",MA:"25",Massachusetts:"25",MI:"26",Michigan:"26",MN:"27",Minnesota:"27",MS:"28",Mississippi:"28",MO:"29",Missouri:"29",MT:"30",Montana:"30",NE:"31",Nebraska:"31",NV:"32",Nevada:"32",NH:"33","New Hampshire":"33",NJ:"34","New Jersey":"34",NM:"35","New Mexico":"35",NY:"36","New York":"36",NC:"37","North Carolina":"37",ND:"38","North Dakota":"38",OH:"39",Ohio:"39",OK:"40",Oklahoma:"40",OR:"41",Oregon:"41",PA:"42",Pennsylvania:"42",RI:"44","Rhode Island":"44",SC:"45","South Carolina":"45",SD:"46","South Dakota":"46",TN:"47",Tennessee:"47",TX:"48",Texas:"48",UT:"49",Utah:"49",VT:"50",Vermont:"50",VA:"51",Virginia:"51",WA:"53",Washington:"53",WV:"54","West Virginia":"54",WI:"55",Wisconsin:"55",WY:"56",Wyoming:"56",PR:"72","Puerto Rico":"72",VI:"78",AS:"60",MP:"69",GU:"66"};class hut extends zE{getRegionField(e){return e.allFields[0]}getColorField(e){return e.allFields[1]}getDataValue(e){if(e.isNumber())return e.value;if(e.isString())if(e.field===this.getRegionField(e.field.parentExplore)){const n=dut[e.value];return n===void 0?void 0:n}else return e.value;else{if(e.isNull())return;throw new Error("Invalid field type for shape map.")}}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"nominal";if(e.isString())return e===this.getRegionField(e.parentExplore)?"quantitative":"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for shape map.")}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");if(!e.isArray())throw new Error("Invalid data for shape map");const n=this.getRegionField(e.field),r=this.getColorField(e.field),i=r?this.getDataType(r):void 0,s=r!==void 0?{field:r.name,type:i,axis:{title:os(this.options,r,void 0,this.timezone)},scale:ss(i,!1)}:void 0,o=this.mapData(e).filter(u=>u[n.name]!==void 0);return{...this.getSize(),data:{values:o},projection:{type:"albersUsa"},layer:[{data:{values:B5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"#efefef",stroke:"white"}},{transform:[{lookup:n.name,from:{data:{values:B5,format:{type:"topojson",feature:"states"}},key:"id"},as:"geo"}],mark:"geoshape",encoding:{shape:{field:"geo",type:"geojson"},color:s}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-font-family, Roboto)"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const OR=class OR extends fn{create(e,n,r,i,s,o){return new hut(e,n,r,s,o)}get rendererName(){return"shape_map"}};OR.instance=new OR;let rP=OR;class put extends zE{getDataValue(e){if(e.isNumber()||e.isString())return e.value;if(e.isTimestamp()||e.isDate())return F5(e.value,e.field.timeframe||wt.TimestampTimeframe.Second,this.timezone);throw new Error("Invalid field type for point map chart.")}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for point map.")}isTimeFieldDef(e){return!!(e.isAtomicField()&&(e.isDate()||e.isTimestamp()))}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=s?this.getDataType(s):void 0,l=o?this.getDataType(o):void 0,c=u?this.getDataType(u):void 0,f=s!==void 0?{field:s.name,type:a,axis:{title:os(this.options,s,void 0,this.timezone)},scale:ss(a,!1)}:void 0,x=o?{field:o.name,type:l,axis:{title:os(this.options,o,void 0,this.timezone)}}:{value:5},h=u?{field:u.name,type:c,axis:{title:os(this.options,u,void 0,this.timezone)}}:{value:"circle"};return{...this.getSize(),data:{values:this.mapData(e)},projection:{type:"albersUsa"},layer:[{data:{values:B5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"#efefef",stroke:"white"}},{mark:"point",encoding:{latitude:{field:r.name,type:"quantitative"},longitude:{field:i.name,type:"quantitative"},size:x,color:f,shape:h}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-Roboto"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const NR=class NR extends fn{create(e,n,r,i,s,o){return new put(e,n,r,s,o)}get rendererName(){return"point_map"}};NR.instance=new NR;let iP=NR;class gut{constructor(e){this.document=e}async render(e){if(!e.isString())return $s(this.document,"Invalid field for Image renderer");const{tag:n}=e.field.tagParse(),r=n.tag("image");if(!r)return $s(this.document,"Missing tag for Image renderer");const i=e.isNull()?p3(this.document):this.document.createElement("img"),s=r.text("width"),o=r.text("height");s&&(i.style.width=s),o&&(i.style.height=o);const u=i,a=r.tag("alt");if(a){const l=eFe({tag:a,data:e})??a.text();l&&(u.alt=l)}return e.isNull()||(u.src=e.value),i}}const DR=class DR extends fn{create(e,n,r,i,s){return new gut(e)}get rendererName(){return"image"}};DR.instance=new DR;let sP=DR;class mut extends zE{getDataValue(e){if(e.isNull()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for segment map.")}getDataType(e){if(e.isAtomicField()){if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for segment map.")}getVegaLiteSpec(e){if(e.isNull())throw new Error("Expected struct value not to be null.");const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=u?this.getDataType(u):void 0,l=u!==void 0?{field:u.name,type:a,axis:{title:os(this.options,u,void 0,this.timezone)},scale:ss(a,!1)}:void 0;return{...this.getSize(),data:{values:this.mapData(e)},projection:{type:"albersUsa"},layer:[{data:{values:B5,format:{type:"topojson",feature:"states"}},mark:{type:"geoshape",fill:"lightgray",stroke:"white"}},{mark:"line",encoding:{latitude:{field:r.name,type:"quantitative"},longitude:{field:i.name,type:"quantitative"},latitude2:{field:s.name,type:"quantitative"},longitude2:{field:o.name,type:"quantitative"},color:l}}],background:"transparent",config:{axis:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},legend:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500,titleColor:"var(--malloy-title-color, #505050)",labelColor:"var(--malloy-label-color, #000000)",titleFontSize:12},header:{labelFont:"var(--malloy-font-family, Roboto)",titleFont:"var(--malloy-font-family, Roboto)",titleFontWeight:500},mark:{font:"var(--malloy-font-family, Roboto)"},title:{font:"var(--malloy-font-family, Roboto)",subtitleFont:"var(--malloy-font-family, Roboto)",fontWeight:500}}}}}const FR=class FR extends fn{create(e,n,r,i,s,o){return new mut(e,n,r,s,o)}get rendererName(){return"segment_map"}};FR.instance=new FR;let oP=FR;const tf={$schema:"https://vega.github.io/schema/vega-lite/v5.json",config:{params:[{name:"defaultFont",value:"var(--malloy-font-family, 'Roboto')"},{name:"titleColor",value:"var(--malloy-title-color, #505050)"},{name:"labelColor",value:"var(--malloy-label-color, #505050)"}],background:void 0,color:{expr:"titleColor"},header:{labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"},titleFontWeight:500},text:{font:{expr:"defaultFont"},color:{expr:"labelColor"}},mark:{font:{expr:"defaultFont"},color:{expr:"labelColor"}},title:{font:{expr:"defaultFont"},subtitleFont:{expr:"defaultFont"},fontWeight:500},axis:{labelColor:{expr:"labelColor"},labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"},titleFontWeight:500,titleColor:{expr:"titleColor"},titleFontSize:12},legend:{titleFontWeight:500,titleColor:{expr:"titleColor"},titleFontSize:12,labelColor:{expr:"labelColor"},labelFont:{expr:"defaultFont"},titleFont:{expr:"defaultFont"}}}},nf={config:tf.config,encoding:{y:{field:"#{1}",type:"nominal",axis:null,sort:null}},layer:[{mark:{type:"bar",color:"#aec7e8"},encoding:{x:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}},{mark:{type:"text",align:"left",x:5},encoding:{text:{field:"#{1}"}}}]},aR={...tf,mark:"bar",data:[],encoding:{x:{field:"#{1}",type:"nominal",sort:null},y:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}};({...aR,encoding:{...aR.encoding,color:ss("quantitative",!0,!0)}},{...aR,encoding:{...aR.encoding,color:ss("nominal",!0,!0)}}),{...nf,layer:({...nf.layer[0],encoding:{...nf.layer[0].encoding,color:ss("nominal",!0,!0)}},nf.layer[1])},{...nf,layer:({...nf.layer[0],encoding:{...nf.layer[0].encoding,color:ss("quantitative",!0,!0)}},nf.layer[1])};const lR={...tf,mark:"bar",data:[],encoding:{x:{field:"#{1}",type:"nominal",sort:null},y:{field:"#{2}",type:"quantitative",sort:null},color:{value:"#4285F4"}}};({...lR,encoding:{...lR.encoding,color:ss("nominal",!0)}},{...lR,encoding:{...lR.encoding,color:ss("quantitative",!0)}});function dce(t){return Array.isArray(t)||t!==null&&typeof t=="object"}class yut extends zE{constructor(e,n,r,i,s){super(e,n,r);const o=s.spec;if(o)this.spec=o;else if(s.spec_name){const u=r.dataStyles[s.spec_name];if(u!==void 0&&u.renderer==="vega")if(u.spec)this.spec=u.spec;else throw new Error(`No spec defined on ${s.spec_name}`);else throw new Error(`No Vega renderer named ${s.spec_name}`)}else throw new Error(`No top level vega spec defined for ${i.name}`)}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for vega chart.")}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for vega chart.")}translateField(e,n){const r=n.match(/#\{(\d+)\}/);return r&&r.groups?e.allFields[parseInt(r.groups[1])-1].name:n}translateFields(e,n){if(Array.isArray(e))for(const r of e)dce(r)&&this.translateFields(r,n);else if(e&&typeof e=="object")for(const[r,i]of Object.entries(e))if(r==="field"&&typeof i=="string")e[r]=this.translateField(n,i);else if(r==="repeat"&&Array.isArray(i))for(const s of i.keys()){const o=i[s];typeof o=="string"&&(i[s]=this.translateField(n,o))}else dce(i)&&this.translateFields(i,n)}getVegaLiteSpec(e){if(e.isNull()||!e.isArray())throw new Error("Expected struct value not to be null.");const n=structuredClone(this.spec);this.translateFields(n,e.field);const r={values:this.mapData(e)};return n.data=r,n}}const wR=class wR extends fn{create(e,n,r,i,s){return new yut(e,n,r,i,s)}get rendererName(){return"vega"}};wR.instance=new wR;let uP=wR;class aP extends zE{getVegaLiteSpec(e){const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=n[3],u=n[4],a=this.getDataType(r),l=this.getDataType(i),c=s?this.getDataType(s):void 0,f=o?this.getDataType(o):void 0,x=u?this.getDataType(u):void 0,h=this.getMark(),p=s!==void 0?{field:s.name,type:c,axis:{title:os(this.options,s,void 0,this.timezone)},scale:ss(c,h==="bar")}:{value:"#4285F4"},m=o?{field:o.name,type:f,axis:{title:os(this.options,o,void 0,this.timezone)}}:void 0,g=u?{field:u.name,type:x,axis:{title:os(this.options,u,void 0,this.timezone)}}:void 0,y=a==="nominal"?null:void 0,E=l==="nominal"?null:void 0,A={field:r.name,type:a,sort:y,axis:{title:os(this.options,r,void 0,this.timezone)},scale:{zero:!1}},v={field:i.name,type:l,sort:E,axis:{title:os(this.options,i,void 0,this.timezone)},scale:{zero:!1}};return{...tf,...this.getSize(),data:{values:this.mapData(e)},mark:h,encoding:{x:A,y:v,size:m,color:p,shape:g},background:"transparent"}}}class hce extends aP{getMark(){return"line"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"temporal";if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for line chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for line chart.")}}const LR=class LR extends fn{create(e,n,r,i,s,o){return new hce(e,n,r,s,o)}get rendererName(){return"line_chart"}};LR.instance=new LR;let lP=LR;class pce extends hce{getSize(){return this.size==="large"?{height:100,width:250}:{height:50,width:125}}getVegaLiteSpec(e){const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!1)}:{value:"#4285F4"},c=o==="nominal"?null:void 0,f=u==="nominal"?null:void 0,x={field:r.name,type:o,sort:c,axis:{title:null,domain:!1,grid:!1,lables:!1,ticks:!1,values:[]},scale:{zero:!1}},h={field:i.name,type:u,sort:f,axis:{title:null,domain:!1,ticks:!1,grid:!1,lables:!1,values:[]},scale:{zero:!1}};return{...tf,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:{type:"line",tooltip:!0},encoding:{x,y:h,color:l},background:"transparent"}}}const IR=class IR extends fn{create(e,n,r,i,s,o){return new pce(e,n,r,s,o)}get rendererName(){return"sparkline"}};IR.instance=new IR;let cP=IR;class fP extends aP{getMark(){return"bar"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp()||e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for bar chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate())return F5(e.value,e.field.timeframe,this.timezone);if(e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for bar chart.")}}const $R=class $R extends fn{create(e,n,r,i,s,o){return new fP(e,n,r,s,o)}get rendererName(){return"bar_chart"}};$R.instance=new $R;let xP=$R;class Eut extends fP{getSize(){return this.size==="large"?{height:250,width:100}:{height:125,width:50}}getVegaLiteSpec(e){const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l={type:this.getMark(),tooltip:!0},c=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!0)}:{value:"#4285F4"},f=o==="nominal"?null:void 0,x=u==="nominal"?null:void 0,h={field:r.name,type:o,sort:f,axis:{title:null,domain:!1,grid:!1,ticks:!1,values:[]},scale:{zero:!1}},p={field:i.name,type:u,sort:x,axis:{title:null,domain:!1,ticks:!1,grid:!1,values:[]},scale:{zero:!1}};return{...tf,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:l,encoding:{y:h,x:p,color:c},background:"transparent"}}}const BR=class BR extends fn{isValidMatch(e){return e.name.endsWith("_bar")}create(e,n,r,i,s,o){return new Eut(e,n,r,s,o)}get rendererName(){return"sparkline"}};BR.instance=new BR;let dP=BR;class Aut extends pce{getVegaLiteSpec(e){const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!1)}:{value:"#4285F4"},c=o==="nominal"?null:void 0,f=u==="nominal"?null:void 0,x={field:r.name,type:o,sort:c,axis:{title:null,domain:!1,grid:!1,lables:!1,ticks:!1,values:[]},scale:{zero:!1}},h={field:i.name,type:u,sort:f,axis:{title:null,domain:!1,ticks:!1,grid:!1,lables:!1,values:[]},scale:{zero:!1}};return{...tf,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:{type:"area",line:{color:"#4285F4"},point:!1},encoding:{x,y:h,color:l},background:"transparent"}}}const kR=class kR extends fn{isValidMatch(e){return e.name.endsWith("area")}create(e,n,r,i,s,o){return new Aut(e,n,r,s,o)}get rendererName(){return"sparkline"}};kR.instance=new kR;let hP=kR;class vut extends fP{getSize(){return this.size==="large"?{height:100,width:250}:{height:50,width:125}}getVegaLiteSpec(e){const n=e.field.allFields,r=n[0],i=n[1],s=n[2],o=this.getDataType(r),u=this.getDataType(i),a=s?this.getDataType(s):void 0,l={type:this.getMark(),tooltip:!0},c=s!==void 0?{field:s.name,type:a,axis:{title:null},scale:ss(a,!0)}:{value:"#4285F4"},f=o==="nominal"?null:void 0,x=u==="nominal"?null:void 0,h={field:r.name,type:o,sort:f,axis:{title:null,domain:!1,grid:!1,ticks:!1,values:[]},scale:{zero:!1}},p={field:i.name,type:u,sort:x,axis:{title:null,domain:!1,ticks:!1,grid:!1,values:[]},scale:{zero:!1}};return{...tf,...this.getSize(),data:{values:this.mapData(e)},config:{view:{stroke:"transparent"}},mark:l,encoding:{x:h,y:p,color:c},background:"transparent"}}}const PR=class PR extends fn{isValidMatch(e){return e.name.endsWith("_column")}create(e,n,r,i,s,o){return new vut(e,n,r,s,o)}get rendererName(){return"sparkline"}};PR.instance=new PR;let pP=PR;class Sut extends aP{getMark(){return"point"}getDataType(e){if(e.isAtomicField()){if(e.isDate()||e.isTimestamp())return"temporal";if(e.isString())return"nominal";if(e.isNumber())return"quantitative"}throw new Error("Invalid field type for scatter chart.")}getDataValue(e){if(e.isNull())return null;if(e.isTimestamp()||e.isDate()||e.isNumber()||e.isString())return e.value;throw new Error("Invalid field type for scatter chart.")}}const MR=class MR extends fn{create(e,n,r,i,s,o){return new Sut(e,n,r,s,o)}get rendererName(){return"scatter_chart"}};MR.instance=new MR;let gP=MR;class _ut{constructor(e,n){this.document=e,this.queryTimezone=n}async render(e){if(e.isNull())return p3(this.document);if(!e.isDate()&&!e.isTimestamp())return $s(this.document,"Invalid field for date renderer");const n=e.field.timeframe||(e.isTimestamp()?wt.TimestampTimeframe.Second:wt.DateTimeframe.Day),r=F5(e.value,n,this.queryTimezone),i=this.document.createElement("span");return i.appendChild(this.document.createTextNode(r)),i}}const jR=class jR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&(e.type===wt.AtomicFieldType.Date||e.type===wt.AtomicFieldType.Timestamp)}create(e,n,r,i,s,o){return new _ut(e,o)}get rendererName(){return"time"}};jR.instance=new jR;let mP=jR;var l0=(t=>(t.Dollars="usd",t.Euros="euro",t.Pounds="pound",t))(l0||{}),rf=(t=>(t.Bytes="bytes",t.Kilobytes="kb",t.Megabytes="mb",t.Gigabytes="gb",t.Terabytes="tb",t))(rf||{}),Wn=(t=>(t.Nanoseconds="nanoseconds",t.Microseconds="microseconds",t.Milliseconds="milliseconds",t.Seconds="seconds",t.Minutes="minutes",t.Hours="hours",t.Days="days",t))(Wn||{});function gce(t){return Object.values(Wn).includes(t)}class Cut extends sc{constructor(e,n){super(e),this.options=n}getText(e){if(e.isNull())return null;let n="$";switch(this.options.currency){case l0.Euros:n="€";break;case l0.Pounds:n="£";break;case l0.Dollars:break}const r=e.number.value.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2});return`${n}${r}`}}const UR=class UR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.currency=(n==null?void 0:n.text())??l0.Dollars},this.rendererName)}create(e,n,r,i,s){return new Cut(e,s)}get rendererName(){return"currency"}};UR.instance=new UR;let yP=UR;class but extends $5{getText(e){if(e.isNull())return null;const n=e.number.value;return n===null?n:(n*100).toLocaleString("en",{maximumFractionDigits:2})+"%"}}const qR=class qR extends fn{create(e,n,r,i,s){return new but(e,s)}get rendererName(){return"percent"}};qR.instance=new qR;let EP=qR;class Tut extends sc{getText(e){return e.isNull()?null:e.bytes.value.toString("base64")}}const HR=class HR extends fn{create(e,n,r,i,s){return new Tut(e)}get rendererName(){return"bytes"}};HR.instance=new HR;let AP=HR;class Rut extends sc{getText(e){return e.isNull()?null:`${e.boolean.value}`}}const zR=class zR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&e.type===wt.AtomicFieldType.Boolean}create(e,n,r,i,s){return new Rut(e)}get rendererName(){return"boolean"}};zR.instance=new zR;let vP=zR;class Out{constructor(e){this.document=e}async render(e){var a;if(e.isNull())return p3(this.document);const{tag:n}=e.field.tagParse(),r=n.tag("link");if(!r)return $s(this.document,"Missing tag for Link renderer");if(!e.isString())return $s(this.document,"Invalid type for link renderer.");const i=(a=r.tag("key_column"))==null?void 0:a.text();let s=e.value||"";if(i&&e.parentRecord){const l=e.parentRecord.cell(i);l&&l.isString()&&(s=l.value)}const o=r.text("url_template"),u=this.document.createElement("a");return u.href=e.value,o&&(o.indexOf("$$")>-1?u.href=o.replace("$$",s):u.href=o+s),u.target="_blank",u.appendChild(this.document.createTextNode(e.value.replace(/\//g,"/‌"))),u}}const QR=class QR extends fn{create(e,n,r,i,s){return new Out(e)}get rendererName(){return"link"}};QR.instance=new QR;let SP=QR;class Nut{constructor(e){this.document=e}getText(e){const n=e.value;if(typeof n=="string")return n;if(n===null)return null;if(typeof e.value=="object"){const r=e.value;if("value"in r&&typeof r.value=="string")return r.value}return JSON.stringify(e.value)}async render(e){const n=this.getText(e);if(n===null)return p3(this.document);const r=this.document.createElement("span");return r.appendChild(this.document.createTextNode(n)),r}}const GR=class GR extends fn{activates(e){return e.hasParentExplore()&&e.isAtomicField()&&e.isUnsupported()}create(e,n,r,i,s){return new Nut(e)}get rendererName(){return"unsupported"}};GR.instance=new GR;let _P=GR;const ci=class ci extends sc{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 data volume since its not a number`);let n=e.number.value,r="Bytes";switch(this.options.data_volume_unit){case rf.Bytes:break;case rf.Kilobytes:n=n/ci.kbMultiplier,r="KB";break;case rf.Megabytes:n=n/ci.mbMultiplier,r="MB";break;case rf.Gigabytes:n=n/ci.gbMultiplier,r="GB";break;case rf.Terabytes:n=n/ci.tbMultiplier,r="TB";break}return n===null?n:`${n.toLocaleString()} ${r}`}};ci.kbMultiplier=1024,ci.mbMultiplier=ci.kbMultiplier*ci.kbMultiplier,ci.gbMultiplier=ci.mbMultiplier*ci.kbMultiplier,ci.tbMultiplier=ci.gbMultiplier*ci.kbMultiplier;let CP=ci;const WR=class WR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.data_volume_unit=(n==null?void 0:n.text())??rf.Bytes},this.rendererName)}create(e,n,r,i,s){return new CP(e,s)}get rendererName(){return"data_volume"}};WR.instance=new WR;let bP=WR;function mce(t,e,n={}){let r=e.toString();return n.terse?r=Dut.get(e)??r:t===1&&(r=r.substring(0,r.length-1)),`${n.numFormat?g3.format(n.numFormat,t):t.toLocaleString()}${n.terse?"":" "}${r}`}const Dut=new Map([[Wn.Nanoseconds,"ns"],[Wn.Microseconds,"µs"],[Wn.Milliseconds,"ms"],[Wn.Seconds,"s"],[Wn.Minutes,"m"],[Wn.Hours,"h"],[Wn.Days,"d"]]),Fut=new Map([[Wn.Nanoseconds,1e3],[Wn.Microseconds,1e3],[Wn.Milliseconds,1e3],[Wn.Seconds,60],[Wn.Minutes,60],[Wn.Hours,24],[Wn.Days,Number.MAX_VALUE]]);function yce(t,e,n){const r=n.durationUnit&&gce(n.durationUnit)?n.durationUnit:Wn.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 Fut)if(f===r&&(c=!0),!!c&&(a=u%x,u=Math.floor(u/=x),a>0&&(l=[mce(a,f,{numFormat:s,terse:o}),...l]),u===0))break;return l.length>0?l.slice(0,2).join(" "):mce(0,r,{numFormat:s,terse:o})}class wut extends sc{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 yce(e.field,e.number.value,{durationUnit:this.options.duration_unit})}}const VR=class VR extends fn{constructor(){super(),this.addExtractor((e,n)=>{e.duration_unit=(n==null?void 0:n.text())??Wn.Seconds},this.rendererName)}create(e,n,r,i,s){return new wut(e,s)}get rendererName(){return"duration"}};VR.instance=new VR;let TP=VR;const YR=class YR{create(e,n,r,i,s,o,u){let a;for(const l of YR.renderFactories)if((this.matchesRenderDef(e,l)||this.matchesTag(n,l))&&l.isValidMatch(o)||l.activates(o)){a=l;break}return a==null?void 0:a.create(r,i,s,o,e||a.parseTagParameters(n)||{},u)}matchesRenderDef(e,n){return e&&n.rendererName&&e.renderer===n.rendererName}matchesTag(e,n){return n.rendererName&&e.has(n.rendererName)}};YR.renderFactories=[rP.instance,iP.instance,sP.instance,oP.instance,kF.instance,lP.instance,pP.instance,dP.instance,hP.instance,cP.instance,gP.instance,xP.instance,uP.instance,mP.instance,yP.instance,EP.instance,bP.instance,AP.instance,SP.instance,TP.instance,vP.instance,qF.instance,_P.instance,MF.instance];let RP=YR;function Lut(t){return Object.keys(t).reduce((n,r)=>{const i=t[r];return n[r]=Object.assign({},i),vce(i.value)&&!Put(i.value)&&!Array.isArray(i.value)&&(n[r].value=Object.assign({},i.value)),Array.isArray(i.value)&&(n[r].value=i.value.slice(0)),n},{})}function Iut(t){return t?Object.keys(t).reduce((n,r)=>{const i=t[r];return n[r]=vce(i)&&"value"in i?i:{value:i},n[r].attribute||(n[r].attribute=kut(r)),n[r].parse="parse"in n[r]?n[r].parse:typeof n[r].value!="string",n},{}):{}}function $ut(t){return Object.keys(t).reduce((n,r)=>(n[r]=t[r].value,n),{})}function But(t,e){const n=Lut(e);return Object.keys(e).forEach(i=>{const s=n[i],o=t.getAttribute(s.attribute),u=t[i];o&&(s.value=s.parse?Ece(o):o),u!=null&&(s.value=Array.isArray(u)?u.slice(0):u),s.reflect&&Ace(t,s.attribute,s.value),Object.defineProperty(t,i,{get(){return s.value},set(a){const l=s.value;s.value=a,s.reflect&&Ace(this,s.attribute,s.value);for(let c=0,f=this.__propertyChangedCallbacks.length;c<f;c++)this.__propertyChangedCallbacks[c](i,a,l)},enumerable:!0,configurable:!0})}),n}function Ece(t){if(t)try{return JSON.parse(t)}catch{return t}}function Ace(t,e,n){if(n==null||n===!1)return t.removeAttribute(e);let r=JSON.stringify(n);t.__updating[e]=!0,r==="true"&&(r=""),t.setAttribute(e,r),Promise.resolve().then(()=>delete t.__updating[e])}function kut(t){return t.replace(/\.?([A-Z]+)/g,(e,n)=>"-"+n.toLowerCase()).replace("_","-").replace(/^-/,"")}function vce(t){return t!=null&&(typeof t=="object"||typeof t=="function")}function Put(t){return Object.prototype.toString.call(t)==="[object Function]"}function Mut(t){return typeof t=="function"&&t.toString().indexOf("class")===0}let OP;function jut(t,e){const n=Object.keys(e);return class extends t{static get observedAttributes(){return n.map(i=>e[i].attribute)}constructor(){super(),this.__initialized=!1,this.__released=!1,this.__releaseCallbacks=[],this.__propertyChangedCallbacks=[],this.__updating={},this.props={}}connectedCallback(){if(this.__initialized)return;this.__releaseCallbacks=[],this.__propertyChangedCallbacks=[],this.__updating={},this.props=But(this,e);const i=$ut(this.props),s=this.Component,o=OP;try{OP=this,this.__initialized=!0,Mut(s)?new s(i,{element:this}):s(i,{element:this})}finally{OP=o}}async disconnectedCallback(){if(await Promise.resolve(),this.isConnected)return;this.__propertyChangedCallbacks.length=0;let i=null;for(;i=this.__releaseCallbacks.pop();)i(this);delete this.__initialized,this.__released=!0}attributeChangedCallback(i,s,o){if(this.__initialized&&!this.__updating[i]&&(i=this.lookupProp(i),i in e)){if(o==null&&!this[i])return;this[i]=e[i].parse?Ece(o):o}}lookupProp(i){if(e)return n.find(s=>i===s||i===e[s].attribute)}get renderRoot(){return this.shadowRoot||this.attachShadow({mode:"open"})}addReleaseCallback(i){this.__releaseCallbacks.push(i)}addPropertyChangedCallback(i){this.__propertyChangedCallbacks.push(i)}}}function Uut(...t){return t.length===0?e=>e:t.length===1?t[0]:t.reduce((e,n)=>(...r)=>e(n(...r)))}function qut(t,e={},n={}){const{BaseElement:r=HTMLElement,extension:i}=n;return s=>{if(!t)throw new Error("tag is required to register a Component");let o=customElements.get(t);return o?(o.prototype.Component=s,o):(o=jut(r,Iut(e)),o.prototype.Component=s,o.prototype.registeredTag=t,customElements.define(t,o,i),o)}}const Hut=(t,e)=>t===e,NP=Symbol("solid-proxy"),zut=Symbol("solid-track"),cR={equals:Hut};let Sce=Nce;const sf=1,fR=2,_ce={owned:null,cleanups:null,context:null,owner:null};var un=null;let DP=null,Qut=null,Vn=null,li=null,c0=null,xR=0;function dR(t,e){const n=Vn,r=un,i=t.length===0,s=e===void 0?r:e,o=i?_ce:{owned:null,cleanups:null,context:s?s.context:null,owner:s},u=i?t:()=>t(()=>Su(()=>gR(o)));un=o,Vn=null;try{return GE(u,!0)}finally{Vn=n,un=r}}function FP(t,e){e=e?Object.assign({},cR,e):cR;const n={value:t,observers:null,observerSlots:null,comparator:e.equals||void 0},r=i=>(typeof i=="function"&&(i=i(n.value)),Oce(n,i));return[Rce.bind(n),r]}function of(t,e,n){const r=LP(t,e,!1,sf);QE(r)}function wP(t,e,n){Sce=Yut;const r=LP(t,e,!1,sf);(!n||!n.render)&&(r.user=!0),c0?c0.push(r):QE(r)}function wo(t,e,n){n=n?Object.assign({},cR,n):cR;const r=LP(t,e,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,QE(r),Rce.bind(r)}function Su(t){if(Vn===null)return t();const e=Vn;Vn=null;try{return t()}finally{Vn=e}}function Gut(t){return un===null||(un.cleanups===null?un.cleanups=[t]:un.cleanups.push(t)),t}function Cce(t,e){const n=Symbol("context");return{id:n,Provider:Xut(n),defaultValue:t}}function bce(t){return un&&un.context&&un.context[t.id]!==void 0?un.context[t.id]:t.defaultValue}function Tce(t){const e=wo(t),n=wo(()=>IP(e()));return n.toArray=()=>{const r=n();return Array.isArray(r)?r:r!=null?[r]:[]},n}function Rce(){if(this.sources&&this.state)if(this.state===sf)QE(this);else{const t=li;li=null,GE(()=>pR(this),!1),li=t}if(Vn){const t=this.observers?this.observers.length:0;Vn.sources?(Vn.sources.push(this),Vn.sourceSlots.push(t)):(Vn.sources=[this],Vn.sourceSlots=[t]),this.observers?(this.observers.push(Vn),this.observerSlots.push(Vn.sources.length-1)):(this.observers=[Vn],this.observerSlots=[Vn.sources.length-1])}return this.value}function Oce(t,e,n){let r=t.value;return(!t.comparator||!t.comparator(r,e))&&(t.value=e,t.observers&&t.observers.length&&GE(()=>{for(let i=0;i<t.observers.length;i+=1){const s=t.observers[i],o=DP&&DP.running;o&&DP.disposed.has(s),(o?!s.tState:!s.state)&&(s.pure?li.push(s):c0.push(s),s.observers&&Dce(s)),o||(s.state=sf)}if(li.length>1e6)throw li=[],new Error},!1)),e}function QE(t){if(!t.fn)return;gR(t);const e=xR;Wut(t,t.value,e)}function Wut(t,e,n){let r;const i=un,s=Vn;Vn=un=t;try{r=t.fn(e)}catch(o){return t.pure&&(t.state=sf,t.owned&&t.owned.forEach(gR),t.owned=null),t.updatedAt=n+1,Fce(o)}finally{Vn=s,un=i}(!t.updatedAt||t.updatedAt<=n)&&(t.updatedAt!=null&&"observers"in t?Oce(t,r):t.value=r,t.updatedAt=n)}function LP(t,e,n,r=sf,i){const s={fn:t,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:e,owner:un,context:un?un.context:null,pure:n};return un===null||un!==_ce&&(un.owned?un.owned.push(s):un.owned=[s]),s}function hR(t){if(t.state===0)return;if(t.state===fR)return pR(t);if(t.suspense&&Su(t.suspense.inFallback))return t.suspense.effects.push(t);const e=[t];for(;(t=t.owner)&&(!t.updatedAt||t.updatedAt<xR);)t.state&&e.push(t);for(let n=e.length-1;n>=0;n--)if(t=e[n],t.state===sf)QE(t);else if(t.state===fR){const r=li;li=null,GE(()=>pR(t,e[0]),!1),li=r}}function GE(t,e){if(li)return t();let n=!1;e||(li=[]),c0?n=!0:c0=[],xR++;try{const r=t();return Vut(n),r}catch(r){n||(c0=null),li=null,Fce(r)}}function Vut(t){if(li&&(Nce(li),li=null),t)return;const e=c0;c0=null,e.length&&GE(()=>Sce(e),!1)}function Nce(t){for(let e=0;e<t.length;e++)hR(t[e])}function Yut(t){let e,n=0;for(e=0;e<t.length;e++){const r=t[e];r.user?t[n++]=r:hR(r)}for(e=0;e<n;e++)hR(t[e])}function pR(t,e){t.state=0;for(let n=0;n<t.sources.length;n+=1){const r=t.sources[n];if(r.sources){const i=r.state;i===sf?r!==e&&(!r.updatedAt||r.updatedAt<xR)&&hR(r):i===fR&&pR(r,e)}}}function Dce(t){for(let e=0;e<t.observers.length;e+=1){const n=t.observers[e];n.state||(n.state=fR,n.pure?li.push(n):c0.push(n),n.observers&&Dce(n))}}function gR(t){let e;if(t.sources)for(;t.sources.length;){const n=t.sources.pop(),r=t.sourceSlots.pop(),i=n.observers;if(i&&i.length){const s=i.pop(),o=n.observerSlots.pop();r<i.length&&(s.sourceSlots[o]=r,i[r]=s,n.observerSlots[r]=o)}}if(t.owned){for(e=t.owned.length-1;e>=0;e--)gR(t.owned[e]);t.owned=null}if(t.cleanups){for(e=t.cleanups.length-1;e>=0;e--)t.cleanups[e]();t.cleanups=null}t.state=0}function Kut(t){return t instanceof Error?t:new Error(typeof t=="string"?t:"Unknown error",{cause:t})}function Fce(t,e=un){throw Kut(t)}function IP(t){if(typeof t=="function"&&!t.length)return IP(t());if(Array.isArray(t)){const e=[];for(let n=0;n<t.length;n++){const r=IP(t[n]);Array.isArray(r)?e.push.apply(e,r):e.push(r)}return e}return t}function Xut(t,e){return function(r){let i;return of(()=>i=Su(()=>(un.context={...un.context,[t]:r.value},Tce(()=>r.children))),void 0),i}}const Jut=Symbol("fallback");function wce(t){for(let e=0;e<t.length;e++)t[e]()}function Zut(t,e,n={}){let r=[],i=[],s=[],o=0,u=e.length>1?[]:null;return Gut(()=>wce(s)),()=>{let a=t()||[],l,c;return a[zut],Su(()=>{let x=a.length,h,p,m,g,y,E,A,v,S;if(x===0)o!==0&&(wce(s),s=[],r=[],i=[],o=0,u&&(u=[])),n.fallback&&(r=[Jut],i[0]=dR(C=>(s[0]=C,n.fallback())),o=1);else if(o===0){for(i=new Array(x),c=0;c<x;c++)r[c]=a[c],i[c]=dR(f);o=x}else{for(m=new Array(x),g=new Array(x),u&&(y=new Array(x)),E=0,A=Math.min(o,x);E<A&&r[E]===a[E];E++);for(A=o-1,v=x-1;A>=E&&v>=E&&r[A]===a[v];A--,v--)m[v]=i[A],g[v]=s[A],u&&(y[v]=u[A]);for(h=new Map,p=new Array(v+1),c=v;c>=E;c--)S=a[c],l=h.get(S),p[c]=l===void 0?-1:l,h.set(S,c);for(l=E;l<=A;l++)S=r[l],c=h.get(S),c!==void 0&&c!==-1?(m[c]=i[l],g[c]=s[l],u&&(y[c]=u[l]),c=p[c],h.set(S,c)):s[l]();for(c=E;c<x;c++)c in m?(i[c]=m[c],s[c]=g[c],u&&(u[c]=y[c],u[c](c))):i[c]=dR(f);i=i.slice(0,o=x),r=a.slice(0)}return i});function f(x){if(s[c]=x,u){const[h,p]=FP(c);return u[c]=p,e(a[c],h)}return e(a[c])}}}function In(t,e){return Su(()=>t(e||{}))}function mR(){return!0}const eat={get(t,e,n){return e===NP?n:t.get(e)},has(t,e){return e===NP?!0:t.has(e)},set:mR,deleteProperty:mR,getOwnPropertyDescriptor(t,e){return{configurable:!0,enumerable:!0,get(){return t.get(e)},set:mR,deleteProperty:mR}},ownKeys(t){return t.keys()}};function $P(t){return(t=typeof t=="function"?t():t)?t:{}}function tat(){for(let t=0,e=this.length;t<e;++t){const n=this[t]();if(n!==void 0)return n}}function nat(...t){let e=!1;for(let o=0;o<t.length;o++){const u=t[o];e=e||!!u&&NP in u,t[o]=typeof u=="function"?(e=!0,wo(u)):u}if(e)return new Proxy({get(o){for(let u=t.length-1;u>=0;u--){const a=$P(t[u])[o];if(a!==void 0)return a}},has(o){for(let u=t.length-1;u>=0;u--)if(o in $P(t[u]))return!0;return!1},keys(){const o=[];for(let u=0;u<t.length;u++)o.push(...Object.keys($P(t[u])));return[...new Set(o)]}},eat);const n={},r=Object.create(null);for(let o=t.length-1;o>=0;o--){const u=t[o];if(!u)continue;const a=Object.getOwnPropertyNames(u);for(let l=a.length-1;l>=0;l--){const c=a[l];if(c==="__proto__"||c==="constructor")continue;const f=Object.getOwnPropertyDescriptor(u,c);if(!r[c])r[c]=f.get?{enumerable:!0,configurable:!0,get:tat.bind(n[c]=[f.get.bind(u)])}:f.value!==void 0?f:void 0;else{const x=n[c];x&&(f.get?x.push(f.get.bind(u)):f.value!==void 0&&x.push(()=>f.value))}}}const i={},s=Object.keys(r);for(let o=s.length-1;o>=0;o--){const u=s[o],a=r[u];a&&a.get?Object.defineProperty(i,u,a):i[u]=a?a.value:void 0}return i}const Lce=t=>`Stale read from <${t}>.`;function rat(t){const e="fallback"in t&&{fallback:()=>t.fallback};return wo(Zut(()=>t.each,t.children,e||void 0))}function Ice(t){const e=t.keyed,n=wo(()=>t.when,void 0,{equals:(r,i)=>e?r===i:!r==!i});return wo(()=>{const r=n();if(r){const i=t.children;return typeof i=="function"&&i.length>0?Su(()=>i(e?r:()=>{if(!Su(n))throw Lce("Show");return t.when})):i}return t.fallback},void 0,void 0)}function $ce(t){let e=!1;const n=(s,o)=>(e?s[1]===o[1]:!s[1]==!o[1])&&s[2]===o[2],r=Tce(()=>t.children),i=wo(()=>{let s=r();Array.isArray(s)||(s=[s]);for(let o=0;o<s.length;o++){const u=s[o].when;if(u)return e=!!s[o].keyed,[o,u,s[o]]}return[-1]},void 0,{equals:n});return wo(()=>{const[s,o,u]=i();if(s<0)return t.fallback;const a=u.children;return typeof a=="function"&&a.length>0?Su(()=>a(e?o:()=>{if(Su(i)[0]!==s)throw Lce("Match");return u.when})):a},void 0,void 0)}function BP(t){return t}function iat(t,e,n){let r=n.length,i=e.length,s=r,o=0,u=0,a=e[i-1].nextSibling,l=null;for(;o<i||u<s;){if(e[o]===n[u]){o++,u++;continue}for(;e[i-1]===n[s-1];)i--,s--;if(i===o){const c=s<r?u?n[u-1].nextSibling:n[s-u]:a;for(;u<s;)t.insertBefore(n[u++],c)}else if(s===u)for(;o<i;)(!l||!l.has(e[o]))&&e[o].remove(),o++;else if(e[o]===n[s-1]&&n[u]===e[i-1]){const c=e[--i].nextSibling;t.insertBefore(n[u++],e[o++].nextSibling),t.insertBefore(n[--s],c),e[i]=n[s]}else{if(!l){l=new Map;let f=u;for(;f<s;)l.set(n[f],f++)}const c=l.get(e[o]);if(c!=null)if(u<c&&c<s){let f=o,x=1,h;for(;++f<i&&f<s&&!((h=l.get(e[f]))==null||h!==c+x);)x++;if(x>c-u){const p=e[o];for(;u<c;)t.insertBefore(n[u++],p)}else t.replaceChild(n[u++],e[o++])}else o++;else e[o++].remove()}}}function Hd(t,e,n){let r;const i=()=>{const o=document.createElement("template");return o.innerHTML=t,n?o.content.firstChild.firstChild:o.content.firstChild},s=e?()=>Su(()=>document.importNode(r||(r=i()),!0)):()=>(r||(r=i())).cloneNode(!0);return s.cloneNode=s,s}function sat(t,e,n){n==null?t.removeAttribute(e):t.setAttribute(e,n)}function oat(t,e,n){if(!e)return n?sat(t,"style"):e;const r=t.style;if(typeof e=="string")return r.cssText=e;typeof n=="string"&&(r.cssText=n=void 0),n||(n={}),e||(e={});let i,s;for(s in n)e[s]==null&&r.removeProperty(s),delete n[s];for(s in e)i=e[s],i!==n[s]&&(r.setProperty(s,i),n[s]=i);return n}function uat(t,e,n){return Su(()=>t(e,n))}function f0(t,e,n,r){if(n!==void 0&&!r&&(r=[]),typeof e!="function")return yR(t,e,r,n);of(i=>yR(t,e(),i,n),r)}function yR(t,e,n,r,i){for(;typeof n=="function";)n=n();if(e===n)return n;const s=typeof e,o=r!==void 0;if(t=o&&n[0]&&n[0].parentNode||t,s==="string"||s==="number")if(s==="number"&&(e=e.toString()),o){let u=n[0];u&&u.nodeType===3?u.data!==e&&(u.data=e):u=document.createTextNode(e),n=np(t,n,r,u)}else n!==""&&typeof n=="string"?n=t.firstChild.data=e:n=t.textContent=e;else if(e==null||s==="boolean")n=np(t,n,r);else{if(s==="function")return of(()=>{let u=e();for(;typeof u=="function";)u=u();n=yR(t,u,n,r)}),()=>n;if(Array.isArray(e)){const u=[],a=n&&Array.isArray(n);if(kP(u,e,n,i))return of(()=>n=yR(t,u,n,r,!0)),()=>n;if(u.length===0){if(n=np(t,n,r),o)return n}else a?n.length===0?Bce(t,u,r):iat(t,n,u):(n&&np(t),Bce(t,u));n=u}else if(e.nodeType){if(Array.isArray(n)){if(o)return n=np(t,n,r,e);np(t,n,null,e)}else n==null||n===""||!t.firstChild?t.appendChild(e):t.replaceChild(e,t.firstChild);n=e}}return n}function kP(t,e,n,r){let i=!1;for(let s=0,o=e.length;s<o;s++){let u=e[s],a=n&&n[t.length],l;if(!(u==null||u===!0||u===!1))if((l=typeof u)=="object"&&u.nodeType)t.push(u);else if(Array.isArray(u))i=kP(t,u,a)||i;else if(l==="function")if(r){for(;typeof u=="function";)u=u();i=kP(t,Array.isArray(u)?u:[u],Array.isArray(a)?a:[a])||i}else t.push(u),i=!0;else{const c=String(u);a&&a.nodeType===3&&a.data===c?t.push(a):t.push(document.createTextNode(c))}}return i}function Bce(t,e,n=null){for(let r=0,i=e.length;r<i;r++)t.insertBefore(e[r],n)}function np(t,e,n,r){if(n===void 0)return t.textContent="";const i=r||document.createTextNode("");if(e.length){let s=!1;for(let o=e.length-1;o>=0;o--){const u=e[o];if(i!==u){const a=u.parentNode===t;!s&&!o?a?t.replaceChild(i,u):t.insertBefore(i,n):a&&u.remove()}else s=!0}}else t.insertBefore(i,n);return[i]}function aat(t){const e=Object.keys(t),n={};for(let r=0;r<e.length;r++){const[i,s]=FP(t[e[r]]);Object.defineProperty(n,e[r],{get:i,set(o){s(()=>o)}})}return n}function lat(t){if(t.assignedSlot&&t.assignedSlot._$owner)return t.assignedSlot._$owner;let e=t.parentNode;for(;e&&!e._$owner&&!(e.assignedSlot&&e.assignedSlot._$owner);)e=e.parentNode;return e&&e.assignedSlot?e.assignedSlot._$owner:t._$owner}function cat(t){return(e,n)=>{const{element:r}=n;return dR(i=>{const s=aat(e);r.addPropertyChangedCallback((u,a)=>s[u]=a),r.addReleaseCallback(()=>{r.renderRoot.textContent="",i()});const o=t(s,n);return f0(r.renderRoot,o)},lat(r))}}function PP(t,...e){return e.some(n=>Array.isArray(n)?t.has(...n):t.has(n))}function kce(t){const e=t.parentExplore;return(e==null?void 0:e.allFields.findIndex(n=>n.name===t.name))??-1}function MP(t){return t.parentExplore?kce(t)===t.parentExplore.allFields.length-1:!0}function jP(t){return kce(t)===0}function Pce(t,e){return t.isAtomicField()&&t.isNumber()&&e!==null}function Mce(t,e){return t.isAtomicField()&&t.isString()&&e!==null}function WE(t,e,n){const i=(n??document.createElement("canvas")).getContext("2d");return i.font=e,i.measureText(t).width}function fat(t,e,n){return Math.max(t,Math.min(e,n))}function jce(t,e){if(!t.isExplore()&&t.isAtomicField())return"cell";const n=e??t.tagParse().tag;return PP(n,"bar_chart")?"chart":"table"}function zd(t){return JSON.stringify(t.fieldPath)}function xat(){return{x:{fields:[],type:null},y:{fields:[],type:null},color:{fields:[],type:null},fx:{fields:[],type:null},fy:{fields:[],type:null},marks:[]}}function Uce(t,e){t.allFields.forEach(n=>{e(n),n.isExplore()&&Uce(n,e)})}function qce(t){const e=t.isExplore()&&!t.isExploreField()?[]:[t.name];let n=t.parentExplore;for(;n!=null&&n.isExploreField();)e.unshift(n.name),n=n.parentExplore;return e}function ER(t,e){const n=qce(t),r=qce(e),i=n.length;let s=0;for(;n[s];){if(n[s]!==r[s])throw new Error("Tried to get path from parent field to child field, but parent field is not a parent of child field.");s++}return r.slice(i).join(".")}function dat(t,e){const n=e??t.tagParse().tag,r=n.tag("bar_chart")??n.tag("bar");if(!r)throw new Error("Tried to render a bar_chart, but no bar_chart tag was found");const i=xat();r.text("x")&&i.x.fields.push(r.text("x")),r.text("y")&&i.y.fields.push(r.text("y"));const s=[],o=[];if(Uce(t,a=>{const{tag:l}=a.tagParse();l.has("x")&&s.push(ER(t,a)),l.has("y")&&o.push(ER(t,a))}),s.forEach(a=>{i.x.fields.push(a)}),o.at(0)&&i.y.fields.push(o.at(0)),i.x.fields.length===0){const a=t.allFields.filter(l=>l.isAtomicField()&&l.isString());a.length>0&&i.x.fields.push(ER(t,a[0]))}if(i.y.fields.length===0){const a=t.allFields.find(l=>l.isAtomicField()&&l.isNumber());a&&i.y.fields.push(ER(t,a))}const u={id:"bar",type:"bar_y",x:null,y:null};return i.marks.push(u),i.x.type="nominal",i.y.type="quantitative",i}const hat={spark:[180,1],xs:[170,2],sm:[216,3],md:[256,4],lg:[472,7],xl:[508,10],"2xl":[730,14]},AR=28;function pat(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]=hat[l],o=o*AR);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[zd(t)];let v=l!=="spark"?AR-1:0,S;const C=zd(r),_=e.fields[C].max,b=Ot("linear")().domain([0,_]).nice().range([o,0]),R=b.domain();if(E){const q=b.domain().at(1),B=nJ().format(",")(q);f=WE(B,"Inter, sans-serif 12px")+5+31;const X=Math.ceil(o/40),de=b.ticks(X);if(de.at(-1)<q){const be=(q-de.at(-1))/q,ee=o/(1-be);v=v-(ee-o),o=ee,S=X}}if(y){const q=zd(n),W=e.fields[q].maxString,B=WE(W,"Inter, sans-serif 12px"),G=.3;g=22+15,c=Math.min(B,G*o),m=c;const X=(s-f)/A.maxRecordCt;X>c&&(x=0,m=X,h=void 0,p="top")}const O=o+c+g,L=Math.ceil(O/AR)*AR;g+=L-O;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:S,hidden:M},yScale:{domain:R},padding:M?{top:0,left:0,bottom:0,right:0}:{top:v+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 vR="#727883",SR="#E5E7EB";function gat(t,e){const n=pat(e.field,e.metadata),r={$schema:"https://vega.github.io/schema/vega/v5.json",width:n.plotWidth,height:n.plotHeight,config:{axisY:{gridColor:SR,tickColor:SR,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelColor:vR,labelPadding:5,titleColor:vR,titleFont:"Inter, sans-serif",titleFontSize:12,titleFontWeight:"bold",titlePadding:10,labelOverlap:!1},axisX:{gridColor:SR,tickColor:SR,tickSize:0,domain:!1,labelFont:"Inter, sans-serif",labelFontSize:10,labelFontWeight:"normal",labelPadding:5,labelColor:vR,titleColor:vR,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 mat(){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 yat(t){const e=new WeakMap,n=u=>{if(e.has(u))return e.get(u);const a=zd(u);return e.set(u,a),a},r=mat(),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},Hce(t.data.field,i),zce(t.data,i),Object.values(i.fields).forEach(u=>{const a=u.field;a.isExploreField()?Qce(a,a.tagParse().tag,i):a.isExplore()&&Qce(a,t.tagParse().tag,i)}),i}function Hce(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()&&Hce(n,e)}}const zce=(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(Pce(o,u)){const l=u;a.min=Math.min(a.min??l,l),a.max=Math.max(a.max??l,l)}else if(Mce(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);zce(l,e)}}}const r=t.field,i=e.field(r);i.maxRecordCt=Math.max(i.maxRecordCt??n,n)};function Qce(t,e,n){const r=n.field(t);if(PP(e,"bar","bar_chart")){const i=dat(t,e);r.vegaChartProps=gat(i,{field:t,metadata:n})}}const Gce=Cce(),Wce=()=>{const t=bce(Gce);if(!t)throw Error("useResultContext must be used within a ResultContext.Provider");return t};function vlt(t){return t}function Slt(t){return t}var Eat=Hd("<div>");function Aat(t){let e,n=null;return wP(()=>{n&&n.finalize();const r=t.type==="vega-lite"?xce(t.spec).spec:t.spec;n=new Z$(Vue(r)).initialize(e).renderer("svg").hover(),n.run()}),wP(()=>{n&&(t.width&&n.width(t.width),t.height&&n.height(t.height),n.run())}),(()=>{var r=Eat(),i=e;return typeof i=="function"?uat(i,r):e=r,r})()}function Vce(t){const{field:e,data:n}=t,r=t.metadata.field(e).vegaChartProps,i=structuredClone(r.spec);return i.data[0].values=n,In(Aat,{spec:i,type:"vega",get width(){return r.plotWidth},get height(){return r.plotHeight}})}function Yce(t,e){let n=e;const{tag:r}=t.tagParse();if(r.has("currency")){let i="$";switch(r.text("currency")){case l0.Euros:i="€";break;case l0.Pounds:i="£";break;case l0.Dollars:break}n=g3.format(`${i}#,##0.00`,e)}else if(r.has("percent"))n=g3.format("#,##0.00%",e);else if(r.has("duration")){const s=r.text("duration")??Wn.Seconds;return yce(t,e,{durationUnit:s})??e.toLocaleString()}else r.has("number")?n=g3.format(r.text("number"),e):n=e.toLocaleString();return n}const vat=32,Sat=384,Kce=12,_at=28;function Cat(t){const e={};for(const[n,r]of Object.entries(t.fields)){const i=r.field,s={metadata:r,width:i.isExplore()?0:bat(i,t),height:null},{tag:o}=i.tagParse();PP(o,"bar","bar_chart")&&i.isExploreField()?(s.width=r.vegaChartProps.totalWidth,s.height=r.vegaChartProps.totalHeight):!i.isExplore()&&i.isAtomicField()&&(s.height=_at),e[n]=s}return e}function bat(t,e){const n=zd(t),r=e.fields[n];let i=0;if(t.isAtomicField()){const s="12px Inter, sans-serif",o=WE(t.name,s);if(t.isAtomicField()&&t.isString())i=Math.max(WE(r.maxString,s),o)+Kce;else if(t.isAtomicField()&&t.isNumber()){const u=r.max===null?"∅":Yce(t,r.max);i=Math.max(WE(u,s),o)+Kce}else i=130;i=fat(vat,Sat,i)}return i}const Xce=Cce(),VE=()=>bce(Xce);var Tat=Hd("<div class=cell-wrapper><div class=cell-gutter></div><div class=cell-content></div><div class=cell-gutter>"),Rat=Hd("<th class=column-cell>"),Oat=Hd("<td class=column-cell>"),Nat=Hd("<div class=sticky-header><div class=sticky-header-content>"),Dat=Hd("<div class=malloy-table><table><thead><tr></tr></thead><tbody>"),Fat=Hd("<tr>");const Jce=t=>{const e=()=>{const n=VE().layout,r=n[zd(t.field)].width,i=n[zd(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=Tat(),r=n.firstChild,i=r.nextSibling,s=i.nextSibling;return f0(i,()=>t.value),of(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=oat(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})()},wat=t=>{const e=jP(t.field),n=jP(t.field.parentExplore),r=!t.field.parentExplore.isExploreField(),i=e&&(n||r),s=MP(t.field),o=MP(t.field.parentExplore),u=s&&(o||r);return(()=>{var a=Rat();return f0(a,In(Jce,{get field(){return t.field},get value(){return t.field.name},hideStartGutter:i,hideEndGutter:u,isHeader:!0})),of(()=>a.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),a})()},Lat=t=>{const e=VE(),n=jce(t.field);let r="";if(e.pinnedHeader)r="";else if(n==="cell"){const i=t.row.cell(t.field).value;Pce(t.field,i)?r=Yce(t.field,i):i===null?r="∅":Mce(t.field,i)&&(r=i)}else if(n==="chart"){const i=Wce();r=In(Vce,{get field(){return t.field},get data(){return i.getData(t.row.cell(t.field))},metadata:i})}return(()=>{var i=Oat();return f0(i,In($ce,{get children(){return[In(BP,{when:n==="table",get children(){return In(UP,{get data(){return t.row.cell(t.field)},get pinnedHeader(){return e.pinnedHeader},get rowLimit(){return e.pinnedHeader?1:1/0}})}}),In(BP,{when:!0,get children(){return In(Jce,{get field(){return t.field},value:r,get hideStartGutter(){return jP(t.field)},get hideEndGutter(){return MP(t.field)}})}})]}})),of(()=>i.classList.toggle("numeric",!!(t.field.isAtomicField()&&t.field.isNumber()))),i})()},Iat=t=>{const e=nat({rowLimit:1/0,pinnedHeader:!1},t),n=VE(),[r,i]=FP(!1),s=u=>{const a=u.target;i(a.scrollTop>0)},o=wo(()=>{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=Dat(),a=u.firstChild,l=a.firstChild,c=l.firstChild,f=l.nextSibling;return u.addEventListener("scroll",s),f0(u,In(Ice,{get when(){return n.root},get children(){var x=Nat(),h=x.firstChild;return f0(h,In(UP,{get data(){return e.data},rowLimit:1,pinnedHeader:!0})),x}}),a),f0(c,()=>e.data.field.allFields.map(x=>In(wat,{field:x}))),f0(f,In(rat,{get each(){return o()},children:x=>(()=>{var h=Fat();return f0(h,()=>e.data.field.allFields.map(p=>In(Lat,{field:p,row:x}))),h})()})),of(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})()},UP=t=>{const e=Wce(),n=!!VE(),r=wo(()=>{if(n){const i=VE();return{root:!1,pinnedHeader:t.pinnedHeader??i.pinnedHeader,layout:i.layout}}return{root:!0,pinnedHeader:t.pinnedHeader??!1,layout:Cat(e)}});return In(Xce.Provider,{get value(){return r()},get children(){return In(Iat,t)}})};function $at(t,{element:e}){const n=wo(()=>t.result?t.result:t.queryResult&&t.modelDef?new wt.Result(t.queryResult,t.modelDef):null);return In(Ice,{get when(){return n()},get children(){return In(Bat,{get result(){return n()},element:e})}})}function Bat(t){const e=wo(()=>yat(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}};wP(()=>{if(t.element){const i=kat(n().modelTheme,n().localTheme);for(const[s,o]of Object.entries(i))t.element.style.setProperty(s,o)}});const r=()=>{const i=n().resultTag,s=t.result.resultExplore;return jce(s,i)};return In(Gce.Provider,{get value(){return e()},get children(){return In($ce,{get fallback(){return In(UP,{get data(){return t.result.data}})},get children(){return In(BP,{get when(){return r()==="chart"},get children(){return In(Vce,{get field(){return t.result.resultExplore},get data(){return e().getData(t.result.data)},get metadata(){return e()}})}})}})}})}function Lo(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 kat(t,e){const n={},r=Lo("tableRowHeight",e,t),i=Lo("tableBodyColor",e,t),s=Lo("tableFontSize",e,t),o=Lo("tableHeaderColor",e,t),u=Lo("tableHeaderWeight",e,t),a=Lo("tableBodyWeight",e,t),l=Lo("tableBorder",e,t),c=Lo("tableBackground",e,t),f=Lo("tableGutterSize",e,t),x=Lo("tablePinnedBackground",e,t),h=Lo("tablePinnedBorder",e,t),p=Lo("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 Pat=`:host {
1476
1476
  --malloy-theme--table-row-height: 28px;
1477
1477
  --malloy-theme--table-font-size: 12px;
1478
1478
  --malloy-theme--table-header-color: #5d626b;