crossnote 0.9.13 → 0.9.14

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.
package/out/cjs/index.cjs CHANGED
@@ -10,7 +10,7 @@ var G3=Object.create;var Mw=Object.defineProperty;var j3=Object.getOwnPropertyDe
10
10
  : (u > v || v == null) && u != null ? ${v}
11
11
  : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${g}
12
12
  : v !== v && u === u ? ${v} : `}(u,c,-o,o)}).join("")+"0;");return n?a.bind(n):a}}};function qI(e,t,n){if(!e||!ye(e))return e;for(let a,r=0,i=WI.length;r<i;++r)if(a=WI[r],nt(e,a.key))return a.parse(e,t,n);return e}var WI=[{key:"$ref",parse:function(e,t){return t.get(e.$ref)||F("Operator not defined: "+e.$ref)}},{key:"$key",parse:function(e,t){let n="k:"+e.$key+"_"+!!e.$flat;return t.fn[n]||(t.fn[n]=Ai(e.$key,e.$flat,t.expr.codegen))}},{key:"$expr",parse:function(e,t,n){e.$params&&t.parseParameters(e.$params,n);let a="e:"+e.$expr.code;return t.fn[a]||(t.fn[a]=b(t.parameterExpression(e.$expr),e.$fields))}},{key:"$field",parse:function(e,t){if(!e.$field)return null;let n="f:"+e.$field+"_"+e.$name;return t.fn[n]||(t.fn[n]=W(e.$field,e.$name,t.expr.codegen))}},{key:"$encode",parse:function(e,t){let n=e.$encode,a={};for(let r in n){let i=n[r];a[r]=b(t.encodeExpression(i.$expr),i.$fields),a[r].output=i.$output}return a}},{key:"$compare",parse:function(e,t){let n="c:"+e.$compare+"_"+e.$order,a=Ne(e.$compare).map(r=>r&&r.$tupleid?rt:r);return t.fn[n]||(t.fn[n]=Fl(a,e.$order,t.expr.codegen))}},{key:"$context",parse:function(e,t){return t}},{key:"$subflow",parse:function(e,t){let n=e.$subflow;return function(a,r,i){let o=t.fork().parse(n),u=o.get(n.operators[0].id),c=o.signals.parent;return c&&c.set(i),u.detachSubflow=()=>t.detach(o),u}}},{key:"$tupleid",parse:function(){return rt}}];let wB={skip:!0};function VI(e,t,n,a){return new YI(e,t,n,a)}function YI(e,t,n,a){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=a||EB,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function KI(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}function XI(e,t){e&&(t==null?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}YI.prototype=KI.prototype={fork(){let e=new KI(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter(n=>n!==e);let t=Object.keys(e.nodes);for(let n of t)e.nodes[n]._targets=null;for(let n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){let n=this,a=n.dataflow,r=e.value;if(n.set(e.id,t),function(i){return SS(i)==="collect"}(e.type)&&r&&(r.$ingest?a.ingest(t,r.$ingest,r.$format):r.$request?a.preload(t,r.$request,r.$format):a.pulse(t,a.changeset().insert(r))),e.root&&(n.root=t),e.parent){let i=n.get(e.parent.$ref);i?(a.connect(i,[t]),t.targets().add(i)):(n.unresolved=n.unresolved||[]).push(()=>{i=n.get(e.parent.$ref),a.connect(i,[t]),t.targets().add(i)})}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(let i in e.data){let o=n.data[i]||(n.data[i]={});e.data[i].forEach(u=>o[u]=t)}},resolve(){return(this.unresolved||[]).forEach(e=>e()),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[SS(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,a,r){this.dataflow.on(t,n,a,r,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:function(e){let t=this,n=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),n.forEach(a=>t.parseOperator(a)),n.forEach(a=>t.parseOperatorParameters(a)),(e.streams||[]).forEach(a=>t.parseStream(a)),(e.updates||[]).forEach(a=>t.parseUpdate(a)),t.resolve()},parseOperator:function(e){let t=this;!function(n){return SS(n)==="operator"}(e.type)&&e.type?t.transform(e,e.type):t.operator(e,e.update?t.operatorExpression(e.update):null)},parseOperatorParameters:function(e){let t=this;if(e.params){let n=t.get(e.id);n||F("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}},parseParameters:function(e,t){t=t||{};let n=this;for(let a in e){let r=e[a];t[a]=Ee(r)?r.map(i=>qI(i,n,t)):qI(r,n,t)}return t},parseStream:function(e){var t,n=this,a=e.filter!=null?n.eventExpression(e.filter):void 0,r=e.stream!=null?n.get(e.stream):void 0;e.source?r=n.events(e.source,e.type,a):e.merge&&(r=(t=e.merge.map(i=>n.get(i)))[0].merge.apply(t[0],t.slice(1))),e.between&&(t=e.between.map(i=>n.get(i)),r=r.between(t[0],t[1])),e.filter&&(r=r.filter(a)),e.throttle!=null&&(r=r.throttle(+e.throttle)),e.debounce!=null&&(r=r.debounce(+e.debounce)),r==null&&F("Invalid stream definition: "+JSON.stringify(e)),e.consume&&r.consume(!0),n.stream(e,r)},parseUpdate:function(e){var t,n=this,a=ye(a=e.source)?a.$ref:a,r=n.get(a),i=e.update,o=void 0;r||F("Source not defined: "+e.source),t=e.target&&e.target.$expr?n.eventExpression(e.target.$expr):n.get(e.target),i&&i.$expr&&(i.$params&&(o=n.parseParameters(i.$params)),i=n.handlerExpression(i.$expr)),n.update(e,r,t,i,o)},getState:function(e){var t=this,n={};if(e.signals){var a=n.signals={};Object.keys(t.signals).forEach(i=>{let o=t.signals[i];e.signals(i,o)&&(a[i]=o.value)})}if(e.data){var r=n.data={};Object.keys(t.data).forEach(i=>{let o=t.data[i];e.data(i,o)&&(r[i]=o.input.value)})}return t.subcontext&&e.recurse!==!1&&(n.subcontext=t.subcontext.map(i=>i.getState(e))),n},setState:function(e){var t=this,n=t.dataflow,a=e.data,r=e.signals;Object.keys(r||{}).forEach(i=>{n.update(t.signals[i],r[i],wB)}),Object.keys(a||{}).forEach(i=>{n.pulse(t.data[i].input,n.changeset().remove(Q).insert(a[i]))}),(e.subcontext||[]).forEach((i,o)=>{let u=t.subcontext[o];u&&u.setState(i)})}};let AS="default";function TS(e,t){let n=e.globalCursor()?typeof document<"u"&&document.body:e.container();if(n)return t==null?n.style.removeProperty("cursor"):n.style.cursor=t}function cw(e,t){var n=e._runtime.data;return nt(n,t)||F("Unrecognized data set: "+t),n[t]}function dw(e,t){su(t)||F("Second argument to changes must be a changeset.");let n=cw(this,e);return n.modified=!0,this.pulse(n.input,t)}function ZI(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function JI(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function fw(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}function _B(e,t,n){var a,r,i=e._renderer,o=i&&i.canvas();return o&&(r=fw(e),(a=$v(t.changedTouches?t.changedTouches[0]:t,o))[0]-=r[0],a[1]-=r[1]),t.dataflow=e,t.item=n,t.vega=function(u,c,f){let m=c?c.mark.marktype==="group"?c:c.mark.group:null;function g(E){var k,_=m;if(E){for(k=c;k;k=k.mark.group)if(k.mark.name===E){_=k;break}}return _&&_.mark&&_.mark.interactive?_:{}}function v(E){if(!E)return f;Ft(E)&&(E=g(E));let k=f.slice();for(;E;)k[0]-=E.x||0,k[1]-=E.y||0,E=E.mark&&E.mark.group;return k}return{view:hn(u),item:hn(c||{}),group:g,xy:v,x:E=>v(E)[0],y:E=>v(E)[1]}}(e,n,a),t}let QI="view",kB="timer",xB="window",SB={trap:!1};function eO(e,t,n,a){e._eventListeners.push({type:n,sources:Ne(t),handler:a})}function pw(e,t,n){let a=e._eventConfig&&e._eventConfig[t];return!(a===!1||ye(a)&&!a[n])||(e.warn(`Blocked ${t} ${n} event listener.`),!1)}function tO(e){return e.item}function nO(e){return e.item.mark.source}function aO(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function wi(e,t,n){let a=document.createElement(e);for(let r in t)a.setAttribute(r,t[r]);return n!=null&&(a.textContent=n),a}let AB="vega-bind",TB="vega-bind-name",CB="vega-bind-radio";function RB(e,t,n,a){let r=n.event||"input",i=()=>e.update(t.value);a.signal(n.signal,t.value),t.addEventListener(r,i),eO(a,t,r,i),e.set=o=>{t.value=o,t.dispatchEvent(function(u){return typeof Event<"u"?new Event(u):{type:u}}(r))}}function NB(e,t,n,a){let r=a.signal(n.signal),i=wi("div",{class:AB}),o=n.input==="radio"?i:i.appendChild(wi("label"));o.appendChild(wi("span",{class:TB},n.name||n.signal)),t.appendChild(i);let u=IB;switch(n.input){case"checkbox":u=OB;break;case"select":u=DB;break;case"radio":u=MB;break;case"range":u=LB}u(e,o,n,r)}function IB(e,t,n,a){let r=wi("input");for(let i in n)i!=="signal"&&i!=="element"&&r.setAttribute(i==="input"?"type":i,n[i]);r.setAttribute("name",n.signal),r.value=a,t.appendChild(r),r.addEventListener("input",()=>e.update(r.value)),e.elements=[r],e.set=i=>r.value=i}function OB(e,t,n,a){let r={type:"checkbox",name:n.signal};a&&(r.checked=!0);let i=wi("input",r);t.appendChild(i),i.addEventListener("change",()=>e.update(i.checked)),e.elements=[i],e.set=o=>i.checked=!!o||null}function DB(e,t,n,a){let r=wi("select",{name:n.signal}),i=n.labels||[];n.options.forEach((o,u)=>{let c={value:o};hw(o,a)&&(c.selected=!0),r.appendChild(wi("option",c,(i[u]||o)+""))}),t.appendChild(r),r.addEventListener("change",()=>{e.update(n.options[r.selectedIndex])}),e.elements=[r],e.set=o=>{for(let u=0,c=n.options.length;u<c;++u)if(hw(n.options[u],o))return void(r.selectedIndex=u)}}function MB(e,t,n,a){let r=wi("span",{class:CB}),i=n.labels||[];t.appendChild(r),e.elements=n.options.map((o,u)=>{let c={type:"radio",name:n.signal,value:o};hw(o,a)&&(c.checked=!0);let f=wi("input",c);f.addEventListener("change",()=>e.update(o));let m=wi("label",{},(i[u]||o)+"");return m.prepend(f),r.appendChild(m),f}),e.set=o=>{let u=e.elements,c=u.length;for(let f=0;f<c;++f)hw(u[f].value,o)&&(u[f].checked=!0)}}function LB(e,t,n,a){a=a!==void 0?a:(+n.max+ +n.min)/2;let r=n.max!=null?n.max:Math.max(100,+a)||100,i=n.min||Math.min(0,r,+a)||0,o=n.step||Ri(i,r,100),u=wi("input",{type:"range",name:n.signal,min:i,max:r,step:o});u.value=a;let c=wi("span",{},+a);t.appendChild(u),t.appendChild(c);let f=()=>{c.textContent=u.value,e.update(+u.value)};u.addEventListener("input",f),u.addEventListener("change",f),e.elements=[u],e.set=m=>{u.value=m,c.textContent=m}}function hw(e,t){return e===t||e+""==t+""}function rO(e,t,n,a,r,i){return(t=t||new a(e.loader())).initialize(n,ZI(e),JI(e),fw(e),r,i).background(e.background())}function CS(e,t){return t?function(){try{t.apply(this,arguments)}catch(n){e.error(n)}}:null}function RS(e,t,n){if(typeof t=="string"){if(typeof document>"u")return e.error("DOM document instance not found."),null;if(!(t=document.querySelector(t)))return e.error("Signal bind element not found: "+t),null}if(t&&n)try{t.textContent=""}catch(a){t=null,e.error(a)}return t}let Vb=e=>+e||0,FB=e=>({top:e,bottom:e,left:e,right:e});function iO(e){return ye(e)?{top:Vb(e.top),bottom:Vb(e.bottom),left:Vb(e.left),right:Vb(e.right)}:FB(Vb(e))}async function NS(e,t,n,a){let r=Kv(t),i=r&&r.headless;return i||F("Unrecognized renderer type: "+t),await e.runAsync(),rO(e,null,null,i,n,a).renderAsync(e._scenegraph.root)}var oO="width",sO="height",IS="padding",lO={skip:!0};function uO(e,t){var n=e.autosize(),a=e.padding();return t-(n&&n.contains===IS?a.left+a.right:0)}function cO(e,t){var n=e.autosize(),a=e.padding();return t-(n&&n.contains===IS?a.top+a.bottom:0)}function PB(e,t){return t.modified&&Ee(t.input.value)&&e.indexOf("_:vega:_")}function $B(e,t){return!(e==="parent"||t instanceof tl.proxy)}function BB(e,t,n,a){let r=e.element();r&&r.setAttribute("title",function(i){return i==null?"":Ee(i)?dO(i):ye(i)&&!xn(i)?(o=i,Object.keys(o).map(u=>{let c=o[u];return u+": "+(Ee(c)?dO(c):fO(c))}).join(`
13
- `)):i+"";var o}(a))}function dO(e){return"["+e.map(fO).join(", ")+"]"}function fO(e){return Ee(e)?"[\u2026]":ye(e)&&!xn(e)?"{\u2026}":e}function pO(e,t){let n=this;if(t=t||{},el.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),t.logLevel!=null&&n.logLevel(t.logLevel),t.locale||e.locale){let i=mt({},e.locale,t.locale);n.locale(Jh(i.number,i.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||Fu.Canvas,n._scenegraph=new V1;let a=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||BB,n._redraw=!0,n._handler=new ob().scene(a),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=function(i){let o=mt({defaults:{}},i),u=(c,f)=>{f.forEach(m=>{Ee(c[m])&&(c[m]=ir(c[m]))})};return u(o.defaults,["prevent","allow"]),u(o,["view","window","selector"]),o}(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);let r=function(i,o,u){return VI(i,tl,qb,u).parse(o)}(n,e,t.expr);n._runtime=r,n._signals=r.signals,n._bind=(e.bindings||[]).map(i=>({state:null,param:mt({},i)})),r.root&&r.root.set(a),a.source=r.data.root.input,n.pulse(r.data.root.input,n.changeset().insert(a.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=uO(n,n._width),n._viewHeight=cO(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,function(i){var o=i._signals,u=o[oO],c=o[sO],f=o[IS];function m(){i._autosize=i._resize=1}i._resizeWidth=i.add(null,v=>{i._width=v.size,i._viewWidth=uO(i,v.size),m()},{size:u}),i._resizeHeight=i.add(null,v=>{i._height=v.size,i._viewHeight=cO(i,v.size),m()},{size:c});let g=i.add(null,m,{pad:f});i._resizeWidth.rank=u.rank+1,i._resizeHeight.rank=c.rank+1,g.rank=f.rank+1}(n),function(i){i.add(null,o=>(i._background=o.bg,i._resize=1,o.bg),{bg:i._signals.background})}(n),function(i){let o=i._signals.cursor||(i._signals.cursor=i.add({user:AS,item:null}));i.on(i.events("view","mousemove"),o,(u,c)=>{let f=o.value,m=f?Ft(f)?f:f.user:AS,g=c.item&&c.item.cursor||null;return f&&m===f.user&&g==f.item?f:{user:m,item:g}}),i.add(null,function(u){let c=u.cursor,f=this.value;return Ft(c)||(f=c.item,c=c.user),TS(i,c&&c!==AS?c:f||c),f},{cursor:o})}(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind)}function mw(e,t){return nt(e._signals,t)?e._signals[t]:F("Unrecognized signal name: "+st(t))}function hO(e,t){let n=(e._targets||[]).filter(a=>a._update&&a._update.handler===t);return n.length?n[0]:null}function mO(e,t,n,a){let r=hO(n,a);return r||(r=CS(e,()=>a(t,n.value)),r.handler=a,e.on(n,null,r)),e}function gO(e,t,n){let a=hO(t,n);return a&&t._targets.remove(a),e}Le(pO,el,{async evaluate(e,t,n){if(await el.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,function(a){var r=fw(a),i=ZI(a),o=JI(a);a._renderer.background(a.background()),a._renderer.resize(i,o,r),a._handler.origin(r),a._resizeListeners.forEach(u=>{try{u(i,o)}catch(c){a.error(c)}})}(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(a){this.error(a)}return n&&yn(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){let t=e!=null?e+"":null;return t!==this._desc&&XI(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){let a=mw(this,e);return arguments.length===1?a.value:this.update(a,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",iO(e)):iO(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(Kv(e)||F("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(el.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(mw(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,n,a,r,i){this.runAfter(o=>{let u=0;o._autosize=0,o.width()!==n&&(u=1,o.signal(oO,n,lO),o._resizeWidth.skip(!0)),o.height()!==a&&(u=1,o.signal(sO,a,lO),o._resizeHeight.skip(!0)),o._viewWidth!==e&&(o._resize=1,o._viewWidth=e),o._viewHeight!==t&&(o._resize=1,o._viewHeight=t),o._origin[0]===r[0]&&o._origin[1]===r[1]||(o._resize=1,o._origin=r),u&&o.run("enter"),i&&o.runAfter(c=>c.resize())},!1,1)},addEventListener(e,t,n){let a=t;return n&&n.trap===!1||(a=CS(this,t),a.raw=t),this._handler.on(e,a),this},removeEventListener(e,t){for(var n,a,r=this._handler.handlers(e),i=r.length;--i>=0;)if(a=r[i].type,n=r[i].handler,e===a&&(t===n||t===n.raw)){this._handler.off(a,n);break}return this},addResizeListener(e){let t=this._resizeListeners;return t.indexOf(e)<0&&t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return mO(this,e,mw(this,e),t)},removeSignalListener(e,t){return gO(this,mw(this,e),t)},addDataListener(e,t){return mO(this,e,cw(this,e).values,t)},removeDataListener(e,t){return gO(this,cw(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){let t=TS(this,null);this._globalCursor=!!e,t&&TS(this,t)}return this}return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push(function(n,a,r){var i=new GE,o=a;return a==null?(i.restart(n,a,r),i):(i._restart=i.restart,i.restart=function(u,c,f){c=+c,f=f==null?vx():+f,i._restart(function m(g){g+=o,i._restart(m,o+=c,f),u(g)},c,f)},i.restart(n,a,r),i)}(function(n){e({timestamp:Date.now(),elapsed:n})},t))},events:function(e,t,n){var a,r=this,i=new Ui(n),o=function(f,m){r.runAsync(null,()=>{e===QI&&function(g,v){var E=g._eventConfig.defaults,k=E.prevent,_=E.allow;return k!==!1&&_!==!0&&(k===!0||_===!1||(k?k[v]:_?!_[v]:g.preventDefault()))}(r,t)&&f.preventDefault(),i.receive(_B(r,f,m))})};if(e===kB)pw(r,"timer",t)&&r.timer(o,t);else if(e===QI)pw(r,"view",t)&&r.addEventListener(t,o,SB);else if(e===xB?pw(r,"window",t)&&typeof window<"u"&&(a=[window]):typeof document<"u"&&pw(r,"selector",t)&&(a=Array.from(document.querySelectorAll(e))),a){for(var u=0,c=a.length;u<c;++u)a[u].addEventListener(t,o);eO(r,a,t,o)}else r.warn("Can not resolve event source: "+e);return i},finalize:function(){var e,t,n,a=this._tooltip,r=this._timers,i=this._eventListeners;for(e=r.length;--e>=0;)r[e].stop();for(e=i.length;--e>=0;)for(t=(n=i[e]).sources.length;--t>=0;)n.sources[t].removeEventListener(n.type,n.handler);return a&&a.call(this,this._handler,null,null,null),this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","mouseover",tO),nO,aO(e)),this.on(this.events("view","mouseout",tO),nO,aO(t)),this},data:function(e,t){return arguments.length<2?cw(this,e).values.value:dw.call(this,e,us().remove(Q).insert(t))},change:dw,insert:function(e,t){return dw.call(this,e,us().insert(t))},remove:function(e,t){return dw.call(this,e,us().remove(t))},scale:function(e){var t=this._runtime.scales;return nt(t,e)||F("Unrecognized scale or projection: "+e),t[e].value},initialize:function(e,t){let n=this,a=n._renderType,r=n._eventConfig.bind,i=Kv(a);e=n._el=e?RS(n,e,!0):null,function(c){let f=c.container();f&&(f.setAttribute("role","graphics-document"),f.setAttribute("aria-roleDescription","visualization"),XI(f,c.description()))}(n),i||n.error("Unrecognized renderer type: "+a);let o=i.handler||ob,u=e?i.renderer:i.headless;return n._renderer=u?rO(n,n._renderer,e,u):null,n._handler=function(c,f,m,g){let v=new g(c.loader(),CS(c,c.tooltip())).scene(c.scenegraph().root).initialize(m,fw(c),c);return f&&f.handlers().forEach(E=>{v.on(E.type,E.handler)}),v}(n,n._handler,e,o),n._redraw=!0,e&&r!=="none"&&(t=t?n._elBind=RS(n,t,!0):e.appendChild(wi("form",{class:"vega-bindings"})),n._bind.forEach(c=>{c.param.element&&r!=="container"&&(c.element=RS(n,c.param.element,!!c.param.input))}),n._bind.forEach(c=>{(function(f,m,g){if(!m)return;let v=g.param,E=g.state;E||(E=g.state={elements:null,active:!1,set:null,update:k=>{k!=f.signal(v.signal)&&f.runAsync(null,()=>{E.source=!0,f.signal(v.signal,k)})}},v.debounce&&(E.update=Zo(v.debounce,E.update))),(v.input==null&&v.element?RB:NB)(E,m,v,f),E.active||(f.on(f._signals[v.signal],null,()=>{E.source?E.source=!1:E.set(f.signal(v.signal))}),E.active=!0)})(n,c.element||t,c)})),n},toImageURL:async function(e,t){e!==Fu.Canvas&&e!==Fu.SVG&&e!==Fu.PNG&&F("Unrecognized image type: "+e);let n=await NS(this,e,t);return e===Fu.SVG?function(a,r){let i=new Blob([a],{type:r});return window.URL.createObjectURL(i)}(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await NS(this,Fu.Canvas,e,t)).canvas()},toSVG:async function(e){return(await NS(this,Fu.SVG,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:PB,signals:$B,recurse:!0})},setState:function(e){return this.runAsync(null,t=>{t._trigger=!1,t._runtime.setState(e)},t=>{t._trigger=!0}),this}});let UB="view",gw="[",bw="]",bO="{",yO="}",zB=":",vO=",",GB="@",jB=">",HB=/[[\]{}]/,qB={"*":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},EO,wO;function _O(e,t,n){return EO=t||UB,wO=n||qB,kO(e.trim()).map(OS)}function Yb(e,t,n,a,r){let i=e.length,o,u=0;for(;t<i;++t){if(o=e[t],!u&&o===n)return t;r&&r.indexOf(o)>=0?--u:a&&a.indexOf(o)>=0&&++u}return t}function kO(e){let t=[],n=e.length,a=0,r=0;for(;r<n;)r=Yb(e,r,vO,gw+bO,bw+yO),t.push(e.substring(a,r).trim()),a=++r;if(t.length===0)throw"Empty event selector: "+e;return t}function OS(e){return e[0]==="["?function(t){let n=t.length,a,r=1;if(r=Yb(t,r,bw,gw,bw),r===n)throw"Empty between selector: "+t;if(a=kO(t.substring(1,r)),a.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(r+1).trim(),t[0]!==jB)throw"Expected '>' after between selector: "+t;a=a.map(OS);let i=OS(t.slice(1).trim());return i.between?{between:a,stream:i}:(i.between=a,i)}(e):function(t){let n={source:EO},a=[],r,i,o=[0,0],u=0,c=0,f=t.length,m=0;if(t[f-1]===yO){if(m=t.lastIndexOf(bO),!(m>=0))throw"Unmatched right brace: "+t;try{o=function(g){let v=g.split(vO);if(!g.length||v.length>2)throw g;return v.map(E=>{let k=+E;if(k!=k)throw g;return k})}(t.substring(m+1,f-1))}catch{throw"Invalid throttle specification: "+t}f=(t=t.slice(0,m).trim()).length,m=0}if(!f)throw t;if(t[0]===GB&&(u=++m),r=Yb(t,m,zB),r<f&&(a.push(t.substring(c,r).trim()),c=m=++r),m=Yb(t,m,gw),m===f)a.push(t.substring(c,f).trim());else if(a.push(t.substring(c,m).trim()),i=[],c=++m,c===f)throw"Unmatched left bracket: "+t;for(;m<f;){if(m=Yb(t,m,bw),m===f)throw"Unmatched left bracket: "+t;if(i.push(t.substring(c,m).trim()),m<f-1&&t[++m]!==gw)throw"Expected left bracket: "+t;c=++m}if(!(f=a.length)||HB.test(a[f-1]))throw"Invalid event selector: "+t;return f>1?(n.type=a[1],u?n.markname=a[0].slice(1):function(g){return wO[g]}(a[0])?n.marktype=a[0]:n.source=a[0]):n.type=a[0],n.type.slice(-1)==="!"&&(n.consume=!0,n.type=n.type.slice(0,-1)),i!=null&&(n.filter=i),o[0]&&(n.throttle=o[0]),o[1]&&(n.debounce=o[1]),n}(e)}function WB(e){return ye(e)?e:{type:e||"pad"}}let Kb=e=>+e||0,VB=e=>({top:e,bottom:e,left:e,right:e});function YB(e){return ye(e)?e.signal?e:{top:Kb(e.top),bottom:Kb(e.bottom),left:Kb(e.left),right:Kb(e.right)}:VB(Kb(e))}let va=e=>ye(e)&&!Ee(e)?mt({},e):{value:e};function xO(e,t,n,a){return n!=null?(ye(n)&&!Ee(n)||Ee(n)&&n.length&&ye(n[0])?e.update[t]=n:e[a||"enter"][t]={value:n},1):0}function Fa(e,t,n){for(let a in t)xO(e,a,t[a]);for(let a in n)xO(e,a,n[a],"update")}function eh(e,t,n){for(let a in t)n&&nt(n,a)||(e[a]=mt(e[a]||{},t[a]));return e}function th(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}let DS="mark",MS="frame",LS="scope",KB="axis",XB="axis-domain",ZB="axis-grid",JB="axis-label",QB="axis-tick",eU="axis-title",tU="legend",nU="legend-band",aU="legend-entry",rU="legend-gradient",SO="legend-label",iU="legend-symbol",oU="legend-title",sU="title",lU="title-text",uU="title-subtitle";function FS(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}let AO=e=>Ft(e)?st(e):e.signal?`(${e.signal})`:TO(e);function yw(e){if(e.gradient!=null)return function(n){let a=[n.start,n.stop,n.count].map(r=>r==null?null:st(r));for(;a.length&&$e(a)==null;)a.pop();return a.unshift(AO(n.gradient)),`gradient(${a.join(",")})`}(e);let t=e.signal?`(${e.signal})`:e.color?function(n){return n.c?vw("hcl",n.h,n.c,n.l):n.h||n.s?vw("hsl",n.h,n.s,n.l):n.l||n.a?vw("lab",n.l,n.a,n.b):n.r||n.g||n.b?vw("rgb",n.r,n.g,n.b):null}(e.color):e.field!=null?TO(e.field):e.value!==void 0?st(e.value):void 0;return e.scale!=null&&(t=function(n,a){let r=AO(n.scale);return n.range!=null?a=`lerp(_range(${r}), ${+n.range})`:(a!==void 0&&(a=`_scale(${r}, ${a})`),n.band&&(a=(a?a+"+":"")+`_bandwidth(${r})`+(+n.band==1?"":"*"+Ew(n.band)),n.extra&&(a=`(datum.extra ? _scale(${r}, datum.extra.value) : ${a})`)),a==null&&(a="0")),a}(e,t)),t===void 0&&(t=null),e.exponent!=null&&(t=`pow(${t},${Ew(e.exponent)})`),e.mult!=null&&(t+=`*${Ew(e.mult)}`),e.offset!=null&&(t+=`+${Ew(e.offset)}`),e.round&&(t=`round(${t})`),t}let vw=(e,t,n,a)=>`(${e}(${[t,n,a].map(yw).join(",")})+'')`;function Ew(e){return ye(e)?"("+yw(e)+")":e}function TO(e){return CO(ye(e)?e:{datum:e})}function CO(e){let t,n,a;if(e.signal)t="datum",a=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(a=e.parent,t+=".datum"):a=e.group}else e.datum?(t="datum",a=e.datum):F("Invalid field reference: "+st(e));return e.signal||(a=Ft(a)?j(a).map(st).join("]["):CO(a)),t+"["+a+"]"}function RO(e,t,n,a,r,i){let o={};(i=i||{}).encoders={$encode:o},e=function(u,c,f,m,g){let v={},E={},k,_,R,I;for(_ in _="lineBreak",c!=="text"||g[_]==null||th(_,u)||FS(v,_,g[_]),(f=="legend"||String(f).startsWith("axis"))&&(f=null),I=f===MS?g.group:f===DS?mt({},g.mark,g[c]):null,I)R=th(_,u)||(_==="fill"||_==="stroke")&&(th("fill",u)||th("stroke",u)),R||FS(v,_,I[_]);for(_ in Ne(m).forEach(N=>{let P=g.style&&g.style[N];for(let M in P)th(M,u)||FS(v,M,P[M])}),u=mt({},u),v)I=v[_],I.signal?(k=k||{})[_]=I:E[_]=I;return u.enter=mt(E,u.enter),k&&(u.update=mt(k,u.update)),u}(e,t,n,a,r.config);for(let u in e)o[u]=cU(e[u],t,i,r);return i}function cU(e,t,n,a){let r={},i={};for(let u in e)e[u]!=null&&(r[u]=dU((o=e[u],Ee(o)?function(c){let f="";return c.forEach(m=>{let g=yw(m);f+=m.test?`(${m.test})?${g}:`:g}),$e(f)===":"&&(f+="null"),f}(o):yw(o)),a,n,i));var o;return{$expr:{marktype:t,channels:r},$fields:Object.keys(i),$output:Object.keys(e)}}function dU(e,t,n,a){let r=Ms(e,t);return r.$fields.forEach(i=>a[i]=1),mt(n,r.$params),r.$expr}let fU="outer",pU=["value","update","init","react","bind"];function NO(e,t){F(e+' for "outer" push: '+st(t))}function IO(e,t){let n=e.name;if(e.push===fU)t.signals[n]||NO("No prior signal definition",n),pU.forEach(a=>{e[a]!==void 0&&NO("Invalid property ",a)});else{let a=t.addSignal(n,e.value);e.react===!1&&(a.react=!1),e.bind&&t.addBinding(n,e.bind)}}function PS(e,t,n,a){this.id=-1,this.type=e,this.value=t,this.params=n,a&&(this.parent=a)}function ww(e,t,n,a){return new PS(e,t,n,a)}function _w(e,t){return ww("operator",e,t)}function pt(e){let t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function Xb(e,t){return t?{$field:e,$name:t}:{$field:e}}let $S=Xb("key");function OO(e,t){return{$compare:e,$order:t}}let hU="descending";function kw(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}let BS="scope",US="view";function ua(e){return e&&e.signal}function xw(e){if(ua(e))return!0;if(ye(e)){for(let t in e)if(xw(e[t]))return!0}return!1}function Wo(e,t){return e??t}function kd(e){return e&&e.signal||e}let DO="timer";function Zb(e,t){return(e.merge?mU:e.stream?gU:e.type?bU:F("Invalid stream specification: "+st(e)))(e,t)}function mU(e,t){let n=zS({merge:e.merge.map(a=>Zb(a,t))},e,t);return t.addStream(n).id}function gU(e,t){let n=zS({stream:Zb(e.stream,t)},e,t);return t.addStream(n).id}function bU(e,t){let n;e.type===DO?(n=t.event(DO,e.throttle),e={between:e.between,filter:e.filter}):n=t.event(function(r){return r===BS?US:r||US}(e.source),e.type);let a=zS({stream:n},e,t);return Object.keys(a).length===1?n:t.addStream(a).id}function zS(e,t,n){let a=t.between;return a&&(a.length!==2&&F('Stream "between" parameter must have 2 entries: '+st(t)),e.between=[Zb(a[0],n),Zb(a[1],n)]),a=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&a.push(function(r,i,o){let u="event.item";return u+(r&&r!=="*"?"&&"+u+".mark.marktype==='"+r+"'":"")+(o?"&&"+u+".mark.role==='"+o+"'":"")+(i?"&&"+u+".mark.name==='"+i+"'":"")}(t.marktype,t.markname,t.markrole)),t.source===BS&&a.push("inScope(event.item)"),a.length&&(e.filter=Ms("("+a.join(")&&(")+")",n).$expr),(a=t.throttle)!=null&&(e.throttle=+a),(a=t.debounce)!=null&&(e.debounce=+a),t.consume&&(e.consume=!0),e}let yU={code:"_.$value",ast:{type:"Identifier",value:"value"}};function vU(e,t,n){let a=e.encode,r={target:n},i=e.events,o=e.update,u=[];i||F("Signal update missing events specification."),Ft(i)&&(i=_O(i,t.isSubscope()?BS:US)),i=Ne(i).filter(c=>c.signal||c.scale?(u.push(c),0):1),u.length>1&&(u=[EU(u)]),i.length&&u.push(i.length>1?{merge:i}:i[0]),a!=null&&(o&&F("Signal encode and update are mutually exclusive."),o="encode(item(),"+st(a)+")"),r.update=Ft(o)?Ms(o,t):o.expr!=null?Ms(o.expr,t):o.value!=null?o.value:o.signal!=null?{$expr:yU,$params:{$value:t.signalRef(o.signal)}}:F("Invalid signal update specification."),e.force&&(r.options={force:!0}),u.forEach(c=>t.addUpdate(mt(function(f,m){return{source:f.signal?m.signalRef(f.signal):f.scale?m.scaleRef(f.scale):Zb(f,m)}}(c,t),r)))}function EU(e){return{signal:"["+e.map(t=>t.scale?'scale("'+t.scale+'")':t.signal)+"]"}}let an=e=>(t,n,a)=>ww(e,n,t||void 0,a),MO=an("aggregate"),wU=an("axisticks"),LO=an("bound"),Vo=an("collect"),FO=an("compare"),_U=an("datajoin"),PO=an("encode"),kU=an("expression"),xU=an("facet"),SU=an("field"),AU=an("key"),TU=an("legendentries"),CU=an("load"),RU=an("mark"),NU=an("multiextent"),IU=an("multivalues"),OU=an("overlap"),DU=an("params"),$O=an("prefacet"),MU=an("projection"),LU=an("proxy"),FU=an("relay"),BO=an("render"),PU=an("scale"),xd=an("sieve"),$U=an("sortitems"),UO=an("viewlayout"),BU=an("values"),UU=0,zO={min:"min",max:"max",count:"sum"};function zU(e,t){let n=t.getScale(e.name).params,a;for(a in n.domain=GO(e.domain,e,t),e.range!=null&&(n.range=HO(e,t,n)),e.interpolate!=null&&function(r,i){i.interpolate=io(r.type||r),r.gamma!=null&&(i.interpolateGamma=io(r.gamma))}(e.interpolate,n),e.nice!=null&&(n.nice=function(r){return ye(r)?{interval:io(r.interval),step:io(r.step)}:io(r)}(e.nice)),e.bins!=null&&(n.bins=function(r,i){return r.signal||Ee(r)?Sw(r,i):i.objectProperty(r)}(e.bins,t)),e)nt(n,a)||a==="name"||(n[a]=io(e[a],t))}function io(e,t){return ye(e)?e.signal?t.signalRef(e.signal):F("Unsupported object: "+st(e)):e}function Sw(e,t){return e.signal?t.signalRef(e.signal):e.map(n=>io(n,t))}function Aw(e){F("Can not find data set: "+st(e))}function GO(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(Ee(e)?GU:e.fields?HU:jU)(e,t,n);t.domainMin==null&&t.domainMax==null||F("No scale domain defined for domainMin/domainMax to override.")}function GU(e,t,n){return e.map(a=>io(a,n))}function jU(e,t,n){let a=n.getData(e.data);return a||Aw(e.data),Su(t.type)?a.valuesRef(n,e.field,jO(e.sort,!1)):bv(t.type)?a.domainRef(n,e.field):a.extentRef(n,e.field)}function HU(e,t,n){let a=e.data,r=e.fields.reduce((i,o)=>(o=Ft(o)?{data:a,field:o}:Ee(o)||o.signal?function(u,c){let f="_:vega:_"+UU++,m=Vo({});if(Ee(u))m.value={$ingest:u};else if(u.signal){let g="setdata("+st(f)+","+u.signal+")";m.params.input=c.signalRef(g)}return c.addDataPipeline(f,[m,xd({})]),{data:f,field:"data"}}(o,n):o,i.push(o),i),[]);return(Su(t.type)?qU:bv(t.type)?WU:VU)(e,n,r)}function qU(e,t,n){let a=jO(e.sort,!0),r,i,o=n.map(f=>{let m=t.getData(f.data);return m||Aw(f.data),m.countsRef(t,f.field,a)}),u={groupby:$S,pulse:o};a&&(r=a.op||"count",i=a.field?kw(r,a.field):"count",u.ops=[zO[r]],u.fields=[t.fieldRef(i)],u.as=[i]),r=t.add(MO(u));let c=t.add(Vo({pulse:pt(r)}));return i=t.add(BU({field:$S,sort:t.sortRef(a),pulse:pt(c)})),pt(i)}function jO(e,t){return e&&(e.field||e.op?e.field||e.op==="count"?t&&e.field&&e.op&&!zO[e.op]&&F("Multiple domain scales can not be sorted using "+e.op):F("No field provided for sort aggregate op: "+e.op):ye(e)?e.field="key":e={field:"key"}),e}function WU(e,t,n){let a=n.map(r=>{let i=t.getData(r.data);return i||Aw(r.data),i.domainRef(t,r.field)});return pt(t.add(IU({values:a})))}function VU(e,t,n){let a=n.map(r=>{let i=t.getData(r.data);return i||Aw(r.data),i.extentRef(t,r.field)});return pt(t.add(NU({extents:a})))}function HO(e,t,n){let a=t.config.range,r=e.range;if(r.signal)return t.signalRef(r.signal);if(Ft(r)){if(a&&nt(a,r))return HO(e=mt({},e,{range:a[r]}),t,n);r==="width"?r=[0,{signal:"width"}]:r==="height"?r=Su(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:F("Unrecognized scale range value: "+st(r))}else{if(r.scheme)return n.scheme=Ee(r.scheme)?Sw(r.scheme,t):io(r.scheme,t),r.extent&&(n.schemeExtent=Sw(r.extent,t)),void(r.count&&(n.schemeCount=io(r.count,t)));if(r.step)return void(n.rangeStep=io(r.step,t));if(Su(e.type)&&!Ee(r))return GO(r,e,t);Ee(r)||F("Unsupported range type: "+st(r))}return r.map(i=>(Ee(i)?Sw:io)(i,t))}function GS(e,t,n){return Ee(e)?e.map(a=>GS(a,t,n)):ye(e)?e.signal?n.signalRef(e.signal):t==="fit"?e:F("Unsupported parameter object: "+st(e)):e}let Yo="top",nh="left",ah="right",Wu="bottom",qO="center",YU="vertical",KU="start",XU="end",jS="index",HS="label",ZU="offset",rh="perc",JU="perc2",oo="value",Jb="guide-label",qS="guide-title",QU="group-title",e3="group-subtitle",WO="symbol",Tw="gradient",WS="discrete",VS="size",YS=[VS,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],Qb={name:1,style:1,interactive:1},zt={value:0},so={value:1},Cw="group",VO="rect",KS="rule",t3="symbol",Sd="text";function e0(e){return e.type=Cw,e.interactive=e.interactive||!1,e}function Wr(e,t){let n=(a,r)=>Wo(e[a],Wo(t[a],r));return n.isVertical=a=>YU===Wo(e.direction,t.direction||(a?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>Wo(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>Wo(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>Wo(e.columns,Wo(t.columns,+n.isVertical(!0))),n}function YO(e,t){let n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function Rw(e,t,n){return`item.anchor === '${KU}' ? ${e} : item.anchor === '${XU}' ? ${t} : ${n}`}let XS=Rw(st(nh),st(ah),st(qO));function KO(e,t){return t?e?ye(e)?Object.assign({},e,{offset:KO(e.offset,t)}):{value:e,offset:t}:t:e}function _i(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=eh(e.encode,t,Qb)):e.interactive=!1,e}function n3(e,t,n,a){let r=Wr(e,n),i=r.isVertical(),o=r.gradientThickness(),u=r.gradientLength(),c,f,m,g,v;i?(f=[0,1],m=[0,0],g=o,v=u):(f=[0,0],m=[1,0],g=u,v=o);let E={enter:c={opacity:zt,x:zt,y:zt,width:va(g),height:va(v)},update:mt({},c,{opacity:so,fill:{gradient:t,start:f,stop:m}}),exit:{opacity:zt}};return Fa(E,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),_i({type:VO,role:rU,encode:E},a)}function a3(e,t,n,a,r){let i=Wr(e,n),o=i.isVertical(),u=i.gradientThickness(),c=i.gradientLength(),f,m,g,v,E="";o?(f="y",g="y2",m="x",v="width",E="1-"):(f="x",g="x2",m="y",v="height");let k={opacity:zt,fill:{scale:t,field:oo}};k[f]={signal:E+"datum."+rh,mult:c},k[m]=zt,k[g]={signal:E+"datum."+JU,mult:c},k[v]=va(u);let _={enter:k,update:mt({},k,{opacity:so}),exit:{opacity:zt}};return Fa(_,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),_i({type:VO,role:nU,key:oo,from:r,encode:_},a)}let r3=`datum.${rh}<=0?"${nh}":datum.${rh}>=1?"${ah}":"${qO}"`,i3=`datum.${rh}<=0?"${Wu}":datum.${rh}>=1?"${Yo}":"middle"`;function XO(e,t,n,a){let r=Wr(e,t),i=r.isVertical(),o=va(r.gradientThickness()),u=r.gradientLength(),c,f,m,g,v=r("labelOverlap"),E="",k={enter:c={opacity:zt},update:f={opacity:so,text:{field:HS}},exit:{opacity:zt}};return Fa(k,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:Wo(e.labelLimit,t.gradientLabelLimit)}),i?(c.align={value:"left"},c.baseline=f.baseline={signal:i3},m="y",g="x",E="1-"):(c.align=f.align={signal:r3},c.baseline={value:"top"},m="x",g="y"),c[m]=f[m]={signal:E+"datum."+rh,mult:u},c[g]=f[g]=o,o.offset=Wo(e.labelOffset,t.gradientLabelOffset)||0,v=v?{separation:r("labelSeparation"),method:v,order:"datum."+jS}:void 0,_i({type:Sd,role:SO,style:Jb,key:oo,from:a,encode:k,overlap:v},n)}function o3(e,t,n,a,r){let i=Wr(e,t),o=n.entries,u=!(!o||!o.interactive),c=o?o.name:void 0,f=i("clipHeight"),m=i("symbolOffset"),g={data:"value"},v=`(${r}) ? datum.${ZU} : datum.${VS}`,E=f?va(f):{field:VS},k=`datum.${jS}`,_=`max(1, ${r})`,R,I,N,P,M;E.mult=.5,R={enter:I={opacity:zt,x:{signal:v,mult:.5,offset:m},y:E},update:N={opacity:so,x:I.x,y:I.y},exit:{opacity:zt}};let U=null,z=null;e.fill||(U=t.symbolBaseFillColor,z=t.symbolBaseStrokeColor),Fa(R,{fill:i("symbolFillColor",U),shape:i("symbolType"),size:i("symbolSize"),stroke:i("symbolStrokeColor",z),strokeDash:i("symbolDash"),strokeDashOffset:i("symbolDashOffset"),strokeWidth:i("symbolStrokeWidth")},{opacity:i("symbolOpacity")}),YS.forEach(ne=>{e[ne]&&(N[ne]=I[ne]={scale:e[ne],field:oo})});let q=_i({type:t3,role:iU,key:oo,from:g,clip:!!f||void 0,encode:R},n.symbols),Y=va(m);Y.offset=i("labelOffset"),R={enter:I={opacity:zt,x:{signal:v,offset:Y},y:E},update:N={opacity:so,text:{field:HS},x:I.x,y:I.y},exit:{opacity:zt}},Fa(R,{align:i("labelAlign"),baseline:i("labelBaseline"),fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:i("labelLimit")});let K=_i({type:Sd,role:SO,style:Jb,key:oo,from:g,encode:R},n.labels);return R={enter:{noBound:{value:!f},width:zt,height:f?va(f):zt,opacity:zt},exit:{opacity:zt},update:N={opacity:so,row:{signal:null},column:{signal:null}}},i.isVertical(!0)?(P=`ceil(item.mark.items.length / ${_})`,N.row.signal=`${k}%${P}`,N.column.signal=`floor(${k} / ${P})`,M={field:["row",k]}):(N.row.signal=`floor(${k} / ${_})`,N.column.signal=`${k} % ${_}`,M={field:k}),N.column.signal=`(${r})?${N.column.signal}:${k}`,e0({role:LS,from:a={facet:{data:a,name:"value",groupby:jS}},encode:eh(R,o,Qb),marks:[q,K],name:c,interactive:u,sort:M})}let ZS='item.orient === "left"',JS='item.orient === "right"',Nw=`(${ZS} || ${JS})`,s3=`datum.vgrad && ${Nw}`,l3=Rw('"top"','"bottom"','"middle"'),u3=`datum.vgrad && ${JS} ? (${Rw('"right"','"left"','"center"')}) : (${Nw} && !(datum.vgrad && ${ZS})) ? "left" : ${XS}`,c3=`item._anchor || (${Nw} ? "middle" : "start")`,d3=`${s3} ? (${ZS} ? -90 : 90) : 0`,f3=`${Nw} ? (datum.vgrad ? (${JS} ? "bottom" : "top") : ${l3}) : "top"`;function p3(e,t){let n;return ye(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+ZO(e.path)+")":e.sphere&&(n="geoShape("+ZO(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function ZO(e){return ye(e)&&e.signal?e.signal:st(e)}function JO(e){let t=e.role||"";return t.indexOf("axis")&&t.indexOf("legend")&&t.indexOf("title")?e.type===Cw?LS:t||DS:t}function h3(e){return{marktype:e.type,name:e.name||void 0,role:e.role||JO(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function m3(e,t){return e&&e.signal?t.signalRef(e.signal):e!==!1}function QS(e,t){let n=im(e.type);n||F("Unrecognized transform type: "+st(e.type));let a=ww(n.type.toLowerCase(),null,QO(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(a)),a.metadata=n.metadata||{},a}function QO(e,t,n){let a={},r=e.params.length;for(let i=0;i<r;++i){let o=e.params[i];a[o.name]=g3(o,t,n)}return a}function g3(e,t,n){let a=e.type,r=t[e.name];return a==="index"?function(i,o,u){return Ft(o.from)||F('Lookup "from" parameter must be a string literal.'),u.getData(o.from).lookupRef(u,o.key)}(0,t,n):r!==void 0?a==="param"?function(i,o,u){let c=o[i.name];return i.array?(Ee(c)||F("Expected an array of sub-parameters. Instead: "+st(c)),c.map(f=>tD(i,f,u))):tD(i,c,u)}(e,t,n):a==="projection"?n.projectionRef(t[e.name]):e.array&&!ua(r)?r.map(i=>eD(e,i,n)):eD(e,r,n):void(e.required&&F("Missing required "+st(t.type)+" parameter: "+st(e.name)))}function eD(e,t,n){let a=e.type;if(ua(t))return nD(a)?F("Expression references can not be signals."):eA(a)?n.fieldRef(t):aD(a)?n.compareRef(t):n.signalRef(t.signal);{let r=e.expr||eA(a);return r&&b3(t)?n.exprRef(t.expr,t.as):r&&y3(t)?Xb(t.field,t.as):nD(a)?Ms(t,n):v3(a)?pt(n.getData(t).values):eA(a)?Xb(t):aD(a)?n.compareRef(t):t}}function tD(e,t,n){let a=e.params.length,r;for(let o=0;o<a;++o){r=e.params[o];for(let u in r.key)if(r.key[u]!==t[u]){r=null;break}if(r)break}r||F("Unsupported parameter: "+st(t));let i=mt(QO(r,t,n),r.key);return pt(n.add(DU(i)))}let b3=e=>e&&e.expr,y3=e=>e&&e.field,v3=e=>e==="data",nD=e=>e==="expr",eA=e=>e==="field",aD=e=>e==="compare";function Iw(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:pt(t.getData(e.data).output)}function Ad(e,t,n,a,r){this.scope=e,this.input=t,this.output=n,this.values=a,this.aggregate=r,this.index={}}function rD(e){return Ft(e)?e:null}function iD(e,t,n){let a=kw(n.op,n.field),r;if(t.ops){for(let i=0,o=t.as.length;i<o;++i)if(t.as[i]===a)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((r=n.op.signal)?e.signalRef(r):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(a))}function t0(e,t,n,a,r,i,o){let u=t[n]||(t[n]={}),c=function(v){return ye(v)?(v.order===hU?"-":"+")+kw(v.op,v.field):""}(i),f,m,g=rD(r);if(g!=null&&(e=t.scope,g+=c?"|"+c:"",f=u[g]),!f){let v=i?{field:$S,pulse:t.countsRef(e,r,i)}:{field:e.fieldRef(r),pulse:pt(t.output)};c&&(v.sort=e.sortRef(i)),m=e.add(ww(a,void 0,v)),o&&(t.index[r]=m),f=pt(m),g!=null&&(u[g]=f)}return f}function oD(e,t,n){let a=e.remove,r=e.insert,i=e.toggle,o=e.modify,u=e.values,c=t.add(_w()),f=Ms("if("+e.trigger+',modify("'+n+'",'+[r,a,i,o,u].map(m=>m??"null").join(",")+"),0)",t);c.update=f.$expr,c.params=f.$params}function Ow(e,t){let n=JO(e),a=e.type===Cw,r=e.from&&e.from.facet,i=e.overlap,o,u,c,f,m,g,v,E=e.layout||n===LS||n===MS,k=n===DS||E||r,_=function(z,q,Y){let K,ne,J,re,oe;return z?(K=z.facet)&&(q||F("Only group marks can be faceted."),K.field!=null?re=oe=Iw(K,Y):(z.data?oe=pt(Y.getData(z.data).aggregate):(J=QS(mt({type:"aggregate",groupby:Ne(K.groupby)},K.aggregate),Y),J.params.key=Y.keyRef(K.groupby),J.params.pulse=Iw(K,Y),re=oe=pt(Y.add(J))),ne=Y.keyRef(K.groupby,!0))):re=pt(Y.add(Vo(null,[{}]))),re||(re=Iw(z,Y)),{key:ne,pulse:re,parent:oe}}(e.from,a,t);u=t.add(_U({key:_.key||(e.key?Xb(e.key):void 0),pulse:_.pulse,clean:!a}));let R=pt(u);u=c=t.add(Vo({pulse:R})),u=t.add(RU({markdef:h3(e),interactive:m3(e.interactive,t),clip:p3(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:pt(u)}));let I=pt(u);u=f=t.add(PO(RO(e.encode,e.type,n,e.style,t,{mod:!1,pulse:I}))),u.params.parent=t.encode(),e.transform&&e.transform.forEach(z=>{let q=QS(z,t),Y=q.metadata;(Y.generates||Y.changes)&&F("Mark transforms should not generate new data."),Y.nomod||(f.params.mod=!0),q.params.pulse=pt(u),t.add(u=q)}),e.sort&&(u=t.add($U({sort:t.compareRef(e.sort),pulse:pt(u)})));let N=pt(u);(r||E)&&(E=t.add(UO({layout:t.objectProperty(e.layout),legends:t.legends,mark:I,pulse:N})),g=pt(E));let P=t.add(LO({mark:I,pulse:g||N}));v=pt(P),a&&(k&&(o=t.operators,o.pop(),E&&o.pop()),t.pushState(N,g||v,R),r?function(z,q,Y){let K=z.from.facet,ne=K.name,J=Iw(K,q),re;K.name||F("Facet must have a name: "+st(K)),K.data||F("Facet must reference a data set: "+st(K)),K.field?re=q.add($O({field:q.fieldRef(K.field),pulse:J})):K.groupby?re=q.add(xU({key:q.keyRef(K.groupby),group:pt(q.proxy(Y.parent)),pulse:J})):F("Facet must specify groupby or field: "+st(K));let oe=q.fork(),ue=oe.add(Vo()),ce=oe.add(xd({pulse:pt(ue)}));oe.addData(ne,new Ad(oe,ue,ue,ce)),oe.addSignal("parent",null),re.params.subflow={$subflow:oe.parse(z).toRuntime()}}(e,t,_):k?function(z,q,Y){let K=q.add($O({pulse:Y.pulse})),ne=q.fork();ne.add(xd()),ne.addSignal("parent",null),K.params.subflow={$subflow:ne.parse(z).toRuntime()}}(e,t,_):t.parse(e),t.popState(),k&&(E&&o.push(E),o.push(P))),i&&(v=function(z,q,Y){let K=z.method,ne=z.bound,J=z.separation,re={separation:ua(J)?Y.signalRef(J.signal):J,method:ua(K)?Y.signalRef(K.signal):K,pulse:q};if(z.order&&(re.sort=Y.compareRef({field:z.order})),ne){let oe=ne.tolerance;re.boundTolerance=ua(oe)?Y.signalRef(oe.signal):+oe,re.boundScale=Y.scaleRef(ne.scale),re.boundOrient=ne.orient}return pt(Y.add(OU(re)))}(i,v,t));let M=t.add(BO({pulse:v})),U=t.add(xd({pulse:pt(M)},void 0,t.parent()));e.name!=null&&(m=e.name,t.addData(m,new Ad(t,c,M,U)),e.on&&e.on.forEach(z=>{(z.insert||z.remove||z.toggle)&&F("Marks only support modify triggers."),oD(z,t,m)}))}function E3(e,t){let n=t.config.legend,a=e.encode||{},r=Wr(e,n),i=a.legend||{},o=i.name||void 0,u=i.interactive,c=i.style,f={},m,g,v,E=0;YS.forEach(N=>e[N]?(f[N]=e[N],E=E||e[N]):0),E||F("Missing valid scale for legend.");let k=function(N,P){let M=N.type||WO;return N.type||function(U){return YS.reduce((z,q)=>z+(U[q]?1:0),0)}(N)!==1||!N.fill&&!N.stroke||(M=zg(P)?Tw:Gg(P)?WS:WO),M!==Tw?M:Gg(P)?WS:Tw}(e,t.scaleType(E)),_={title:e.title!=null,scales:f,type:k,vgrad:k!=="symbol"&&r.isVertical()},R=pt(t.add(Vo(null,[_]))),I=pt(t.add(TU(g={type:k,scale:t.scaleRef(E),count:t.objectProperty(r("tickCount")),limit:t.property(r("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return k===Tw?(v=[n3(e,E,n,a.gradient),XO(e,n,a.labels,I)],g.count=g.count||t.signalRef(`max(2,2*floor((${kd(r.gradientLength())})/100))`)):k===WS?v=[a3(e,E,n,a.gradient,I),XO(e,n,a.labels,I)]:(m=function(N,P){let M=Wr(N,P);return{align:M("gridAlign"),columns:M.entryColumns(),center:{row:!0,column:!1},padding:{row:M("rowPadding"),column:M("columnPadding")}}}(e,n),v=[o3(e,n,a,I,kd(m.columns))],g.size=function(N,P,M){let U=kd(sD("size",N,M)),z=kd(sD("strokeWidth",N,M)),q=kd(function(Y,K,ne){return YO("fontSize",Y)||function(J,re,oe){let ue=re.config.style[oe];return ue&&ue[J]}("fontSize",K,ne)}(M[1].encode,P,Jb));return Ms(`max(ceil(sqrt(${U})+${z}),${q})`,P)}(e,t,v[0].marks)),v=[e0({role:aU,from:R,encode:{enter:{x:{value:0},y:{value:0}}},marks:v,layout:m,interactive:u})],_.title&&v.push(function(N,P,M,U){let z=Wr(N,P),q={enter:{opacity:zt},update:{opacity:so,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:zt}};return Fa(q,{orient:z("titleOrient"),_anchor:z("titleAnchor"),anchor:{signal:c3},angle:{signal:d3},align:{signal:u3},baseline:{signal:f3},text:N.title,fill:z("titleColor"),fillOpacity:z("titleOpacity"),font:z("titleFont"),fontSize:z("titleFontSize"),fontStyle:z("titleFontStyle"),fontWeight:z("titleFontWeight"),limit:z("titleLimit"),lineHeight:z("titleLineHeight")},{align:z("titleAlign"),baseline:z("titleBaseline")}),_i({type:Sd,role:oU,style:qS,from:U,encode:q},M)}(e,n,a.title,R)),Ow(e0({role:tU,from:R,encode:eh(w3(r,e,n),i,Qb),marks:v,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:o,interactive:u,style:c}),t)}function w3(e,t,n){let a={enter:{},update:{}};return Fa(a,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),a}function sD(e,t,n){return t[e]?`scale("${t[e]}",datum)`:YO(e,n[0].encode)}Ad.fromEntries=function(e,t){let n=t.length,a=t[n-1],r=t[n-2],i=t[0],o=null,u=1;for(i&&i.type==="load"&&(i=t[1]),e.add(t[0]);u<n;++u)t[u].params.pulse=pt(t[u-1]),e.add(t[u]),t[u].type==="aggregate"&&(o=t[u]);return new Ad(e,i,r,a,o)},Ad.prototype={countsRef(e,t,n){let a=this,r=a.counts||(a.counts={}),i=rD(t),o,u,c;return i!=null&&(e=a.scope,o=r[i]),o?n&&n.field&&iD(e,o.agg.params,n):(c={groupby:e.fieldRef(t,"key"),pulse:pt(a.output)},n&&n.field&&iD(e,c,n),u=e.add(MO(c)),o=e.add(Vo({pulse:pt(u)})),o={agg:u,ref:pt(o)},i!=null&&(r[i]=o)),o.ref},tuplesRef(){return pt(this.values)},extentRef(e,t){return t0(e,this,"extent","extent",t,!1)},domainRef(e,t){return t0(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return t0(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return t0(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return t0(e,this,"indata","tupleindex",t,!0,!0)}};let _3=`item.orient==="${nh}"?-90:item.orient==="${ah}"?90:0`;function k3(e,t){let n=Wr(e=Ft(e)?{text:e}:e,t.config.title),a=e.encode||{},r=a.group||{},i=r.name||void 0,o=r.interactive,u=r.style,c=[],f=pt(t.add(Vo(null,[{}])));return c.push(function(m,g,v,E){let k={value:0},_=m.text,R={enter:{opacity:k},update:{opacity:{value:1}},exit:{opacity:k}};return Fa(R,{text:_,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:g("dx"),dy:g("dy"),fill:g("color"),font:g("font"),fontSize:g("fontSize"),fontStyle:g("fontStyle"),fontWeight:g("fontWeight"),lineHeight:g("lineHeight")},{align:g("align"),angle:g("angle"),baseline:g("baseline")}),_i({type:Sd,role:lU,style:QU,from:E,encode:R},v)}(e,n,function(m){let g=m.encode;return g&&g.title||mt({name:m.name,interactive:m.interactive,style:m.style},g)}(e),f)),e.subtitle&&c.push(function(m,g,v,E){let k={value:0},_=m.subtitle,R={enter:{opacity:k},update:{opacity:{value:1}},exit:{opacity:k}};return Fa(R,{text:_,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:g("dx"),dy:g("dy"),fill:g("subtitleColor"),font:g("subtitleFont"),fontSize:g("subtitleFontSize"),fontStyle:g("subtitleFontStyle"),fontWeight:g("subtitleFontWeight"),lineHeight:g("subtitleLineHeight")},{align:g("align"),angle:g("angle"),baseline:g("baseline")}),_i({type:Sd,role:uU,style:e3,from:E,encode:R},v)}(e,n,a.subtitle,f)),Ow(e0({role:sU,from:f,encode:x3(n,r),marks:c,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:i,interactive:o,style:u}),t)}function x3(e,t){let n={enter:{},update:{}};return Fa(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:XS},angle:{signal:_3},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),eh(n,t,Qb)}function S3(e,t){let n=[];e.transform&&e.transform.forEach(a=>{n.push(QS(a,t))}),e.on&&e.on.forEach(a=>{oD(a,t,e.name)}),t.addDataPipeline(e.name,function(a,r,i){let o=[],u,c,f,m,g,v=null,E=!1,k=!1;for(a.values?ua(a.values)||xw(a.format)?(o.push(lD(r,a)),o.push(v=Td())):o.push(v=Td({$ingest:a.values,$format:a.format})):a.url?xw(a.url)||xw(a.format)?(o.push(lD(r,a)),o.push(v=Td())):o.push(v=Td({$request:a.url,$format:a.format})):a.source&&(v=u=Ne(a.source).map(_=>pt(r.getData(_).output)),o.push(null)),c=0,f=i.length;c<f;++c)m=i[c],g=m.metadata,v||g.source||o.push(v=Td()),o.push(m),g.generates&&(k=!0),g.modifies&&!k&&(E=!0),g.source?v=m:g.changes&&(v=null);return u&&(f=u.length-1,o[0]=FU({derive:E,pulse:f?u:u[0]}),(E||f)&&o.splice(1,0,Td())),v||o.push(Td()),o.push(xd({})),o}(e,t,n))}function Td(e){let t=Vo({},e);return t.metadata={source:!0},t}function lD(e,t){return CU({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}let uD=e=>e===Wu||e===Yo,Dw=(e,t,n)=>ua(e)?R3(e.signal,t,n):e===nh||e===Yo?t:n,Ea=(e,t,n)=>ua(e)?T3(e.signal,t,n):uD(e)?t:n,Ko=(e,t,n)=>ua(e)?C3(e.signal,t,n):uD(e)?n:t,cD=(e,t,n)=>ua(e)?N3(e.signal,t,n):e===Yo?{value:t}:{value:n},A3=(e,t,n)=>ua(e)?I3(e.signal,t,n):e===ah?{value:t}:{value:n},T3=(e,t,n)=>dD(`${e} === '${Yo}' || ${e} === '${Wu}'`,t,n),C3=(e,t,n)=>dD(`${e} !== '${Yo}' && ${e} !== '${Wu}'`,t,n),R3=(e,t,n)=>tA(`${e} === '${nh}' || ${e} === '${Yo}'`,t,n),N3=(e,t,n)=>tA(`${e} === '${Yo}'`,t,n),I3=(e,t,n)=>tA(`${e} === '${ah}'`,t,n),dD=(e,t,n)=>(t=t!=null?va(t):t,n=n!=null?va(n):n,fD(t)&&fD(n)?{signal:`${e} ? (${t=t?t.signal||st(t.value):null}) : (${n=n?n.signal||st(n.value):null})`}:[mt({test:e},t)].concat(n||[])),fD=e=>e==null||Object.keys(e).length===1,tA=(e,t,n)=>({signal:`${e} ? (${ih(t)}) : (${ih(n)})`}),O3=(e,t,n,a,r)=>({signal:(a!=null?`${e} === '${nh}' ? (${ih(a)}) : `:"")+(n!=null?`${e} === '${Wu}' ? (${ih(n)}) : `:"")+(r!=null?`${e} === '${ah}' ? (${ih(r)}) : `:"")+(t!=null?`${e} === '${Yo}' ? (${ih(t)}) : `:"")+"(null)"}),ih=e=>ua(e)?e.signal:e==null?null:st(e),D3=(e,t)=>t===0?0:ua(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},oh=(e,t)=>{let n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function sh(e,t,n,a){let r;if(t&&nt(t,e))return t[e];if(nt(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":r="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":r=e[5].toLowerCase()+e.slice(6)}return a[qS][r]}if(e.startsWith("label")){switch(e){case"labelColor":r="fill";break;case"labelFont":case"labelFontSize":r=e[5].toLowerCase()+e.slice(6)}return a[Jb][r]}return null}function pD(e){let t={};for(let n of e)if(n)for(let a in n)t[a]=1;return Object.keys(t)}function hD(e,t){return{scale:e.scale,range:t}}function M3(e,t,n,a,r){let i=Wr(e,t),o=e.orient,u=e.gridScale,c=Dw(o,1,-1),f=function(N,P){if(P!==1)if(ye(N)){let M=N=mt({},N);for(;M.mult!=null;){if(!ye(M.mult))return M.mult=ua(P)?{signal:`(${M.mult}) * (${P.signal})`}:M.mult*P,N;M=M.mult=mt({},M.mult)}M.mult=P}else N=ua(P)?{signal:`(${P.signal}) * (${N||0})`}:P*(N||0);return N}(e.offset,c),m,g,v,E={enter:m={opacity:zt},update:v={opacity:so},exit:g={opacity:zt}};Fa(E,{stroke:i("gridColor"),strokeCap:i("gridCap"),strokeDash:i("gridDash"),strokeDashOffset:i("gridDashOffset"),strokeOpacity:i("gridOpacity"),strokeWidth:i("gridWidth")});let k={scale:e.scale,field:oo,band:r.band,extra:r.extra,offset:r.offset,round:i("tickRound")},_=Ea(o,{signal:"height"},{signal:"width"}),R=u?{scale:u,range:0,mult:c,offset:f}:{value:0,offset:f},I=u?{scale:u,range:1,mult:c,offset:f}:mt(_,{mult:c,offset:f});return m.x=v.x=Ea(o,k,R),m.y=v.y=Ko(o,k,R),m.x2=v.x2=Ko(o,I),m.y2=v.y2=Ea(o,I),g.x=Ea(o,k),g.y=Ko(o,k),_i({type:KS,role:ZB,key:oo,from:a,encode:E},n)}function nA(e,t,n,a,r){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+a+","+r+")"}}function L3(e,t,n,a){let r=Wr(e,t),i=e.orient,o=Dw(i,-1,1),u,c,f={enter:u={opacity:zt,anchor:va(r("titleAnchor",null)),align:{signal:XS}},update:c=mt({},u,{opacity:so,text:va(e.title)}),exit:{opacity:zt}},m={signal:`lerp(range("${e.scale}"), ${Rw(0,1,.5)})`};return c.x=Ea(i,m),c.y=Ko(i,m),u.angle=Ea(i,zt,D3(o,90)),u.baseline=Ea(i,cD(i,Wu,Yo),{value:Wu}),c.angle=u.angle,c.baseline=u.baseline,Fa(f,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")}),function(g,v,E,k){let _=(N,P)=>N!=null?(E.update[P]=oh(va(N),E.update[P]),!1):!th(P,k),R=_(g("titleX"),"x"),I=_(g("titleY"),"y");E.enter.auto=I===R?va(I):Ea(v,va(I),va(R))}(r,i,f,n),f.update.align=oh(f.update.align,u.align),f.update.angle=oh(f.update.angle,u.angle),f.update.baseline=oh(f.update.baseline,u.baseline),_i({type:Sd,role:eU,style:qS,from:a,encode:f},n)}function F3(e,t){let n=function(_,R){var I,N,P,M=R.config,U=M.style,z=M.axis,q=R.scaleType(_.scale)==="band"&&M.axisBand,Y=_.orient;if(ua(Y)){let K=pD([M.axisX,M.axisY]),ne=pD([M.axisTop,M.axisBottom,M.axisLeft,M.axisRight]);for(P of(I={},K))I[P]=Ea(Y,sh(P,M.axisX,z,U),sh(P,M.axisY,z,U));for(P of(N={},ne))N[P]=O3(Y.signal,sh(P,M.axisTop,z,U),sh(P,M.axisBottom,z,U),sh(P,M.axisLeft,z,U),sh(P,M.axisRight,z,U))}else I=Y===Yo||Y===Wu?M.axisX:M.axisY,N=M["axis"+Y[0].toUpperCase()+Y.slice(1)];return I||N||q?mt({},z,I,N,q):z}(e,t),a=e.encode||{},r=a.axis||{},i=r.name||void 0,o=r.interactive,u=r.style,c=Wr(e,n),f=function(_){let R=_("tickBand"),I,N,P=_("tickOffset");return R?R.signal?(I={signal:`(${R.signal}) === 'extent' ? 1 : 0.5`},N={signal:`(${R.signal}) === 'extent'`},ye(P)||(P={signal:`(${R.signal}) === 'extent' ? 0 : ${P}`})):R==="extent"?(I=1,N=!0,P=0):(I=.5,N=!1):(I=_("bandPosition"),N=_("tickExtra")),{extra:N,band:I,offset:P}}(c),m={scale:e.scale,ticks:!!c("ticks"),labels:!!c("labels"),grid:!!c("grid"),domain:!!c("domain"),title:e.title!=null},g=pt(t.add(Vo({},[m]))),v=pt(t.add(wU({scale:t.scaleRef(e.scale),extra:t.property(f.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),E=[],k;return m.grid&&E.push(M3(e,n,a.grid,v,f)),m.ticks&&(k=c("tickSize"),E.push(function(_,R,I,N,P,M){let U=Wr(_,R),z=_.orient,q=Dw(z,-1,1),Y,K,ne,J={enter:Y={opacity:zt},update:ne={opacity:so},exit:K={opacity:zt}};Fa(J,{stroke:U("tickColor"),strokeCap:U("tickCap"),strokeDash:U("tickDash"),strokeDashOffset:U("tickDashOffset"),strokeOpacity:U("tickOpacity"),strokeWidth:U("tickWidth")});let re=va(P);re.mult=q;let oe={scale:_.scale,field:oo,band:M.band,extra:M.extra,offset:M.offset,round:U("tickRound")};return ne.y=Y.y=Ea(z,zt,oe),ne.y2=Y.y2=Ea(z,re),K.x=Ea(z,oe),ne.x=Y.x=Ko(z,zt,oe),ne.x2=Y.x2=Ko(z,re),K.y=Ko(z,oe),_i({type:KS,role:QB,key:oo,from:N,encode:J},I)}(e,n,a.ticks,v,k,f))),m.labels&&(k=m.ticks?k:0,E.push(function(_,R,I,N,P,M){let U=Wr(_,R),z=_.orient,q=_.scale,Y=Dw(z,-1,1),K=kd(U("labelFlush")),ne=kd(U("labelFlushOffset")),J=U("labelAlign"),re=U("labelBaseline"),oe,ue=K===0||!!K,ce=va(P);ce.mult=Y,ce.offset=va(U("labelPadding")||0),ce.offset.mult=Y;let ve={scale:q,field:oo,band:.5,offset:KO(M.offset,U("labelOffset"))},we=Ea(z,ue?nA(q,K,'"left"','"right"','"center"'):{value:"center"},A3(z,"left","right")),Oe=Ea(z,cD(z,"bottom","top"),ue?nA(q,K,'"top"','"bottom"','"middle"'):{value:"middle"}),Ue=nA(q,K,`-(${ne})`,ne,0);ue=ue&&ne;let He={opacity:zt,x:Ea(z,ve,ce),y:Ko(z,ve,ce)},De={enter:He,update:oe={opacity:so,text:{field:HS},x:He.x,y:He.y,align:we,baseline:Oe},exit:{opacity:zt,x:He.x,y:He.y}};Fa(De,{dx:!J&&ue?Ea(z,Ue):null,dy:!re&&ue?Ko(z,Ue):null}),Fa(De,{angle:U("labelAngle"),fill:U("labelColor"),fillOpacity:U("labelOpacity"),font:U("labelFont"),fontSize:U("labelFontSize"),fontWeight:U("labelFontWeight"),fontStyle:U("labelFontStyle"),limit:U("labelLimit"),lineHeight:U("labelLineHeight")},{align:J,baseline:re});let ut=U("labelBound"),ct=U("labelOverlap");return ct=ct||ut?{separation:U("labelSeparation"),method:ct,order:"datum.index",bound:ut?{scale:q,orient:z,tolerance:ut}:null}:void 0,oe.align!==we&&(oe.align=oh(oe.align,we)),oe.baseline!==Oe&&(oe.baseline=oh(oe.baseline,Oe)),_i({type:Sd,role:JB,style:Jb,key:oo,from:N,encode:De,overlap:ct},I)}(e,n,a.labels,v,k,f))),m.domain&&E.push(function(_,R,I,N){let P=Wr(_,R),M=_.orient,U,z,q={enter:U={opacity:zt},update:z={opacity:so},exit:{opacity:zt}};Fa(q,{stroke:P("domainColor"),strokeCap:P("domainCap"),strokeDash:P("domainDash"),strokeDashOffset:P("domainDashOffset"),strokeWidth:P("domainWidth"),strokeOpacity:P("domainOpacity")});let Y=hD(_,0),K=hD(_,1);return U.x=z.x=Ea(M,Y,zt),U.x2=z.x2=Ea(M,K),U.y=z.y=Ko(M,Y,zt),U.y2=z.y2=Ko(M,K),_i({type:KS,role:XB,from:N,encode:q},I)}(e,n,a.domain,g)),m.title&&E.push(L3(e,n,a.title,g)),Ow(e0({role:KB,from:g,encode:eh(P3(c,e),r,Qb),marks:E,aria:c("aria"),description:c("description"),zindex:c("zindex"),name:i,interactive:o,style:u}),t)}function P3(e,t){let n={enter:{},update:{}};return Fa(n,{orient:e("orient"),offset:e("offset")||0,position:Wo(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function mD(e,t,n){let a=Ne(e.signals),r=Ne(e.scales);return n||a.forEach(i=>IO(i,t)),Ne(e.projections).forEach(i=>function(o,u){let c=u.config.projection||{},f={};for(let m in o)m!=="name"&&(f[m]=GS(o[m],m,u));for(let m in c)f[m]==null&&(f[m]=GS(c[m],m,u));u.addProjection(o.name,f)}(i,t)),r.forEach(i=>function(o,u){let c=o.type||"linear";mv(c)||F("Unrecognized scale type: "+st(c)),u.addScale(o.name,{type:c,domain:void 0})}(i,t)),Ne(e.data).forEach(i=>S3(i,t)),r.forEach(i=>zU(i,t)),(n||a).forEach(i=>function(o,u){let c=u.getSignal(o.name),f=o.update;o.init&&(f?F("Signals can not include both init and update expressions."):(f=o.init,c.initonly=!0)),f&&(f=Ms(f,u),c.update=f.$expr,c.params=f.$params),o.on&&o.on.forEach(m=>vU(m,u,c.id))}(i,t)),Ne(e.axes).forEach(i=>F3(i,t)),Ne(e.marks).forEach(i=>Ow(i,t)),Ne(e.legends).forEach(i=>E3(i,t)),e.title&&k3(e.title,t),t.parseLambdas(),t}let $3=e=>eh({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e);function B3(e,t){let n=t.config,a=pt(t.root=t.add(_w())),r=function(f,m){let g=_=>Wo(f[_],m[_]),v=[n0("background",g("background")),n0("autosize",WB(g("autosize"))),n0("padding",YB(g("padding"))),n0("width",g("width")||0),n0("height",g("height")||0)],E=v.reduce((_,R)=>(_[R.name]=R,_),{}),k={};return Ne(f.signals).forEach(_=>{nt(E,_.name)?_=mt(E[_.name],_):v.push(_),k[_.name]=_}),Ne(m.signals).forEach(_=>{nt(k,_.name)||nt(E,_.name)||v.push(_)}),v}(e,n);r.forEach(f=>IO(f,t)),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;let i=t.add(Vo()),o=t.add(PO(RO($3(e.encode),Cw,MS,e.style,t,{pulse:pt(i)}))),u=t.add(UO({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:a,pulse:pt(o)}));t.operators.pop(),t.pushState(pt(o),pt(u),null),mD(e,t,r),t.operators.push(u);let c=t.add(LO({mark:a,pulse:pt(u)}));return c=t.add(BO({pulse:pt(c)})),c=t.add(xd({pulse:pt(c)})),t.addData("root",new Ad(t,i,i,c)),t}function n0(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function gD(e,t){this.config=e||{},this.options=t||{},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 bD(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function aA(e){return(Ee(e)?U3:z3)(e)}function U3(e){let t=e.length,n="[";for(let a=0;a<t;++a){let r=e[a];n+=(a>0?",":"")+(ye(r)?r.signal||aA(r):st(r))}return n+"]"}function z3(e){let t,n,a="{",r=0;for(t in e)n=e[t],a+=(++r>1?",":"")+st(t)+":"+(ye(n)?n.signal||aA(n):st(n));return a+"}"}gD.prototype=bD.prototype={parse(e){return mD(e,this)},fork(){return new bD(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(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach(t=>{t.$ref=e.id}),e.refs=null),e},proxy(e){let t=e instanceof PS?pt(e):e;return this.add(LU({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(a,r,i){let o,u;a&&(o=a.data||(a.data={}),u=o[r]||(o[r]=[]),u.push(i))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(let a in t.index)n(t.index[a],e,"index:"+a)}return this},pushState(e,t,n){this._encode.push(pt(this.add(xd({pulse:e})))),this._parent.push(t),this._lookup.push(n?pt(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return $e(this._parent)},encode(){return $e(this._encode)},lookup(){return $e(this._lookup)},markpath(){let e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(Ft(e))return Xb(e,t);e.signal||F("Unsupported field reference: "+st(e));let n=e.signal,a=this.field[n];if(!a){let r={name:this.signalRef(n)};t&&(r.as=t),this.field[n]=a=pt(this.add(SU(r)))}return a},compareRef(e){let t=!1,n=i=>ua(i)?(t=!0,this.signalRef(i.signal)):function(o){return o&&o.expr}(i)?(t=!0,this.exprRef(i.expr)):i,a=Ne(e.field).map(n),r=Ne(e.order).map(n);return t?pt(this.add(FO({fields:a,orders:r}))):OO(a,r)},keyRef(e,t){let n=!1,a=this.signals;return e=Ne(e).map(r=>ua(r)?(n=!0,pt(a[r.signal])):r),n?pt(this.add(AU({fields:e,flat:t}))):function(r,i){let o={$key:r};return i&&(o.$flat=!0),o}(e,t)},sortRef(e){if(!e)return e;let t=kw(e.op,e.field),n=e.order||"ascending";return n.signal?pt(this.add(FO({fields:t,orders:this.signalRef(n.signal)}))):OO(t,n)},event(e,t){let n=e+":"+t;if(!this.events[n]){let a=this.id();this.streams.push({id:a,source:e,type:t}),this.events[n]=a}return this.events[n]},hasOwnSignal(e){return nt(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&F("Duplicate signal name: "+st(e));let n=t instanceof PS?t:this.add(_w(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||F("Unrecognized signal name: "+st(e)),this.signals[e]},signalRef(e){return this.signals[e]?pt(this.signals[e]):(nt(this.lambdas,e)||(this.lambdas[e]=this.add(_w(null))),pt(this.lambdas[e]))},parseLambdas(){let e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){let a=e[t],r=Ms(a,this),i=this.lambdas[a];i.params=r.$params,i.update=r.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return e&&ye(e)?this.signalRef(e.signal||aA(e)):e},exprRef(e,t){let n={expr:Ms(e,this)};return t&&(n.expr.$name=t),pt(this.add(kU(n)))},addBinding(e,t){this.bindings||F("Nested signals do not support binding: "+st(e)),this.bindings.push(mt({signal:e},t))},addScaleProj(e,t){nt(this.scales,e)&&F("Duplicate scale or projection name: "+st(e)),this.scales[e]=this.add(t)},addScale(e,t){this.addScaleProj(e,PU(t))},addProjection(e,t){this.addScaleProj(e,MU(t))},getScale(e){return this.scales[e]||F("Unrecognized scale name: "+st(e)),this.scales[e]},scaleRef(e){return pt(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,t){return nt(this.data,e)&&F("Duplicate data set name: "+st(e)),this.data[e]=t},getData(e){return this.data[e]||F("Undefined data set name: "+st(e)),this.data[e]},addDataPipeline(e,t){return nt(this.data,e)&&F("Duplicate data set name: "+st(e)),this.addData(e,Ad.fromEntries(this,t))}},mt(tl,Xf,PL,YL,MF,tP,LP,SP,FP,ZP,i$,l$),p.Bounds=In,p.CanvasHandler=ob,p.CanvasRenderer=qv,p.DATE=ha,p.DAY=aa,p.DAYOFYEAR=Di,p.Dataflow=el,p.Debug=Fe,p.Error=pe,p.EventStream=Ui,p.Gradient=Je,p.GroupItem=vl,p.HOURS=ja,p.Handler=Mu,p.Info=Ie,p.Item=Lo,p.MILLISECONDS=Dr,p.MINUTES=lr,p.MONTH=na,p.Marks=yi,p.MultiPulse=yc,p.None=fe,p.Operator=Yt,p.Parameters=gc,p.Pulse=oi,p.QUARTER=Ta,p.RenderType=Fu,p.Renderer=Cs,p.ResourceLoader=El,p.SECONDS=ur,p.SVGHandler=J1,p.SVGRenderer=ik,p.SVGStringRenderer=sk,p.Scenegraph=V1,p.TIME_UNITS=Gd,p.Transform=ke,p.View=pO,p.WEEK=Cn,p.Warn=Se,p.YEAR=ta,p.accessor=b,p.accessorFields=T,p.accessorName=x,p.array=Ne,p.ascending=Qt,p.bandwidthNRD=lm,p.bin=um,p.bootstrapCI=cm,p.boundClip=eC,p.boundContext=Zg,p.boundItem=W1,p.boundMark=bT,p.boundStroke=_l,p.changeset=us,p.clampRange=Xe,p.codegenExpression=SI,p.compare=Fl,p.constant=hn,p.cumulativeLogNormal=fr,p.cumulativeNormal=Ec,p.cumulativeUniform=kc,p.dayofyear=D0,p.debounce=Zo,p.defaultLocale=pf,p.definition=im,p.densityLogNormal=Rf,p.densityNormal=dm,p.densityUniform=Of,p.domChild=Ur,p.domClear=Bo,p.domCreate=Du,p.domFind=Y1,p.dotbin=Tf,p.error=F,p.expressionFunction=Zn,p.extend=mt,p.extent=Un,p.extentIndex=ar,p.falsy=ie,p.fastmap=da,p.field=W,p.flush=rr,p.font=Fv,p.fontFamily=nb,p.fontSize=Ts,p.format=hc,p.formatLocale=fc,p.formats=ss,p.hasOwnProperty=nt,p.id=V,p.identity=te,p.inferType=Qh,p.inferTypes=em,p.ingest=It,p.inherits=Le,p.inrange=xa,p.interpolate=jg,p.interpolateColors=Cp,p.interpolateRange=yv,p.intersect=XT,p.intersectBoxLine=Dp,p.intersectPath=N1,p.intersectPoint=I1,p.intersectRule=nT,p.isArray=Ee,p.isBoolean=Zr,p.isDate=xn,p.isFunction=tt,p.isIterable=xi,p.isNumber=Ba,p.isObject=ye,p.isRegExp=Si,p.isString=Ft,p.isTuple=ru,p.key=Ai,p.lerp=fo,p.lineHeight=Iu,p.loader=Js,p.locale=Jh,p.logger=Ge,p.lruCache=Pl,p.markup=rk,p.merge=Bs,p.mergeConfig=Te,p.multiLineOffset=j1,p.one=he,p.pad=Ku,p.panLinear=xt,p.panLog=Tt,p.panPow=Xt,p.panSymlog=Ke,p.parse=function(e,t,n){return ye(e)||F("Input Vega specification must be an object."),B3(e,new gD(t=Te(function(){let a="sans-serif",r="#4c78a8",i="#000",o="#888",u="#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:a,fontSize:11},trail:{fill:r,size:2},style:{"guide-label":{fill:i,font:a,fontSize:10},"guide-title":{fill:i,font:a,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:a,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,font:a,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:u},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:o,grid:!1,gridWidth:1,gridColor:u,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:o,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:u,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:o,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"]}}}(),t,e.config),n)).toRuntime()},p.parseExpression=_I,p.parseSelector=_O,p.path=Oc,p.pathCurves=Qe,p.pathEqual=tC,p.pathParse=Ut,p.pathRectangle=Yg,p.pathRender=En,p.pathSymbols=Xa,p.pathTrail=Kg,p.peek=$e,p.point=$v,p.projection=rx,p.quantileLogNormal=hm,p.quantileNormal=wc,p.quantileUniform=du,p.quantiles=sm,p.quantizeInterpolator=vv,p.quarter=Ct,p.quartiles=Af,p.randomInteger=function(e,t){let n,a,r;t==null&&(t=e,e=0);let i={min(o){return arguments.length?(n=o||0,r=a-n,i):n},max(o){return arguments.length?(a=o||0,r=a-n,i):a},sample:()=>n+Math.floor(r*p.random()),pdf:o=>o===Math.floor(o)&&o>=n&&o<a?1/r:0,cdf(o){let u=Math.floor(o);return u<n?0:u>=a?1:(u-n+1)/r},icdf:o=>o>=0&&o<=1?n-1+Math.floor(o*r):NaN};return i.min(e).max(t)},p.randomKDE=pm,p.randomLCG=function(e){return function(){return(e=(1103515245*e+12345)%2147483647)/2147483647}},p.randomLogNormal=Nf,p.randomMixture=If,p.randomNormal=fm,p.randomUniform=Df,p.read=yf,p.regressionConstant=Mf,p.regressionExp=mm,p.regressionLinear=fu,p.regressionLoess=ym,p.regressionLog=Ac,p.regressionPoly=gm,p.regressionPow=hy,p.regressionQuad=si,p.renderModule=Kv,p.repeat=po,p.resetDefaultLocale=function(){return Xh(),pc(),pf()},p.resetSVGClipId=xv,p.resetSVGDefIds=function(){xv(),me=0},p.responseType=bf,p.runtimeContext=VI,p.sampleCurve=Lf,p.sampleLogNormal=Cf,p.sampleNormal=cu,p.sampleUniform=_c,p.scale=Bt,p.sceneEqual=uk,p.sceneFromJSON=vT,p.scenePickVisit=Iv,p.sceneToJSON=yT,p.sceneVisit=Po,p.sceneZOrder=O1,p.scheme=Np,p.serializeXML=zT,p.setRandom=function(e){p.random=e},p.span=Jr,p.splitAccessPath=j,p.stringValue=st,p.textMetrics=$o,p.timeBin=ai,p.timeFloor=$0,p.timeFormatLocale=Zs,p.timeInterval=as,p.timeOffset=Kd,p.timeSequence=Mh,p.timeUnitSpecifier=Hd,p.timeUnits=jd,p.toBoolean=$l,p.toDate=Ld,p.toNumber=Me,p.toSet=ir,p.toString=Fd,p.transform=om,p.transforms=tl,p.truncate=mh,p.truthy=Q,p.tupleid=rt,p.typeParsers=cr,p.utcFloor=Yd,p.utcInterval=Mr,p.utcOffset=z0,p.utcSequence=Lh,p.utcdayofyear=Ih,p.utcquarter=ht,p.utcweek=Oh,p.version="5.25.0",p.visitArray=Qo,p.week=qd,p.writeConfig=_e,p.zero=ae,p.zoomLinear=Zt,p.zoomLog=Et,p.zoomPow=Jt,p.zoomSymlog=Lt})});var EM=rA((Ww,vM)=>{(function(p,b){typeof Ww=="object"&&typeof vM<"u"?b(Ww,wA()):typeof define=="function"&&define.amd?define(["exports","vega"],b):b((p=typeof globalThis<"u"?globalThis:p||self).vegaLite={},p.vega)})(Ww,function(p,b){"use strict";var x="5.16.1";function T(s){return!!s.or}function O(s){return!!s.and}function B(s){return!!s.not}function $(s,l){if(B(s))$(s.not,l);else if(O(s))for(let d of s.and)$(d,l);else if(T(s))for(let d of s.or)$(d,l);else l(s)}function F(s,l){return B(s)?{not:F(s.not,l)}:O(s)?{and:s.and.map(d=>F(d,l))}:T(s)?{or:s.or.map(d=>F(d,l))}:l(s)}let j=globalThis.structuredClone;function W(s){throw new Error(s)}function V(s,l){let d={};for(let h of l)b.hasOwnProperty(s,h)&&(d[h]=s[h]);return d}function te(s,l){let d={...s};for(let h of l)delete d[h];return d}function ae(s){if(b.isNumber(s))return s;let l=b.isString(s)?s:Xe(s);if(l.length<250)return l;let d=0;for(let h=0;h<l.length;h++)d=(d<<5)-d+l.charCodeAt(h),d&=d;return d}function he(s){return s===!1||s===null}function Q(s,l){return s.includes(l)}function ie(s,l){let d=0;for(let[h,y]of s.entries())if(l(y,h,d++))return!0;return!1}function se(s,l){let d=0;for(let[h,y]of s.entries())if(!l(y,h,d++))return!1;return!0}function fe(s){for(var l=arguments.length,d=new Array(l>1?l-1:0),h=1;h<l;h++)d[h-1]=arguments[h];for(let y of d)pe(s,y??{});return s}function pe(s,l){for(let d of be(l))b.writeConfig(s,d,l[d],!0)}function Se(s,l){let d=[],h={},y;for(let w of s)y=l(w),y in h||(h[y]=1,d.push(w));return d}function Ie(s,l){if(s.size!==l.size)return!1;for(let d of s)if(!l.has(d))return!1;return!0}function Fe(s,l){for(let d of s)if(l.has(d))return!0;return!1}function Ge(s){let l=new Set;for(let d of s){let h=b.splitAccessPath(d).map((w,S)=>S===0?w:`[${w}]`),y=h.map((w,S)=>h.slice(0,S+1).join(""));for(let w of y)l.add(w)}return l}function Ee(s,l){return s===void 0||l===void 0||Fe(Ge(s),Ge(l))}function ye(s){return be(s).length===0}Set.prototype.toJSON=function(){return`Set(${[...this].map(s=>Xe(s)).join(",")})`};let be=Object.keys,Te=Object.values,_e=Object.entries;function Ye(s){return s===!0||s===!1}function $e(s){let l=s.replace(/\W/g,"_");return(s.match(/^\d+/)?"_":"")+l}function Me(s,l){return B(s)?`!(${Me(s.not,l)})`:O(s)?`(${s.and.map(d=>Me(d,l)).join(") && (")})`:T(s)?`(${s.or.map(d=>Me(d,l)).join(") || (")})`:l(s)}function dt(s,l){if(l.length===0)return!0;let d=l.shift();return d in s&&dt(s[d],l)&&delete s[d],ye(s)}function yt(s){return s.charAt(0).toUpperCase()+s.substr(1)}function St(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"datum",d=b.splitAccessPath(s),h=[];for(let y=1;y<=d.length;y++){let w=`[${d.slice(0,y).map(b.stringValue).join("][")}]`;h.push(`${l}${w}`)}return h.join(" && ")}function rn(s){return`${arguments.length>1&&arguments[1]!==void 0?arguments[1]:"datum"}[${b.stringValue(b.splitAccessPath(s).join("."))}]`}function pn(s){return s.replace(/(\[|\]|\.|'|")/g,"\\$1")}function jt(s){return`${b.splitAccessPath(s).map(pn).join("\\.")}`}function xt(s,l,d){return s.replace(new RegExp(l.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),d)}function Tt(s){return`${b.splitAccessPath(s).join(".")}`}function Xt(s){return s?b.splitAccessPath(s).length:0}function Ke(){for(var s=arguments.length,l=new Array(s),d=0;d<s;d++)l[d]=arguments[d];for(let h of l)if(h!==void 0)return h}let et=42;function Zt(s){let l=++et;return s?String(s)+l:l}function Et(s){return Jt(s)?s:`__${s}`}function Jt(s){return s.startsWith("__")}function Lt(s){if(s!==void 0)return(s%360+360)%360}function Ct(s){return!!b.isNumber(s)||!isNaN(s)&&!isNaN(parseFloat(s))}let ht=Object.getPrototypeOf(globalThis.structuredClone({}));function Ne(s,l){if(s===l)return!0;if(s&&l&&typeof s=="object"&&typeof l=="object"){if(s.constructor.name!==l.constructor.name)return!1;let d,h;if(Array.isArray(s)){if(d=s.length,d!=l.length)return!1;for(h=d;h--!=0;)if(!Ne(s[h],l[h]))return!1;return!0}if(s instanceof Map&&l instanceof Map){if(s.size!==l.size)return!1;for(h of s.entries())if(!l.has(h[0]))return!1;for(h of s.entries())if(!Ne(h[1],l.get(h[0])))return!1;return!0}if(s instanceof Set&&l instanceof Set){if(s.size!==l.size)return!1;for(h of s.entries())if(!l.has(h[0]))return!1;return!0}if(ArrayBuffer.isView(s)&&ArrayBuffer.isView(l)){if(d=s.length,d!=l.length)return!1;for(h=d;h--!=0;)if(s[h]!==l[h])return!1;return!0}if(s.constructor===RegExp)return s.source===l.source&&s.flags===l.flags;if(s.valueOf!==Object.prototype.valueOf&&s.valueOf!==ht.valueOf)return s.valueOf()===l.valueOf();if(s.toString!==Object.prototype.toString&&s.toString!==ht.toString)return s.toString()===l.toString();let y=Object.keys(s);if(d=y.length,d!==Object.keys(l).length)return!1;for(h=d;h--!=0;)if(!Object.prototype.hasOwnProperty.call(l,y[h]))return!1;for(h=d;h--!=0;){let w=y[h];if(!Ne(s[w],l[w]))return!1}return!0}return s!=s&&l!=l}function Xe(s){let l=[];return function d(h){if(h&&h.toJSON&&typeof h.toJSON=="function"&&(h=h.toJSON()),h===void 0)return;if(typeof h=="number")return isFinite(h)?""+h:"null";if(typeof h!="object")return JSON.stringify(h);let y,w;if(Array.isArray(h)){for(w="[",y=0;y<h.length;y++)y&&(w+=","),w+=d(h[y])||"null";return w+"]"}if(h===null)return"null";if(l.includes(h))throw new TypeError("Converting circular structure to JSON");let S=l.push(h)-1,A=Object.keys(h).sort();for(w="",y=0;y<A.length;y++){let C=A[y],L=d(h[C]);L&&(w&&(w+=","),w+=JSON.stringify(C)+":"+L)}return l.splice(S,1),`{${w}}`}(s)}let tt="row",Kr="column",Fl="facet",Qt="x",Bn="y",Xr="x2",ki="y2",hn="xOffset",Zo="yOffset",mt="radius",Un="radius2",ar="theta",co="theta2",nt="latitude",$a="longitude",da="latitude2",rr="longitude2",Le="color",xa="fill",Zr="stroke",xn="shape",xi="size",Ba="angle",Si="opacity",Ft="fillOpacity",Ai="strokeOpacity",fo="strokeWidth",Jo="strokeDash",Pl="text",Bs="order",po="detail",Ku="key",Jr="tooltip",st="href",$l="url",Md="description",Ld={theta:1,theta2:1,radius:1,radius2:1};function Fd(s){return s in Ld}let ir={longitude:1,longitude2:1,latitude:1,latitude2:1};function mh(s){switch(s){case nt:return"y";case da:return"y2";case $a:return"x";case rr:return"x2"}}function Qo(s){return s in ir}let h0=be(ir),Xu={x:1,y:1,x2:1,y2:1,...Ld,...ir,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1};function es(s){return s===Le||s===xa||s===Zr}let Bl={row:1,column:1,facet:1},Ua=be(Bl),Pd={...Xu,...Bl},m0=be(Pd),{order:or,detail:PA,tooltip:$A,...h_}=Pd,{row:BA,column:m_,facet:g_,...b_}=h_;function g0(s){return!!Pd[s]}let y_=[Xr,ki,da,rr,co,Un];function Ti(s){return Us(s)!==s}function Us(s){switch(s){case Xr:return Qt;case ki:return Bn;case da:return nt;case rr:return $a;case co:return ar;case Un:return mt}return s}function sr(s){if(Fd(s))switch(s){case ar:return"startAngle";case co:return"endAngle";case mt:return"outerRadius";case Un:return"innerRadius"}return s}function Ci(s){switch(s){case Qt:return Xr;case Bn:return ki;case nt:return da;case $a:return rr;case ar:return co;case mt:return Un}}function Sa(s){switch(s){case Qt:case Xr:return"width";case Bn:case ki:return"height"}}function gh(s){switch(s){case Qt:return"xOffset";case Bn:return"yOffset";case Xr:return"x2Offset";case ki:return"y2Offset";case ar:return"thetaOffset";case mt:return"radiusOffset";case co:return"theta2Offset";case Un:return"radius2Offset"}}function Ul(s){switch(s){case Qt:return"xOffset";case Bn:return"yOffset"}}function v_(s){switch(s){case"xOffset":return"x";case"yOffset":return"y"}}let Zu=be(Xu),{x:za,y:E_,x2:bh,y2:b0,xOffset:w_,yOffset:__,latitude:k_,longitude:x_,latitude2:UA,longitude2:zA,theta:GA,theta2:yh,radius:y0,radius2:v0,...Ri}=Xu,zs=be(Ri),Ju={x:1,y:1},Qr=be(Ju);function un(s){return s in Ju}let Qu={theta:1,radius:1},E0=be(Qu);function ec(s){return s==="width"?Qt:Bn}let vh={xOffset:1,yOffset:1};function Qn(s){return s in vh}let{text:S_,tooltip:jA,href:Eh,url:tc,description:A_,detail:HA,key:zl,order:w0,...wh}=Ri,_0=be(wh),_h={...Ju,...Qu,...vh,...wh},Gl=be(_h);function Nr(s){return!!_h[s]}function kh(s,l){return function(d){switch(d){case Le:case xa:case Zr:case Md:case po:case Ku:case Jr:case st:case Bs:case Si:case Ft:case Ai:case fo:case Fl:case tt:case Kr:return xh;case Qt:case Bn:case hn:case Zo:case nt:case $a:return k0;case Xr:case ki:case da:case rr:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case xi:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case Jo:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case xn:return{point:"always",geoshape:"always"};case Pl:return{text:"always"};case Ba:return{point:"always",square:"always",text:"always"};case $l:return{image:"always"};case ar:case mt:return{text:"always",arc:"always"};case co:case Un:return{arc:"always"}}}(s)[l]}let xh={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:T_,...k0}=xh;function $d(s){switch(s){case Qt:case Bn:case ar:case mt:case hn:case Zo:case xi:case Ba:case fo:case Si:case Ft:case Ai:case Xr:case ki:case co:case Un:return;case Fl:case tt:case Kr:case xn:case Jo:case Pl:case Jr:case st:case $l:case Md:return"discrete";case Le:case xa:case Zr:return"flexible";case nt:case $a:case da:case rr:case po:case Ku:case Bs:return}}let x0={argmax:1,argmin:1,average:1,count:1,distinct:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},S0={count:1,min:1,max:1};function ei(s){return!!s&&!!s.argmin}function Ni(s){return!!s&&!!s.argmax}function Sn(s){return b.isString(s)&&!!x0[s]}let jl=new Set(["count","valid","missing","distinct"]);function Ii(s){return b.isString(s)&&jl.has(s)}let Ir=new Set(["count","sum","distinct","valid","missing"]),ho=new Set(["mean","average","median","q1","q3","min","max"]);function Oi(s){return b.isBoolean(s)&&(s=rt(s,void 0)),"bin"+be(s).map(l=>Or(s[l])?$e(`_${l}_${_e(s[l])}`):$e(`_${l}_${s[l]}`)).join("")}function Vt(s){return s===!0||mo(s)&&!s.binned}function zn(s){return s==="binned"||mo(s)&&s.binned===!0}function mo(s){return b.isObject(s)}function Or(s){return s==null?void 0:s.param}function nc(s){switch(s){case tt:case Kr:case xi:case Le:case xa:case Zr:case fo:case Si:case Ft:case Ai:case xn:return 6;case Jo:return 4;default:return 10}}function ts(s){return!!(s!=null&&s.expr)}function ea(s){let l=be(s||{}),d={};for(let h of l)d[h]=Gn(s[h]);return d}function ac(s){let{anchor:l,frame:d,offset:h,orient:y,angle:w,limit:S,color:A,subtitleColor:C,subtitleFont:L,subtitleFontSize:G,subtitleFontStyle:H,subtitleFontWeight:X,subtitleLineHeight:Z,subtitlePadding:le,...ee}=s,de={...l?{anchor:l}:{},...d?{frame:d}:{},...h?{offset:h}:{},...y?{orient:y}:{},...w!==void 0?{angle:w}:{},...S!==void 0?{limit:S}:{}},ge={...C?{subtitleColor:C}:{},...L?{subtitleFont:L}:{},...G?{subtitleFontSize:G}:{},...H?{subtitleFontStyle:H}:{},...X?{subtitleFontWeight:X}:{},...Z?{subtitleLineHeight:Z}:{},...le?{subtitlePadding:le}:{}};return{titleMarkConfig:{...ee,...A?{fill:A}:{}},subtitleMarkConfig:V(s,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:de,subtitle:ge}}function fa(s){return b.isString(s)||b.isArray(s)&&b.isString(s[0])}function Ze(s){return!!(s!=null&&s.signal)}function go(s){return!!s.step}function Aa(s){return!b.isArray(s)&&"field"in s&&"data"in s}let Hl=be({aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1}),Bd={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Sh=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function A0(s){let l=b.isArray(s.condition)?s.condition.map(T0):T0(s.condition);return{...Gn(s),condition:l}}function Gn(s){if(ts(s)){let{expr:l,...d}=s;return{signal:l,...d}}return s}function T0(s){if(ts(s)){let{expr:l,...d}=s;return{signal:l,...d}}return s}function on(s){if(ts(s)){let{expr:l,...d}=s;return{signal:l,...d}}return Ze(s)?s:s!==void 0?{value:s}:void 0}function ns(s){return Ze(s)?s.signal:b.stringValue(s.value)}function pa(s){return Ze(s)?s.signal:s==null?null:b.stringValue(s)}function Ud(s,l,d){for(let h of d){let y=Ga(h,l.markDef,l.config);y!==void 0&&(s[h]=on(y))}return s}function C0(s){return[].concat(s.type,s.style??[])}function Ht(s,l,d){let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},{vgChannel:y,ignoreVgConfig:w}=h;return y&&l[y]!==void 0?l[y]:l[s]!==void 0?l[s]:!w||y&&y!==s?Ga(s,l,d,h):void 0}function Ga(s,l,d){let{vgChannel:h}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return Ke(h?zd(s,l,d.style):void 0,zd(s,l,d.style),h?d[l.type][h]:void 0,d[l.type][s],h?d.mark[h]:d.mark[s])}function zd(s,l,d){return R0(s,C0(l),d)}function R0(s,l,d){let h;l=b.array(l);for(let y of l){let w=d[y];w&&w[s]!==void 0&&(h=w[s])}return h}function ql(s,l){return b.array(s).reduce((d,h)=>(d.field.push(je(h,l)),d.order.push(h.sort??"ascending"),d),{field:[],order:[]})}function Wl(s,l){let d=[...s];return l.forEach(h=>{for(let y of d)if(Ne(y,h))return;d.push(h)}),d}function ti(s,l){return Ne(s,l)||!l?s:s?[...b.array(s),...b.array(l)].join(", "):l}function ni(s,l){let d=s.value,h=l.value;if(d==null||h===null)return{explicit:s.explicit,value:null};if((fa(d)||Ze(d))&&(fa(h)||Ze(h)))return{explicit:s.explicit,value:ti(d,h)};if(fa(d)||Ze(d))return{explicit:s.explicit,value:d};if(fa(h)||Ze(h))return{explicit:s.explicit,value:h};if(!(fa(d)||Ze(d)||fa(h)||Ze(h)))return{explicit:s.explicit,value:Wl(d,h)};throw new Error("It should never reach here")}function at(s,l,d){return(l=function(h){var y=function(w,S){if(typeof w!="object"||w===null)return w;var A=w[Symbol.toPrimitive];if(A!==void 0){var C=A.call(w,S||"default");if(typeof C!="object")return C;throw new TypeError("@@toPrimitive must return a primitive value.")}return(S==="string"?String:Number)(w)}(h,"string");return typeof y=="symbol"?y:String(y)}(l))in s?Object.defineProperty(s,l,{value:d,enumerable:!0,configurable:!0,writable:!0}):s[l]=d,s}function N0(s,l,d){return function(h,y,w){if(y.set)y.set.call(h,w);else{if(!y.writable)throw new TypeError("attempted to set read only private field");y.value=w}}(s,I0(s,l,"set"),d),d}function I0(s,l,d){if(!l.has(s))throw new TypeError("attempted to "+d+" private field on non-instance");return l.get(s)}function C_(s,l,d){(function(h,y){if(y.has(h))throw new TypeError("Cannot initialize the same private elements twice on an object")})(s,l),l.set(s,d)}function Ah(s){return`Invalid specification ${Xe(s)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}let ta='Autosize "fit" only works for single views and layered views.';function Ta(s){return`${s=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function na(s){return`${s=="width"?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${s=="width"?"x":"y"}".`}function Cn(s){return s?`Dropping "fit-${s}" because spec has discrete ${Sa(s)}.`:'Dropping "fit" because spec has discrete size.'}function ha(s){return`Unknown field for ${s}. Cannot calculate view size.`}function aa(s){return`Cannot project a selection on encoding channel "${s}", which has no field.`}function Di(s,l){return`Cannot project a selection on encoding channel "${s}" as it uses an aggregate function ("${l}").`}function ja(s){return`Selection not supported for ${s} yet.`}let lr="The same selection must be used to override scale domains in a layered view.";function ur(s){return`The "columns" property cannot be used when "${s}" has nested row/column.`}function Dr(s,l,d){return`An ancestor parsed field "${s}" as ${d} but a child wants to parse the field as ${l}.`}function Gd(s){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${s} are dropped.`}function Th(s){return`${s}Offset dropped because ${s} is continuous`}function jd(s){return`Invalid field type "${s}".`}function O0(s,l){let{fill:d,stroke:h}=l;return`Dropping color ${s} as the plot also has ${d&&h?"fill and stroke":d?"fill":"stroke"}.`}function Hd(s,l){return`Dropping ${Xe(s)} from channel "${l}" since it does not contain any data field, datum, value, or signal.`}function Mi(s,l,d){return`${s} dropped as it is incompatible with "${l}"${d?` when ${d}`:""}.`}function Ch(s){return`${s} encoding should be discrete (ordinal / nominal / binned).`}function D0(s){return`${s} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function qd(s,l){return`Using discrete channel "${s}" to encode "${l}" field can be misleading as it does not encode ${l==="ordinal"?"order":"magnitude"}.`}function M0(s){return`Using unaggregated domain with raw field has no effect (${Xe(s)}).`}function Rh(s){return`Unaggregated domain not applicable for "${s}" since it produces values outside the origin domain of the source data.`}function Nh(s){return`Unaggregated domain is currently unsupported for log scale (${Xe(s)}).`}function L0(s,l,d){return`${d}-scale's "${l}" is dropped as it does not work with ${s} scale.`}function Ih(s){return`The step for "${s}" is dropped because the ${s==="width"?"x":"y"} is continuous.`}let Oh="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function rc(s,l){return`Invalid ${s}: ${Xe(l)}.`}function Wd(s){return`1D error band does not support ${s}.`}function Vd(s){return`Channel ${s} is required for "binned" bin.`}let F0=b.logger(b.Warn),ic=F0;function Be(){ic.warn(...arguments)}function Gs(s){if(s&&b.isObject(s)){for(let l of as)if(l in s)return!0}return!1}let P0=["january","february","march","april","may","june","july","august","september","october","november","december"],$0=P0.map(s=>s.substr(0,3)),B0=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],R_=B0.map(s=>s.substr(0,3));function Yd(s,l){let d=[];if(l&&s.day!==void 0&&be(s).length>1&&(Be(function(h){return`Dropping day from datetime ${Xe(h)} as day cannot be combined with other units.`}(s)),delete(s=j(s)).day),s.year!==void 0?d.push(s.year):d.push(2012),s.month!==void 0){let h=l?function(y){if(Ct(y)&&(y=+y),b.isNumber(y))return y-1;{let w=y.toLowerCase(),S=P0.indexOf(w);if(S!==-1)return S;let A=w.substr(0,3),C=$0.indexOf(A);if(C!==-1)return C;throw new Error(rc("month",y))}}(s.month):s.month;d.push(h)}else if(s.quarter!==void 0){let h=l?function(y){if(Ct(y)&&(y=+y),b.isNumber(y))return y>4&&Be(rc("quarter",y)),y-1;throw new Error(rc("quarter",y))}(s.quarter):s.quarter;d.push(b.isNumber(h)?3*h:`${h}*3`)}else d.push(0);if(s.date!==void 0)d.push(s.date);else if(s.day!==void 0){let h=l?function(y){if(Ct(y)&&(y=+y),b.isNumber(y))return y%7;{let w=y.toLowerCase(),S=B0.indexOf(w);if(S!==-1)return S;let A=w.substr(0,3),C=R_.indexOf(A);if(C!==-1)return C;throw new Error(rc("day",y))}}(s.day):s.day;d.push(b.isNumber(h)?h+1:`${h}+1`)}else d.push(1);for(let h of["hours","minutes","seconds","milliseconds"]){let y=s[h];d.push(y===void 0?0:y)}return d}function js(s){let l=Yd(s,!0).join(", ");return s.utc?`utc(${l})`:`datetime(${l})`}let U0={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},as=be(U0);function Mr(s){return b.isObject(s)?s.binned:Dh(s)}function Dh(s){return s&&s.startsWith("binned")}function Kd(s){return s.startsWith("utc")}let z0={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function oc(s){return as.filter(l=>Lh(s,l))}function Mh(s){let l=oc(s);return l[l.length-1]}function Lh(s,l){let d=s.indexOf(l);return!(d<0)&&!(d>0&&l==="seconds"&&s.charAt(d-1)==="i")&&!(s.length>d+3&&l==="day"&&s.charAt(d+3)==="o")&&!(d>0&&l==="year"&&s.charAt(d-1)==="f")}function N_(s,l){let{end:d}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{end:!1},h=St(l),y=Kd(s)?"utc":"",w,S={};for(let C of as)Lh(s,C)&&(S[C]=(A=C)==="quarter"?`(${y}quarter(${h})-1)`:`${y}${A}(${h})`,w=C);var A;return d&&(S[w]+="+1"),function(C){let L=Yd(C,!1).join(", ");return C.utc?`utc(${L})`:`datetime(${L})`}(S)}function G0(s){if(s)return`timeUnitSpecifier(${Xe(oc(s))}, ${Xe(z0)})`}function jn(s){if(!s)return;let l;return b.isString(s)?l=Dh(s)?{unit:s.substring(6),binned:!0}:{unit:s}:b.isObject(s)&&(l={...s,...s.unit?{unit:s.unit}:{}}),Kd(l.unit)&&(l.utc=!0,l.unit=l.unit.substring(3)),l}function j0(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:y=>y,d=jn(s),h=Mh(d.unit);if(h&&h!=="day"){let y={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:w,part:S}=Xd(h,d.step);return`${l(js({...y,[S]:+y[S]+w}))} - ${l(js(y))}`}}let I_={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function Xd(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;if(function(d){return!!I_[d]}(s))return{part:s,step:l};switch(s){case"day":case"dayofyear":return{part:"date",step:l};case"quarter":return{part:"month",step:3*l};case"week":return{part:"date",step:7*l}}}function Zd(s){return!!(s!=null&&s.field)&&s.equal!==void 0}function Hs(s){return!!(s!=null&&s.field)&&s.lt!==void 0}function qs(s){return!!(s!=null&&s.field)&&s.lte!==void 0}function Ws(s){return!!(s!=null&&s.field)&&s.gt!==void 0}function Fh(s){return!!(s!=null&&s.field)&&s.gte!==void 0}function Jd(s){return!!(s!=null&&s.field&&(b.isArray(s.range)&&s.range.length===2||Ze(s.range)))}function Qd(s){return!!(s!=null&&s.field)&&(b.isArray(s.oneOf)||b.isArray(s.in))}function Vl(s){return Qd(s)||Zd(s)||Jd(s)||Hs(s)||Ws(s)||qs(s)||Fh(s)}function ai(s,l){return iu(s,{timeUnit:l,wrapTime:!0})}function ef(s){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],{field:d}=s,h=jn(s.timeUnit),{unit:y,binned:w}=h||{},S=je(s,{expr:"datum"}),A=y?`time(${w?S:N_(y,d)})`:S;if(Zd(s))return`${A}===${ai(s.equal,y)}`;if(Hs(s))return`${A}<${ai(s.lt,y)}`;if(Ws(s))return`${A}>${ai(s.gt,y)}`;if(qs(s))return`${A}<=${ai(s.lte,y)}`;if(Fh(s))return`${A}>=${ai(s.gte,y)}`;if(Qd(s))return`indexof([${function(C,L){return C.map(G=>ai(G,L))}(s.oneOf,y).join(",")}], ${A}) !== -1`;if(function(C){return!!(C!=null&&C.field)&&C.valid!==void 0}(s))return sc(A,s.valid);if(Jd(s)){let{range:C}=s,L=Ze(C)?{signal:`${C.signal}[0]`}:C[0],G=Ze(C)?{signal:`${C.signal}[1]`}:C[1];if(L!==null&&G!==null&&l)return"inrange("+A+", ["+ai(L,y)+", "+ai(G,y)+"])";let H=[];return L!==null&&H.push(`${A} >= ${ai(L,y)}`),G!==null&&H.push(`${A} <= ${ai(G,y)}`),H.length>0?H.join(" && "):"true"}throw new Error(`Invalid field predicate: ${Xe(s)}`)}function sc(s){return!(arguments.length>1&&arguments[1]!==void 0)||arguments[1]?`isValid(${s}) && isFinite(+${s})`:`!isValid(${s}) || !isFinite(+${s})`}function lc(s){return Vl(s)&&s.timeUnit?{...s,timeUnit:jn(s.timeUnit)}:s}function H0(s){return s==="quantitative"||s==="temporal"}function Yl(s){return s==="ordinal"||s==="nominal"}let bo="quantitative",tf="ordinal",rs="temporal",nf="nominal",Vs="geojson",Gt={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"},Ph={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 O_(s,l){let d=Ph[s],h=Ph[l];return d===h||d==="ordinal-position"&&h==="time"||h==="ordinal-position"&&d==="time"}let Pt={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 q0(s){return Pt[s]}let Kl=new Set(["linear","log","pow","sqrt","symlog"]),Xl=new Set([...Kl,"time","utc"]);function W0(s){return Kl.has(s)}let V0=new Set(["quantile","quantize","threshold"]),D_=new Set([...Xl,...V0,"sequential","identity"]),M_=new Set(["ordinal","bin-ordinal","point","band"]);function Hn(s){return M_.has(s)}function Ha(s){return D_.has(s)}function Lr(s){return Xl.has(s)}function Zl(s){return V0.has(s)}function Y0(s){return s==null?void 0:s.param}let{type:qA,domain:L_,range:WA,rangeMax:F_,rangeMin:VA,scheme:YA,...P_}={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw: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},$_=be(P_);function $h(s,l){switch(l){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(s);case"bins":return!["point","band","identity","ordinal"].includes(s);case"round":return Lr(s)||s==="band"||s==="point";case"padding":case"rangeMin":case"rangeMax":return Lr(s)||["point","band"].includes(s);case"paddingOuter":case"align":return["point","band"].includes(s);case"paddingInner":return s==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return Lr(s);case"nice":return Lr(s)||s==="quantize"||s==="threshold";case"exponent":return s==="pow";case"base":return s==="log";case"constant":return s==="symlog";case"zero":return Ha(s)&&!Q(["log","time","utc","threshold","quantile"],s)}}function K0(s,l){switch(l){case"interpolate":case"scheme":case"domainMid":return es(s)?void 0:`Cannot use the scale property "${l}" with non-color channel.`;case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":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}}let Ca={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"},Bh=Ca.arc,af=Ca.area,rf=Ca.bar,B_=Ca.image,uc=Ca.line,of=Ca.point,U_=Ca.rect,sf=Ca.rule,X0=Ca.text,Uh=Ca.tick,z_=Ca.trail,lf=Ca.circle,zh=Ca.square,Z0=Ca.geoshape;function is(s){return["line","area","trail"].includes(s)}function cc(s){return["rect","bar","image","arc"].includes(s)}let G_=new Set(be(Ca));function Li(s){return s.type}let j_=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],J0=be({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),Gh=be({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function Ys(s){return s&&s.band!=null}let H_={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},q_={binSpacing:1,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},Q0={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5};function jh(s){let{channel:l,channelDef:d,markDef:h,scale:y,config:w}=s,S=qh(s);return ze(d)&&!Ii(d.aggregate)&&y&&Lr(y.get("type"))?function(A){let{fieldDef:C,channel:L,markDef:G,ref:H,config:X}=A;return is(G.type)?H:Ht("invalid",G,X)===null?[W_(C,L),H]:H}({fieldDef:d,channel:l,markDef:h,ref:S,config:w}):S}function W_(s,l){return{test:Hh(s,!0),...Us(l)==="y"?{field:{group:"height"}}:{value:0}}}function Hh(s){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return sc(b.isString(s)?s:je(s,{expr:"datum"}),!l)}function Ks(s,l,d,h){let y={};if(l&&(y.scale=l),Pi(s)){let{datum:w}=s;Gs(w)?y.signal=js(w):Ze(w)?y.signal=w.signal:ts(w)?y.signal=w.expr:y.value=w}else y.field=je(s,d);if(h){let{offset:w,band:S}=h;w&&(y.offset=w),S&&(y.band=S)}return y}function uf(s){let{scaleName:l,fieldOrDatumDef:d,fieldOrDatumDef2:h,offset:y,startSuffix:w,endSuffix:S="end",bandPosition:A=.5}=s,C=!Ze(A)&&0<A&&A<1?"datum":void 0,L=je(d,{expr:C,suffix:w}),G=h!==void 0?je(h,{expr:C}):je(d,{suffix:S,expr:C}),H={};if(A===0||A===1){H.scale=l;let X=A===0?L:G;H.field=X}else{let X=Ze(A)?`(1-${A.signal}) * ${L} + ${A.signal} * ${G}`:`${1-A} * ${L} + ${A} * ${G}`;H.signal=`scale("${l}", ${X})`}return y&&(H.offset=y),H}function qh(s){let{channel:l,channelDef:d,channel2Def:h,markDef:y,config:w,scaleName:S,scale:A,stack:C,offset:L,defaultRef:G,bandPosition:H}=s;if(d){if(wt(d)){let X=A==null?void 0:A.get("type");if(ma(d)){H??=Fi({fieldDef:d,fieldDef2:h,markDef:y,config:w});let{bin:Z,timeUnit:le,type:ee}=d;if(Vt(Z)||H&&le&&ee===rs)return C!=null&&C.impute?Ks(d,S,{binSuffix:"mid"},{offset:L}):H&&!Hn(X)?uf({scaleName:S,fieldOrDatumDef:d,bandPosition:H,offset:L}):Ks(d,S,ou(d,l)?{binSuffix:"range"}:{},{offset:L});if(zn(Z)){if(ze(h))return uf({scaleName:S,fieldOrDatumDef:d,fieldOrDatumDef2:h,bandPosition:H,offset:L});Be(Vd(l===Qt?Xr:ki))}}return Ks(d,S,Hn(X)?{binSuffix:"range"}:{},{offset:L,band:X==="band"?H??d.bandPosition??.5:void 0})}if(cr(d)){let X=L?{offset:L}:{};return{...Jl(l,d.value),...X}}}return b.isFunction(G)&&(G=G()),G&&{...G,...L?{offset:L}:{}}}function Jl(s,l){return Q(["x","x2"],s)&&l==="width"?{field:{group:"width"}}:Q(["y","y2"],s)&&l==="height"?{field:{group:"height"}}:on(l)}function Xs(s){return s&&s!=="number"&&s!=="time"}function ey(s,l,d){return`${s}(${l}${d?`, ${Xe(d)}`:""})`}let V_=" \u2013 ";function Wh(s){var L,G;let{fieldOrDatumDef:l,format:d,formatType:h,expr:y,normalizeStack:w,config:S}=s;if(Xs(h))return ri({fieldOrDatumDef:l,format:d,formatType:h,expr:y,config:S});let A=ty(l,y,w),C=tu(l);if(d===void 0&&h===void 0&&S.customFormatTypes){if(C==="quantitative"){if(w&&S.normalizedNumberFormatType)return ri({fieldOrDatumDef:l,format:S.normalizedNumberFormat,formatType:S.normalizedNumberFormatType,expr:y,config:S});if(S.numberFormatType)return ri({fieldOrDatumDef:l,format:S.numberFormat,formatType:S.numberFormatType,expr:y,config:S})}if(C==="temporal"&&S.timeFormatType&&ze(l)&&l.timeUnit===void 0)return ri({fieldOrDatumDef:l,format:S.timeFormat,formatType:S.timeFormatType,expr:y,config:S})}if(It(l)){let H=function(X){let{field:Z,timeUnit:le,format:ee,formatType:de,rawTimeFormat:ge,isUTCScale:xe}=X;return!le||ee?!le&&de?`${de}(${Z}, '${ee}')`:(ee=b.isString(ee)?ee:ge,`${xe?"utc":"time"}Format(${Z}, '${ee}')`):function(me,Ae,Ce){if(!me)return;let Pe=G0(me);return`${Ce||Kd(me)?"utc":"time"}Format(${Ae}, ${Pe})`}(le,Z,xe)}({field:A,timeUnit:ze(l)?(L=jn(l.timeUnit))==null?void 0:L.unit:void 0,format:d,formatType:S.timeFormatType,rawTimeFormat:S.timeFormat,isUTCScale:$i(l)&&((G=l.scale)==null?void 0:G.type)===Gt.UTC});return H?{signal:H}:void 0}return d=cf({type:C,specifiedFormat:d,config:S,normalizeStack:w}),ze(l)&&Vt(l.bin)?{signal:yo(A,je(l,{expr:y,binSuffix:"end"}),d,h,S)}:d||tu(l)==="quantitative"?{signal:`${Vh(A,d)}`}:{signal:`isValid(${A}) ? ${A} : ""+${A}`}}function ty(s,l,d){return ze(s)?d?`${je(s,{expr:l,suffix:"end"})}-${je(s,{expr:l,suffix:"start"})}`:je(s,{expr:l}):function(h){let{datum:y}=h;return Gs(y)?js(y):`${Xe(y)}`}(s)}function ri(s){let{fieldOrDatumDef:l,format:d,formatType:h,expr:y,normalizeStack:w,config:S,field:A}=s;return A??=ty(l,y,w),A!=="datum.value"&&ze(l)&&Vt(l.bin)?{signal:yo(A,je(l,{expr:y,binSuffix:"end"}),d,h,S)}:{signal:ey(h,A,d)}}function ny(s,l,d,h,y,w){var S;if(!b.isString(h)||!Xs(h)){if(d===void 0&&h===void 0&&y.customFormatTypes&&tu(s)==="quantitative"&&(y.normalizedNumberFormatType&&nu(s)&&s.stack==="normalize"||y.numberFormatType))return;if(nu(s)&&s.stack==="normalize"&&y.normalizedNumberFormat)return cf({type:"quantitative",config:y,normalizeStack:!0});if(It(s)){let A=ze(s)?(S=jn(s.timeUnit))==null?void 0:S.unit:void 0;return A===void 0&&y.customFormatTypes&&y.timeFormatType?void 0:function(C){let{specifiedFormat:L,timeUnit:G,config:H,omitTimeFormatConfig:X}=C;return L||(G?{signal:G0(G)}:X?void 0:H.timeFormat)}({specifiedFormat:d,timeUnit:A,config:y,omitTimeFormatConfig:w})}return cf({type:l,specifiedFormat:d,config:y})}}function ay(s,l,d){var h;return s&&(Ze(s)||s==="number"||s==="time")?s:It(l)&&d!=="time"&&d!=="utc"?ze(l)&&((h=jn(l==null?void 0:l.timeUnit))!=null&&h.utc)?"utc":"time":void 0}function cf(s){let{type:l,specifiedFormat:d,config:h,normalizeStack:y}=s;return b.isString(d)?d:l===bo?y?h.normalizedNumberFormat:h.numberFormat:void 0}function Vh(s,l){return`format(${s}, "${l||""}")`}function Yh(s,l,d,h){return Xs(d)?ey(d,s,l):Vh(s,(b.isString(l)?l:void 0)??h.numberFormat)}function yo(s,l,d,h,y){if(d===void 0&&h===void 0&&y.customFormatTypes&&y.numberFormatType)return yo(s,l,y.numberFormat,y.numberFormatType,y);let w=Yh(s,d,h,y),S=Yh(l,d,h,y);return`${sc(s,!1)} ? "null" : ${w} + "${V_}" + ${S}`}let dc="min",Kh={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 df(s){return s in Kh}function Xh(s){return!!(s!=null&&s.encoding)}function ii(s){return s&&(s.op==="count"||!!s.field)}function fc(s){return s&&b.isArray(s)}function Ql(s){return"row"in s||"column"in s}function ff(s){return!!s&&"header"in s}function pc(s){return"facet"in s}function Zh(s){let{field:l,timeUnit:d,bin:h,aggregate:y}=s;return{...d?{timeUnit:d}:{},...h?{bin:h}:{},...y?{aggregate:y}:{},field:l}}function Zs(s){return"sort"in s}function Fi(s){let{fieldDef:l,fieldDef2:d,markDef:h,config:y}=s;if(wt(l)&&l.bandPosition!==void 0)return l.bandPosition;if(ze(l)){let{timeUnit:w,bin:S}=l;if(w&&!d)return Ga("timeUnitBandPosition",h,y);if(Vt(S))return .5}}function Jh(s){var G,H,X;let{channel:l,fieldDef:d,fieldDef2:h,markDef:y,config:w,scaleType:S,useVlSizeChannel:A}=s,C=Sa(l),L=Ht(A?"size":C,y,w,{vgChannel:C});if(L!==void 0)return L;if(ze(d)){let{timeUnit:Z,bin:le}=d;if(Z&&!h)return{band:Ga("timeUnitBandSize",y,w)};if(Vt(le)&&!Hn(S))return{band:1}}return cc(y.type)?S?Hn(S)?((G=w[y.type])==null?void 0:G.discreteBandSize)||{band:1}:(H=w[y.type])==null?void 0:H.continuousBandSize:(X=w[y.type])==null?void 0:X.discreteBandSize:void 0}function pf(s,l,d,h){return!!(Vt(s.bin)||s.timeUnit&&ma(s)&&s.type==="temporal")&&Fi({fieldDef:s,fieldDef2:l,markDef:d,config:h})!==void 0}function ry(s){return s&&!!s.sort&&!s.field}function hf(s){return s&&"condition"in s}function mf(s){let l=s==null?void 0:s.condition;return!!l&&!b.isArray(l)&&ze(l)}function eu(s){let l=s==null?void 0:s.condition;return!!l&&!b.isArray(l)&&wt(l)}function ze(s){return s&&(!!s.field||s.aggregate==="count")}function tu(s){return s==null?void 0:s.type}function Pi(s){return s&&"datum"in s}function os(s){return ma(s)&&!au(s)||gf(s)}function iy(s){return ma(s)&&s.type==="quantitative"&&!s.bin||gf(s)}function gf(s){return Pi(s)&&b.isNumber(s.datum)}function wt(s){return ze(s)||Pi(s)}function ma(s){return s&&("field"in s||s.aggregate==="count")&&"type"in s}function cr(s){return s&&"value"in s&&"value"in s}function $i(s){return s&&("scale"in s||"sort"in s)}function nu(s){return s&&("axis"in s||"stack"in s||"impute"in s)}function Qh(s){return s&&"legend"in s}function em(s){return s&&("format"in s||"formatType"in s)}function oy(s){return te(s,["legend","axis","header","scale"])}function je(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=s.field,h=l.prefix,y=l.suffix,w="";if(function(S){return S.aggregate==="count"}(s))d=Et("count");else{let S;if(!l.nofn)if(function(A){return"op"in A}(s))S=s.op;else{let{bin:A,aggregate:C,timeUnit:L}=s;Vt(A)?(S=Oi(A),y=(l.binSuffix??"")+(l.suffix??"")):C?Ni(C)?(w=`["${d}"]`,d=`argmax_${C.argmax}`):ei(C)?(w=`["${d}"]`,d=`argmin_${C.argmin}`):S=String(C):L&&!Mr(L)&&(S=function(G){let{utc:H,...X}=jn(G);return X.unit?(H?"utc":"")+be(X).map(Z=>$e(`${Z==="unit"?"":`_${Z}_`}${X[Z]}`)).join(""):(H?"utc":"")+"timeunit"+be(X).map(Z=>$e(`_${Z}_${X[Z]}`)).join("")}(L),y=(!["range","mid"].includes(l.binSuffix)&&l.binSuffix||"")+(l.suffix??""))}S&&(d=d?`${S}_${d}`:S)}return y&&(d=`${d}_${y}`),h&&(d=`${h}_${d}`),l.forAs?Tt(d):l.expr?rn(d,l.expr)+w:jt(d)+w}function au(s){switch(s.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return ze(s)&&!!s.bin;case"temporal":return!1}throw new Error(jd(s.type))}let sy=(s,l)=>{switch(l.fieldTitle){case"plain":return s.field;case"functional":return function(d){let{aggregate:h,bin:y,timeUnit:w,field:S}=d;if(Ni(h))return`${S} for argmax(${h.argmax})`;if(ei(h))return`${S} for argmin(${h.argmin})`;let A=w&&!Mr(w)?jn(w):void 0,C=h||(A==null?void 0:A.unit)||(A==null?void 0:A.maxbins)&&"timeunit"||Vt(y)&&"bin";return C?`${C.toUpperCase()}(${S})`:S}(s);default:return function(d,h){var C;let{field:y,bin:w,timeUnit:S,aggregate:A}=d;if(A==="count")return h.countTitle;if(Vt(w))return`${y} (binned)`;if(S&&!Mr(S)){let L=(C=jn(S))==null?void 0:C.unit;if(L)return`${y} (${oc(L).join("-")})`}else if(A)return Ni(A)?`${y} for max ${A.argmax}`:ei(A)?`${y} for min ${A.argmin}`:`${yt(A)} of ${y}`;return y}(s,l)}},tm=sy;function hc(s){tm=s}function ss(s,l,d){var C;let{allowDisabling:h,includeDefault:y=!0}=d,w=(C=bf(s))==null?void 0:C.title;if(!ze(s))return w??s.title;let S=s,A=y?yf(S,l):void 0;return h?Ke(w,S.title,A):w??S.title??A}function bf(s){return nu(s)&&s.axis?s.axis:Qh(s)&&s.legend?s.legend:ff(s)&&s.header?s.header:void 0}function yf(s,l){return tm(s,l)}function Js(s){if(em(s)){let{format:l,formatType:d}=s;return{format:l,formatType:d}}{let l=bf(s)??{},{format:d,formatType:h}=l;return{format:d,formatType:h}}}function dr(s){return ze(s)?s:mf(s)?s.condition:void 0}function yn(s){return wt(s)?s:eu(s)?s.condition:void 0}function nm(s,l,d){let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return b.isString(s)||b.isNumber(s)||b.isBoolean(s)?(Be(function(y,w,S){return`Channel ${y} is a ${w}. Converted to {value: ${Xe(S)}}.`}(l,b.isString(s)?"string":b.isNumber(s)?"number":"boolean",s)),{value:s}):wt(s)?vf(s,l,d,h):eu(s)?{...s,condition:vf(s.condition,l,d,h)}:s}function vf(s,l,d,h){if(em(s)){let{format:y,formatType:w,...S}=s;if(Xs(w)&&!d.customFormatTypes)return Be(Gd(l)),vf(S,l,d,h)}else{let y=nu(s)?"axis":Qh(s)?"legend":ff(s)?"header":null;if(y&&s[y]){let{format:w,formatType:S,...A}=s[y];if(Xs(S)&&!d.customFormatTypes)return Be(Gd(l)),vf({...s,[y]:A},l,d,h)}}return ze(s)?ru(s,l,h):function(y){let w=y.type;if(w)return y;let{datum:S}=y;return w=b.isNumber(S)?"quantitative":b.isString(S)?"nominal":Gs(S)?"temporal":void 0,{...y,type:w}}(s)}function ru(s,l){let{compositeMark:d=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{aggregate:h,timeUnit:y,bin:w,field:S}=s,A={...s};if(d||!h||Sn(h)||Ni(h)||ei(h)||(Be(function(C){return`Invalid aggregation operator "${C}".`}(h)),delete A.aggregate),y&&(A.timeUnit=jn(y)),S&&(A.field=`${S}`),Vt(w)&&(A.bin=rt(w,l)),zn(w)&&!un(l)&&Be(function(C){return`Channel ${C} should not be used with "binned" bin.`}(l)),ma(A)){let{type:C}=A,L=function(G){if(G)switch(G=G.toLowerCase()){case"q":case bo:return"quantitative";case"t":case rs:return"temporal";case"o":case tf:return"ordinal";case"n":case nf:return"nominal";case Vs:return"geojson"}}(C);C!==L&&(A.type=L),C!=="quantitative"&&Ii(h)&&(Be(function(G,H){return`Invalid field type "${G}" for aggregate: "${H}", using "quantitative" instead.`}(C,h)),A.type="quantitative")}else if(!Ti(l)){let C=function(L,G){var le;switch(G){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Zs(L)&&b.isArray(L.sort))return"ordinal";let{aggregate:H,bin:X,timeUnit:Z}=L;if(Z)return"temporal";if(X||H&&!Ni(H)&&!ei(H))return"quantitative";if($i(L)&&((le=L.scale)!=null&&le.type))switch(Ph[L.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(A,l);A.type=C}if(ma(A)){let{compatible:C,warning:L}=function(G,H){var le;let X=G.type;if(X==="geojson"&&H!=="shape")return{compatible:!1,warning:`Channel ${H} should not be used with a geojson data.`};switch(H){case tt:case Kr:case Fl:return au(G)?Qs:{compatible:!1,warning:Ch(H)};case Qt:case Bn:case hn:case Zo:case Le:case xa:case Zr:case Pl:case po:case Ku:case Jr:case st:case $l:case Ba:case ar:case mt:case Md:return Qs;case $a:case rr:case nt:case da:return X!==bo?{compatible:!1,warning:`Channel ${H} should be used with a quantitative field only, not ${G.type} field.`}:Qs;case Si:case Ft:case Ai:case fo:case xi:case co:case Un:case Xr:case ki:return X!=="nominal"||G.sort?Qs:{compatible:!1,warning:`Channel ${H} should not be used with an unsorted discrete field.`};case xn:case Jo:return au(G)||$i(Z=G)&&Zl((le=Z.scale)==null?void 0:le.type)?Qs:{compatible:!1,warning:D0(H)};case Bs:return G.type!=="nominal"||"sort"in G?Qs:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var Z}(A,l)||{};C===!1&&Be(L)}if(Zs(A)&&b.isString(A.sort)){let{sort:C}=A;if(df(C))return{...A,sort:{encoding:C}};let L=C.substr(1);if(C.charAt(0)==="-"&&df(L))return{...A,sort:{encoding:L,order:"descending"}}}if(ff(A)){let{header:C}=A;if(C){let{orient:L,...G}=C;if(L)return{...A,header:{...G,labelOrient:C.labelOrient||L,titleOrient:C.titleOrient||L}}}}return A}function rt(s,l){return b.isBoolean(s)?{maxbins:nc(l)}:s==="binned"?{binned:!0}:s.maxbins||s.step?s:{...s,maxbins:nc(l)}}let Qs={compatible:!0};function It(s){let{formatType:l}=Js(s);return l==="time"||!l&&(d=s)&&(d.type==="temporal"||ze(d)&&!!d.timeUnit);var d}function iu(s,l){var L;let{timeUnit:d,type:h,wrapTime:y,undefinedIfExprNotRequired:w}=l,S=d&&((L=jn(d))==null?void 0:L.unit),A,C=S||h==="temporal";return ts(s)?A=s.expr:Ze(s)?A=s.signal:Gs(s)?(C=!0,A=js(s)):(b.isString(s)||b.isNumber(s))&&C&&(A=`datetime(${Xe(s)})`,function(G){return!!U0[G]}(S)&&(b.isNumber(s)&&s<1e4||b.isString(s)&&isNaN(Date.parse(s)))&&(A=js({[S]:s}))),A?y&&C?`time(${A})`:A:w?void 0:Xe(s)}function mc(s,l){let{type:d}=s;return l.map(h=>{let y=iu(h,{timeUnit:ze(s)&&!Mr(s.timeUnit)?s.timeUnit:void 0,type:d,undefinedIfExprNotRequired:!0});return y!==void 0?{signal:y}:h})}function ou(s,l){return Vt(s.bin)?Nr(l)&&["ordinal","nominal"].includes(s.type):(console.warn("Only call this method for binned field defs."),!1)}let ls={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 su(s){return s==null?void 0:s.condition}let us=["domain","grid","labels","ticks","title"],Ef={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"},gc={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},Y_={...gc,style:1,labelExpr:1,encoding:1};function ly(s){return!!Y_[s]}let Yt=be({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function Bi(s){return"mark"in s}class wf{constructor(l,d){this.name=l,this.run=d}hasMatchingType(l){return!!Bi(l)&&(Li(d=l.mark)?d.type:d)===this.name;var d}}function Ui(s,l){let d=s&&s[l];return!!d&&(b.isArray(d)?ie(d,h=>!!h.field):ze(d)||mf(d))}function vo(s,l){let d=s&&s[l];return!!d&&(b.isArray(d)?ie(d,h=>!!h.field):ze(d)||Pi(d)||eu(d))}function uy(s,l){if(un(l)){let d=s[l];if((ze(d)||Pi(d))&&(Yl(d.type)||ze(d)&&d.timeUnit))return vo(s,Ul(l))}return!1}function am(s){return ie(m0,l=>{if(Ui(s,l)){let d=s[l];if(b.isArray(d))return ie(d,h=>!!h.aggregate);{let h=dr(d);return h&&!!h.aggregate}}return!1})}function cy(s,l){let d=[],h=[],y=[],w=[],S={};return bc(s,(A,C)=>{if(ze(A)){let{field:L,aggregate:G,bin:H,timeUnit:X,...Z}=A;if(G||X||H){let le=bf(A),ee=le==null?void 0:le.title,de=je(A,{forAs:!0}),ge={...ee?[]:{title:ss(A,l,{allowDisabling:!0})},...Z,field:de};if(G){let xe;if(Ni(G)?(xe="argmax",de=je({op:"argmax",field:G.argmax},{forAs:!0}),ge.field=`${de}.${L}`):ei(G)?(xe="argmin",de=je({op:"argmin",field:G.argmin},{forAs:!0}),ge.field=`${de}.${L}`):G!=="boxplot"&&G!=="errorbar"&&G!=="errorband"&&(xe=G),xe){let me={op:xe,as:de};L&&(me.field=L),w.push(me)}}else if(d.push(de),ma(A)&&Vt(H)){if(h.push({bin:H,field:L,as:de}),d.push(je(A,{binSuffix:"end"})),ou(A,C)&&d.push(je(A,{binSuffix:"range"})),un(C)){let xe={field:`${de}_end`};S[`${C}2`]=xe}ge.bin="binned",Ti(C)||(ge.type=bo)}else if(X&&!Mr(X)){y.push({timeUnit:X,field:L,as:de});let xe=ma(A)&&A.type!==rs&&"time";xe&&(C===Pl||C===Jr?ge.formatType=xe:function(me){return!!Ri[me]}(C)?ge.legend={formatType:xe,...ge.legend}:un(C)&&(ge.axis={formatType:xe,...ge.axis}))}S[C]=ge}else d.push(L),S[C]=s[C]}else S[C]=s[C]}),{bins:h,timeUnits:y,aggregate:w,groupby:d,encoding:S}}function _f(s,l,d){let h=kh(l,d);if(!h)return!1;if(h==="binned"){let y=s[l===Xr?Qt:Bn];return!!(ze(y)&&ze(s[l])&&zn(y.bin))}return!0}function oi(s,l){let d={};for(let h of be(s)){let y=nm(s[h],h,l,{compositeMark:!0});d[h]=y}return d}function bc(s,l,d){if(s)for(let h of be(s)){let y=s[h];if(b.isArray(y))for(let w of y)l.call(d,w,h);else l.call(d,y,h)}}function rm(s,l){return be(l).reduce((d,h)=>{switch(h){case Qt:case Bn:case st:case Md:case $l:case Xr:case ki:case hn:case Zo:case ar:case co:case mt:case Un:case nt:case $a:case da:case rr:case Pl:case xn:case Ba:case Jr:return d;case Bs:if(s==="line"||s==="trail")return d;case po:case Ku:{let y=l[h];if(b.isArray(y)||ze(y))for(let w of b.array(y))w.aggregate||d.push(je(w,{}));return d}case xi:if(s==="trail")return d;case Le:case xa:case Zr:case Si:case Ft:case Ai:case Jo:case fo:{let y=dr(l[h]);return y&&!y.aggregate&&d.push(je(y,{})),d}}},[])}function lu(s,l,d){let h=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return"tooltip"in d?{tooltip:d.tooltip}:{tooltip:[...s.map(y=>{let{fieldPrefix:w,titlePrefix:S}=y,A=h?` of ${yc(l)}`:"";return{field:w+l.field,type:l.type,title:Ze(S)?{signal:`${S}"${escape(A)}"`}:S+A}}),...Se(function(y){let w=[];for(let S of be(y))if(Ui(y,S)){let A=y[S],C=b.array(A);for(let L of C)ze(L)?w.push(L):mf(L)&&w.push(L.condition)}return w}(d).map(oy),ae)]}}function yc(s){let{title:l,field:d}=s;return Ke(l,d)}function kf(s,l,d,h,y){let{scale:w,axis:S}=d;return A=>{let{partName:C,mark:L,positionPrefix:G,endPositionPrefix:H,extraEncoding:X={}}=A,Z=yc(d);return xf(s,C,y,{mark:L,encoding:{[l]:{field:`${G}_${d.field}`,type:d.type,...Z!==void 0?{title:Z}:{},...w!==void 0?{scale:w}:{},...S!==void 0?{axis:S}:{}},...b.isString(H)?{[`${l}2`]:{field:`${H}_${d.field}`}}:{},...h,...X}})}}function xf(s,l,d,h){let{clip:y,color:w,opacity:S}=s,A=s.type;return s[l]||s[l]===void 0&&d[l]?[{...h,mark:{...d[l],...y?{clip:y}:{},...w?{color:w}:{},...S?{opacity:S}:{},...Li(h.mark)?h.mark:{type:h.mark},style:`${A}-${String(l)}`,...b.isBoolean(s[l])?{}:s[l]}}]:[]}function dy(s,l,d){let{encoding:h}=s,y=l==="vertical"?"y":"x",w=h[y],S=h[`${y}2`],A=h[`${y}Error`],C=h[`${y}Error2`];return{continuousAxisChannelDef:vc(w,d),continuousAxisChannelDef2:vc(S,d),continuousAxisChannelDefError:vc(A,d),continuousAxisChannelDefError2:vc(C,d),continuousAxis:y}}function vc(s,l){if(s!=null&&s.aggregate){let{aggregate:d,...h}=s;return d!==l&&Be(function(y,w){return`Continuous axis should not have customized aggregation function ${y}; ${w} already agregates the axis.`}(d,l)),h}return s}function el(s,l){let{mark:d,encoding:h}=s,{x:y,y:w}=h;if(Li(d)&&d.orient)return d.orient;if(os(y)){if(os(w)){let S=ze(y)&&y.aggregate,A=ze(w)&&w.aggregate;if(S||A!==l){if(A||S!==l){if(S===l&&A===l)throw new Error("Both x and y cannot have aggregate");return It(w)&&!It(y)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(os(w))return"vertical";throw new Error(`Need a valid continuous axis for ${l}s`)}let cs="boxplot",ke=new wf(cs,im);function tl(s){return b.isNumber(s)?"tukey":s}function im(s,l){let{config:d}=l;s={...s,encoding:oi(s.encoding,d)};let{mark:h,encoding:y,params:w,projection:S,...A}=s,C=Li(h)?h:{type:h};w&&Be(ja("boxplot"));let L=C.extent??d.boxplot.extent,G=Ht("size",C,d),H=C.invalid,X=tl(L),{bins:Z,timeUnits:le,transform:ee,continuousAxisChannelDef:de,continuousAxis:ge,groupby:xe,aggregate:me,encodingWithoutContinuousAxis:Ae,ticksOrient:Ce,boxOrient:Pe,customTooltipWithoutAggregatedField:We}=function(sd,Vg,Mo){let Tu=el(sd,cs),{continuousAxisChannelDef:Yg,continuousAxis:Kg}=dy(sd,Tu,cs),wn=Yg.field,As=tl(Vg),ld=[...om(wn),{op:"median",field:wn,as:`mid_box_${wn}`},{op:"min",field:wn,as:(As==="min-max"?"lower_whisker_":"min_")+wn},{op:"max",field:wn,as:(As==="min-max"?"upper_whisker_":"max_")+wn}],Ip=As==="min-max"||As==="tukey"?[]:[{calculate:`datum["upper_box_${wn}"] - datum["lower_box_${wn}"]`,as:`iqr_${wn}`},{calculate:`min(datum["upper_box_${wn}"] + datum["iqr_${wn}"] * ${Vg}, datum["max_${wn}"])`,as:`upper_whisker_${wn}`},{calculate:`max(datum["lower_box_${wn}"] - datum["iqr_${wn}"] * ${Vg}, datum["min_${wn}"])`,as:`lower_whisker_${wn}`}],{[Kg]:KA,...w1}=sd.encoding,{customTooltipWithoutAggregatedField:_1,filteredEncoding:k1}=function(In){let{tooltip:Lo,...vl}=In;if(!Lo)return{filteredEncoding:vl};let El,no;if(b.isArray(Lo)){for(let wl of Lo)wl.aggregate?(El||(El=[]),El.push(wl)):(no||(no=[]),no.push(wl));El&&(vl.tooltip=El)}else Lo.aggregate?vl.tooltip=Lo:no=Lo;return b.isArray(no)&&no.length===1&&(no=no[0]),{customTooltipWithoutAggregatedField:no,filteredEncoding:vl}}(w1),{bins:Ev,timeUnits:wv,aggregate:_v,groupby:Op,encoding:Cu}=cy(k1,Mo),kv=Tu==="vertical"?"horizontal":"vertical",xv=Tu,Xg=[...Ev,...wv,{aggregate:[..._v,...ld],groupby:Op},...Ip];return{bins:Ev,timeUnits:wv,transform:Xg,groupby:Op,aggregate:_v,continuousAxisChannelDef:Yg,continuousAxis:Kg,encodingWithoutContinuousAxis:Cu,ticksOrient:kv,boxOrient:xv,customTooltipWithoutAggregatedField:_1}}(s,L,d),{color:Je,size:it,...Qe}=Ae,lt=sd=>kf(C,ge,de,sd,d.boxplot),kt=lt(Qe),Fn=lt(Ae),dn=lt({...Qe,...it?{size:it}:{}}),sn=lu([{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"}],de,Ae),Ut={type:"tick",color:"black",opacity:1,orient:Ce,invalid:H,aria:!1},Dt=X==="min-max"?sn:lu([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],de,Ae),vn=[...kt({partName:"rule",mark:{type:"rule",invalid:H,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:Dt}),...kt({partName:"rule",mark:{type:"rule",invalid:H,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:Dt}),...kt({partName:"ticks",mark:Ut,positionPrefix:"lower_whisker",extraEncoding:Dt}),...kt({partName:"ticks",mark:Ut,positionPrefix:"upper_whisker",extraEncoding:Dt})],Nn=[...X!=="tukey"?vn:[],...Fn({partName:"box",mark:{type:"bar",...G?{size:G}:{},orient:Pe,invalid:H,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:sn}),...dn({partName:"median",mark:{type:"tick",invalid:H,...b.isObject(d.boxplot.median)&&d.boxplot.median.color?{color:d.boxplot.median.color}:{},...G?{size:G}:{},orient:Ce,aria:!1},positionPrefix:"mid_box",extraEncoding:sn})];if(X==="min-max")return{...A,transform:(A.transform??[]).concat(ee),layer:Nn};let fn=`datum["lower_box_${de.field}"]`,Oa=`datum["upper_box_${de.field}"]`,Da=`(${Oa} - ${fn})`,Br=`${fn} - ${L} * ${Da}`,Xn=`${Oa} + ${L} * ${Da}`,ga=`datum["${de.field}"]`,ln={joinaggregate:om(de.field),groupby:xe},At={transform:[{filter:`(${Br} <= ${ga}) && (${ga} <= ${Xn})`},{aggregate:[{op:"min",field:de.field,as:`lower_whisker_${de.field}`},{op:"max",field:de.field,as:`upper_whisker_${de.field}`},{op:"min",field:`lower_box_${de.field}`,as:`lower_box_${de.field}`},{op:"max",field:`upper_box_${de.field}`,as:`upper_box_${de.field}`},...me],groupby:xe}],layer:vn},{tooltip:En,...mi}=Qe,{scale:gi,axis:Ss}=de,Xa=yc(de),mr=te(Ss,["title"]),ba=xf(C,"outliers",d.boxplot,{transform:[{filter:`(${ga} < ${Br}) || (${ga} > ${Xn})`}],mark:"point",encoding:{[ge]:{field:de.field,type:de.type,...Xa!==void 0?{title:Xa}:{},...gi!==void 0?{scale:gi}:{},...ye(mr)?{}:{axis:mr}},...mi,...Je?{color:Je}:{},...We?{tooltip:We}:{}}})[0],bi,Do=[...Z,...le,ln];return ba?bi={transform:Do,layer:[ba,At]}:(bi=At,bi.transform.unshift(...Do)),{...A,layer:[bi,{transform:ee,layer:Nn}]}}function om(s){return[{op:"q1",field:s,as:`lower_box_${s}`},{op:"q3",field:s,as:`upper_box_${s}`}]}let Sf="errorbar",sm=new wf(Sf,Af);function Af(s,l){let{config:d}=l;s={...s,encoding:oi(s.encoding,d)};let{transform:h,continuousAxisChannelDef:y,continuousAxis:w,encodingWithoutContinuousAxis:S,ticksOrient:A,markDef:C,outerSpec:L,tooltipEncoding:G}=um(s,Sf,d);delete S.size;let H=kf(C,w,y,S,d.errorbar),X=C.thickness,Z=C.size,le={type:"tick",orient:A,aria:!1,...X!==void 0?{thickness:X}:{},...Z!==void 0?{size:Z}:{}},ee=[...H({partName:"ticks",mark:le,positionPrefix:"lower",extraEncoding:G}),...H({partName:"ticks",mark:le,positionPrefix:"upper",extraEncoding:G}),...H({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...X!==void 0?{size:X}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:G})];return{...L,transform:h,...ee.length>1?{layer:ee}:{...ee[0]}}}function lm(s,l){let{encoding:d}=s;if(function(A){return(wt(A.x)||wt(A.y))&&!wt(A.x2)&&!wt(A.y2)&&!wt(A.xError)&&!wt(A.xError2)&&!wt(A.yError)&&!wt(A.yError2)}(d))return{orient:el(s,l),inputType:"raw"};let h=function(A){return wt(A.x2)||wt(A.y2)}(d),y=function(A){return wt(A.xError)||wt(A.xError2)||wt(A.yError)||wt(A.yError2)}(d),w=d.x,S=d.y;if(h){if(y)throw new Error(`${l} cannot be both type aggregated-upper-lower and aggregated-error`);let A=d.x2,C=d.y2;if(wt(A)&&wt(C))throw new Error(`${l} cannot have both x2 and y2`);if(wt(A)){if(os(w))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${l}`)}if(wt(C)){if(os(S))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${l}`)}throw new Error("No ranged axis")}{let A=d.xError,C=d.xError2,L=d.yError,G=d.yError2;if(wt(C)&&!wt(A))throw new Error(`${l} cannot have xError2 without xError`);if(wt(G)&&!wt(L))throw new Error(`${l} cannot have yError2 without yError`);if(wt(A)&&wt(L))throw new Error(`${l} cannot have both xError and yError with both are quantiative`);if(wt(A)){if(os(w))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(wt(L)){if(os(S))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 um(s,l,d){let{mark:h,encoding:y,params:w,projection:S,...A}=s,C=Li(h)?h:{type:h};w&&Be(ja(l));let{orient:L,inputType:G}=lm(s,l),{continuousAxisChannelDef:H,continuousAxisChannelDef2:X,continuousAxisChannelDefError:Z,continuousAxisChannelDefError2:le,continuousAxis:ee}=dy(s,L,l),{errorBarSpecificAggregate:de,postAggregateCalculates:ge,tooltipSummary:xe,tooltipTitleWithFieldName:me}=function(Dt,vn,Nn,fn,Oa,Da,Br,Xn){let ga=[],ln=[],At=vn.field,En,mi=!1;if(Da==="raw"){let Xa=Dt.center?Dt.center:Dt.extent?Dt.extent==="iqr"?"median":"mean":Xn.errorbar.center,mr=Dt.extent?Dt.extent:Xa==="mean"?"stderr":"iqr";if(Xa==="median"!=(mr==="iqr")&&Be(function(ba,bi,Do){return`${ba} is not usually used with ${bi} for ${Do}.`}(Xa,mr,Br)),mr==="stderr"||mr==="stdev")ga=[{op:mr,field:At,as:`extent_${At}`},{op:Xa,field:At,as:`center_${At}`}],ln=[{calculate:`datum["center_${At}"] + datum["extent_${At}"]`,as:`upper_${At}`},{calculate:`datum["center_${At}"] - datum["extent_${At}"]`,as:`lower_${At}`}],En=[{fieldPrefix:"center_",titlePrefix:yt(Xa)},{fieldPrefix:"upper_",titlePrefix:cm(Xa,mr,"+")},{fieldPrefix:"lower_",titlePrefix:cm(Xa,mr,"-")}],mi=!0;else{let ba,bi,Do;mr==="ci"?(ba="mean",bi="ci0",Do="ci1"):(ba="median",bi="q1",Do="q3"),ga=[{op:bi,field:At,as:`lower_${At}`},{op:Do,field:At,as:`upper_${At}`},{op:ba,field:At,as:`center_${At}`}],En=[{fieldPrefix:"upper_",titlePrefix:ss({field:At,aggregate:Do,type:"quantitative"},Xn,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:ss({field:At,aggregate:bi,type:"quantitative"},Xn,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:ss({field:At,aggregate:ba,type:"quantitative"},Xn,{allowDisabling:!1})}]}}else{(Dt.center||Dt.extent)&&Be((gi=Dt.center,`${(Ss=Dt.extent)?"extent ":""}${Ss&&gi?"and ":""}${gi?"center ":""}${Ss&&gi?"are ":"is "}not needed when data are aggregated.`)),Da==="aggregated-upper-lower"?(En=[],ln=[{calculate:`datum["${Nn.field}"]`,as:`upper_${At}`},{calculate:`datum["${At}"]`,as:`lower_${At}`}]):Da==="aggregated-error"&&(En=[{fieldPrefix:"",titlePrefix:At}],ln=[{calculate:`datum["${At}"] + datum["${fn.field}"]`,as:`upper_${At}`}],Oa?ln.push({calculate:`datum["${At}"] + datum["${Oa.field}"]`,as:`lower_${At}`}):ln.push({calculate:`datum["${At}"] - datum["${fn.field}"]`,as:`lower_${At}`}));for(let Xa of ln)En.push({fieldPrefix:Xa.as.substring(0,6),titlePrefix:xt(xt(Xa.calculate,'datum["',""),'"]',"")})}var gi,Ss;return{postAggregateCalculates:ln,errorBarSpecificAggregate:ga,tooltipSummary:En,tooltipTitleWithFieldName:mi}}(C,H,X,Z,le,G,l,d),{[ee]:Ae,[ee==="x"?"x2":"y2"]:Ce,[ee==="x"?"xError":"yError"]:Pe,[ee==="x"?"xError2":"yError2"]:We,...Je}=y,{bins:it,timeUnits:Qe,aggregate:lt,groupby:kt,encoding:Fn}=cy(Je,d),dn=[...lt,...de],sn=G!=="raw"?[]:kt,Ut=lu(xe,H,Fn,me);return{transform:[...A.transform??[],...it,...Qe,...dn.length===0?[]:[{aggregate:dn,groupby:sn}],...ge],groupby:sn,continuousAxisChannelDef:H,continuousAxis:ee,encodingWithoutContinuousAxis:Fn,ticksOrient:L==="vertical"?"horizontal":"vertical",markDef:C,outerSpec:A,tooltipEncoding:Ut}}function cm(s,l,d){return`${yt(s)} ${d} ${l}`}let Tf="errorband",fy=new wf(Tf,py);function py(s,l){let{config:d}=l;s={...s,encoding:oi(s.encoding,d)};let{transform:h,continuousAxisChannelDef:y,continuousAxis:w,encodingWithoutContinuousAxis:S,markDef:A,outerSpec:C,tooltipEncoding:L}=um(s,Tf,d),G=A,H=kf(G,w,y,S,d.errorband),X=s.encoding.x!==void 0&&s.encoding.y!==void 0,Z={type:X?"area":"rect"},le={type:X?"line":"rule"},ee={...G.interpolate?{interpolate:G.interpolate}:{},...G.tension&&G.interpolate?{tension:G.tension}:{}};return X?(Z={...Z,...ee,ariaRoleDescription:"errorband"},le={...le,...ee,aria:!1}):G.interpolate?Be(Wd("interpolate")):G.tension&&Be(Wd("tension")),{...C,transform:h,layer:[...H({partName:"band",mark:Z,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:L}),...H({partName:"borders",mark:le,positionPrefix:"lower",extraEncoding:L}),...H({partName:"borders",mark:le,positionPrefix:"upper",extraEncoding:L})]}}let uu={};function cu(s,l,d){let h=new wf(s,l);uu[s]={normalizer:h,parts:d}}cu(cs,im,["box","median","outliers","rule","ticks"]),cu(Sf,Af,["ticks","rule"]),cu(Tf,py,["band","borders"]);let dm=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Ec={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"},wc={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"},fm=be(Ec),pm=be(wc),Cf=be({header:1,headerRow:1,headerColumn:1,headerFacet:1}),Rf=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],fr="_vgsid_",hm={point:{on:"click",fields:[fr],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function Nf(s){return s==="legend"||!!(s!=null&&s.legend)}function If(s){return Nf(s)&&b.isObject(s)}function _c(s){return!!(s!=null&&s.select)}function Of(s){let l=[];for(let d of s||[]){if(_c(d))continue;let{expr:h,bind:y,...w}=d;if(y&&h){let S={...w,bind:y,init:h};l.push(S)}else{let S={...w,...h?{update:h}:{},...y?{bind:y}:{}};l.push(S)}}return l}function kc(s){return"concat"in s}function du(s){return"vconcat"in s}function Df(s){return"hconcat"in s}function Mf(s){let{step:l,offsetIsDiscrete:d}=s;return d?l.for??"offset":"position"}function qa(s){return b.isObject(s)&&s.step!==void 0}function xc(s){return s.view||s.width||s.height}let Sc=be({align:1,bounds:1,center:1,columns:1,spacing:1});function ds(s,l){return s[l]??s[l==="width"?"continuousWidth":"continuousHeight"]}function fu(s,l){let d=Ac(s,l);return qa(d)?d.step:mm}function Ac(s,l){return Ke(s[l]??s[l==="width"?"discreteWidth":"discreteHeight"],{step:s.step})}let mm=20,hy={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:mm},mark:{color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},arc:{},area:{},bar:q_,circle:{},geoshape:{},image:{},line:{},point:{},rect:Q0,rule:{color:"black"},square:{},text:{color:"black"},tick:{thickness:1},trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:hm,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},si=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],gm={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},my={blue:si[0],orange:si[1],red:si[2],teal:si[3],green:si[4],yellow:si[5],purple:si[6],pink:si[7],brown:si[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 bm(s){let l=be(s||{}),d={};for(let h of l){let y=s[h];d[h]=su(y)?A0(y):Gn(y)}return d}let gy=[...Gh,...Yt,...Cf,"background","padding","legend","lineBreak","scale","style","title","view"];function ym(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{color:l,font:d,fontSize:h,selection:y,...w}=s,S=b.mergeConfig({},j(hy),d?function(C){return{text:{font:C},style:{"guide-label":{font:C},"guide-title":{font:C},"group-title":{font:C},"group-subtitle":{font:C}}}}(d):{},l?function(){let C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return{signals:[{name:"color",value:b.isObject(C)?{...my,...C}:my}],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"}]}}}(l):{},h?function(C){return{signals:[{name:"fontSize",value:b.isObject(C)?{...gm,...C}:gm}],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"}}}}}(h):{},w||{});y&&b.writeConfig(S,"selection",y,!0);let A=te(S,gy);for(let C of["background","lineBreak","padding"])S[C]&&(A[C]=Gn(S[C]));for(let C of Gh)S[C]&&(A[C]=ea(S[C]));for(let C of Yt)S[C]&&(A[C]=bm(S[C]));for(let C of Cf)S[C]&&(A[C]=ea(S[C]));return S.legend&&(A.legend=ea(S.legend)),S.scale&&(A.scale=ea(S.scale)),S.style&&(A.style=function(C){let L=be(C),G={};for(let H of L)G[H]=bm(C[H]);return G}(S.style)),S.title&&(A.title=ea(S.title)),S.view&&(A.view=ea(S.view)),A}let K_=new Set(["view",...G_]),X_=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],Z_={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],line:["point"],tick:["bandSize","thickness"]};function Lf(s){s=j(s);for(let l of X_)delete s[l];if(s.axis)for(let l in s.axis)su(s.axis[l])&&delete s.axis[l];if(s.legend)for(let l of dm)delete s.legend[l];if(s.mark){for(let l of J0)delete s.mark[l];s.mark.tooltip&&b.isObject(s.mark.tooltip)&&delete s.mark.tooltip}s.params&&(s.signals=(s.signals||[]).concat(Of(s.params)),delete s.params);for(let l of K_){for(let h of J0)delete s[l][h];let d=Z_[l];if(d)for(let h of d)delete s[l][h];J_(s,l)}for(let l of be(uu))delete s[l];(function(l){let{titleMarkConfig:d,subtitleMarkConfig:h,subtitle:y}=ac(l.title);ye(d)||(l.style["group-title"]={...l.style["group-title"],...d}),ye(h)||(l.style["group-subtitle"]={...l.style["group-subtitle"],...h}),ye(y)?delete l.title:l.title=y})(s);for(let l in s)b.isObject(s[l])&&ye(s[l])&&delete s[l];return ye(s)?void 0:s}function J_(s,l,d,h){l==="view"&&(d="cell");let y={...h?s[l][h]:s[l],...s.style[d??l]};ye(y)||(s.style[d??l]=y),h||delete s[l]}function pu(s){return"layer"in s}class Ff{map(l,d){return pc(l)?this.mapFacet(l,d):function(h){return"repeat"in h}(l)?this.mapRepeat(l,d):Df(l)?this.mapHConcat(l,d):du(l)?this.mapVConcat(l,d):kc(l)?this.mapConcat(l,d):this.mapLayerOrUnit(l,d)}mapLayerOrUnit(l,d){if(pu(l))return this.mapLayer(l,d);if(Bi(l))return this.mapUnit(l,d);throw new Error(Ah(l))}mapLayer(l,d){return{...l,layer:l.layer.map(h=>this.mapLayerOrUnit(h,d))}}mapHConcat(l,d){return{...l,hconcat:l.hconcat.map(h=>this.map(h,d))}}mapVConcat(l,d){return{...l,vconcat:l.vconcat.map(h=>this.map(h,d))}}mapConcat(l,d){let{concat:h,...y}=l;return{...y,concat:h.map(w=>this.map(w,d))}}mapFacet(l,d){return{...l,spec:this.map(l.spec,d)}}mapRepeat(l,d){return{...l,spec:this.map(l.spec,d)}}}let vm={zero:1,center:1,normalize:1},Q_=new Set([Bh,rf,af,sf,of,lf,zh,uc,X0,Uh]),Tc=new Set([rf,af,Bh]);function zi(s){return ze(s)&&tu(s)==="quantitative"&&!s.bin}function Em(s,l,d){let{orient:h,type:y}=d,w=l==="x"?"y":"radius",S=l==="x",A=s[l],C=s[w];if(ze(A)&&ze(C))if(zi(A)&&zi(C)){if(A.stack)return l;if(C.stack)return w;let L=ze(A)&&!!A.aggregate;if(L!==(ze(C)&&!!C.aggregate))return L?l:w;if(S&&["bar","area"].includes(y)){if(h==="vertical")return w;if(h==="horizontal")return l}}else{if(zi(A))return l;if(zi(C))return w}else{if(zi(A))return l;if(zi(C))return w}}function wm(s,l){var de,ge;let d=Li(s)?s:{type:s},h=d.type;if(!Q_.has(h))return null;let y=Em(l,"x",d)||Em(l,"theta",d);if(!y)return null;let w=l[y],S=ze(w)?je(w,{}):void 0,A=function(xe){switch(xe){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(y),C=[],L=new Set;if(l[A]){let xe=l[A],me=ze(xe)?je(xe,{}):void 0;me&&me!==S&&(C.push(A),L.add(me))}let G=A==="x"?"xOffset":"yOffset",H=l[G],X=ze(H)?je(H,{}):void 0;X&&X!==S&&(C.push(G),L.add(X));let Z=zs.reduce((xe,me)=>{if(me!=="tooltip"&&Ui(l,me)){let Ae=l[me];for(let Ce of b.array(Ae)){let Pe=dr(Ce);if(Pe.aggregate)continue;let We=je(Pe,{});We&&L.has(We)||xe.push({channel:me,fieldDef:Pe})}}return xe},[]),le;return w.stack!==void 0?le=b.isBoolean(w.stack)?w.stack?"zero":null:w.stack:Tc.has(h)&&(le="zero"),le&&le in vm?am(l)&&Z.length===0?null:(de=w==null?void 0:w.scale)!=null&&de.type&&((ge=w==null?void 0:w.scale)==null?void 0:ge.type)!==Gt.LINEAR?(w!=null&&w.stack&&Be(function(xe){return`Cannot stack non-linear scale (${xe}).`}(w.scale.type)),null):wt(l[Ci(y)])?(w.stack!==void 0&&Be(`Cannot stack "${ee=y}" if there is already "${ee}2".`),null):(ze(w)&&w.aggregate&&!Ir.has(w.aggregate)&&Be(`Stacking is applied even though the aggregate function is non-summative ("${w.aggregate}").`),{groupbyChannels:C,groupbyFields:L,fieldChannel:y,impute:w.impute!==null&&is(h),stackBy:Z,offset:le}):null;var ee}function by(s,l,d){let h=ea(s),y=Ht("orient",h,d);if(h.orient=function(w,S,A){switch(w){case of:case lf:case zh:case X0:case U_:case B_:return}let{x:C,y:L,x2:G,y2:H}=S;switch(w){case rf:if(ze(C)&&(zn(C.bin)||ze(L)&&L.aggregate&&!C.aggregate))return"vertical";if(ze(L)&&(zn(L.bin)||ze(C)&&C.aggregate&&!L.aggregate))return"horizontal";if(H||G){if(A)return A;if(!G)return(ze(C)&&C.type===bo&&!Vt(C.bin)||gf(C))&&ze(L)&&zn(L.bin)?"horizontal":"vertical";if(!H)return(ze(L)&&L.type===bo&&!Vt(L.bin)||gf(L))&&ze(C)&&zn(C.bin)?"vertical":"horizontal"}case sf:if(G&&(!ze(C)||!zn(C.bin))&&H&&(!ze(L)||!zn(L.bin)))return;case af:if(H)return ze(L)&&zn(L.bin)?"horizontal":"vertical";if(G)return ze(C)&&zn(C.bin)?"vertical":"horizontal";if(w===sf){if(C&&!L)return"vertical";if(L&&!C)return"horizontal"}case uc:case Uh:{let X=iy(C),Z=iy(L);if(A)return A;if(X&&!Z)return w!=="tick"?"horizontal":"vertical";if(!X&&Z)return w!=="tick"?"vertical":"horizontal";if(X&&Z)return"vertical";{let le=ma(C)&&C.type===rs,ee=ma(L)&&L.type===rs;if(le&&!ee)return"vertical";if(!le&&ee)return"horizontal"}return}}return"vertical"}(h.type,l,y),y!==void 0&&y!==h.orient&&Be(`Specified orient "${h.orient}" overridden with "${y}".`),h.type==="bar"&&h.orient){let w=Ht("cornerRadiusEnd",h,d);if(w!==void 0){let S=h.orient==="horizontal"&&l.x2||h.orient==="vertical"&&l.y2?["cornerRadius"]:H_[h.orient];for(let A of S)h[A]=w;h.cornerRadiusEnd!==void 0&&delete h.cornerRadiusEnd}}return Ht("opacity",h,d)===void 0&&(h.opacity=function(w,S){if(Q([of,Uh,lf,zh],w)&&!am(S))return .7}(h.type,l)),Ht("cursor",h,d)===void 0&&(h.cursor=function(w,S,A){return S.href||w.href||Ht("href",w,A)?"pointer":w.cursor}(h,l,d)),h}function e1(s){let{point:l,line:d,...h}=s;return be(h).length>1?h:h.type}function t1(s){for(let l of["line","area","rule","trail"])s[l]&&(s={...s,[l]:te(s[l],["point","line"])});return s}function _m(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=arguments.length>2?arguments[2]:void 0;return s.point==="transparent"?{opacity:0}:s.point?b.isObject(s.point)?s.point:{}:s.point!==void 0?null:l.point||d.shape?b.isObject(l.point)?l.point:{}:void 0}function km(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return s.line?s.line===!0?{}:s.line:s.line!==void 0?null:l.line?l.line===!0?{}:l.line:void 0}class xm{constructor(){at(this,"name","path-overlay")}hasMatchingType(l,d){if(Bi(l)){let{mark:h,encoding:y}=l,w=Li(h)?h:{type:h};switch(w.type){case"line":case"rule":case"trail":return!!_m(w,d[w.type],y);case"area":return!!_m(w,d[w.type],y)||!!km(w,d[w.type])}}return!1}run(l,d,h){let{config:y}=d,{params:w,projection:S,mark:A,name:C,encoding:L,...G}=l,H=oi(L,y),X=Li(A)?A:{type:A},Z=_m(X,y[X.type],H),le=X.type==="area"&&km(X,y[X.type]),ee=[{name:C,...w?{params:w}:{},mark:e1({...X.type==="area"&&X.opacity===void 0&&X.fillOpacity===void 0?{opacity:.7}:{},...X}),encoding:te(H,["shape"])}],de=wm(by(X,H,y),H),ge=H;if(de){let{fieldChannel:xe,offset:me}=de;ge={...H,[xe]:{...H[xe],...me?{stack:me}:{}}}}return ge=te(ge,["y2","x2"]),le&&ee.push({...S?{projection:S}:{},mark:{type:"line",...V(X,["clip","interpolate","tension","tooltip"]),...le},encoding:ge}),Z&&ee.push({...S?{projection:S}:{},mark:{type:"point",opacity:1,filled:!0,...V(X,["clip","tooltip"]),...Z},encoding:ge}),h({...G,layer:ee},{...d,config:t1(y)})}}function ra(s,l){return l?Ql(s)?yy(s,l):Sm(s,l):s}function Gi(s,l){return l?yy(s,l):s}function Cc(s,l,d){let h=l[s];return(y=h)&&!b.isString(y)&&"repeat"in y?h.repeat in d?{...l,[s]:d[h.repeat]}:void Be(function(w){return`Unknown repeated value "${w}".`}(h.repeat)):l;var y}function Sm(s,l){if((s=Cc("field",s,l))!==void 0){if(s===null)return null;if(Zs(s)&&ii(s.sort)){let d=Cc("field",s.sort,l);s={...s,...d?{sort:d}:{}}}return s}}function Pf(s,l){if(ze(s))return Sm(s,l);{let d=Cc("datum",s,l);return d===s||d.type||(d.type="nominal"),d}}function Am(s,l){if(!wt(s)){if(eu(s)){let d=Pf(s.condition,l);if(d)return{...s,condition:d};{let{condition:h,...y}=s;return y}}return s}{let d=Pf(s,l);if(d)return d;if(hf(s))return{condition:s.condition}}}function yy(s,l){let d={};for(let h in s)if(b.hasOwnProperty(s,h)){let y=s[h];if(b.isArray(y))d[h]=y.map(w=>Am(w,l)).filter(w=>w);else{let w=Am(y,l);w!==void 0&&(d[h]=w)}}return d}class Tm{constructor(){at(this,"name","RuleForRangedLine")}hasMatchingType(l){if(Bi(l)){let{encoding:d,mark:h}=l;if(h==="line"||Li(h)&&h.type==="line")for(let y of y_){let w=d[Us(y)];if(d[y]&&(ze(w)&&!zn(w.bin)||Pi(w)))return!0}}return!1}run(l,d,h){let{encoding:y,mark:w}=l;var S,A;return Be((S=!!y.x2,A=!!y.y2,`Line mark is for continuous lines and thus cannot be used with ${S&&A?"x2 and y2":S?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),h({...l,mark:b.isObject(w)?{...w,type:"rule"}:"rule"},d)}}function $f(s){let{parentEncoding:l,encoding:d={},layer:h}=s,y={};if(l){let w=new Set([...be(l),...be(d)]);for(let S of w){let A=d[S],C=l[S];if(wt(A)){let L={...C,...A};y[S]=L}else eu(A)?y[S]={...A,condition:{...C,...A.condition}}:A||A===null?y[S]=A:(h||cr(C)||Ze(C)||wt(C)||b.isArray(C))&&(y[S]=C)}}else y=d;return!y||ye(y)?void 0:y}function Cm(s){let{parentProjection:l,projection:d}=s;return l&&d&&Be(function(h){let{parentProjection:y,projection:w}=h;return`Layer's shared projection ${Xe(y)} is overridden by a child projection ${Xe(w)}.`}({parentProjection:l,projection:d})),d??l}function Rm(s){return"filter"in s}function Nm(s){return"lookup"in s}function n1(s){return"pivot"in s}function vy(s){return"density"in s}function Im(s){return"quantile"in s}function Ey(s){return"regression"in s}function a1(s){return"loess"in s}function wy(s){return"sample"in s}function Om(s){return"window"in s}function Dm(s){return"joinaggregate"in s}function _y(s){return"flatten"in s}function r1(s){return"calculate"in s}function Bf(s){return"bin"in s}function Mm(s){return"impute"in s}function Uf(s){return"timeUnit"in s}function ky(s){return"aggregate"in s}function i1(s){return"stack"in s}function Lm(s){return"fold"in s}function Fm(s){return"extent"in s&&!("density"in s)}function zf(s,l){let{transform:d,...h}=s;return d?{...h,transform:d.map(y=>{if(Rm(y))return{filter:hu(y,l)};if(Bf(y)&&mo(y.bin))return{...y,bin:Pm(y.bin)};if(Nm(y)){let{selection:w,...S}=y.from;return w?{...y,from:{param:w,...S}}:y}return y})}:s}function Gf(s,l){var h,y;let d=j(s);if(ze(d)&&mo(d.bin)&&(d.bin=Pm(d.bin)),$i(d)&&((y=(h=d.scale)==null?void 0:h.domain)==null?void 0:y.selection)){let{selection:w,...S}=d.scale.domain;d.scale.domain={...S,...w?{param:w}:{}}}if(hf(d))if(b.isArray(d.condition))d.condition=d.condition.map(w=>{let{selection:S,param:A,test:C,...L}=w;return A?w:{...L,test:hu(w,l)}});else{let{selection:w,param:S,test:A,...C}=Gf(d.condition,l);d.condition=S?d.condition:{...C,test:hu(d.condition,l)}}return d}function Pm(s){let l=s.extent;if(l!=null&&l.selection){let{selection:d,...h}=l;return{...s,extent:{...h,param:d}}}return s}function hu(s,l){let d=h=>F(h,y=>{let w={param:y,empty:l.emptySelections[y]??!0};return l.selectionPredicates[y]??=[],l.selectionPredicates[y].push(w),w});return s.selection?d(s.selection):F(s.test||s.filter,h=>h.selection?d(h.selection):h)}class $m extends Ff{map(l,d){let h=d.selections??[];if(l.params&&!Bi(l)){let y=[];for(let w of l.params)_c(w)?h.push(w):y.push(w);l.params=y}return d.selections=h,super.map(l,d)}mapUnit(l,d){let h=d.selections;if(!h||!h.length)return l;let y=(d.path??[]).concat(l.name),w=[];for(let S of h)if(S.views&&S.views.length)for(let A of S.views)(b.isString(A)&&(A===l.name||y.includes(A))||b.isArray(A)&&A.map(C=>y.indexOf(C)).every((C,L,G)=>C!==-1&&(L===0||C>G[L-1])))&&w.push(S);else w.push(S);return w.length&&(l.params=w),l}}for(let s of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){let l=$m.prototype[s];$m.prototype[s]=function(d,h){return l.call(this,d,Bm(d,h))}}function Bm(s,l){return s.name?{...l,path:(l.path??[]).concat(s.name)}:l}function jf(s,l){l===void 0&&(l=ym(s.config));let d=function(S){let C={config:arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}};return o1.map(Um.map(xy.map(S,C),C),C)}(s,l),{width:h,height:y}=s,w=function(S,A,C){let{width:L,height:G}=A,H=Bi(S)||pu(S),X={};H?L=="container"&&G=="container"?(X.type="fit",X.contains="padding"):L=="container"?(X.type="fit-x",X.contains="padding"):G=="container"&&(X.type="fit-y",X.contains="padding"):(L=="container"&&(Be(Ta("width")),L=void 0),G=="container"&&(Be(Ta("height")),G=void 0));let Z={type:"pad",...X,...C?zm(C.autosize):{},...zm(S.autosize)};if(Z.type!=="fit"||H||(Be(ta),Z.type="pad"),L=="container"&&Z.type!="fit"&&Z.type!="fit-x"&&Be(na("width")),G=="container"&&Z.type!="fit"&&Z.type!="fit-y"&&Be(na("height")),!Ne(Z,{type:"pad"}))return Z}(d,{width:h,height:y,autosize:s.autosize},l);return{...d,...w?{autosize:w}:{}}}let Um=new class extends Ff{constructor(){super(...arguments),at(this,"nonFacetUnitNormalizers",[ke,sm,fy,new xm,new Tm])}map(s,l){if(Bi(s)){let d=Ui(s.encoding,tt),h=Ui(s.encoding,Kr),y=Ui(s.encoding,Fl);if(d||h||y)return this.mapFacetedUnit(s,l)}return super.map(s,l)}mapUnit(s,l){let{parentEncoding:d,parentProjection:h}=l,y=Gi(s.encoding,l.repeater),w={...s,...s.name?{name:[l.repeaterPrefix,s.name].filter(A=>A).join("_")}:{},...y?{encoding:y}:{}};if(d||h)return this.mapUnitWithParentEncodingOrProjection(w,l);let S=this.mapLayerOrUnit.bind(this);for(let A of this.nonFacetUnitNormalizers)if(A.hasMatchingType(w,l.config))return A.run(w,l,S);return w}mapRepeat(s,l){return function(d){return!b.isArray(d.repeat)&&d.repeat.layer}(s)?this.mapLayerRepeat(s,l):this.mapNonLayerRepeat(s,l)}mapLayerRepeat(s,l){let{repeat:d,spec:h,...y}=s,{row:w,column:S,layer:A}=d,{repeater:C={},repeaterPrefix:L=""}=l;return w||S?this.mapRepeat({...s,repeat:{...w?{row:w}:{},...S?{column:S}:{}},spec:{repeat:{layer:A},spec:h}},l):{...y,layer:A.map(G=>{let H={...C,layer:G},X=`${(h.name?`${h.name}_`:"")+L}child__layer_${$e(G)}`,Z=this.mapLayerOrUnit(h,{...l,repeater:H,repeaterPrefix:X});return Z.name=X,Z})}}mapNonLayerRepeat(s,l){let{repeat:d,spec:h,data:y,...w}=s;!b.isArray(d)&&s.columns&&(s=te(s,["columns"]),Be(ur("repeat")));let S=[],{repeater:A={},repeaterPrefix:C=""}=l,L=!b.isArray(d)&&d.row||[A?A.row:null],G=!b.isArray(d)&&d.column||[A?A.column:null],H=b.isArray(d)&&d||[A?A.repeat:null];for(let Z of H)for(let le of L)for(let ee of G){let de={repeat:Z,row:le,column:ee,layer:A.layer},ge=(h.name?`${h.name}_`:"")+C+"child__"+(b.isArray(d)?`${$e(Z)}`:(d.row?`row_${$e(le)}`:"")+(d.column?`column_${$e(ee)}`:"")),xe=this.map(h,{...l,repeater:de,repeaterPrefix:ge});xe.name=ge,S.push(te(xe,["data"]))}let X=b.isArray(d)?s.columns:d.column?d.column.length:1;return{data:h.data??y,align:"all",...w,columns:X,concat:S}}mapFacet(s,l){let{facet:d}=s;return Ql(d)&&s.columns&&(s=te(s,["columns"]),Be(ur("facet"))),super.mapFacet(s,l)}mapUnitWithParentEncodingOrProjection(s,l){let{encoding:d,projection:h}=s,{parentEncoding:y,parentProjection:w,config:S}=l,A=Cm({parentProjection:w,projection:h}),C=$f({parentEncoding:y,encoding:Gi(d,l.repeater)});return this.mapUnit({...s,...A?{projection:A}:{},...C?{encoding:C}:{}},{config:S})}mapFacetedUnit(s,l){let{row:d,column:h,facet:y,...w}=s.encoding,{mark:S,width:A,projection:C,height:L,view:G,params:H,encoding:X,...Z}=s,{facetMapping:le,layout:ee}=this.getFacetMappingAndLayout({row:d,column:h,facet:y},l),de=Gi(w,l.repeater);return this.mapFacet({...Z,...ee,facet:le,spec:{...A?{width:A}:{},...L?{height:L}:{},...G?{view:G}:{},...C?{projection:C}:{},mark:S,encoding:de,...H?{params:H}:{}}},l)}getFacetMappingAndLayout(s,l){let{row:d,column:h,facet:y}=s;if(d||h){y&&Be(`Facet encoding dropped as ${(w=[...d?[tt]:[],...h?[Kr]:[]]).join(" and ")} ${w.length>1?"are":"is"} also specified.`);let S={},A={};for(let C of[tt,Kr]){let L=s[C];if(L){let{align:G,center:H,spacing:X,columns:Z,...le}=L;S[C]=le;for(let ee of["align","center","spacing"])L[ee]!==void 0&&(A[ee]??={},A[ee][C]=L[ee])}}return{facetMapping:S,layout:A}}{let{align:S,center:A,spacing:C,columns:L,...G}=y;return{facetMapping:ra(G,l.repeater),layout:{...S?{align:S}:{},...A?{center:A}:{},...C?{spacing:C}:{},...L?{columns:L}:{}}}}var w}mapLayer(s,l){let{parentEncoding:d,parentProjection:h,...y}=l,{encoding:w,projection:S,...A}=s,C={...y,parentEncoding:$f({parentEncoding:d,encoding:w,layer:!0}),parentProjection:Cm({parentProjection:h,projection:S})};return super.mapLayer({...A,...s.name?{name:[C.repeaterPrefix,s.name].filter(L=>L).join("_")}:{}},C)}},xy=new class extends Ff{map(s,l){return l.emptySelections??={},l.selectionPredicates??={},s=zf(s,l),super.map(s,l)}mapLayerOrUnit(s,l){if((s=zf(s,l)).encoding){let d={};for(let[h,y]of _e(s.encoding))d[h]=Gf(y,l);s={...s,encoding:d}}return super.mapLayerOrUnit(s,l)}mapUnit(s,l){let{selection:d,...h}=s;return d?{...h,params:_e(d).map(y=>{let[w,S]=y,{init:A,bind:C,empty:L,...G}=S;G.type==="single"?(G.type="point",G.toggle=!1):G.type==="multi"&&(G.type="point"),l.emptySelections[w]=L!=="none";for(let H of Te(l.selectionPredicates[w]??{}))H.empty=L!=="none";return{name:w,value:A,select:G,bind:C}})}:s}},o1=new $m;function zm(s){return b.isString(s)?{type:s}:s??{}}let Gm=["background","padding"];function Hf(s,l){let d={};for(let h of Gm)s&&s[h]!==void 0&&(d[h]=Gn(s[h]));return l&&(d.params=s.params),d}class ji{constructor(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.explicit=l,this.implicit=d}clone(){return new ji(j(this.explicit),j(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(l){return Ke(this.explicit[l],this.implicit[l])}getWithExplicit(l){return this.explicit[l]!==void 0?{explicit:!0,value:this.explicit[l]}:this.implicit[l]!==void 0?{explicit:!1,value:this.implicit[l]}:{explicit:!1,value:void 0}}setWithExplicit(l,d){let{value:h,explicit:y}=d;h!==void 0&&this.set(l,h,y)}set(l,d,h){return delete this[h?"implicit":"explicit"][l],this[h?"explicit":"implicit"][l]=d,this}copyKeyFromSplit(l,d){let{explicit:h,implicit:y}=d;h[l]!==void 0?this.set(l,h[l],!0):y[l]!==void 0&&this.set(l,y[l],!1)}copyKeyFromObject(l,d){d[l]!==void 0&&this.set(l,d[l],!0)}copyAll(l){for(let d of be(l.combine())){let h=l.getWithExplicit(d);this.setWithExplicit(d,h)}}}function Hi(s){return{explicit:!0,value:s}}function Fr(s){return{explicit:!1,value:s}}function Sy(s){return(l,d,h,y)=>{let w=s(l.value,d.value);return w>0?l:w<0?d:Rc(l,d,h,y)}}function Rc(s,l,d,h){return s.explicit&&l.explicit&&Be(function(y,w,S,A){return`Conflicting ${w.toString()} property "${y.toString()}" (${Xe(S)} and ${Xe(A)}). Using ${Xe(S)}.`}(d,h,s.value,l.value)),s}function qi(s,l,d,h){let y=arguments.length>4&&arguments[4]!==void 0?arguments[4]:Rc;return s===void 0||s.value===void 0?l:s.explicit&&!l.explicit?s:l.explicit&&!s.explicit?l:Ne(s.value,l.value)?s:y(s,l,d,h)}class Ay extends ji{constructor(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},h=arguments.length>2&&arguments[2]!==void 0&&arguments[2];super(l,d),this.explicit=l,this.implicit=d,this.parseNothing=h}clone(){let l=super.clone();return l.parseNothing=this.parseNothing,l}}function fs(s){return"url"in s}function mu(s){return"values"in s}function qf(s){return"name"in s&&!fs(s)&&!mu(s)&&!Eo(s)}function Eo(s){return s&&(Wf(s)||Vf(s)||Yf(s))}function Wf(s){return"sequence"in s}function Vf(s){return"sphere"in s}function Yf(s){return"graticule"in s}let nn=function(s){return s[s.Raw=0]="Raw",s[s.Main=1]="Main",s[s.Row=2]="Row",s[s.Column=3]="Column",s[s.Lookup=4]="Lookup",s}({});function jm(s){let{signals:l,hasLegend:d,index:h,...y}=s;return y.field=jt(y.field),y}function ps(s){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:b.identity;if(b.isArray(s)){let h=s.map(y=>ps(y,l,d));return l?`[${h.join(", ")}]`:h}return Gs(s)?d(l?js(s):function(h){let y=Yd(h,!0);return h.utc?+new Date(Date.UTC(...y)):+new Date(...y)}(s)):l?d(Xe(s)):s}function Ty(s,l){for(let d of Te(s.component.selection??{})){let h=d.name,y=`${h}${ko}, ${d.resolve==="global"?"true":`{unit: ${Wa(s)}}`}`;for(let w of il)w.defined(d)&&(w.signals&&(l=w.signals(s,d,l)),w.modifyExpr&&(y=w.modifyExpr(s,d,y)));l.push({name:h+Gy,on:[{events:{signal:d.name+ko},update:`modify(${b.stringValue(d.name+ms)}, ${y})`}]})}return Kf(l)}function Nc(s,l){if(s.component.selection&&be(s.component.selection).length){let d=b.stringValue(s.getName("cell"));l.unshift({name:"facet",value:{},on:[{events:b.parseSelector("pointermove","scope"),update:`isTuple(facet) ? facet : group(${d}).datum`}]})}return Kf(l)}function Cy(s,l){for(let d of Te(s.component.selection??{}))for(let h of il)h.defined(d)&&h.marks&&(l=h.marks(s,d,l));return l}function Kf(s){return s.map(l=>(l.on&&!l.on.length&&delete l.on,l))}class qt{constructor(l,d){this.debugName=d,at(this,"_children",[]),at(this,"_parent",null),at(this,"_hash",void 0),l&&(this.parent=l)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(l){this._parent=l,l&&l.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(l,d){this._children.includes(l)?Be("Attempt to add the same child twice."):d!==void 0?this._children.splice(d,0,l):this._children.push(l)}removeChild(l){let d=this._children.indexOf(l);return this._children.splice(d,1),d}remove(){let l=this._parent.removeChild(this);for(let d of this._children)d._parent=this._parent,this._parent.addChild(d,l++)}insertAsParentOf(l){let d=l.parent;d.removeChild(this),this.parent=d,l.parent=this}swapWithParent(){let l=this._parent,d=l.parent;for(let y of this._children)y.parent=l;this._children=[],l.removeChild(this);let h=l.parent.removeChild(l);this._parent=d,d.addChild(this,h),l.parent=this}}class ia extends qt{clone(){let l=new this.constructor;return l.debugName=`clone_${this.debugName}`,l._source=this._source,l._name=`clone_${this._name}`,l.type=this.type,l.refCounts=this.refCounts,l.refCounts[l._name]=0,l}constructor(l,d,h,y){super(l,d),this.type=h,this.refCounts=y,at(this,"_source",void 0),at(this,"_name",void 0),this._source=this._name=d,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${Zt()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(l){this._source=l}}function Hm(s){return s.as!==void 0}function Ry(s){return`${s}_end`}class Wi extends qt{clone(){return new Wi(null,j(this.timeUnits))}constructor(l,d){super(l),this.timeUnits=d}static makeFromEncoding(l,d){let h=d.reduceFieldDef((y,w,S)=>{let{field:A,timeUnit:C}=w;if(C){let L;if(Mr(C)){if(cn(d)){let{mark:G,markDef:H,config:X}=d,Z=Fi({fieldDef:w,markDef:H,config:X});(cc(G)||Z)&&(L={timeUnit:jn(C),field:A})}}else L={as:je(w,{forAs:!0}),field:A,timeUnit:C};if(cn(d)){let{mark:G,markDef:H,config:X}=d,Z=Fi({fieldDef:w,markDef:H,config:X});cc(G)&&un(S)&&Z!==.5&&(L.rectBandPosition=Z)}L&&(y[ae(L)]=L)}return y},{});return ye(h)?null:new Wi(l,h)}static makeFromTransform(l,d){let{timeUnit:h,...y}={...d},w={...y,timeUnit:jn(h)};return new Wi(l,{[ae(w)]:w})}merge(l){this.timeUnits={...this.timeUnits};for(let d in l.timeUnits)this.timeUnits[d]||(this.timeUnits[d]=l.timeUnits[d]);for(let d of l.children)l.removeChild(d),d.parent=this;l.remove()}removeFormulas(l){let d={};for(let[h,y]of _e(this.timeUnits)){let w=Hm(y)?y.as:`${y.field}_end`;l.has(w)||(d[h]=y)}this.timeUnits=d}producedFields(){return new Set(Te(this.timeUnits).map(l=>Hm(l)?l.as:Ry(l.field)))}dependentFields(){return new Set(Te(this.timeUnits).map(l=>l.field))}hash(){return`TimeUnit ${ae(this.timeUnits)}`}assemble(){let l=[];for(let d of Te(this.timeUnits)){let{rectBandPosition:h}=d,y=jn(d.timeUnit);if(Hm(d)){let{field:w,as:S}=d,{unit:A,utc:C,...L}=y,G=[S,`${S}_end`];l.push({field:jt(w),type:"timeunit",...A?{units:oc(A)}:{},...C?{timezone:"utc"}:{},...L,as:G}),l.push(...oa(G,h,y))}else if(d){let{field:w}=d,S=w.replaceAll("\\.","."),A=qm({timeUnit:y,field:S}),C=Ry(S);l.push({type:"formula",expr:A,as:C}),l.push(...oa([S,C],h,y))}}return l}}let Xf="offsetted_rect_start",$t="offsetted_rect_end";function qm(s){let{timeUnit:l,field:d,reverse:h}=s,{unit:y,utc:w}=l,S=Mh(y),{part:A,step:C}=Xd(S,l.step);return`${w?"utcOffset":"timeOffset"}('${A}', datum['${d}'], ${h?-C:C})`}function oa(s,l,d){let[h,y]=s;if(l!==void 0&&l!==.5){let w=`datum['${h}']`,S=`datum['${y}']`;return[{type:"formula",expr:hs([qm({timeUnit:d,field:h,reverse:!0}),w],l+.5),as:`${h}_${Xf}`},{type:"formula",expr:hs([w,S],l+.5),as:`${h}_${$t}`}]}return[]}function hs(s,l){let[d,h]=s;return`${1-l} * ${d} + ${l} * ${h}`}let Ic="_tuple_fields";class Wm{constructor(){at(this,"hasChannel",void 0),at(this,"hasField",void 0),at(this,"hasSelectionId",void 0),at(this,"timeUnit",void 0),at(this,"items",void 0);for(var l=arguments.length,d=new Array(l),h=0;h<l;h++)d[h]=arguments[h];this.items=d,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}let Vi={defined:()=>!0,parse:(s,l,d)=>{let h=l.name,y=l.project??=new Wm,w={},S={},A=new Set,C=(le,ee)=>{let de=ee==="visual"?le.channel:le.field,ge=$e(`${h}_${de}`);for(let xe=1;A.has(ge);xe++)ge=$e(`${h}_${de}_${xe}`);return A.add(ge),{[ee]:ge}},L=l.type,G=s.config.selection[L],H=d.value!==void 0?b.array(d.value):null,{fields:X,encodings:Z}=b.isObject(d.select)?d.select:{};if(!X&&!Z&&H){for(let le of H)if(b.isObject(le))for(let ee of be(le))b_[ee]?(Z||(Z=[])).push(ee):L==="interval"?(Be('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),Z=G.encodings):(X??=[]).push(ee)}X||Z||(Z=G.encodings,"fields"in G&&(X=G.fields));for(let le of Z??[]){let ee=s.fieldDef(le);if(ee){let de=ee.field;if(ee.aggregate){Be(Di(le,ee.aggregate));continue}if(!de){Be(aa(le));continue}if(ee.timeUnit&&!Mr(ee.timeUnit)){de=s.vgField(le);let ge={timeUnit:ee.timeUnit,as:de,field:ee.field};S[ae(ge)]=ge}if(!w[de]){let ge={field:de,channel:le,type:L==="interval"&&Nr(le)&&Ha(s.getScaleComponent(le).get("type"))?"R":ee.bin?"R-RE":"E",index:y.items.length};ge.signals={...C(ge,"data"),...C(ge,"visual")},y.items.push(w[de]=ge),y.hasField[de]=w[de],y.hasSelectionId=y.hasSelectionId||de===fr,Qo(le)?(ge.geoChannel=le,ge.channel=mh(le),y.hasChannel[ge.channel]=w[de]):y.hasChannel[le]=w[de]}}else Be(aa(le))}for(let le of X??[]){if(y.hasField[le])continue;let ee={type:"E",field:le,index:y.items.length};ee.signals={...C(ee,"data")},y.items.push(ee),y.hasField[le]=ee,y.hasSelectionId=y.hasSelectionId||le===fr}H&&(l.init=H.map(le=>y.items.map(ee=>b.isObject(le)?le[ee.geoChannel||ee.channel]!==void 0?le[ee.geoChannel||ee.channel]:le[ee.field]:le))),ye(S)||(y.timeUnit=new Wi(null,S))},signals:(s,l,d)=>{let h=l.name+Ic;return d.filter(y=>y.name===h).length>0||l.project.hasSelectionId?d:d.concat({name:h,value:l.project.items.map(jm)})}},Ra={defined:s=>s.type==="interval"&&s.resolve==="global"&&s.bind&&s.bind==="scales",parse:(s,l)=>{let d=l.scales=[];for(let h of l.project.items){let y=h.channel;if(!Nr(y))continue;let w=s.getScaleComponent(y),S=w?w.get("type"):void 0;w&&Ha(S)?(w.set("selectionExtent",{param:l.name,field:h.field},!0),d.push(h)):Be("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(s,l,d)=>{let h=l.scales.filter(S=>d.filter(A=>A.name===S.signals.data).length===0);if(!s.parent||nl(s)||h.length===0)return d;let y=d.filter(S=>S.name===l.name)[0],w=y.update;if(w.indexOf(ag)>=0)y.update=`{${h.map(S=>`${b.stringValue(jt(S.field))}: ${S.signals.data}`).join(", ")}}`;else{for(let S of h){let A=`${b.stringValue(jt(S.field))}: ${S.signals.data}`;w.includes(A)||(w=`${w.substring(0,w.length-1)}, ${A}}`)}y.update=w}return d.concat(h.map(S=>({name:S.signals.data})))},signals:(s,l,d)=>{if(s.parent&&!nl(s))for(let h of l.scales){let y=d.filter(w=>w.name===h.signals.data)[0];y.push="outer",delete y.value,delete y.update}return d}};function qn(s,l){return`domain(${b.stringValue(s.scaleName(l))})`}function nl(s){return s.parent&&ws(s.parent)&&!s.parent.parent}let wo="_brush",Vm="_scale_trigger",gu="geo_interval_init_tick",Zf="_init",Ym={defined:s=>s.type==="interval",parse:(s,l,d)=>{if(s.hasProjection){let h={...b.isObject(d.select)?d.select:{}};h.fields=[fr],h.encodings||(h.encodings=d.value?be(d.value):[$a,nt]),d.select={type:"interval",...h}}if(l.translate&&!Ra.defined(l)){let h=`!event.item || event.item.mark.name !== ${b.stringValue(l.name+wo)}`;for(let y of l.events){if(!y.between){Be(`${y} is not an ordered event stream for interval selections.`);continue}let w=b.array(y.between[0].filter??=[]);w.indexOf(h)<0&&w.push(h)}}},signals:(s,l,d)=>{let h=l.name,y=h+ko,w=Te(l.project.hasChannel).filter(A=>A.channel===Qt||A.channel===Bn),S=l.init?l.init[0]:null;if(d.push(...w.reduce((A,C)=>A.concat(function(L,G,H,X){let Z=!L.hasProjection,le=H.channel,ee=H.signals.visual,de=b.stringValue(Z?L.scaleName(le):L.projectionName()),ge=Ce=>`scale(${de}, ${Ce})`,xe=L.getSizeSignalRef(le===Qt?"width":"height").signal,me=`${le}(unit)`,Ae=G.events.reduce((Ce,Pe)=>[...Ce,{events:Pe.between[0],update:`[${me}, ${me}]`},{events:Pe,update:`[${ee}[0], clamp(${me}, 0, ${xe})]`}],[]);if(Z){let Ce=H.signals.data,Pe=Ra.defined(G),We=L.getScaleComponent(le),Je=We?We.get("type"):void 0,it=X?{init:ps(X,!0,ge)}:{value:[]};return Ae.push({events:{signal:G.name+Vm},update:Ha(Je)?`[${ge(`${Ce}[0]`)}, ${ge(`${Ce}[1]`)}]`:"[0, 0]"}),Pe?[{name:Ce,on:[]}]:[{name:ee,...it,on:Ae},{name:Ce,...X?{init:ps(X)}:{},on:[{events:{signal:ee},update:`${ee}[0] === ${ee}[1] ? null : invert(${de}, ${ee})`}]}]}{let Ce=le===Qt?0:1,Pe=G.name+Zf;return[{name:ee,...X?{init:`[${Pe}[0][${Ce}], ${Pe}[1][${Ce}]]`}:{value:[]},on:Ae}]}}(s,l,C,S&&S[C.index])),[])),s.hasProjection){let A=b.stringValue(s.projectionName()),C=s.projectionName()+"_center",{x:L,y:G}=l.project.hasChannel,H=L&&L.signals.visual,X=G&&G.signals.visual,Z=L?S&&S[L.index]:`${C}[0]`,le=G?S&&S[G.index]:`${C}[1]`,ee=me=>s.getSizeSignalRef(me).signal,de=`[[${H?H+"[0]":"0"}, ${X?X+"[0]":"0"}],[${H?H+"[1]":ee("width")}, ${X?X+"[1]":ee("height")}]]`;S&&(d.unshift({name:h+Zf,init:`[scale(${A}, [${L?Z[0]:Z}, ${G?le[0]:le}]), scale(${A}, [${L?Z[1]:Z}, ${G?le[1]:le}])]`}),!L||!G)&&(d.find(me=>me.name===C)||d.unshift({name:C,update:`invert(${A}, [${ee("width")}/2, ${ee("height")}/2])`}));let ge=`vlSelectionTuples(${`intersect(${de}, {markname: ${b.stringValue(s.getName("marks"))}}, unit.mark)`}, ${`{unit: ${Wa(s)}}`})`,xe=w.map(me=>me.signals.visual);return d.concat({name:y,on:[{events:[...xe.length?[{signal:xe.join(" || ")}]:[],...S?[{signal:gu}]:[]],update:ge}]})}{if(!Ra.defined(l)){let L=h+Vm,G=w.map(H=>{let X=H.channel,{data:Z,visual:le}=H.signals,ee=b.stringValue(s.scaleName(X)),de=Ha(s.getScaleComponent(X).get("type"))?"+":"";return`(!isArray(${Z}) || (${de}invert(${ee}, ${le})[0] === ${de}${Z}[0] && ${de}invert(${ee}, ${le})[1] === ${de}${Z}[1]))`});G.length&&d.push({name:L,value:{},on:[{events:w.map(H=>({scale:s.scaleName(H.channel)})),update:G.join(" && ")+` ? ${L} : {}`}]})}let A=w.map(L=>L.signals.data),C=`unit: ${Wa(s)}, fields: ${h+Ic}, values`;return d.concat({name:y,...S?{init:`{${C}: ${ps(S)}}`}:{},...A.length?{on:[{events:[{signal:A.join(" || ")}],update:`${A.join(" && ")} ? {${C}: [${A}]} : null`}]}:{}})}},topLevelSignals:(s,l,d)=>(cn(s)&&s.hasProjection&&l.init&&(d.filter(h=>h.name===gu).length||d.unshift({name:gu,value:null,on:[{events:"timer{1}",update:`${gu} === null ? {} : ${gu}`}]})),d),marks:(s,l,d)=>{let h=l.name,{x:y,y:w}=l.project.hasChannel,S=y==null?void 0:y.signals.visual,A=w==null?void 0:w.signals.visual,C=`data(${b.stringValue(l.name+ms)})`;if(Ra.defined(l)||!y&&!w)return d;let L={x:y!==void 0?{signal:`${S}[0]`}:{value:0},y:w!==void 0?{signal:`${A}[0]`}:{value:0},x2:y!==void 0?{signal:`${S}[1]`}:{field:{group:"width"}},y2:w!==void 0?{signal:`${A}[1]`}:{field:{group:"height"}}};if(l.resolve==="global")for(let ee of be(L))L[ee]=[{test:`${C}.length && ${C}[0].unit === ${Wa(s)}`,...L[ee]},{value:0}];let{fill:G,fillOpacity:H,cursor:X,...Z}=l.mark,le=be(Z).reduce((ee,de)=>(ee[de]=[{test:[y!==void 0&&`${S}[0] !== ${S}[1]`,w!==void 0&&`${A}[0] !== ${A}[1]`].filter(ge=>ge).join(" && "),value:Z[de]},{value:null}],ee),{});return[{name:`${h+wo}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:G},fillOpacity:{value:H}},update:L}},...d,{name:h+wo,type:"rect",clip:!0,encode:{enter:{...X?{cursor:{value:X}}:{},fill:{value:"transparent"}},update:{...L,...le}}}]}},al={defined:s=>s.type==="point",signals:(s,l,d)=>{let h=l.name,y=h+Ic,w=l.project,S="(item().isVoronoi ? datum.datum : datum)",A=Te(s.component.selection??{}).reduce((H,X)=>X.type==="interval"?H.concat(X.name+wo):H,[]).map(H=>`indexof(item().mark.name, '${H}') < 0`).join(" && "),C="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(A?` && ${A}`:""),L=`unit: ${Wa(s)}, `;l.project.hasSelectionId?L+=`${fr}: ${S}[${b.stringValue(fr)}]`:L+=`fields: ${y}, values: [${w.items.map(H=>{let X=s.fieldDef(H.channel);return X!=null&&X.bin?`[${S}[${b.stringValue(s.vgField(H.channel,{}))}], ${S}[${b.stringValue(s.vgField(H.channel,{binSuffix:"end"}))}]]`:`${S}[${b.stringValue(H.field)}]`}).join(", ")}]`;let G=l.events;return d.concat([{name:h+ko,on:G?[{events:G,update:`${C} ? {${L}} : null`,force:!0}]:[]}])}};function bu(s,l,d,h){let y=hf(l)&&l.condition,w=h(l);return y?{[d]:[...b.array(y).map(S=>{let A=h(S);if(function(C){return C.param}(S)){let{param:C,empty:L}=S;return{test:Eu(s,{param:C,empty:L}),...A}}return{test:Ki(s,S.test),...A}}),...w!==void 0?[w]:[]]}:w!==void 0?{[d]:w}:{}}function Jf(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"text",d=s.encoding[l];return bu(s,d,l,h=>yu(h,s.config))}function yu(s,l){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"datum";if(s){if(cr(s))return on(s.value);if(wt(s)){let{format:h,formatType:y}=Js(s);return Wh({fieldOrDatumDef:s,format:h,formatType:y,expr:d,config:l})}}}function Oc(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{encoding:d,markDef:h,config:y,stack:w}=s,S=d.tooltip;if(b.isArray(S))return{tooltip:Ny({tooltip:S},w,y,l)};{let A=l.reactiveGeom?"datum.datum":"datum";return bu(s,S,"tooltip",C=>{let L=yu(C,y,A);if(L)return L;if(C===null)return;let G=Ht("tooltip",h,y);return G===!0&&(G={content:"encoding"}),b.isString(G)?{value:G}:b.isObject(G)?Ze(G)?G:G.content==="encoding"?Ny(d,w,y,l):{signal:A}:void 0})}}function Dc(s,l,d){let{reactiveGeom:h}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y={...d,...d.tooltipFormat},w={},S=h?"datum.datum":"datum",A=[];function C(G,H){let X=Us(H),Z=ma(G)?G:{...G,type:s[X].type},le=Z.title||yf(Z,y),ee=b.array(le).join(", ").replaceAll(/"/g,'\\"'),de;if(un(H)){let ge=H==="x"?"x2":"y2",xe=dr(s[ge]);if(zn(Z.bin)&&xe){let me=je(Z,{expr:S}),Ae=je(xe,{expr:S}),{format:Ce,formatType:Pe}=Js(Z);de=yo(me,Ae,Ce,Pe,y),w[ge]=!0}}if((un(H)||H===ar||H===mt)&&l&&l.fieldChannel===H&&l.offset==="normalize"){let{format:ge,formatType:xe}=Js(Z);de=Wh({fieldOrDatumDef:Z,format:ge,formatType:xe,expr:S,config:y,normalizeStack:!0}).signal}de??=yu(Z,y,S).signal,A.push({channel:H,key:ee,value:de})}bc(s,(G,H)=>{ze(G)?C(G,H):mf(G)&&C(G.condition,H)});let L={};for(let{channel:G,key:H,value:X}of A)w[G]||L[H]||(L[H]=X);return L}function Ny(s,l,d){let{reactiveGeom:h}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=Dc(s,l,d,{reactiveGeom:h}),w=_e(y).map(S=>{let[A,C]=S;return`"${A}": ${C}`});return w.length>0?{signal:`{${w.join(", ")}}`}:void 0}function s1(s){let{markDef:l,config:d}=s,h=Ht("aria",l,d);return h===!1?{}:{...h?{aria:h}:{},...l1(s),...u1(s)}}function l1(s){let{mark:l,markDef:d,config:h}=s;if(h.aria===!1)return{};let y=Ht("ariaRoleDescription",d,h);return y!=null?{ariaRoleDescription:{value:y}}:l in Bd?{}:{ariaRoleDescription:{value:l}}}function u1(s){let{encoding:l,markDef:d,config:h,stack:y}=s,w=l.description;if(w)return bu(s,w,"description",C=>yu(C,s.config));let S=Ht("description",d,h);if(S!=null)return{description:on(S)};if(h.aria===!1)return{};let A=Dc(l,y,h);return ye(A)?void 0:{description:{signal:_e(A).map((C,L)=>{let[G,H]=C;return`"${L>0?"; ":""}${G}: " + (${H})`}).join(" + ")}}}function Wn(s,l){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{markDef:h,encoding:y,config:w}=l,{vgChannel:S}=d,{defaultRef:A,defaultValue:C}=d;A===void 0&&(C??=Ht(s,h,w,{vgChannel:S,ignoreVgConfig:!0}),C!==void 0&&(A=on(C)));let L=y[s];return bu(l,L,S??s,G=>qh({channel:s,channelDef:G,markDef:h,config:w,scaleName:l.scaleName(s),scale:l.getScaleComponent(s),stack:null,defaultRef:A}))}function Mc(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{filled:void 0},{markDef:d,encoding:h,config:y}=s,{type:w}=d,S=l.filled??Ht("filled",d,y),A=Q(["bar","point","circle","square","geoshape"],w)?"transparent":void 0,C=Ht(S===!0?"color":void 0,d,y,{vgChannel:"fill"})??y.mark[S===!0&&"color"]??A,L=Ht(S===!1?"color":void 0,d,y,{vgChannel:"stroke"})??y.mark[S===!1&&"color"],G=S?"fill":"stroke",H={...C?{fill:on(C)}:{},...L?{stroke:on(L)}:{}};return d.color&&(S?d.fill:d.stroke)&&Be(O0("property",{fill:"fill"in d,stroke:"stroke"in d})),{...H,...Wn("color",s,{vgChannel:G,defaultValue:S?C:L}),...Wn("fill",s,{defaultValue:h.fill?C:void 0}),...Wn("stroke",s,{defaultValue:h.stroke?L:void 0})}}function Iy(s){let{encoding:l,mark:d}=s,h=l.order;return!is(d)&&cr(h)?bu(s,h,"zindex",y=>on(y.value)):{}}function vu(s){let{channel:l,markDef:d,encoding:h={},model:y,bandPosition:w}=s,S=`${l}Offset`,A=d[S],C=h[S];if((S==="xOffset"||S==="yOffset")&&C)return{offsetType:"encoding",offset:qh({channel:S,channelDef:C,markDef:d,config:y==null?void 0:y.config,scaleName:y.scaleName(S),scale:y.getScaleComponent(S),stack:null,defaultRef:on(A),bandPosition:w})};let L=d[S];return L?{offsetType:"visual",offset:L}:{}}function Vn(s,l,d){let{defaultPos:h,vgChannel:y}=d,{encoding:w,markDef:S,config:A,stack:C}=l,L=w[s],G=w[Ci(s)],H=l.scaleName(s),X=l.getScaleComponent(s),{offset:Z,offsetType:le}=vu({channel:s,markDef:S,encoding:w,model:l,bandPosition:.5}),ee=Qf({model:l,defaultPos:h,channel:s,scaleName:H,scale:X}),de=!L&&un(s)&&(w.latitude||w.longitude)?{field:l.getName(s)}:function(ge){let{channel:xe,channelDef:me,scaleName:Ae,stack:Ce,offset:Pe,markDef:We}=ge;if(wt(me)&&Ce&&xe===Ce.fieldChannel){if(ze(me)){let Je=me.bandPosition;if(Je!==void 0||We.type!=="text"||xe!=="radius"&&xe!=="theta"||(Je=.5),Je!==void 0)return uf({scaleName:Ae,fieldOrDatumDef:me,startSuffix:"start",bandPosition:Je,offset:Pe})}return Ks(me,Ae,{suffix:"end"},{offset:Pe})}return jh(ge)}({channel:s,channelDef:L,channel2Def:G,markDef:S,config:A,scaleName:H,scale:X,stack:C,offset:Z,defaultRef:ee,bandPosition:le==="encoding"?0:void 0});return de?{[y||s]:de}:void 0}function Qf(s){let{model:l,defaultPos:d,channel:h,scaleName:y,scale:w}=s,{markDef:S,config:A}=l;return()=>{let C=Us(h),L=sr(h),G=Ht(h,S,A,{vgChannel:L});if(G!==void 0)return Jl(h,G);switch(d){case"zeroOrMin":case"zeroOrMax":if(y){let H=w.get("type");if(!Q([Gt.LOG,Gt.TIME,Gt.UTC],H)){if(w.domainDefinitelyIncludesZero())return{scale:y,value:0}}}if(d==="zeroOrMin")return C==="y"?{field:{group:"height"}}:{value:0};switch(C){case"radius":return{signal:`min(${l.width.signal},${l.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":return{...l[Sa(h)],mult:.5}}}}let Oy={left:"x",center:"xc",right:"x2"},Dy={top:"y",middle:"yc",bottom:"y2"};function Km(s,l,d){let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"middle";if(s==="radius"||s==="theta")return sr(s);let y=s==="x"?"align":"baseline",w=Ht(y,l,d),S;return Ze(w)?(Be(function(A){return`The ${A} for range marks cannot be an expression`}(y)),S=void 0):S=w,s==="x"?Oy[S||(h==="top"?"left":"center")]:Dy[S||h]}function ep(s,l,d){let{defaultPos:h,defaultPos2:y,range:w}=d;return w?_o(s,l,{defaultPos:h,defaultPos2:y}):Vn(s,l,{defaultPos:h})}function _o(s,l,d){let{defaultPos:h,defaultPos2:y}=d,{markDef:w,config:S}=l,A=Ci(s),C=Sa(s),L=function(G,H,X){let{encoding:Z,mark:le,markDef:ee,stack:de,config:ge}=G,xe=Us(X),me=Sa(X),Ae=sr(X),Ce=Z[xe],Pe=G.scaleName(xe),We=G.getScaleComponent(xe),{offset:Je}=vu(X in Z||X in ee?{channel:X,markDef:ee,encoding:Z,model:G}:{channel:xe,markDef:ee,encoding:Z,model:G});if(!Ce&&(X==="x2"||X==="y2")&&(Z.latitude||Z.longitude)){let Qe=Sa(X),lt=G.markDef[Qe];return lt!=null?{[Qe]:{value:lt}}:{[Ae]:{field:G.getName(X)}}}let it=function(Qe){let{channel:lt,channelDef:kt,channel2Def:Fn,markDef:dn,config:sn,scaleName:Ut,scale:Dt,stack:vn,offset:Nn,defaultRef:fn}=Qe;return wt(kt)&&vn&&lt.charAt(0)===vn.fieldChannel.charAt(0)?Ks(kt,Ut,{suffix:"start"},{offset:Nn}):jh({channel:lt,channelDef:Fn,scaleName:Ut,scale:Dt,stack:vn,markDef:dn,config:sn,offset:Nn,defaultRef:fn})}({channel:X,channelDef:Ce,channel2Def:Z[X],markDef:ee,config:ge,scaleName:Pe,scale:We,stack:de,offset:Je,defaultRef:void 0});return it!==void 0?{[Ae]:it}:rl(X,ee)||rl(X,{[X]:zd(X,ee,ge.style),[me]:zd(me,ee,ge.style)})||rl(X,ge[le])||rl(X,ge.mark)||{[Ae]:Qf({model:G,defaultPos:H,channel:X,scaleName:Pe,scale:We})()}}(l,y,A);return{...Vn(s,l,{defaultPos:h,vgChannel:L[C]?Km(s,w,S):sr(s)}),...L}}function rl(s,l){let d=Sa(s),h=sr(s);if(l[h]!==void 0)return{[h]:Jl(s,l[h])};if(l[s]!==void 0)return{[h]:Jl(s,l[s])};if(l[d]){let y=l[d];if(!Ys(y))return{[d]:Jl(s,y)};Be(function(w){return`Position range does not support relative band size for ${w}.`}(d))}}function li(s,l){let{config:d,encoding:h,markDef:y}=s,w=y.type,S=Ci(l),A=Sa(l),C=h[l],L=h[S],G=s.getScaleComponent(l),H=G?G.get("type"):void 0,X=y.orient,Z=h[A]??h.size??Ht("size",y,d,{vgChannel:A}),le=gh(l),ee=w==="bar"&&(l==="x"?X==="vertical":X==="horizontal");return!ze(C)||!(Vt(C.bin)||zn(C.bin)||C.timeUnit&&!L)||Z&&!Ys(Z)||h[le]||Hn(H)?(wt(C)&&Hn(H)||ee)&&!L?function(de,ge,xe){var ga,ln;let{markDef:me,encoding:Ae,config:Ce,stack:Pe}=xe,We=me.orient,Je=xe.scaleName(ge),it=xe.getScaleComponent(ge),Qe=Sa(ge),lt=Ci(ge),kt=gh(ge),Fn=xe.scaleName(kt),dn=xe.getScaleComponent(Ul(ge)),sn=We==="horizontal"&&ge==="y"||We==="vertical"&&ge==="x",Ut;(Ae.size||me.size)&&(sn?Ut=Wn("size",xe,{vgChannel:Qe,defaultRef:on(me.size)}):Be(function(At){return`Cannot apply size to non-oriented mark "${At}".`}(me.type)));let Dt=!!Ut,vn=Jh({channel:ge,fieldDef:de,markDef:me,config:Ce,scaleType:(ga=it||dn)==null?void 0:ga.get("type"),useVlSizeChannel:sn});Ut=Ut||{[Qe]:My(Qe,Fn||Je,dn||it,Ce,vn,!!de,me.type)};let Nn=((ln=it||dn)==null?void 0:ln.get("type"))==="band"&&Ys(vn)&&!Dt?"top":"middle",fn=Km(ge,me,Ce,Nn),Oa=fn==="xc"||fn==="yc",{offset:Da,offsetType:Br}=vu({channel:ge,markDef:me,encoding:Ae,model:xe,bandPosition:Oa?.5:0}),Xn=jh({channel:ge,channelDef:de,markDef:me,config:Ce,scaleName:Je,scale:it,stack:Pe,offset:Da,defaultRef:Qf({model:xe,defaultPos:"mid",channel:ge,scaleName:Je,scale:it}),bandPosition:Oa?Br==="encoding"?0:.5:Ze(vn)?{signal:`(1-${vn})/2`}:Ys(vn)?(1-vn.band)/2:0});if(Qe)return{[fn]:Xn,...Ut};{let At=sr(lt),En=Ut[Qe],mi=Da?{...En,offset:Da}:En;return{[fn]:Xn,[At]:b.isArray(Xn)?[Xn[0],{...Xn[1],offset:mi}]:{...Xn,offset:mi}}}}(C,l,s):_o(l,s,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function(de){var At;let{fieldDef:ge,fieldDef2:xe,channel:me,model:Ae}=de,{config:Ce,markDef:Pe,encoding:We}=Ae,Je=Ae.getScaleComponent(me),it=Ae.scaleName(me),Qe=Je?Je.get("type"):void 0,lt=Je.get("reverse"),kt=Jh({channel:me,fieldDef:ge,markDef:Pe,config:Ce,scaleType:Qe}),Fn=(At=Ae.component.axes[me])==null?void 0:At[0],dn=(Fn==null?void 0:Fn.get("translate"))??.5,sn=un(me)?Ht("binSpacing",Pe,Ce)??0:0,Ut=Ci(me),Dt=sr(me),vn=sr(Ut),Nn=Ga("minBandSize",Pe,Ce),{offset:fn}=vu({channel:me,markDef:Pe,encoding:We,model:Ae,bandPosition:0}),{offset:Oa}=vu({channel:Ut,markDef:Pe,encoding:We,model:Ae,bandPosition:0}),Da=function(En){let{scaleName:mi,fieldDef:gi}=En,Ss=je(gi,{expr:"datum"});return`abs(scale("${mi}", ${je(gi,{expr:"datum",suffix:"end"})}) - scale("${mi}", ${Ss}))`}({fieldDef:ge,scaleName:it}),Br=Xm(me,sn,lt,dn,fn,Nn,Da),Xn=Xm(Ut,sn,lt,dn,Oa??fn,Nn,Da),ga=Ze(kt)?{signal:`(1-${kt.signal})/2`}:Ys(kt)?(1-kt.band)/2:.5,ln=Fi({fieldDef:ge,fieldDef2:xe,markDef:Pe,config:Ce});if(Vt(ge.bin)||ge.timeUnit){let En=ge.timeUnit&&ln!==.5;return{[vn]:Zm({fieldDef:ge,scaleName:it,bandPosition:ga,offset:Xn,useRectOffsetField:En}),[Dt]:Zm({fieldDef:ge,scaleName:it,bandPosition:Ze(ga)?{signal:`1-${ga.signal}`}:1-ga,offset:Br,useRectOffsetField:En})}}if(zn(ge.bin)){let En=Ks(ge,it,{},{offset:Xn});if(ze(xe))return{[vn]:En,[Dt]:Ks(xe,it,{},{offset:Br})};if(mo(ge.bin)&&ge.bin.step)return{[vn]:En,[Dt]:{signal:`scale("${it}", ${je(ge,{expr:"datum"})} + ${ge.bin.step})`,offset:Br}}}return void Be(Vd(Ut))}({fieldDef:C,fieldDef2:L,channel:l,model:s})}function My(s,l,d,h,y,w,S){if(Ys(y)){if(!d)return{mult:y.band,field:{group:s}};{let A=d.get("type");if(A==="band"){let C=`bandwidth('${l}')`;y.band!==1&&(C=`${y.band} * ${C}`);let L=Ga("minBandSize",{type:S},h);return{signal:L?`max(${pa(L)}, ${C})`:C}}y.band!==1&&(Be(function(C){return`Cannot use the relative band size with ${C} scale.`}(A)),y=void 0)}}else{if(Ze(y))return y;if(y)return{value:y}}if(d){let A=d.get("range");if(go(A)&&b.isNumber(A.step))return{value:A.step-2}}if(!w){let{bandPaddingInner:A,barBandPaddingInner:C,rectBandPaddingInner:L}=h.scale,G=Ke(A,S==="bar"?C:L);if(Ze(G))return{signal:`(1 - (${G.signal})) * ${s}`};if(b.isNumber(G))return{signal:`${1-G} * ${s}`}}return{value:fu(h.view,s)-2}}function Xm(s,l,d,h,y,w,S){if(Fd(s))return 0;let A=s==="x"||s==="y2",C=A?-l/2:l/2;if(Ze(d)||Ze(y)||Ze(h)||w){let L=pa(d),G=pa(y),H=pa(h),X=pa(w),Z=w?`(${S} < ${X} ? ${A?"":"-"}0.5 * (${X} - (${S})) : ${C})`:C;return{signal:(H?`${H} + `:"")+(L?`(${L} ? -1 : 1) * `:"")+(G?`(${G} + ${Z})`:Z)}}return y=y||0,h+(d?-y-C:+y+C)}function Zm(s){let{fieldDef:l,scaleName:d,bandPosition:h,offset:y,useRectOffsetField:w}=s;return uf({scaleName:d,fieldOrDatumDef:l,bandPosition:h,offset:y,...w?{startSuffix:Xf,endSuffix:$t}:{}})}let c1=new Set(["aria","width","height"]);function Na(s,l){let{fill:d,stroke:h}=l.color==="include"?Mc(s):{};return{...d1(s.markDef,l),...tp(s,"fill",d),...tp(s,"stroke",h),...Wn("opacity",s),...Wn("fillOpacity",s),...Wn("strokeOpacity",s),...Wn("strokeWidth",s),...Wn("strokeDash",s),...Iy(s),...Oc(s),...Jf(s,"href"),...s1(s)}}function tp(s,l,d){let{config:h,mark:y,markDef:w}=s;if(Ht("invalid",w,h)==="hide"&&d&&!is(y)){let S=function(A,C){let{invalid:L=!1,channels:G}=C,H=G.reduce((Z,le)=>{let ee=A.getScaleComponent(le);if(ee){let de=ee.get("type"),ge=A.vgField(le,{expr:"datum"});ge&&Ha(de)&&(Z[ge]=!0)}return Z},{}),X=be(H);if(X.length>0){let Z=L?"||":"&&";return X.map(le=>Hh(le,L)).join(` ${Z} `)}}(s,{invalid:!0,channels:Gl});if(S)return{[l]:[{test:S,value:null},...b.array(d)]}}return d?{[l]:d}:{}}function d1(s,l){return Hl.reduce((d,h)=>(c1.has(h)||s[h]===void 0||l[h]==="ignore"||(d[h]=on(s[h])),d),{})}function Lc(s){let{config:l,markDef:d}=s;if(Ht("invalid",d,l)){let h=function(y,w){let{invalid:S=!1,channels:A}=w,C=A.reduce((G,H)=>{var Z;let X=y.getScaleComponent(H);if(X){let le=X.get("type"),ee=y.vgField(H,{expr:"datum",binSuffix:(Z=y.stack)!=null&&Z.impute?"mid":void 0});ee&&Ha(le)&&(G[ee]=!0)}return G},{}),L=be(C);if(L.length>0){let G=S?"||":"&&";return L.map(H=>Hh(H,S)).join(` ${G} `)}}(s,{channels:Qr});if(h)return{defined:{signal:h}}}return{}}function Ly(s,l){if(l!==void 0)return{[s]:on(l)}}let Fc="voronoi",Fy={defined:s=>s.type==="point"&&s.nearest,parse:(s,l)=>{if(l.events)for(let d of l.events)d.markname=s.getName(Fc)},marks:(s,l,d)=>{let{x:h,y}=l.project.hasChannel,w=s.mark;if(is(w))return Be(`The "nearest" transform is not supported for ${w} marks.`),d;let S={name:s.getName(Fc),type:"path",interactive:!0,from:{data:s.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...Oc(s,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:h||!y?"datum.datum.x || 0":"0"},y:{expr:y||!h?"datum.datum.y || 0":"0"},size:[s.getSizeSignalRef("width"),s.getSizeSignalRef("height")]}]},A=0,C=!1;return d.forEach((L,G)=>{let H=L.name??"";H===s.component.mark[0].name?A=G:H.indexOf(Fc)>=0&&(C=!0)}),C||d.splice(A+1,0,S),d}},np={defined:s=>s.type==="point"&&s.resolve==="global"&&s.bind&&s.bind!=="scales"&&!Nf(s.bind),parse:(s,l,d)=>ui(l,d),topLevelSignals:(s,l,d)=>{let h=l.name,y=l.project,w=l.bind,S=l.init&&l.init[0],A=Fy.defined(l)?"(item().isVoronoi ? datum.datum : datum)":"datum";return y.items.forEach((C,L)=>{let G=$e(`${h}_${C.field}`);d.filter(H=>H.name===G).length||d.unshift({name:G,...S?{init:ps(S[L])}:{value:null},on:l.events?[{events:l.events,update:`datum && item().mark.marktype !== 'group' ? ${A}[${b.stringValue(C.field)}] : null`}]:[],bind:w[C.field]??w[C.channel]??w})}),d},signals:(s,l,d)=>{let h=l.name,y=l.project,w=d.filter(L=>L.name===h+ko)[0],S=h+Ic,A=y.items.map(L=>$e(`${h}_${L.field}`)),C=A.map(L=>`${L} !== null`).join(" && ");return A.length&&(w.update=`${C} ? {fields: ${S}, values: [${A.join(", ")}]} : null`),delete w.value,delete w.on,d}},Pc="_toggle",Py={defined:s=>s.type==="point"&&!!s.toggle,signals:(s,l,d)=>d.concat({name:l.name+Pc,value:!1,on:[{events:l.events,update:l.toggle}]}),modifyExpr:(s,l)=>{let d=l.name+ko,h=l.name+Pc;return`${h} ? null : ${d}, `+(l.resolve==="global"?`${h} ? null : true, `:`${h} ? null : {unit: ${Wa(s)}}, `)+`${h} ? ${d} : null`}},$y={defined:s=>s.clear!==void 0&&s.clear!==!1,parse:(s,l)=>{l.clear&&(l.clear=b.isString(l.clear)?b.parseSelector(l.clear,"view"):l.clear)},topLevelSignals:(s,l,d)=>{if(np.defined(l))for(let h of l.project.items){let y=d.findIndex(w=>w.name===$e(`${l.name}_${h.field}`));y!==-1&&d[y].on.push({events:l.clear,update:"null"})}return d},signals:(s,l,d)=>{function h(y,w){y!==-1&&d[y].on&&d[y].on.push({events:l.clear,update:w})}if(l.type==="interval")for(let y of l.project.items){let w=d.findIndex(S=>S.name===y.signals.visual);h(w,"[0, 0]"),w===-1&&h(d.findIndex(S=>S.name===y.signals.data),"null")}else{let y=d.findIndex(w=>w.name===l.name+ko);h(y,"null"),Py.defined(l)&&(y=d.findIndex(w=>w.name===l.name+Pc),h(y,"false"))}return d}},By={defined:s=>{let l=s.resolve==="global"&&s.bind&&Nf(s.bind),d=s.project.items.length===1&&s.project.items[0].field!==fr;return l&&!d&&Be("Legend bindings are only supported for selections over an individual field or encoding channel."),l&&d},parse:(s,l,d)=>{let h=j(d);if(h.select=b.isString(h.select)?{type:h.select,toggle:l.toggle}:{...h.select,toggle:l.toggle},ui(l,h),b.isObject(d.select)&&(d.select.on||d.select.clear)){let S='event.item && indexof(event.item.mark.role, "legend") < 0';for(let A of l.events)A.filter=b.array(A.filter??[]),A.filter.includes(S)||A.filter.push(S)}let y=If(l.bind)?l.bind.legend:"click",w=b.isString(y)?b.parseSelector(y,"view"):b.array(y);l.bind={legend:{merge:w}}},topLevelSignals:(s,l,d)=>{let h=l.name,y=If(l.bind)&&l.bind.legend,w=S=>A=>{let C=j(A);return C.markname=S,C};for(let S of l.project.items){if(!S.hasLegend)continue;let A=`${$e(S.field)}_legend`,C=`${h}_${A}`;if(d.filter(L=>L.name===C).length===0){let L=y.merge.map(w(`${A}_symbols`)).concat(y.merge.map(w(`${A}_labels`))).concat(y.merge.map(w(`${A}_entries`)));d.unshift({name:C,...l.init?{}:{value:null},on:[{events:L,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:y.merge,update:`!event.item || !datum ? null : ${C}`,force:!0}]})}}return d},signals:(s,l,d)=>{let h=l.name,y=l.project,w=d.find(H=>H.name===h+ko),S=h+Ic,A=y.items.filter(H=>H.hasLegend).map(H=>$e(`${h}_${$e(H.field)}_legend`)),C=`${A.map(H=>`${H} !== null`).join(" && ")} ? {fields: ${S}, values: [${A.join(", ")}]} : null`;l.events&&A.length>0?w.on.push({events:A.map(H=>({signal:H})),update:C}):A.length>0&&(w.update=C,delete w.value,delete w.on);let L=d.find(H=>H.name===h+Pc),G=If(l.bind)&&l.bind.legend;return L&&(l.events?L.on.push({...L.on[0],events:G}):L.on[0].events=G),d}},Jm="_translate_anchor",Uy="_translate_delta",zy={defined:s=>s.type==="interval"&&s.translate,signals:(s,l,d)=>{let h=l.name,y=Ra.defined(l),w=h+Jm,{x:S,y:A}=l.project.hasChannel,C=b.parseSelector(l.translate,"scope");return y||(C=C.map(L=>(L.between[0].markname=h+wo,L))),d.push({name:w,value:{},on:[{events:C.map(L=>L.between[0]),update:"{x: x(unit), y: y(unit)"+(S!==void 0?`, extent_x: ${y?qn(s,Qt):`slice(${S.signals.visual})`}`:"")+(A!==void 0?`, extent_y: ${y?qn(s,Bn):`slice(${A.signals.visual})`}`:"")+"}"}]},{name:h+Uy,value:{},on:[{events:C,update:`{x: ${w}.x - x(unit), y: ${w}.y - y(unit)}`}]}),S!==void 0&&Qm(s,l,S,"width",d),A!==void 0&&Qm(s,l,A,"height",d),d}};function Qm(s,l,d,h,y){let w=l.name,S=w+Jm,A=w+Uy,C=d.channel,L=Ra.defined(l),G=y.filter(ge=>ge.name===d.signals[L?"data":"visual"])[0],H=s.getSizeSignalRef(h).signal,X=s.getScaleComponent(C),Z=X&&X.get("type"),le=X&&X.get("reverse"),ee=`${S}.extent_${C}`,de=`${L&&X?Z==="log"?"panLog":Z==="symlog"?"panSymlog":Z==="pow"?"panPow":"panLinear":"panLinear"}(${ee}, ${`${L?C===Qt?le?"":"-":le?"-":"":""}${A}.${C} / ${L?`${H}`:`span(${ee})`}`}${L?Z==="pow"?`, ${X.get("exponent")??1}`:Z==="symlog"?`, ${X.get("constant")??1}`:"":""})`;G.on.push({events:{signal:A},update:L?de:`clampRange(${de}, 0, ${H})`})}let eg="_zoom_anchor",tg="_zoom_delta",ng={defined:s=>s.type==="interval"&&s.zoom,signals:(s,l,d)=>{let h=l.name,y=Ra.defined(l),w=h+tg,{x:S,y:A}=l.project.hasChannel,C=b.stringValue(s.scaleName(Qt)),L=b.stringValue(s.scaleName(Bn)),G=b.parseSelector(l.zoom,"scope");return y||(G=G.map(H=>(H.markname=h+wo,H))),d.push({name:h+eg,on:[{events:G,update:y?"{"+[C?`x: invert(${C}, x(unit))`:"",L?`y: invert(${L}, y(unit))`:""].filter(H=>H).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:w,on:[{events:G,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),S!==void 0&&$c(s,l,S,"width",d),A!==void 0&&$c(s,l,A,"height",d),d}};function $c(s,l,d,h,y){let w=l.name,S=d.channel,A=Ra.defined(l),C=y.filter(ee=>ee.name===d.signals[A?"data":"visual"])[0],L=s.getSizeSignalRef(h).signal,G=s.getScaleComponent(S),H=G&&G.get("type"),X=A?qn(s,S):C.name,Z=w+tg,le=`${A&&G?H==="log"?"zoomLog":H==="symlog"?"zoomSymlog":H==="pow"?"zoomPow":"zoomLinear":"zoomLinear"}(${X}, ${`${w}${eg}.${S}`}, ${Z}${A?H==="pow"?`, ${G.get("exponent")??1}`:H==="symlog"?`, ${G.get("constant")??1}`:"":""})`;C.on.push({events:{signal:Z},update:A?le:`clampRange(${le}, 0, ${L})`})}let ms="_store",ko="_tuple",Gy="_modify",ag="vlSelectionResolve",il=[al,Ym,Vi,Py,np,Ra,By,$y,zy,ng,Fy];function Wa(s){let{escape:l}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{escape:!0},d=l?b.stringValue(s.name):s.name,h=function(y){let w=y.parent;for(;w&&!Ya(w);)w=w.parent;return w}(s);if(h){let{facet:y}=h;for(let w of Ua)y[w]&&(d+=` + '__facet_${w}_' + (facet[${b.stringValue(h.vgField(w))}])`)}return d}function rg(s){return Te(s.component.selection??{}).reduce((l,d)=>l||d.project.hasSelectionId,!1)}function ui(s,l){!b.isString(l.select)&&l.select.on||delete s.events,!b.isString(l.select)&&l.select.clear||delete s.clear,!b.isString(l.select)&&l.select.toggle||delete s.toggle}function Yi(s){let l=[];return s.type==="Identifier"?[s.name]:s.type==="Literal"?[s.value]:(s.type==="MemberExpression"&&(l.push(...Yi(s.object)),l.push(...Yi(s.property))),l)}function ap(s){return s.object.type==="MemberExpression"?ap(s.object):s.object.name==="datum"}function rp(s){let l=b.parseExpression(s),d=new Set;return l.visit(h=>{h.type==="MemberExpression"&&ap(h)&&d.add(Yi(h).slice(1).join("."))}),d}class ci extends qt{clone(){return new ci(null,this.model,j(this.filter))}constructor(l,d,h){super(l),this.model=d,this.filter=h,at(this,"expr",void 0),at(this,"_dependentFields",void 0),this.expr=Ki(this.model,this.filter,this),this._dependentFields=rp(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Eu(s,l,d){let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"datum",y=b.isString(l)?l:l.param,w=$e(y),S=b.stringValue(w+ms),A;try{A=s.getSelectionComponent(w,y)}catch{return`!!${w}`}if(A.project.timeUnit){let G=d??s.component.data.raw,H=A.project.timeUnit.clone();G.parent?H.insertAsParentOf(G):G.parent=H}let C=`${A.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${S}, ${h}${A.resolve==="global"?")":`, ${b.stringValue(A.resolve)})`}`,L=`length(data(${S}))`;return l.empty===!1?`${L} && ${C}`:`!${L} || ${C}`}function xo(s,l,d){let h=$e(l),y=d.encoding,w,S=d.field;try{w=s.getSelectionComponent(h,l)}catch{return h}if(y||S){if(y&&!S){let A=w.project.items.filter(C=>C.channel===y);!A.length||A.length>1?(S=w.project.items[0].field,Be((A.length?"Multiple ":"No ")+`matching ${b.stringValue(y)} encoding found for selection ${b.stringValue(d.param)}. Using "field": ${b.stringValue(S)}.`)):S=A[0].field}}else S=w.project.items[0].field,w.project.items.length>1&&Be(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${b.stringValue(S)}.`);return`${w.name}[${b.stringValue(jt(S))}]`}function Ki(s,l,d){return Me(l,h=>b.isString(h)?h:function(y){return y==null?void 0:y.param}(h)?Eu(s,h,d):ef(h))}function gs(s,l,d,h){s.encode??={},s.encode[l]??={},s.encode[l].update??={},s.encode[l].update[d]=h}function Xi(s,l,d){var H,X;let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{header:!1},{disable:y,orient:w,scale:S,labelExpr:A,title:C,zindex:L,...G}=s.combine();if(!y){for(let Z in G){let le=Ef[Z],ee=G[Z];if(le&&le!==l&&le!=="both")delete G[Z];else if(su(ee)){let{condition:de,...ge}=ee,xe=b.array(de),me=ls[Z];if(me){let{vgProp:Ae,part:Ce}=me;gs(G,Ce,Ae,[...xe.map(Pe=>{let{test:We,...Je}=Pe;return{test:Ki(null,We),...Je}}),ge]),delete G[Z]}else if(me===null){let Ae={signal:xe.map(Ce=>{let{test:Pe,...We}=Ce;return`${Ki(null,Pe)} ? ${ns(We)} : `}).join("")+ns(ge)};G[Z]=Ae}}else if(Ze(ee)){let de=ls[Z];if(de){let{vgProp:ge,part:xe}=de;gs(G,xe,ge,ee),delete G[Z]}}Q(["labelAlign","labelBaseline"],Z)&&G[Z]===null&&delete G[Z]}if(l==="grid"){if(!G.grid)return;if(G.encode){let{grid:Z}=G.encode;G.encode={...Z?{grid:Z}:{}},ye(G.encode)&&delete G.encode}return{scale:S,orient:w,...G,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:Ke(L,0)}}{if(!h.header&&s.mainExtracted)return;if(A!==void 0){let le=A;(X=(H=G.encode)==null?void 0:H.labels)!=null&&X.update&&Ze(G.encode.labels.update.text)&&(le=xt(A,"datum.label",G.encode.labels.update.text.signal)),gs(G,"labels","text",{signal:le})}if(G.labelAlign===null&&delete G.labelAlign,G.encode){for(let le of us)s.hasAxisPart(le)||delete G.encode[le];ye(G.encode)&&delete G.encode}let Z=function(le,ee){if(le)return b.isArray(le)&&!fa(le)?le.map(de=>yf(de,ee)).join(", "):le}(C,d);return{scale:S,orient:w,grid:!1,...Z?{title:Z}:{},...G,...d.aria===!1?{aria:!1}:{},zindex:Ke(L,0)}}}}function wu(s){let{axes:l}=s.component,d=[];for(let h of Qr)if(l[h]){for(let y of l[h])if(!y.get("disable")&&!y.get("gridScale")){let w=h==="x"?"height":"width",S=s.getSizeSignalRef(w).signal;w!==S&&d.push({name:w,update:S})}}return d}function di(s,l,d,h){return Object.assign.apply(null,[{},...s.map(y=>{if(y==="axisOrient"){let w=d==="x"?"bottom":"left",S=l[d==="x"?"axisBottom":"axisLeft"]||{},A=l[d==="x"?"axisTop":"axisRight"]||{},C=new Set([...be(S),...be(A)]),L={};for(let G of C.values())L[G]={signal:`${h.signal} === "${w}" ? ${pa(S[G])} : ${pa(A[G])}`};return L}return l[y]})])}function f1(s,l){var h;let d=[{}];for(let y of s){let w=(h=l[y])==null?void 0:h.style;if(w){w=b.array(w);for(let S of w)d.push(l.style[S])}}return Object.assign.apply(null,d)}function ig(s,l,d){var w;let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=R0(s,d,l);if(y!==void 0)return{configFrom:"style",configValue:y};for(let S of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((w=h[S])==null?void 0:w[s])!==void 0)return{configFrom:S,configValue:h[S][s]};return{}}let jy={scale:s=>{let{model:l,channel:d}=s;return l.scaleName(d)},format:s=>{let{format:l}=s;return l},formatType:s=>{let{formatType:l}=s;return l},grid:s=>{let{fieldOrDatumDef:l,axis:d,scaleType:h}=s;return d.grid??function(y,w){return!Hn(y)&&ze(w)&&!Vt(w==null?void 0:w.bin)&&!zn(w==null?void 0:w.bin)}(h,l)},gridScale:s=>{let{model:l,channel:d}=s;return function(h,y){let w=y==="x"?"y":"x";if(h.getScaleComponent(w))return h.scaleName(w)}(l,d)},labelAlign:s=>{let{axis:l,labelAngle:d,orient:h,channel:y}=s;return l.labelAlign||qy(d,h,y)},labelAngle:s=>{let{labelAngle:l}=s;return l},labelBaseline:s=>{let{axis:l,labelAngle:d,orient:h,channel:y}=s;return l.labelBaseline||Hy(d,h,y)},labelFlush:s=>{let{axis:l,fieldOrDatumDef:d,channel:h}=s;return l.labelFlush??function(y,w){if(w==="x"&&Q(["quantitative","temporal"],y))return!0}(d.type,h)},labelOverlap:s=>{let{axis:l,fieldOrDatumDef:d,scaleType:h}=s;return l.labelOverlap??function(y,w,S,A){if(S&&!b.isObject(A)||y!=="nominal"&&y!=="ordinal")return w!=="log"&&w!=="symlog"||"greedy"}(d.type,h,ze(d)&&!!d.timeUnit,ze(d)?d.sort:void 0)},orient:s=>{let{orient:l}=s;return l},tickCount:s=>{let{channel:l,model:d,axis:h,fieldOrDatumDef:y,scaleType:w}=s,S=l==="x"?"width":l==="y"?"height":void 0,A=S?d.getSizeSignalRef(S):void 0;return h.tickCount??function(C){var Z;let{fieldOrDatumDef:L,scaleType:G,size:H,values:X}=C;if(!X&&!Hn(G)&&G!=="log"){if(ze(L)){if(Vt(L.bin))return{signal:`ceil(${H.signal}/10)`};if(L.timeUnit&&Q(["month","hours","day","quarter"],(Z=jn(L.timeUnit))==null?void 0:Z.unit))return}return{signal:`ceil(${H.signal}/40)`}}}({fieldOrDatumDef:y,scaleType:w,size:A,values:h.values})},tickMinStep:function(s){let{format:l,fieldOrDatumDef:d}=s;if(l==="d")return 1;if(ze(d)){let{timeUnit:h}=d;if(h){let y=j0(h);if(y)return{signal:y}}}},title:s=>{let{axis:l,model:d,channel:h}=s;if(l.title!==void 0)return l.title;let y=Wy(d,h);if(y!==void 0)return y;let w=d.typedFieldDef(h),S=h==="x"?"x2":"y2",A=d.fieldDef(S);return Wl(w?[Zh(w)]:[],ze(A)?[Zh(A)]:[])},values:s=>{let{axis:l,fieldOrDatumDef:d}=s;return function(h,y){let w=h.values;if(b.isArray(w))return mc(y,w);if(Ze(w))return w}(l,d)},zindex:s=>{let{axis:l,fieldOrDatumDef:d,mark:h}=s;return l.zindex??function(y,w){return y==="rect"&&au(w)?1:0}(h,d)}};function og(s){return`(((${s.signal} % 360) + 360) % 360)`}function Hy(s,l,d,h){if(s!==void 0){if(d==="x"){if(Ze(s)){let y=og(s);return{signal:`(45 < ${y} && ${y} < 135) || (225 < ${y} && ${y} < 315) ? "middle" :(${y} <= 45 || 315 <= ${y}) === ${Ze(l)?`(${l.signal} === "top")`:l==="top"} ? "bottom" : "top"`}}if(45<s&&s<135||225<s&&s<315)return"middle";if(Ze(l)){let y=s<=45||315<=s?"===":"!==";return{signal:`${l.signal} ${y} "top" ? "bottom" : "top"`}}return(s<=45||315<=s)==(l==="top")?"bottom":"top"}if(Ze(s)){let y=og(s);return{signal:`${y} <= 45 || 315 <= ${y} || (135 <= ${y} && ${y} <= 225) ? ${h?'"middle"':"null"} : (45 <= ${y} && ${y} <= 135) === ${Ze(l)?`(${l.signal} === "left")`:l==="left"} ? "top" : "bottom"`}}if(s<=45||315<=s||135<=s&&s<=225)return h?"middle":null;if(Ze(l)){let y=45<=s&&s<=135?"===":"!==";return{signal:`${l.signal} ${y} "left" ? "top" : "bottom"`}}return(45<=s&&s<=135)==(l==="left")?"top":"bottom"}}function qy(s,l,d){if(s===void 0)return;let h=d==="x",y=h?0:90,w=h?"bottom":"left";if(Ze(s)){let S=og(s);return{signal:`(${y?`(${S} + 90)`:S} % 180 === 0) ? ${h?null:'"center"'} :(${y} < ${S} && ${S} < ${180+y}) === ${Ze(l)?`(${l.signal} === "${w}")`:l===w} ? "left" : "right"`}}if((s+y)%180==0)return h?null:"center";if(Ze(l)){let S=y<s&&s<180+y?"===":"!==";return{signal:`${`${l.signal} ${S} "${w}"`} ? "left" : "right"`}}return(y<s&&s<180+y)==(l===w)?"left":"right"}function Wy(s,l){let d=l==="x"?"x2":"y2",h=s.fieldDef(l),y=s.fieldDef(d),w=h?h.title:void 0,S=y?y.title:void 0;return w&&S?ti(w,S):w||S||(w!==void 0?w:S!==void 0?S:void 0)}class ol extends qt{clone(){return new ol(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,at(this,"_dependentFields",void 0),this._dependentFields=rp(this.transform.calculate)}static parseAllForSortIndex(l,d){return d.forEachFieldDef((h,y)=>{if($i(h)&&fc(h.sort)){let{field:w,timeUnit:S}=h,A=h.sort,C=A.map((L,G)=>`${ef({field:w,timeUnit:S,equal:L})} ? ${G} : `).join("")+A.length;l=new ol(l,{calculate:C,as:sl(h,y,{forAs:!0})})}}),l}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 ${ae(this.transform)}`}}function sl(s,l,d){return je(s,{prefix:l,suffix:"sort_index",...d??{}})}function Bc(s,l){return Q(["top","bottom"],l)?"column":Q(["left","right"],l)||s==="row"?"row":"column"}function Zi(s,l,d,h){let y=h==="row"?d.headerRow:h==="column"?d.headerColumn:d.headerFacet;return Ke((l||{})[s],y[s],d.header[s])}function Uc(s,l,d,h){let y={};for(let w of s){let S=Zi(w,l||{},d,h);S!==void 0&&(y[w]=S)}return y}let _u=["row","column"],zc=["header","footer"];function bs(s,l){let d=s.component.layoutHeaders[l].title,h=s.config?s.config:void 0,y=s.component.layoutHeaders[l].facetFieldDef?s.component.layoutHeaders[l].facetFieldDef:void 0,{titleAnchor:w,titleAngle:S,titleOrient:A}=Uc(["titleAnchor","titleAngle","titleOrient"],y.header,h,l),C=Bc(l,A),L=Lt(S);return{name:`${l}-title`,type:"group",role:`${C}-title`,title:{text:d,...l==="row"?{orient:"left"}:{},style:"guide-title",...sg(L,C),...Mn(C,L,w),...Gc(h,y,l,fm,Ec)}}}function Mn(s,l){switch(arguments.length>2&&arguments[2]!==void 0?arguments[2]:"middle"){case"start":return{align:"left"};case"end":return{align:"right"}}let d=qy(l,s==="row"?"left":"top",s==="row"?"y":"x");return d?{align:d}:{}}function sg(s,l){let d=Hy(s,l==="row"?"left":"top",l==="row"?"y":"x",!0);return d?{baseline:d}:{}}function Vy(s,l){let d=s.component.layoutHeaders[l],h=[];for(let y of zc)if(d[y])for(let w of d[y]){let S=ll(s,l,y,d,w);S!=null&&h.push(S)}return h}function ip(s,l){let{sort:d}=s;return ii(d)?{field:je(d,{expr:"datum"}),order:d.order??"ascending"}:b.isArray(d)?{field:sl(s,l,{expr:"datum"}),order:"ascending"}:{field:je(s,{expr:"datum"}),order:d??"ascending"}}function So(s,l,d){let{format:h,formatType:y,labelAngle:w,labelAnchor:S,labelOrient:A,labelExpr:C}=Uc(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],s.header,d,l),L=Wh({fieldOrDatumDef:s,format:h,formatType:y,expr:"parent",config:d}).signal,G=Bc(l,A);return{text:{signal:C?xt(xt(C,"datum.label",L),"datum.value",je(s,{expr:"parent"})):L},...l==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...sg(w,G),...Mn(G,w,S),...Gc(d,s,l,pm,wc)}}function ll(s,l,d,h,y){if(y){let w=null,{facetFieldDef:S}=h,A=s.config?s.config:void 0;if(S&&y.labels){let{labelOrient:H}=Uc(["labelOrient"],S.header,A,l);(l==="row"&&!Q(["top","bottom"],H)||l==="column"&&!Q(["left","right"],H))&&(w=So(S,l,A))}let C=Ya(s)&&!Ql(s.facet),L=y.axes,G=(L==null?void 0:L.length)>0;if(w||G){let H=l==="row"?"height":"width";return{name:s.getName(`${l}_${d}`),type:"group",role:`${l}-${d}`,...h.facetFieldDef?{from:{data:s.getName(`${l}_domain`)},sort:ip(S,l)}:{},...G&&C?{from:{data:s.getName(`facet_domain_${l}`)}}:{},...w?{title:w}:{},...y.sizeSignal?{encode:{update:{[H]:y.sizeSignal}}}:{},...G?{axes:L}:{}}}}return null}let Yy={column:{start:0,end:1},row:{start:1,end:0}};function Ky(s,l){return Yy[l][s]}function Gc(s,l,d,h,y){let w={};for(let S of h){if(!y[S])continue;let A=Zi(S,l==null?void 0:l.header,s,d);A!==void 0&&(w[y[S]]=A)}return w}function pr(s){return[...jc(s,"width"),...jc(s,"height"),...jc(s,"childWidth"),...jc(s,"childHeight")]}function jc(s,l){let d=l==="width"?"x":"y",h=s.component.layoutSize.get(l);if(!h||h==="merged")return[];let y=s.getSizeSignalRef(l).signal;if(h==="step"){let w=s.getScaleComponent(d);if(w){let S=w.get("type"),A=w.get("range");if(Hn(S)&&go(A)){let C=s.scaleName(d);return Ya(s.parent)&&s.parent.component.resolve.scale[d]==="independent"?[Hc(C,A)]:[Hc(C,A),{name:y,update:op(C,w,`domain('${C}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if(h=="container"){let w=y.endsWith("width"),S=w?"containerSize()[0]":"containerSize()[1]",A=`isFinite(${S}) ? ${S} : ${ds(s.config.view,w?"width":"height")}`;return[{name:y,init:A,on:[{update:A,events:"window:resize"}]}]}return[{name:y,value:h}]}function Hc(s,l){let d=`${s}_step`;return Ze(l.step)?{name:d,update:l.step.signal}:{name:d,value:l.step}}function op(s,l,d){let h=l.get("type"),y=l.get("padding"),w=Ke(l.get("paddingOuter"),y),S=l.get("paddingInner");return S=h==="band"?S!==void 0?S:y:1,`bandspace(${d}, ${pa(S)}, ${pa(w)}) * ${s}_step`}function lg(s){return s==="childWidth"?"width":s==="childHeight"?"height":s}function ug(s,l){return be(s).reduce((d,h)=>{let y=s[h];return{...d,...bu(l,y,h,w=>on(w.value))}},{})}function cg(s,l){if(Ya(l))return s==="theta"?"independent":"shared";if(ws(l))return"shared";if(Ji(l))return un(s)||s==="theta"||s==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function sp(s,l){let d=s.scale[l],h=un(l)?"axis":"legend";return d==="independent"?(s[h][l]==="shared"&&Be(function(y){return`Setting the scale to be independent for "${y}" means we also have to set the guide (axis or legend) to be independent.`}(l)),"independent"):s[h][l]||"shared"}let dg=be({aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});class Xy extends ji{}let ul={symbols:function(s,l){let{fieldOrDatumDef:d,model:h,channel:y,legendCmpt:w,legendType:S}=l;if(S!=="symbol")return;let{markDef:A,encoding:C,config:L,mark:G}=h,H=A.filled&&G!=="trail",X={...Ud({},h,j_),...Mc(h,{filled:H})},Z=w.get("symbolOpacity")??L.legend.symbolOpacity,le=w.get("symbolFillColor")??L.legend.symbolFillColor,ee=w.get("symbolStrokeColor")??L.legend.symbolStrokeColor,de=Z===void 0?fg(C.opacity)??A.opacity:void 0;if(X.fill){if(y==="fill"||H&&y===Le)delete X.fill;else if(X.fill.field)le?delete X.fill:(X.fill=on(L.legend.symbolBaseFillColor??"black"),X.fillOpacity=on(de??1));else if(b.isArray(X.fill)){let ge=pg(C.fill??C.color)??A.fill??(H&&A.color);ge&&(X.fill=on(ge))}}if(X.stroke){if(y==="stroke"||!H&&y===Le)delete X.stroke;else if(X.stroke.field||ee)delete X.stroke;else if(b.isArray(X.stroke)){let ge=Ke(pg(C.stroke||C.color),A.stroke,H?A.color:void 0);ge&&(X.stroke={value:ge})}}if(y!==Si){let ge=ze(d)&&qc(h,w,d);ge?X.opacity=[{test:ge,...on(de??1)},on(L.legend.unselectedOpacity)]:de&&(X.opacity=on(de))}return X={...X,...s},ye(X)?void 0:X},gradient:function(s,l){let{model:d,legendType:h,legendCmpt:y}=l;if(h!=="gradient")return;let{config:w,markDef:S,encoding:A}=d,C={},L=(y.get("gradientOpacity")??w.legend.gradientOpacity)===void 0?fg(A.opacity)||S.opacity:void 0;return L&&(C.opacity=on(L)),C={...C,...s},ye(C)?void 0:C},labels:function(s,l){let{fieldOrDatumDef:d,model:h,channel:y,legendCmpt:w}=l,S=h.legend(y)||{},A=h.config,C=ze(d)?qc(h,w,d):void 0,L=C?[{test:C,value:1},{value:A.legend.unselectedOpacity}]:void 0,{format:G,formatType:H}=S,X;Xs(H)?X=ri({fieldOrDatumDef:d,field:"datum.value",format:G,formatType:H,config:A}):G===void 0&&H===void 0&&A.customFormatTypes&&(d.type==="quantitative"&&A.numberFormatType?X=ri({fieldOrDatumDef:d,field:"datum.value",format:A.numberFormat,formatType:A.numberFormatType,config:A}):d.type==="temporal"&&A.timeFormatType&&ze(d)&&d.timeUnit===void 0&&(X=ri({fieldOrDatumDef:d,field:"datum.value",format:A.timeFormat,formatType:A.timeFormatType,config:A})));let Z={...L?{opacity:L}:{},...X?{text:X}:{},...s};return ye(Z)?void 0:Z},entries:function(s,l){let{legendCmpt:d}=l,h=d.get("selections");return h!=null&&h.length?{...s,fill:{value:"transparent"}}:s}};function fg(s){return hg(s,(l,d)=>Math.max(l,d.value))}function pg(s){return hg(s,(l,d)=>Ke(l,d.value))}function hg(s,l){return function(d){let h=d==null?void 0:d.condition;return!!h&&(b.isArray(h)||cr(h))}(s)?b.array(s.condition).reduce(l,s.value):cr(s)?s.value:void 0}function qc(s,l,d){let h=l.get("selections");if(!(h!=null&&h.length))return;let y=b.stringValue(d.field);return h.map(w=>`(!length(data(${b.stringValue($e(w)+ms)})) || (${w}[${y}] && indexof(${w}[${y}], datum.value) >= 0))`).join(" || ")}let fi={direction:s=>{let{direction:l}=s;return l},format:s=>{let{fieldOrDatumDef:l,legend:d,config:h}=s,{format:y,formatType:w}=d;return ny(l,l.type,y,w,h,!1)},formatType:s=>{let{legend:l,fieldOrDatumDef:d,scaleType:h}=s,{formatType:y}=l;return ay(y,d,h)},gradientLength:s=>{let{legend:l,legendConfig:d}=s;return l.gradientLength??d.gradientLength??function(h){let{legendConfig:y,model:w,direction:S,orient:A,scaleType:C}=h,{gradientHorizontalMaxLength:L,gradientHorizontalMinLength:G,gradientVerticalMaxLength:H,gradientVerticalMinLength:X}=y;if(Lr(C))return S==="horizontal"?A==="top"||A==="bottom"?lp(w,"width",G,L):G:lp(w,"height",X,H)}(s)},labelOverlap:s=>{let{legend:l,legendConfig:d,scaleType:h}=s;return l.labelOverlap??d.labelOverlap??function(y){if(Q(["quantile","threshold","log","symlog"],y))return"greedy"}(h)},symbolType:s=>{let{legend:l,markDef:d,channel:h,encoding:y}=s;return l.symbolType??function(w,S,A,C){if(S!=="shape"){let L=pg(A)??C;if(L)return L}switch(w){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"}}(d.type,h,y.shape,d.shape)},title:s=>{let{fieldOrDatumDef:l,config:d}=s;return ss(l,d,{allowDisabling:!0})},type:s=>{let{legendType:l,scaleType:d,channel:h}=s;if(es(h)&&Lr(d)){if(l==="gradient")return}else if(l==="symbol")return;return l},values:s=>{let{fieldOrDatumDef:l,legend:d}=s;return function(h,y){let w=h.values;if(b.isArray(w))return mc(y,w);if(Ze(w))return w}(d,l)}};function mg(s){let{legend:l}=s;return Ke(l.type,function(d){let{channel:h,timeUnit:y,scaleType:w}=d;if(es(h)){if(Q(["quarter","month","day"],y))return"symbol";if(Lr(w))return"gradient"}return"symbol"}(s))}function gg(s){let{legendConfig:l,legendType:d,orient:h,legend:y}=s;return y.direction??l[d?"gradientDirection":"symbolDirection"]??function(w,S){switch(w){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return S==="gradient"?"horizontal":void 0}}(h,d)}function lp(s,l,d,h){return{signal:`clamp(${s.getSizeSignalRef(l).signal}, ${d}, ${h})`}}function up(s){let l=cn(s)?function(d){let{encoding:h}=d,y={};for(let w of[Le,...Rf]){let S=yn(h[w]);S&&d.getScaleComponent(w)&&(w===xn&&ze(S)&&S.type===Vs||(y[w]=Ao(d,w)))}return y}(s):function(d){let{legends:h,resolve:y}=d.component;for(let w of d.children){up(w);for(let S of be(w.component.legends))y.legend[S]=sp(d.component.resolve,S),y.legend[S]==="shared"&&(h[S]=bg(h[S],w.component.legends[S]),h[S]||(y.legend[S]="independent",delete h[S]))}for(let w of be(h))for(let S of d.children)S.component.legends[w]&&y.legend[w]==="shared"&&delete S.component.legends[w];return h}(s);return s.component.legends=l,l}function cp(s,l,d,h){switch(l){case"disable":return d!==void 0;case"values":return!!(d!=null&&d.values);case"title":if(l==="title"&&s===(h==null?void 0:h.title))return!0}return s===(d||{})[l]}function Ao(s,l){var me;let d=s.legend(l),{markDef:h,encoding:y,config:w}=s,S=w.legend,A=new Xy({},function(Ae,Ce){let Pe=Ae.scaleName(Ce);if(Ae.mark==="trail"){if(Ce==="color")return{stroke:Pe};if(Ce==="size")return{strokeWidth:Pe}}return Ce==="color"?Ae.markDef.filled?{fill:Pe}:{stroke:Pe}:{[Ce]:Pe}}(s,l));(function(Ae,Ce,Pe){var Je;let We=(Je=Ae.fieldDef(Ce))==null?void 0:Je.field;for(let it of Te(Ae.component.selection??{})){let Qe=it.project.hasField[We]??it.project.hasChannel[Ce];if(Qe&&By.defined(it)){let lt=Pe.get("selections")??[];lt.push(it.name),Pe.set("selections",lt,!1),Qe.hasLegend=!0}}})(s,l,A);let C=d!==void 0?!d:S.disable;if(A.set("disable",C,d!==void 0),C)return A;d=d||{};let L=s.getScaleComponent(l).get("type"),G=yn(y[l]),H=ze(G)?(me=jn(G.timeUnit))==null?void 0:me.unit:void 0,X=d.orient||w.legend.orient||"right",Z=mg({legend:d,channel:l,timeUnit:H,scaleType:L}),le={legend:d,channel:l,model:s,markDef:h,encoding:y,fieldOrDatumDef:G,legendConfig:S,config:w,scaleType:L,orient:X,legendType:Z,direction:gg({legend:d,legendType:Z,orient:X,legendConfig:S})};for(let Ae of dg){if(Z==="gradient"&&Ae.startsWith("symbol")||Z==="symbol"&&Ae.startsWith("gradient"))continue;let Ce=Ae in fi?fi[Ae](le):d[Ae];if(Ce!==void 0){let Pe=cp(Ce,Ae,d,s.fieldDef(l));(Pe||w.legend[Ae]===void 0)&&A.set(Ae,Ce,Pe)}}let ee=(d==null?void 0:d.encoding)??{},de=A.get("selections"),ge={},xe={fieldOrDatumDef:G,model:s,channel:l,legendCmpt:A,legendType:Z};for(let Ae of["labels","legend","title","symbols","gradient","entries"]){let Ce=ug(ee[Ae]??{},s),Pe=Ae in ul?ul[Ae](Ce,xe):Ce;Pe===void 0||ye(Pe)||(ge[Ae]={...de!=null&&de.length&&ze(G)?{name:`${$e(G.field)}_legend_${Ae}`}:{},...de!=null&&de.length?{interactive:!!de}:{},update:Pe})}return ye(ge)||A.set("encode",ge,!!(d!=null&&d.encoding)),A}function bg(s,l){var w,S,A,C;if(!s)return l.clone();let d=s.getWithExplicit("orient"),h=l.getWithExplicit("orient");if(d.explicit&&h.explicit&&d.value!==h.value)return;let y=!1;for(let L of dg){let G=qi(s.getWithExplicit(L),l.getWithExplicit(L),L,"legend",(H,X)=>{switch(L){case"symbolType":return Zy(H,X);case"title":return ni(H,X);case"type":return y=!0,Fr("symbol")}return Rc(H,X,L,"legend")});s.setWithExplicit(L,G)}return y&&((S=(w=s.implicit)==null?void 0:w.encode)!=null&&S.gradient&&dt(s.implicit,["encode","gradient"]),(C=(A=s.explicit)==null?void 0:A.encode)!=null&&C.gradient&&dt(s.explicit,["encode","gradient"])),s}function Zy(s,l){return l.value==="circle"?l:s}function dp(s){let l=s.component.legends,d={};for(let h of be(l)){let y=Xe(s.getScaleComponent(h).get("domains"));if(d[y])for(let w of d[y])bg(w,l[h])||d[y].push(l[h]);else d[y]=[l[h].clone()]}return Te(d).flat().map(h=>function(y,w){var G,H,X;let{disable:S,labelExpr:A,selections:C,...L}=y.combine();if(!S){if(w.aria===!1&&L.aria==null&&(L.aria=!1),(G=L.encode)!=null&&G.symbols){let Z=L.encode.symbols.update;!Z.fill||Z.fill.value==="transparent"||Z.stroke||L.stroke||(Z.stroke={value:"transparent"});for(let le of Rf)L[le]&&delete Z[le]}if(L.title||delete L.title,A!==void 0){let Z=A;(X=(H=L.encode)==null?void 0:H.labels)!=null&&X.update&&Ze(L.encode.labels.update.text)&&(Z=xt(A,"datum.label",L.encode.labels.update.text.signal)),function(le,ee,de,ge){le.encode??={},le.encode[ee]??={},le.encode[ee].update??={},le.encode[ee].update[de]=ge}(L,"labels","text",{signal:Z})}return L}}(h,s.config)).filter(h=>h!==void 0)}function yg(s){return ws(s)||Ji(s)?function(l){return l.children.reduce((d,h)=>d.concat(h.assembleProjections()),Wc(l))}(s):Wc(s)}function Wc(s){let l=s.component.projection;if(!l||l.merged)return[];let d=l.combine(),{name:h}=d;if(l.data){let y={signal:`[${l.size.map(S=>S.signal).join(", ")}]`},w=l.data.reduce((S,A)=>{let C=Ze(A)?A.signal:`data('${s.lookupDataSource(A)}')`;return Q(S,C)||S.push(C),S},[]);if(w.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:h,size:y,fit:{signal:w.length>1?`[${w.join(", ")}]`:w[0]},...d}]}return[{name:h,translate:{signal:"[width / 2, height / 2]"},...d}]}let Vc=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class vg extends ji{constructor(l,d,h,y){super({...d},{name:l}),this.specifiedProjection=d,this.size=h,this.data=y,at(this,"merged",!1)}get isFit(){return!!this.data}}function Eg(s){s.component.projection=cn(s)?function(l){if(l.hasProjection){let d=ea(l.specifiedProjection),h=!(d&&(d.scale!=null||d.translate!=null)),y=h?[l.getSizeSignalRef("width"),l.getSizeSignalRef("height")]:void 0,w=h?function(A){let C=[],{encoding:L}=A;for(let G of[[$a,nt],[rr,da]])(yn(L[G[0]])||yn(L[G[1]]))&&C.push({signal:A.getName(`geojson_${C.length}`)});return A.channelHasField(xn)&&A.typedFieldDef(xn).type===Vs&&C.push({signal:A.getName(`geojson_${C.length}`)}),C.length===0&&C.push(A.requestDataName(nn.Main)),C}(l):void 0,S=new vg(l.projectionName(!0),{...ea(l.config.projection)??{},...d??{}},y,w);return S.get("type")||S.set("type","equalEarth",!1),S}}(s):function(l){if(l.children.length===0)return;let d;for(let y of l.children)Eg(y);let h=se(l.children,y=>{let w=y.component.projection;if(w){if(d){let S=function(A,C){let L=se(Vc,G=>!b.hasOwnProperty(A.explicit,G)&&!b.hasOwnProperty(C.explicit,G)||!!(b.hasOwnProperty(A.explicit,G)&&b.hasOwnProperty(C.explicit,G)&&Ne(A.get(G),C.get(G))));if(Ne(A.size,C.size)){if(L)return A;if(Ne(A.explicit,{}))return C;if(Ne(C.explicit,{}))return A}return null}(d,w);return S&&(d=S),!!S}return d=w,!0}return!0});if(d&&h){let y=l.projectionName(!0),w=new vg(y,d.specifiedProjection,d.size,j(d.data));for(let S of l.children){let A=S.component.projection;A&&(A.isFit&&w.data.push(...S.component.projection.data),S.renameProjection(A.get("name"),y),A.merged=!0)}return w}}(s)}function Jy(s,l,d,h){if(ou(l,d)){let y=cn(s)?s.axis(d)??s.legend(d)??{}:{},w=je(l,{expr:"datum"}),S=je(l,{expr:"datum",binSuffix:"end"});return{formulaAs:je(l,{binSuffix:"range",forAs:!0}),formula:yo(w,S,y.format,y.formatType,h)}}return{}}function fp(s,l){return`${Oi(s)}_${l}`}function To(s,l,d){let h=fp(rt(d,void 0)??{},l);return s.getName(`${h}_bins`)}function wg(s,l,d){let h,y;h=function(L){return"as"in L}(s)?b.isString(s.as)?[s.as,`${s.as}_end`]:[s.as[0],s.as[1]]:[je(s,{forAs:!0}),je(s,{binSuffix:"end",forAs:!0})];let w={...rt(l,void 0)},S=fp(w,s.field),{signal:A,extentSignal:C}=function(L,G){return{signal:L.getName(`${G}_bins`),extentSignal:L.getName(`${G}_extent`)}}(d,S);if(Or(w.extent)){let L=w.extent;y=xo(d,L.param,L),delete w.extent}return{key:S,binComponent:{bin:w,field:s.field,as:[h],...A?{signal:A}:{},...C?{extentSignal:C}:{},...y?{span:y}:{}}}}class pi extends qt{clone(){return new pi(null,j(this.bins))}constructor(l,d){super(l),this.bins=d}static makeFromEncoding(l,d){let h=d.reduceFieldDef((y,w,S)=>{if(ma(w)&&Vt(w.bin)){let{key:A,binComponent:C}=wg(w,w.bin,d);y[A]={...C,...y[A],...Jy(d,w,S,d.config)}}return y},{});return ye(h)?null:new pi(l,h)}static makeFromTransform(l,d,h){let{key:y,binComponent:w}=wg(d,d.bin,h);return new pi(l,{[y]:w})}merge(l,d){for(let h of be(l.bins))h in this.bins?(d(l.bins[h].signal,this.bins[h].signal),this.bins[h].as=Se([...this.bins[h].as,...l.bins[h].as],ae)):this.bins[h]=l.bins[h];for(let h of l.children)l.removeChild(h),h.parent=this;l.remove()}producedFields(){return new Set(Te(this.bins).map(l=>l.as).flat(2))}dependentFields(){return new Set(Te(this.bins).map(l=>l.field))}hash(){return`Bin ${ae(this.bins)}`}assemble(){return Te(this.bins).flatMap(l=>{let d=[],[h,...y]=l.as,{extent:w,...S}=l.bin,A={type:"bin",field:jt(l.field),as:h,signal:l.signal,...Or(w)?{extent:null}:{extent:w},...l.span?{span:{signal:`span(${l.span})`}}:{},...S};!w&&l.extentSignal&&(d.push({type:"extent",field:jt(l.field),signal:l.extentSignal}),A.extent={signal:l.extentSignal}),d.push(A);for(let C of y)for(let L=0;L<2;L++)d.push({type:"formula",expr:je({field:h[L]},{expr:"datum"}),as:C[L]});return l.formula&&d.push({type:"formula",expr:l.formula,as:l.formulaAs}),d})}}function Qy(s,l,d,h){var w;let y=cn(h)?h.encoding[Ci(l)]:void 0;if(ma(d)&&cn(h)&&pf(d,y,h.markDef,h.config)){s.add(je(d,{})),s.add(je(d,{suffix:"end"}));let{mark:S,markDef:A,config:C}=h,L=Fi({fieldDef:d,markDef:A,config:C});cc(S)&&L!==.5&&un(l)&&(s.add(je(d,{suffix:Xf})),s.add(je(d,{suffix:$t}))),d.bin&&ou(d,l)&&s.add(je(d,{binSuffix:"range"}))}else if(Qo(l)){let S=mh(l);s.add(h.getName(S))}else s.add(je(d));return $i(d)&&function(S){return b.isObject(S)&&"field"in S}((w=d.scale)==null?void 0:w.range)&&s.add(d.scale.range.field),s}class Va extends qt{clone(){return new Va(null,new Set(this.dimensions),j(this.measures))}constructor(l,d,h){super(l),this.dimensions=d,this.measures=h}get groupBy(){return this.dimensions}static makeFromEncoding(l,d){let h=!1;d.forEachFieldDef(S=>{S.aggregate&&(h=!0)});let y={},w=new Set;return h?(d.forEachFieldDef((S,A)=>{let{aggregate:C,field:L}=S;if(C)if(C==="count")y["*"]??={},y["*"].count=new Set([je(S,{forAs:!0})]);else{if(ei(C)||Ni(C)){let G=ei(C)?"argmin":"argmax",H=C[G];y[H]??={},y[H][G]=new Set([je({op:G,field:H},{forAs:!0})])}else y[L]??={},y[L][C]=new Set([je(S,{forAs:!0})]);Nr(A)&&d.scaleDomain(A)==="unaggregated"&&(y[L]??={},y[L].min=new Set([je({field:L,aggregate:"min"},{forAs:!0})]),y[L].max=new Set([je({field:L,aggregate:"max"},{forAs:!0})]))}else Qy(w,A,S,d)}),w.size+be(y).length===0?null:new Va(l,w,y)):null}static makeFromTransform(l,d){let h=new Set,y={};for(let w of d.aggregate){let{op:S,field:A,as:C}=w;S&&(S==="count"?(y["*"]??={},y["*"].count=new Set([C||je(w,{forAs:!0})])):(y[A]??={},y[A][S]=new Set([C||je(w,{forAs:!0})])))}for(let w of d.groupby??[])h.add(w);return h.size+be(y).length===0?null:new Va(l,h,y)}merge(l){return Ie(this.dimensions,l.dimensions)?(function(d,h){for(let y of be(h)){let w=h[y];for(let S of be(w))y in d?d[y][S]=new Set([...d[y][S]??[],...w[S]]):d[y]={[S]:w[S]}}}(this.measures,l.measures),!0):(function(){ic.debug(...arguments)}("different dimensions, cannot merge"),!1)}addDimensions(l){l.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...be(this.measures)])}producedFields(){let l=new Set;for(let d of be(this.measures))for(let h of be(this.measures[d])){let y=this.measures[d][h];y.size===0?l.add(`${h}_${d}`):y.forEach(l.add,l)}return l}hash(){return`Aggregate ${ae({dimensions:this.dimensions,measures:this.measures})}`}assemble(){let l=[],d=[],h=[];for(let y of be(this.measures))for(let w of be(this.measures[y]))for(let S of this.measures[y][w])h.push(S),l.push(w),d.push(y==="*"?null:jt(y));return{type:"aggregate",groupby:[...this.dimensions].map(jt),ops:l,fields:d,as:h}}}class cl extends qt{constructor(l,d,h,y){super(l),this.model=d,this.name=h,this.data=y,at(this,"column",void 0),at(this,"row",void 0),at(this,"facet",void 0),at(this,"childModel",void 0);for(let w of Ua){let S=d.facet[w];if(S){let{bin:A,sort:C}=S;this[w]={name:d.getName(`${w}_domain`),fields:[je(S),...Vt(A)?[je(S,{binSuffix:"end"})]:[]],...ii(C)?{sortField:C}:b.isArray(C)?{sortIndexField:sl(S,w)}:{}}}}this.childModel=d.child}hash(){let l="Facet";for(let d of Ua)this[d]&&(l+=` ${d.charAt(0)}:${ae(this[d])}`);return l}get fields(){var d;let l=[];for(let h of Ua)(d=this[h])!=null&&d.fields&&l.push(...this[h].fields);return l}dependentFields(){let l=new Set(this.fields);for(let d of Ua)this[d]&&(this[d].sortField&&l.add(this[d].sortField.field),this[d].sortIndexField&&l.add(this[d].sortIndexField));return l}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){let l={};for(let d of Qr){let h=this.childModel.component.scales[d];if(h&&!h.merged){let y=h.get("type"),w=h.get("range");if(Hn(y)&&go(w)){let S=Cg(Es(this.childModel,d));S?l[d]=S:Be(ha(d))}}}return l}assembleRowColumnHeaderData(l,d,h){let y={row:"y",column:"x",facet:void 0}[l],w=[],S=[],A=[];y&&h&&h[y]&&(d?(w.push(`distinct_${h[y]}`),S.push("max")):(w.push(h[y]),S.push("distinct")),A.push(`distinct_${h[y]}`));let{sortField:C,sortIndexField:L}=this[l];if(C){let{op:G=dc,field:H}=C;w.push(H),S.push(G),A.push(je(C,{forAs:!0}))}else L&&(w.push(L),S.push("max"),A.push(L));return{name:this[l].name,source:d??this.data,transform:[{type:"aggregate",groupby:this[l].fields,...w.length?{fields:w,ops:S,as:A}:{}}]}}assembleFacetHeaderData(l){var C;let{columns:d}=this.model.layout,{layoutHeaders:h}=this.model.component,y=[],w={};for(let L of _u){for(let G of zc){let H=(h[L]&&h[L][G])??[];for(let X of H)if(((C=X.axes)==null?void 0:C.length)>0){w[L]=!0;break}}if(w[L]){let G=`length(data("${this.facet.name}"))`,H=L==="row"?d?{signal:`ceil(${G} / ${d})`}:1:d?{signal:`min(${G}, ${d})`}:{signal:G};y.push({name:`${this.facet.name}_${L}`,transform:[{type:"sequence",start:0,stop:H}]})}}let{row:S,column:A}=w;return(S||A)&&y.unshift(this.assembleRowColumnHeaderData("facet",null,l)),y}assemble(){let l=[],d=null,h=this.getChildIndependentFieldsWithStep(),{column:y,row:w,facet:S}=this;if(y&&w&&(h.x||h.y)){d=`cross_${this.column.name}_${this.row.name}`;let A=[].concat(h.x??[],h.y??[]),C=A.map(()=>"distinct");l.push({name:d,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:A,ops:C}]})}for(let A of[Kr,tt])this[A]&&l.push(this.assembleRowColumnHeaderData(A,d,h));if(S){let A=this.assembleFacetHeaderData(h);A&&l.push(...A)}return l}}function Yc(s){return s.startsWith("'")&&s.endsWith("'")||s.startsWith('"')&&s.endsWith('"')?s.slice(1,-1):s}function p1(s){let l={};return $(s.filter,d=>{if(Vl(d)){let h=null;Zd(d)?h=Gn(d.equal):qs(d)?h=Gn(d.lte):Hs(d)?h=Gn(d.lt):Ws(d)?h=Gn(d.gt):Fh(d)?h=Gn(d.gte):Jd(d)?h=d.range[0]:Qd(d)&&(h=(d.oneOf??d.in)[0]),h&&(Gs(h)?l[d.field]="date":b.isNumber(h)?l[d.field]="number":b.isString(h)&&(l[d.field]="string")),d.timeUnit&&(l[d.field]="date")}}),l}function Yn(s){let l={};function d(h){var y;It(h)?l[h.field]="date":h.type==="quantitative"&&(y=h.aggregate,b.isString(y)&&Q(["min","max"],y))?l[h.field]="number":Xt(h.field)>1?h.field in l||(l[h.field]="flatten"):$i(h)&&ii(h.sort)&&Xt(h.sort.field)>1&&(h.sort.field in l||(l[h.sort.field]="flatten"))}if((cn(s)||Ya(s))&&s.forEachFieldDef((h,y)=>{if(ma(h))d(h);else{let w=Us(y),S=s.fieldDef(w);d({...h,type:S.type})}}),cn(s)){let{mark:h,markDef:y,encoding:w}=s;if(is(h)&&!s.encoding.order){let S=w[y.orient==="horizontal"?"y":"x"];ze(S)&&S.type==="quantitative"&&!(S.field in l)&&(l[S.field]="number")}}return l}class Kn extends qt{clone(){return new Kn(null,j(this._parse))}constructor(l,d){super(l),at(this,"_parse",void 0),this._parse=d}hash(){return`Parse ${ae(this._parse)}`}static makeExplicit(l,d,h){var S;let y={},w=d.data;return!Eo(w)&&((S=w==null?void 0:w.format)!=null&&S.parse)&&(y=w.format.parse),this.makeWithAncestors(l,y,{},h)}static makeWithAncestors(l,d,h,y){for(let A of be(h)){let C=y.getWithExplicit(A);C.value!==void 0&&(C.explicit||C.value===h[A]||C.value==="derived"||h[A]==="flatten"?delete h[A]:Be(Dr(A,h[A],C.value)))}for(let A of be(d)){let C=y.get(A);C!==void 0&&(C===d[A]?delete d[A]:Be(Dr(A,d[A],C)))}let w=new ji(d,h);y.copyAll(w);let S={};for(let A of be(w.combine())){let C=w.get(A);C!==null&&(S[A]=C)}return be(S).length===0||y.parseNothing?null:new Kn(l,S)}get parse(){return this._parse}merge(l){this._parse={...this._parse,...l.parse},l.remove()}assembleFormatParse(){let l={};for(let d of be(this._parse)){let h=this._parse[d];Xt(d)===1&&(l[d]=h)}return l}producedFields(){return new Set(be(this._parse))}dependentFields(){return new Set(be(this._parse))}assembleTransforms(){let l=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return be(this._parse).filter(d=>!l||Xt(d)>1).map(d=>{let h=function(y,w){let S=St(y);return w==="number"?`toNumber(${S})`:w==="boolean"?`toBoolean(${S})`:w==="string"?`toString(${S})`:w==="date"?`toDate(${S})`:w==="flatten"?S:w.startsWith("date:")?`timeParse(${S},'${Yc(w.slice(5,w.length))}')`:w.startsWith("utc:")?`utcParse(${S},'${Yc(w.slice(4,w.length))}')`:(Be(`Unrecognized parse "${w}".`),null)}(d,this._parse[d]);return h?{type:"formula",expr:h,as:Tt(d)}:null}).filter(d=>d!==null)}}class Co extends qt{clone(){return new Co(null)}constructor(l){super(l)}dependentFields(){return new Set}producedFields(){return new Set([fr])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:fr}}}class Kc extends qt{clone(){return new Kc(null,this.params)}constructor(l,d){super(l),this.params=d}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${ae(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class Xc extends qt{clone(){return new Xc(null,this.params)}constructor(l,d){super(l),this.params=d}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${ae(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class Ro extends qt{constructor(l){let d;if(super(null),at(this,"_data",void 0),at(this,"_name",void 0),at(this,"_generator",void 0),l??={name:"source"},Eo(l)||(d=l.format?{...te(l.format,["parse"])}:{}),mu(l))this._data={values:l.values};else if(fs(l)){if(this._data={url:l.url},!d.type){let h=/(?:\.([^.]+))?$/.exec(l.url)[1];Q(["json","csv","tsv","dsv","topojson"],h)||(h="json"),d.type=h}}else Vf(l)?this._data={values:[{type:"Sphere"}]}:(qf(l)||Eo(l))&&(this._data={});this._generator=Eo(l),l.name&&(this._name=l.name),d&&!ye(d)&&(this._data.format=d)}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(l){this._name=l}set parent(l){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}function pp(s){return s instanceof Ro||s instanceof Kc||s instanceof Xc}var Zc=new WeakMap;class hp{constructor(){C_(this,Zc,{writable:!0,value:void 0}),N0(this,Zc,!1)}setModified(){N0(this,Zc,!0)}get modifiedFlag(){return function(d,h){return h.get?h.get.call(d):h.value}(l=this,I0(l,Zc,"get"));var l}}class sa extends hp{getNodeDepths(l,d,h){h.set(l,d);for(let y of l.children)this.getNodeDepths(y,d+1,h);return h}optimize(l){let d=[...this.getNodeDepths(l,0,new Map).entries()].sort((h,y)=>y[1]-h[1]);for(let h of d)this.run(h[0]);return this.modifiedFlag}}class mp extends hp{optimize(l){this.run(l);for(let d of l.children)this.optimize(d);return this.modifiedFlag}}class _g extends mp{mergeNodes(l,d){let h=d.shift();for(let y of d)l.removeChild(y),y.parent=h,y.remove()}run(l){let d=l.children.map(y=>y.hash()),h={};for(let y=0;y<d.length;y++)h[d[y]]===void 0?h[d[y]]=[l.children[y]]:h[d[y]].push(l.children[y]);for(let y of be(h))h[y].length>1&&(this.setModified(),this.mergeNodes(l,h[y]))}}class kg extends mp{constructor(l){super(),at(this,"requiresSelectionId",void 0),this.requiresSelectionId=l&&rg(l)}run(l){l instanceof Co&&(this.requiresSelectionId&&(pp(l.parent)||l.parent instanceof Va||l.parent instanceof Kn)||(this.setModified(),l.remove()))}}class ev extends hp{optimize(l){return this.run(l,new Set),this.modifiedFlag}run(l,d){let h=new Set;l instanceof Wi&&(h=l.producedFields(),Fe(h,d)&&(this.setModified(),l.removeFormulas(d),l.producedFields.length===0&&l.remove()));for(let y of l.children)this.run(y,new Set([...d,...h]))}}class ys extends mp{constructor(){super()}run(l){l instanceof ia&&!l.isRequired()&&(this.setModified(),l.remove())}}class Jc extends sa{run(l){if(!(pp(l)||l.numChildren()>1)){for(let d of l.children)if(d instanceof Kn)if(l instanceof Kn)this.setModified(),l.merge(d);else{if(Ee(l.producedFields(),d.dependentFields()))continue;this.setModified(),d.swapWithParent()}}}}class gp extends sa{run(l){let d=[...l.children],h=l.children.filter(y=>y instanceof Kn);if(l.numChildren()>1&&h.length>=1){let y={},w=new Set;for(let S of h){let A=S.parse;for(let C of be(A))C in y?y[C]!==A[C]&&w.add(C):y[C]=A[C]}for(let S of w)delete y[S];if(!ye(y)){this.setModified();let S=new Kn(l,y);for(let A of d){if(A instanceof Kn)for(let C of be(y))delete A.parse[C];l.removeChild(A),A.parent=S,A instanceof Kn&&be(A.parse).length===0&&A.remove()}}}}}class tv extends sa{run(l){l instanceof ia||l.numChildren()>0||l instanceof cl||l instanceof Ro||(this.setModified(),l.remove())}}class xg extends sa{run(l){let d=l.children.filter(y=>y instanceof Wi),h=d.pop();for(let y of d)this.setModified(),h.merge(y)}}class nv extends sa{run(l){let d=l.children.filter(y=>y instanceof Va),h={};for(let y of d){let w=ae(y.groupBy);w in h||(h[w]=[]),h[w].push(y)}for(let y of be(h)){let w=h[y];if(w.length>1){let S=w.pop();for(let A of w)S.merge(A)&&(l.removeChild(A),A.parent=S,A.remove(),this.setModified())}}}}class av extends sa{constructor(l){super(),this.model=l}run(l){let d=!(pp(l)||l instanceof ci||l instanceof Kn||l instanceof Co),h=[],y=[];for(let w of l.children)w instanceof pi&&(d&&!Ee(l.producedFields(),w.dependentFields())?h.push(w):y.push(w));if(h.length>0){let w=h.pop();for(let S of h)w.merge(S,this.model.renameSignal.bind(this.model));this.setModified(),l instanceof pi?l.merge(w,this.model.renameSignal.bind(this.model)):w.swapWithParent()}if(y.length>1){let w=y.pop();for(let S of y)w.merge(S,this.model.renameSignal.bind(this.model));this.setModified()}}}class h1 extends sa{run(l){let d=[...l.children];if(!ie(d,w=>w instanceof ia)||l.numChildren()<=1)return;let h=[],y;for(let w of d)if(w instanceof ia){let S=w;for(;S.numChildren()===1;){let[A]=S.children;if(!(A instanceof ia))break;S=A}h.push(...S.children),y?(l.removeChild(w),w.parent=y.parent,y.parent.removeChild(y),y.parent=S,this.setModified()):y=S}else h.push(w);if(h.length){this.setModified();for(let w of h)w.parent.removeChild(w),w.parent=y}}}class dl extends qt{clone(){return new dl(null,j(this.transform))}constructor(l,d){super(l),this.transform=d}addDimensions(l){this.transform.groupby=Se(this.transform.groupby.concat(l),d=>d)}dependentFields(){let l=new Set;return this.transform.groupby&&this.transform.groupby.forEach(l.add,l),this.transform.joinaggregate.map(d=>d.field).filter(d=>d!==void 0).forEach(l.add,l),l}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(l){return l.as??je(l)}hash(){return`JoinAggregateTransform ${ae(this.transform)}`}assemble(){let l=[],d=[],h=[];for(let w of this.transform.joinaggregate)d.push(w.op),h.push(this.getDefaultName(w)),l.push(w.field===void 0?null:w.field);let y=this.transform.groupby;return{type:"joinaggregate",as:h,ops:d,fields:l,...y!==void 0?{groupby:y}:{}}}}class No extends qt{clone(){return new No(null,j(this._stack))}constructor(l,d){super(l),at(this,"_stack",void 0),this._stack=d}static makeFromTransform(l,d){let{stack:h,groupby:y,as:w,offset:S="zero"}=d,A=[],C=[];if(d.sort!==void 0)for(let H of d.sort)A.push(H.field),C.push(Ke(H.order,"ascending"));let L={field:A,order:C},G;return G=function(H){return b.isArray(H)&&H.every(X=>b.isString(X))&&H.length>1}(w)?w:b.isString(w)?[w,`${w}_end`]:[`${d.stack}_start`,`${d.stack}_end`],new No(l,{dimensionFieldDefs:[],stackField:h,groupby:y,offset:S,sort:L,facetby:[],as:G})}static makeFromEncoding(l,d){let h=d.stack,{encoding:y}=d;if(!h)return null;let{groupbyChannels:w,fieldChannel:S,offset:A,impute:C}=h,L=w.map(Z=>dr(y[Z])).filter(Z=>!!Z),G=function(Z){return Z.stack.stackBy.reduce((le,ee)=>{let de=je(ee.fieldDef);return de&&le.push(de),le},[])}(d),H=d.encoding.order,X;if(b.isArray(H)||ze(H))X=ql(H);else{let Z=ry(H)?H.sort:S==="y"?"descending":"ascending";X=G.reduce((le,ee)=>(le.field.push(ee),le.order.push(Z),le),{field:[],order:[]})}return new No(l,{dimensionFieldDefs:L,stackField:d.vgField(S),facetby:[],stackby:G,sort:X,offset:A,impute:C,as:[d.vgField(S,{suffix:"start",forAs:!0}),d.vgField(S,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(l){this._stack.facetby.push(...l)}dependentFields(){let l=new Set;return l.add(this._stack.stackField),this.getGroupbyFields().forEach(l.add,l),this._stack.facetby.forEach(l.add,l),this._stack.sort.field.forEach(l.add,l),l}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${ae(this._stack)}`}getGroupbyFields(){let{dimensionFieldDefs:l,impute:d,groupby:h}=this._stack;return l.length>0?l.map(y=>y.bin?d?[je(y,{binSuffix:"mid"})]:[je(y,{}),je(y,{binSuffix:"end"})]:[je(y)]).flat():h??[]}assemble(){let l=[],{facetby:d,dimensionFieldDefs:h,stackField:y,stackby:w,sort:S,offset:A,impute:C,as:L}=this._stack;if(C)for(let G of h){let{bandPosition:H=.5,bin:X}=G;if(X){let Z=je(G,{expr:"datum"}),le=je(G,{expr:"datum",binSuffix:"end"});l.push({type:"formula",expr:`${H}*${Z}+${1-H}*${le}`,as:je(G,{binSuffix:"mid",forAs:!0})})}l.push({type:"impute",field:y,groupby:[...w,...d],key:je(G,{binSuffix:"mid"}),method:"value",value:0})}return l.push({type:"stack",groupby:[...this.getGroupbyFields(),...d],field:y,sort:S,as:L,offset:A}),l}}class fl extends qt{clone(){return new fl(null,j(this.transform))}constructor(l,d){super(l),this.transform=d}addDimensions(l){this.transform.groupby=Se(this.transform.groupby.concat(l),d=>d)}dependentFields(){let l=new Set;return(this.transform.groupby??[]).forEach(l.add,l),(this.transform.sort??[]).forEach(d=>l.add(d.field)),this.transform.window.map(d=>d.field).filter(d=>d!==void 0).forEach(l.add,l),l}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(l){return l.as??je(l)}hash(){return`WindowTransform ${ae(this.transform)}`}assemble(){let l=[],d=[],h=[],y=[];for(let H of this.transform.window)d.push(H.op),h.push(this.getDefaultName(H)),y.push(H.param===void 0?null:H.param),l.push(H.field===void 0?null:H.field);let w=this.transform.frame,S=this.transform.groupby;if(w&&w[0]===null&&w[1]===null&&d.every(H=>Sn(H)))return{type:"joinaggregate",as:h,ops:d,fields:l,...S!==void 0?{groupby:S}:{}};let A=[],C=[];if(this.transform.sort!==void 0)for(let H of this.transform.sort)A.push(H.field),C.push(H.order??"ascending");let L={field:A,order:C},G=this.transform.ignorePeers;return{type:"window",params:y,as:h,ops:d,fields:l,sort:L,...G!==void 0?{ignorePeers:G}:{},...S!==void 0?{groupby:S}:{},...w!==void 0?{frame:w}:{}}}}function Sg(s){if(s instanceof cl)if(s.numChildren()!==1||s.children[0]instanceof ia){let d=s.model.component.data.main;Ag(d);let h=(l=s,function w(S){if(!(S instanceof cl)){let A=S.clone();if(A instanceof ia){let C=Tg+A.getSource();A.setSource(C),l.model.component.data.outputNodes[C]=A}else(A instanceof Va||A instanceof No||A instanceof fl||A instanceof dl)&&A.addDimensions(l.fields);for(let C of S.children.flatMap(w))C.parent=A;return[A]}return S.children.flatMap(w)}),y=s.children.map(h).flat();for(let w of y)w.parent=d}else{let d=s.children[0];(d instanceof Va||d instanceof No||d instanceof fl||d instanceof dl)&&d.addDimensions(s.fields),d.swapWithParent(),Sg(s)}else s.children.map(Sg);var l}function Ag(s){if(s instanceof ia&&s.type===nn.Main&&s.numChildren()===1){let l=s.children[0];l instanceof cl||(l.swapWithParent(),Ag(s))}}let Tg="scale_",bp=5;function yp(s){for(let l of s){for(let d of l.children)if(d.parent!==l)return!1;if(!yp(l.children))return!1}return!0}function hi(s,l){let d=!1;for(let h of l)d=s.optimize(h)||d;return d}function rv(s,l,d){let h=s.sources,y=!1;return y=hi(new ys,h)||y,y=hi(new kg(l),h)||y,h=h.filter(w=>w.numChildren()>0),y=hi(new tv,h)||y,h=h.filter(w=>w.numChildren()>0),d||(y=hi(new Jc,h)||y,y=hi(new av(l),h)||y,y=hi(new ev,h)||y,y=hi(new gp,h)||y,y=hi(new nv,h)||y,y=hi(new xg,h)||y,y=hi(new _g,h)||y,y=hi(new h1,h)||y),s.sources=h,y}class Ln{constructor(l){at(this,"signal",void 0),Object.defineProperty(this,"signal",{enumerable:!0,get:l})}static fromName(l,d){return new Ln(()=>l(d))}}function iv(s){cn(s)?function(l){let d=l.component.scales;for(let h of be(d)){let y=m1(l,h);if(d[h].setWithExplicit("domains",y),ov(l,h),l.component.data.isFaceted){let w=l;for(;!Ya(w)&&w.parent;)w=w.parent;if(w.component.resolve.scale[h]==="shared")for(let S of y.value)Aa(S)&&(S.data=Tg+S.data.replace(Tg,""))}}}(s):function(l){for(let h of l.children)iv(h);let d=l.component.scales;for(let h of be(d)){let y,w=null;for(let S of l.children){let A=S.component.scales[h];if(A){y=y===void 0?A.getWithExplicit("domains"):qi(y,A.getWithExplicit("domains"),"domains","scale",td);let C=A.get("selectionExtent");w&&C&&w.param!==C.param&&Be(lr),w=C}}d[h].setWithExplicit("domains",y),w&&d[h].set("selectionExtent",w,!0)}}(s)}function m1(s,l){let d=s.getScaleComponent(l).get("type"),{encoding:h}=s,y=function(w,S,A,C){if(w==="unaggregated"){let{valid:L,reason:G}=Ia(S,A);if(!L)return void Be(G)}else if(w===void 0&&C.useUnaggregatedDomain){let{valid:L}=Ia(S,A);if(L)return"unaggregated"}return w}(s.scaleDomain(l),s.typedFieldDef(l),d,s.config.scale);return y!==s.scaleDomain(l)&&(s.specifiedScales[l]={...s.specifiedScales[l],domain:y}),l==="x"&&yn(h.x2)?yn(h.x)?qi(vs(d,y,s,"x"),vs(d,y,s,"x2"),"domain","scale",td):vs(d,y,s,"x2"):l==="y"&&yn(h.y2)?yn(h.y)?qi(vs(d,y,s,"y"),vs(d,y,s,"y2"),"domain","scale",td):vs(d,y,s,"y2"):vs(d,y,s,l)}function Qc(s,l,d){var y;let h=(y=jn(d))==null?void 0:y.unit;return l==="temporal"||h?function(w,S,A){return w.map(C=>({signal:`{data: ${iu(C,{timeUnit:A,type:S})}}`}))}(s,l,h):[s]}function vs(s,l,d,h){let{encoding:y,markDef:w,mark:S,config:A,stack:C}=d,L=yn(y[h]),{type:G}=L,H=L.timeUnit;if(function(le){return le==null?void 0:le.unionWith}(l)){let le=vs(s,void 0,d,h);return Hi([...Qc(l.unionWith,G,H),...le.value])}if(Ze(l))return Hi([l]);if(l&&l!=="unaggregated"&&!Y0(l))return Hi(Qc(l,G,H));if(C&&h===C.fieldChannel){if(C.offset==="normalize")return Fr([[0,1]]);let le=d.requestDataName(nn.Main);return Fr([{data:le,field:d.vgField(h,{suffix:"start"})},{data:le,field:d.vgField(h,{suffix:"end"})}])}let X=Nr(h)&&ze(L)?function(le,ee,de){if(!Hn(de))return;let ge=le.fieldDef(ee),xe=ge.sort;if(fc(xe))return{op:"min",field:sl(ge,ee),order:"ascending"};let{stack:me}=le,Ae=me?new Set([...me.groupbyFields,...me.stackBy.map(Ce=>Ce.fieldDef.field)]):void 0;if(ii(xe))return ed(xe,me&&!Ae.has(xe.field));if(Xh(xe)){let{encoding:Ce,order:Pe}=xe,We=le.fieldDef(Ce),{aggregate:Je,field:it}=We,Qe=me&&!Ae.has(it);if(ei(Je)||Ni(Je))return ed({field:je(We),order:Pe},Qe);if(Sn(Je)||!Je)return ed({op:Je,field:it,order:Pe},Qe)}else{if(xe==="descending")return{op:"min",field:le.vgField(ee),order:"descending"};if(Q(["ascending",void 0],xe))return!0}}(d,h,s):void 0;if(Pi(L))return Fr(Qc([L.datum],G,H));let Z=L;if(l==="unaggregated"){let le=d.requestDataName(nn.Main),{field:ee}=L;return Fr([{data:le,field:je({field:ee,aggregate:"min"})},{data:le,field:je({field:ee,aggregate:"max"})}])}if(Vt(Z.bin)){if(Hn(s))return Fr(s==="bin-ordinal"?[]:[{data:Ye(X)?d.requestDataName(nn.Main):d.requestDataName(nn.Raw),field:d.vgField(h,ou(Z,h)?{binSuffix:"range"}:{}),sort:X!==!0&&b.isObject(X)?X:{field:d.vgField(h,{}),op:"min"}}]);{let{bin:le}=Z;if(Vt(le)){let ee=To(d,Z.field,le);return Fr([new Ln(()=>{let de=d.getSignalName(ee);return`[${de}.start, ${de}.stop]`})])}return Fr([{data:d.requestDataName(nn.Main),field:d.vgField(h,{})}])}}if(Z.timeUnit&&Q(["time","utc"],s)){let le=y[Ci(h)];if(pf(Z,le,w,A)){let ee=d.requestDataName(nn.Main),de=Fi({fieldDef:Z,fieldDef2:le,markDef:w,config:A}),ge=cc(S)&&de!==.5;return Fr([{data:ee,field:d.vgField(h,ge?{suffix:Xf}:{})},{data:ee,field:d.vgField(h,{suffix:ge?$t:"end"})}])}}return Fr(X?[{data:Ye(X)?d.requestDataName(nn.Main):d.requestDataName(nn.Raw),field:d.vgField(h),sort:X}]:[{data:d.requestDataName(nn.Main),field:d.vgField(h)}])}function ed(s,l){let{op:d,field:h,order:y}=s;return{op:d??(l?"sum":dc),...h?{field:jt(h)}:{},...y?{order:y}:{}}}function ov(s,l){var A;let d=s.component.scales[l],h=s.specifiedScales[l].domain,y=(A=s.fieldDef(l))==null?void 0:A.bin,w=Y0(h)&&h,S=mo(y)&&Or(y.extent)&&y.extent;(w||S)&&d.set("selectionExtent",w??S,!0)}function Ia(s,l){let{aggregate:d,type:h}=s;return d?b.isString(d)&&!ho.has(d)?{valid:!1,reason:Rh(d)}:h==="quantitative"&&l==="log"?{valid:!1,reason:Nh(s)}:{valid:!0}:{valid:!1,reason:M0(s)}}function td(s,l,d,h){return s.explicit&&l.explicit&&Be(function(y,w,S,A){return`Conflicting ${w.toString()} property "${y.toString()}" (${Xe(S)} and ${Xe(A)}). Using the union of the two domains.`}(d,h,s.value,l.value)),{explicit:s.explicit,value:[...s.value,...l.value]}}function g1(s){let l=Se(s.map(S=>{if(Aa(S)){let{sort:A,...C}=S;return C}return S}),ae),d=Se(s.map(S=>{if(Aa(S)){let A=S.sort;return A===void 0||Ye(A)||("op"in A&&A.op==="count"&&delete A.field,A.order==="ascending"&&delete A.order),A}}).filter(S=>S!==void 0),ae);if(l.length===0)return;if(l.length===1){let S=s[0];if(Aa(S)&&d.length>0){let A=d[0];if(d.length>1){Be(Oh);let C=d.filter(L=>b.isObject(L)&&"op"in L&&L.op!=="min");A=!d.every(L=>b.isObject(L)&&"op"in L)||C.length!==1||C[0]}else if(b.isObject(A)&&"field"in A){let C=A.field;S.field===C&&(A=!A.order||{order:A.order})}return{...S,sort:A}}return S}let h=Se(d.map(S=>Ye(S)||!("op"in S)||b.isString(S.op)&&S.op in S0?S:(Be(function(A){return`Dropping sort property ${Xe(A)} as unioned domains only support boolean or op "count", "min", and "max".`}(S)),!0)),ae),y;h.length===1?y=h[0]:h.length>1&&(Be(Oh),y=!0);let w=Se(s.map(S=>Aa(S)?S.data:null),S=>S);return w.length===1&&w[0]!==null?{data:w[0],fields:l.map(S=>S.field),...y?{sort:y}:{}}:{fields:l,...y?{sort:y}:{}}}function Cg(s){if(Aa(s)&&b.isString(s.field))return s.field;if(function(l){return!b.isArray(l)&&"fields"in l&&!("data"in l)}(s)){let l;for(let d of s.fields)if(Aa(d)&&b.isString(d.field))if(l){if(l!==d.field)return Be("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),l}else l=d.field;return Be("Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect."),l}if(function(l){return!b.isArray(l)&&"fields"in l&&"data"in l}(s)){Be("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");let l=s.fields[0];return b.isString(l)?l:void 0}}function Es(s,l){let d=s.component.scales[l].get("domains").map(h=>(Aa(h)&&(h.data=s.lookupDataSource(h.data)),h));return g1(d)}function nd(s){return ws(s)||Ji(s)?s.children.reduce((l,d)=>l.concat(nd(d)),Rg(s)):Rg(s)}function Rg(s){return be(s.component.scales).reduce((l,d)=>{let h=s.component.scales[d];if(h.merged)return l;let y=h.combine(),{name:w,type:S,selectionExtent:A,domains:C,range:L,reverse:G,...H}=y,X=function(ee,de,ge,xe){if(un(ge)){if(go(ee))return{step:{signal:`${de}_step`}}}else if(b.isObject(ee)&&Aa(ee))return{...ee,data:xe.lookupDataSource(ee.data)};return ee}(y.range,w,d,s),Z=Es(s,d),le=A?function(ee,de,ge,xe){let me=xo(ee,de.param,de);return{signal:Ha(ge.get("type"))&&b.isArray(xe)&&xe[0]>xe[1]?`isValid(${me}) && reverse(${me})`:me}}(s,A,h,Z):null;return l.push({name:w,type:S,...Z?{domain:Z}:{},...le?{domainRaw:le}:{},range:X,...G!==void 0?{reverse:G}:{},...H}),l},[])}class Ng extends ji{constructor(l,d){super({},{name:l}),at(this,"merged",!1),this.setWithExplicit("type",d)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1||ie(this.get("domains"),l=>b.isArray(l)&&l.length===2&&b.isNumber(l[0])&&l[0]<=0&&b.isNumber(l[1])&&l[1]>=0)}}let pl=["range","scheme"];function Ig(s,l){let d=s.fieldDef(l);if(d!=null&&d.bin){let{bin:h,field:y}=d,w=Sa(l),S=s.getName(w);if(b.isObject(h)&&h.binned&&h.step!==void 0)return new Ln(()=>{let A=s.scaleName(l),C=`(domain("${A}")[1] - domain("${A}")[0]) / ${h.step}`;return`${s.getSignalName(S)} / (${C})`});if(Vt(h)){let A=To(s,y,h);return new Ln(()=>{let C=s.getSignalName(A),L=`(${C}.stop - ${C}.start) / ${C}.step`;return`${s.getSignalName(S)} / (${L})`})}}}function sv(s,l){let d=l.specifiedScales[s],{size:h}=l,y=l.getScaleComponent(s).get("type");for(let G of pl)if(d[G]!==void 0){let H=$h(y,G),X=K0(s,G);if(H)if(X)Be(X);else switch(G){case"range":{let Z=d.range;if(b.isArray(Z)){if(un(s))return Hi(Z.map(le=>{if(le==="width"||le==="height"){let ee=l.getName(le),de=l.getSignalName.bind(l);return Ln.fromName(de,ee)}return le}))}else if(b.isObject(Z))return Hi({data:l.requestDataName(nn.Main),field:Z.field,sort:{op:"min",field:l.vgField(s)}});return Hi(Z)}case"scheme":return Hi(lv(d[G]))}else Be(L0(y,G,s))}let w=s===Qt||s==="xOffset"?"width":"height",S=h[w];if(qa(S)){if(un(s))if(Hn(y)){let G=cv(S,l,s);if(G)return Hi({step:G})}else Be(Ih(w));else if(Qn(s)){let G=s===hn?"x":"y";if(l.getScaleComponent(G).get("type")==="band"){let H=dv(S,y);if(H)return Hi(H)}}}let{rangeMin:A,rangeMax:C}=d,L=function(G,H){let{size:X,config:Z,mark:le,encoding:ee}=H,{type:de}=yn(ee[G]),ge=H.getScaleComponent(G),xe=ge.get("type"),{domain:me,domainMid:Ae}=H.specifiedScales[G];switch(G){case Qt:case Bn:if(Q(["point","band"],xe)){let Ce=Og(G,X,Z.view);if(qa(Ce))return{step:cv(Ce,H,G)}}return uv(G,H,xe);case hn:case Zo:return function(Ce,Pe,We){let Je=Ce===hn?"x":"y",it=Pe.getScaleComponent(Je);if(!it)return uv(Je,Pe,We,{center:!0});let Qe=it.get("type"),lt=Pe.scaleName(Je),{markDef:kt,config:Fn}=Pe;if(Qe==="band"){let dn=Og(Je,Pe.size,Pe.config.view);if(qa(dn)){let sn=dv(dn,We);if(sn)return sn}return[0,{signal:`bandwidth('${lt}')`}]}{let dn=Pe.encoding[Je];if(ze(dn)&&dn.timeUnit){let sn=j0(dn.timeUnit,Nn=>`scale('${lt}', ${Nn})`),Ut=Pe.config.scale.bandWithNestedOffsetPaddingInner,Dt=Fi({fieldDef:dn,markDef:kt,config:Fn})-.5,vn=Dt!==0?` + ${Dt}`:"";return Ut?[{signal:`${Ze(Ut)?`${Ut.signal}/2`+vn:`${Ut/2+Dt}`} * (${sn})`},{signal:`${Ze(Ut)?`(1 - ${Ut.signal}/2)`+vn:`${1-Ut/2+Dt}`} * (${sn})`}]:[0,{signal:sn}]}return W(`Cannot use ${Ce} scale if ${Je} scale is not discrete.`)}}(G,H,xe);case xi:{let Ce=vp(le,H.component.scales[G].get("zero"),Z),Pe=function(We,Je,it,Qe){let lt={x:Ig(it,"x"),y:Ig(it,"y")};switch(We){case"bar":case"tick":{if(Qe.scale.maxBandSize!==void 0)return Qe.scale.maxBandSize;let kt=Mg(Je,lt,Qe.view);return b.isNumber(kt)?kt-1:new Ln(()=>`${kt.signal} - 1`)}case"line":case"trail":case"rule":return Qe.scale.maxStrokeWidth;case"text":return Qe.scale.maxFontSize;case"point":case"square":case"circle":{if(Qe.scale.maxSize)return Qe.scale.maxSize;let kt=Mg(Je,lt,Qe.view);return b.isNumber(kt)?Math.pow(Dg*kt,2):new Ln(()=>`pow(${Dg} * ${kt.signal}, 2)`)}}throw new Error(Mi("size",We))}(le,X,H,Z);return Zl(xe)?function(We,Je,it){let Qe=()=>{let lt=pa(Je),kt=pa(We),Fn=`(${lt} - ${kt}) / (${it} - 1)`;return`sequence(${kt}, ${lt} + ${Fn}, ${Fn})`};return Ze(Je)?new Ln(Qe):{signal:Qe()}}(Ce,Pe,function(We,Je,it,Qe){switch(We){case"quantile":return Je.scale.quantileCount;case"quantize":return Je.scale.quantizeCount;case"threshold":return it!==void 0&&b.isArray(it)?it.length+1:(Be(function(lt){return`Domain for ${lt} is required for threshold scale.`}(Qe)),3)}}(xe,Z,me,G)):[Ce,Pe]}case ar:return[0,2*Math.PI];case Ba:return[0,360];case mt:return[0,new Ln(()=>`min(${H.getSignalName("width")},${H.getSignalName("height")})/2`)];case fo:return[Z.scale.minStrokeWidth,Z.scale.maxStrokeWidth];case Jo:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case xn:return"symbol";case Le:case xa:case Zr:return xe==="ordinal"?de==="nominal"?"category":"ordinal":Ae!==void 0?"diverging":le==="rect"||le==="geoshape"?"heatmap":"ramp";case Si:case Ft:case Ai:return[Z.scale.minOpacity,Z.scale.maxOpacity]}}(s,l);return(A!==void 0||C!==void 0)&&$h(y,"rangeMin")&&b.isArray(L)&&L.length===2?Hi([A??L[0],C??L[1]]):Fr(L)}function lv(s){return function(l){return!b.isString(l)&&!!l.name}(s)?{scheme:s.name,...te(s,["name"])}:{scheme:s}}function uv(s,l,d){let{center:h}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=Sa(s),w=l.getName(y),S=l.getSignalName.bind(l);return s===Bn&&Ha(d)?h?[Ln.fromName(A=>`${S(A)}/2`,w),Ln.fromName(A=>`-${S(A)}/2`,w)]:[Ln.fromName(S,w),0]:h?[Ln.fromName(A=>`-${S(A)}/2`,w),Ln.fromName(A=>`${S(A)}/2`,w)]:[0,Ln.fromName(S,w)]}function cv(s,l,d){let{encoding:h}=l,y=l.getScaleComponent(d),w=Ul(d),S=h[w];if(Mf({step:s,offsetIsDiscrete:wt(S)&&Yl(S.type)})==="offset"&&vo(h,w)){let C=l.getScaleComponent(w),L=`domain('${l.scaleName(w)}').length`;C.get("type")==="band"&&(L=`bandspace(${L}, ${C.get("paddingInner")??C.get("padding")??0}, ${C.get("paddingOuter")??C.get("padding")??0})`);let G=y.get("paddingInner")??y.get("padding");return{signal:`${s.step} * ${L} / (1-${A=G,Ze(A)?A.signal:b.stringValue(A)})`}}return s.step;var A}function dv(s,l){if(Mf({step:s,offsetIsDiscrete:Hn(l)})==="offset")return{step:s.step}}function Og(s,l,d){let h=s===Qt?"width":"height";return l[h]||Ac(d,h)}function vp(s,l,d){if(l)return Ze(l)?{signal:`${l.signal} ? 0 : ${vp(s,!1,d)}`}:0;switch(s){case"bar":case"tick":return d.scale.minBandSize;case"line":case"trail":case"rule":return d.scale.minStrokeWidth;case"text":return d.scale.minFontSize;case"point":case"square":case"circle":return d.scale.minSize}throw new Error(Mi("size",s))}let Dg=.95;function Mg(s,l,d){let h=qa(s.width)?s.width.step:fu(d,"width"),y=qa(s.height)?s.height.step:fu(d,"height");return l.x||l.y?new Ln(()=>`min(${[l.x?l.x.signal:h,l.y?l.y.signal:y].join(", ")})`):Math.min(h,y)}function Ep(s,l){cn(s)?function(d,h){let y=d.component.scales,{config:w,encoding:S,markDef:A,specifiedScales:C}=d;for(let L of be(y)){let G=C[L],H=y[L],X=d.getScaleComponent(L),Z=yn(S[L]),le=G[h],ee=X.get("type"),de=X.get("padding"),ge=X.get("paddingInner"),xe=$h(ee,h),me=K0(L,h);if(le!==void 0&&(xe?me&&Be(me):Be(L0(ee,h,L))),xe&&me===void 0)if(le!==void 0){let Ae=Z.timeUnit,Ce=Z.type;switch(h){case"domainMax":case"domainMin":Gs(G[h])||Ce==="temporal"||Ae?H.set(h,{signal:iu(G[h],{type:Ce,timeUnit:Ae})},!0):H.set(h,G[h],!0);break;default:H.copyKeyFromObject(h,G)}}else{let Ae=h in Lg?Lg[h]({model:d,channel:L,fieldOrDatumDef:Z,scaleType:ee,scalePadding:de,scalePaddingInner:ge,domain:G.domain,domainMin:G.domainMin,domainMax:G.domainMax,markDef:A,config:w,hasNestedOffsetScale:uy(S,L),hasSecondaryRangeChannel:!!S[Ci(L)]}):w.scale[h];Ae!==void 0&&H.set(h,Ae,!1)}}}(s,l):pv(s,l)}let Lg={bins:s=>{let{model:l,fieldOrDatumDef:d}=s;return ze(d)?function(h,y){let w=y.bin;if(Vt(w)){let S=To(h,y.field,w);return new Ln(()=>h.getSignalName(S))}if(zn(w)&&mo(w)&&w.step!==void 0)return{step:w.step}}(l,d):void 0},interpolate:s=>{let{channel:l,fieldOrDatumDef:d}=s;return function(h,y){if(Q([Le,xa,Zr],h)&&y!=="nominal")return"hcl"}(l,d.type)},nice:s=>{let{scaleType:l,channel:d,domain:h,domainMin:y,domainMax:w,fieldOrDatumDef:S}=s;return function(A,C,L,G,H,X){var Z;if(!((Z=dr(X))!=null&&Z.bin||b.isArray(L)||H!=null||G!=null||Q([Gt.TIME,Gt.UTC],A)))return!!un(C)||void 0}(l,d,h,y,w,S)},padding:s=>{let{channel:l,scaleType:d,fieldOrDatumDef:h,markDef:y,config:w}=s;return function(S,A,C,L,G,H){if(un(S)){if(Lr(A)){if(C.continuousPadding!==void 0)return C.continuousPadding;let{type:X,orient:Z}=G;if(X==="bar"&&(!ze(L)||!L.bin&&!L.timeUnit)&&(Z==="vertical"&&S==="x"||Z==="horizontal"&&S==="y"))return H.continuousBandSize}if(A===Gt.POINT)return C.pointPadding}}(l,d,w.scale,h,y,w.bar)},paddingInner:s=>{let{scalePadding:l,channel:d,markDef:h,scaleType:y,config:w,hasNestedOffsetScale:S}=s;return function(A,C,L,G,H){let X=arguments.length>5&&arguments[5]!==void 0&&arguments[5];if(A===void 0){if(un(C)){let{bandPaddingInner:Z,barBandPaddingInner:le,rectBandPaddingInner:ee,bandWithNestedOffsetPaddingInner:de}=H;return X?de:Ke(Z,L==="bar"?le:ee)}if(Qn(C)&&G===Gt.BAND)return H.offsetBandPaddingInner}}(l,d,h.type,y,w.scale,S)},paddingOuter:s=>{let{scalePadding:l,channel:d,scaleType:h,scalePaddingInner:y,config:w,hasNestedOffsetScale:S}=s;return function(A,C,L,G,H){let X=arguments.length>5&&arguments[5]!==void 0&&arguments[5];if(A===void 0){if(un(C)){let{bandPaddingOuter:Z,bandWithNestedOffsetPaddingOuter:le}=H;if(X)return le;if(L===Gt.BAND)return Ke(Z,Ze(G)?{signal:`${G.signal}/2`}:G/2)}else if(Qn(C)){if(L===Gt.POINT)return .5;if(L===Gt.BAND)return H.offsetBandPaddingOuter}}}(l,d,h,y,w.scale,S)},reverse:s=>{let{fieldOrDatumDef:l,scaleType:d,channel:h,config:y}=s;return function(w,S,A,C){if(A==="x"&&C.xReverse!==void 0)return Ha(w)&&S==="descending"?Ze(C.xReverse)?{signal:`!${C.xReverse.signal}`}:!C.xReverse:C.xReverse;if(Ha(w)&&S==="descending")return!0}(d,ze(l)?l.sort:void 0,h,y.scale)},zero:s=>{let{channel:l,fieldOrDatumDef:d,domain:h,markDef:y,scaleType:w,config:S,hasSecondaryRangeChannel:A}=s;return function(C,L,G,H,X,Z,le){if(G&&G!=="unaggregated"&&Ha(X)){if(b.isArray(G)){let ee=G[0],de=G[G.length-1];if(b.isNumber(ee)&&ee<=0&&b.isNumber(de)&&de>=0)return!0}return!1}if(C==="size"&&L.type==="quantitative"&&!Zl(X))return!0;if((!ze(L)||!L.bin)&&Q([...Qr,...E0],C)){let{orient:ee,type:de}=H;return(!Q(["bar","area","line","trail"],de)||!(ee==="horizontal"&&C==="y"||ee==="vertical"&&C==="x"))&&(!(!Q(["bar","area"],de)||le)||(Z==null?void 0:Z.zero))}return!1}(l,d,h,y,w,S.scale,A)}};function fv(s){cn(s)?function(l){let d=l.component.scales;for(let h of Gl){let y=d[h];if(!y)continue;let w=sv(h,l);y.setWithExplicit("range",w)}}(s):pv(s,"range")}function pv(s,l){let d=s.component.scales;for(let h of s.children)l==="range"?fv(h):Ep(h,l);for(let h of be(d)){let y;for(let w of s.children){let S=w.component.scales[h];S&&(y=qi(y,S.getWithExplicit(l),l,"scale",Sy((A,C)=>l==="range"&&A.step&&C.step?A.step-C.step:0)))}d[h].setWithExplicit(l,y)}}function Fg(s,l,d,h){let y=function(C,L,G,H){var X;switch(L.type){case"nominal":case"ordinal":if(es(C)||$d(C)==="discrete")return C==="shape"&&L.type==="ordinal"&&Be(qd(C,"ordinal")),"ordinal";if(un(C)||Qn(C)){if(Q(["rect","bar","image","rule"],G.type)||H)return"band"}else if(G.type==="arc"&&C in Qu)return"band";return Ys(G[Sa(C)])||nu(L)&&((X=L.axis)!=null&&X.tickBand)?"band":"point";case"temporal":return es(C)?"time":$d(C)==="discrete"?(Be(qd(C,"temporal")),"ordinal"):ze(L)&&L.timeUnit&&jn(L.timeUnit).utc?"utc":"time";case"quantitative":return es(C)?ze(L)&&Vt(L.bin)?"bin-ordinal":"linear":$d(C)==="discrete"?(Be(qd(C,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(jd(L.type))}(l,d,h,arguments.length>4&&arguments[4]!==void 0&&arguments[4]),{type:w}=s;return Nr(l)?w!==void 0?function(C,L){let G=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!Nr(C))return!1;switch(C){case Qt:case Bn:case hn:case Zo:case ar:case mt:return!!Lr(L)||L==="band"||L==="point"&&!G;case xi:case fo:case Si:case Ft:case Ai:case Ba:return Lr(L)||Zl(L)||Q(["band","point","ordinal"],L);case Le:case xa:case Zr:return L!=="band";case Jo:case xn:return L==="ordinal"||Zl(L)}}(l,w)?ze(d)&&(S=w,A=d.type,!(Q([tf,nf],A)?S===void 0||Hn(S):A===rs?Q([Gt.TIME,Gt.UTC,void 0],S):A!==bo||W0(S)||Zl(S)||S===void 0))?(Be(function(C,L){return`FieldDef does not work with "${C}" scale. We are using "${L}" scale instead.`}(w,y)),y):w:(Be(function(C,L,G){return`Channel "${C}" does not work with "${L}" scale. We are using "${G}" scale instead.`}(l,w,y)),y):y:null;var S,A}function wp(s){cn(s)?s.component.scales=function(l){let{encoding:d,mark:h,markDef:y}=l,w={};for(let S of Gl){let A=yn(d[S]);if(A&&h===Z0&&S===xn&&A.type===Vs)continue;let C=A&&A.scale;if(A&&C!==null&&C!==!1){C??={};let L=Fg(C,S,A,y,uy(d,S));w[S]=new Ng(l.scaleName(`${S}`,!0),{value:L,explicit:C.type===L})}}return w}(s):s.component.scales=function(l){let d=l.component.scales={},h={},y=l.component.resolve;for(let w of l.children){wp(w);for(let S of be(w.component.scales))if(y.scale[S]??=cg(S,l),y.scale[S]==="shared"){let A=h[S],C=w.component.scales[S].getWithExplicit("type");A?O_(A.value,C.value)?h[S]=qi(A,C,"type","scale",b1):(y.scale[S]="independent",delete h[S]):h[S]=C}}for(let w of be(h)){let S=l.scaleName(w,!0),A=h[w];d[w]=new Ng(S,A);for(let C of l.children){let L=C.component.scales[w];L&&(C.renameScale(L.get("name"),S),L.merged=!0)}}return d}(s)}let b1=Sy((s,l)=>q0(s)-q0(l));class Pg{constructor(){at(this,"nameMap",void 0),this.nameMap={}}rename(l,d){this.nameMap[l]=d}has(l){return this.nameMap[l]!==void 0}get(l){for(;this.nameMap[l]&&l!==this.nameMap[l];)l=this.nameMap[l];return l}}function cn(s){return(s==null?void 0:s.type)==="unit"}function Ya(s){return(s==null?void 0:s.type)==="facet"}function Ji(s){return(s==null?void 0:s.type)==="concat"}function ws(s){return(s==null?void 0:s.type)==="layer"}class ad{constructor(l,d,h,y,w,S,A){this.type=d,this.parent=h,this.config=w,at(this,"name",void 0),at(this,"size",void 0),at(this,"title",void 0),at(this,"description",void 0),at(this,"data",void 0),at(this,"transforms",void 0),at(this,"layout",void 0),at(this,"scaleNameMap",void 0),at(this,"projectionNameMap",void 0),at(this,"signalNameMap",void 0),at(this,"component",void 0),at(this,"view",void 0),at(this,"children",void 0),at(this,"correctDataNames",C=>{var L,G,H;return(L=C.from)!=null&&L.data&&(C.from.data=this.lookupDataSource(C.from.data)),(H=(G=C.from)==null?void 0:G.facet)!=null&&H.data&&(C.from.facet.data=this.lookupDataSource(C.from.facet.data)),C}),this.parent=h,this.config=w,this.view=ea(A),this.name=l.name??y,this.title=fa(l.title)?{text:l.title}:l.title?ea(l.title):void 0,this.scaleNameMap=h?h.scaleNameMap:new Pg,this.projectionNameMap=h?h.projectionNameMap:new Pg,this.signalNameMap=h?h.signalNameMap:new Pg,this.data=l.data,this.description=l.description,this.transforms=(l.transform??[]).map(C=>Rm(C)?{filter:F(C.filter,lc)}:C),this.layout=d==="layer"||d==="unit"?{}:function(C,L,G){let H=G[L],X={},{spacing:Z,columns:le}=H;Z!==void 0&&(X.spacing=Z),le!==void 0&&(pc(C)&&!Ql(C.facet)||kc(C))&&(X.columns=le),du(C)&&(X.columns=1);for(let ee of Sc)if(C[ee]!==void 0)if(ee==="spacing"){let de=C[ee];X[ee]=b.isNumber(de)?de:{row:de.row??Z,column:de.column??Z}}else X[ee]=C[ee];return X}(l,d,w),this.component={data:{sources:h?h.component.data.sources:[],outputNodes:h?h.component.data.outputNodes:{},outputNodeRefCounts:h?h.component.data.outputNodeRefCounts:{},isFaceted:pc(l)||(h==null?void 0:h.component.data.isFaceted)&&l.data===void 0},layoutSize:new ji,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...S?j(S):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){(function(l){let{ignoreRange:d}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};wp(l),iv(l);for(let h of $_)Ep(l,h);d||fv(l)})(this)}parseProjection(){Eg(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){up(this)}assembleEncodeFromView(l){let{style:d,...h}=l,y={};for(let w of be(h)){let S=h[w];S!==void 0&&(y[w]=on(S))}return y}assembleGroupEncodeEntry(l){let d={};return this.view&&(d=this.assembleEncodeFromView(this.view)),l||(this.description&&(d.description=on(this.description)),this.type!=="unit"&&this.type!=="layer")?ye(d)?void 0:d:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...d??{}}}assembleLayout(){if(!this.layout)return;let{spacing:l,...d}=this.layout,{component:h,config:y}=this,w=function(S,A){let C={};for(let L of Ua){let G=S[L];if(G!=null&&G.facetFieldDef){let{titleAnchor:H,titleOrient:X}=Uc(["titleAnchor","titleOrient"],G.facetFieldDef.header,A,L),Z=Bc(L,X),le=Ky(H,Z);le!==void 0&&(C[Z]=le)}}return ye(C)?void 0:C}(h.layoutHeaders,y);return{padding:l,...this.assembleDefaultLayout(),...d,...w?{titleBand:w}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){let{layoutHeaders:l}=this.component,d=[];for(let h of Ua)l[h].title&&d.push(bs(this,h));for(let h of _u)d=d.concat(Vy(this,h));return d}assembleAxes(){return function(l,d){let{x:h=[],y=[]}=l;return[...h.map(w=>Xi(w,"grid",d)),...y.map(w=>Xi(w,"grid",d)),...h.map(w=>Xi(w,"main",d)),...y.map(w=>Xi(w,"main",d))].filter(w=>w)}(this.component.axes,this.config)}assembleLegends(){return dp(this)}assembleProjections(){return yg(this)}assembleTitle(){let{encoding:l,...d}=this.title??{},h={...ac(this.config.title).nonMarkTitleProperties,...d,...l?{encode:{update:l}}:{}};if(h.text)return Q(["unit","layer"],this.type)?Q(["middle",void 0],h.anchor)&&(h.frame??="group"):h.anchor??="start",ye(h)?void 0:h}assembleGroup(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],d={};l=l.concat(this.assembleSignals()),l.length>0&&(d.signals=l);let h=this.assembleLayout();h&&(d.layout=h),d.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());let y=!this.parent||Ya(this.parent)?nd(this):[];y.length>0&&(d.scales=y);let w=this.assembleAxes();w.length>0&&(d.axes=w);let S=this.assembleLegends();return S.length>0&&(d.legends=S),d}getName(l){return $e((this.name?`${this.name}_`:"")+l)}getDataName(l){return this.getName(nn[l].toLowerCase())}requestDataName(l){let d=this.getDataName(l),h=this.component.data.outputNodeRefCounts;return h[d]=(h[d]||0)+1,d}getSizeSignalRef(l){if(Ya(this.parent)){let d=ec(lg(l)),h=this.component.scales[d];if(h&&!h.merged){let y=h.get("type"),w=h.get("range");if(Hn(y)&&go(w)){let S=h.get("name"),A=Cg(Es(this,d));return A?{signal:op(S,h,je({aggregate:"distinct",field:A},{expr:"datum"}))}:(Be(ha(d)),null)}}}return{signal:this.signalNameMap.get(this.getName(l))}}lookupDataSource(l){let d=this.component.data.outputNodes[l];return d?d.getSource():l}getSignalName(l){return this.signalNameMap.get(l)}renameSignal(l,d){this.signalNameMap.rename(l,d)}renameScale(l,d){this.scaleNameMap.rename(l,d)}renameProjection(l,d){this.projectionNameMap.rename(l,d)}scaleName(l,d){return d?this.getName(l):g0(l)&&Nr(l)&&this.component.scales[l]||this.scaleNameMap.has(this.getName(l))?this.scaleNameMap.get(this.getName(l)):void 0}projectionName(l){return l?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(l){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");let d=this.component.scales[l];return d&&!d.merged?d:this.parent?this.parent.getScaleComponent(l):void 0}getSelectionComponent(l,d){let h=this.component.selection[l];if(!h&&this.parent&&(h=this.parent.getSelectionComponent(l,d)),!h)throw new Error(function(y){return`Cannot find a selection named "${y}".`}(d));return h}hasAxisOrientSignalRef(){var l,d;return((l=this.component.axes.x)==null?void 0:l.some(h=>h.hasOrientSignalRef()))||((d=this.component.axes.y)==null?void 0:d.some(h=>h.hasOrientSignalRef()))}}class rd extends ad{vgField(l){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},h=this.fieldDef(l);if(h)return je(h,d)}reduceFieldDef(l,d){return function(h,y,w,S){return h?be(h).reduce((A,C)=>{let L=h[C];return b.isArray(L)?L.reduce((G,H)=>y.call(S,G,H,C),A):y.call(S,A,L,C)},w):w}(this.getMapping(),(h,y,w)=>{let S=dr(y);return S?l(h,S,w):h},d)}forEachFieldDef(l,d){bc(this.getMapping(),(h,y)=>{let w=dr(h);w&&l(w,y)},d)}}class ku extends qt{clone(){return new ku(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let h=this.transform.as??[void 0,void 0];this.transform.as=[h[0]??"value",h[1]??"density"]}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${ae(this.transform)}`}assemble(){let{density:l,...d}=this.transform,h={type:"kde",field:l,...d};return this.transform.groupby&&(h.resolve="shared"),h}}class xu extends qt{clone(){return new xu(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${ae(this.transform)}`}assemble(){let{extent:l,param:d}=this.transform;return{type:"extent",field:l,signal:d}}}class Qi extends qt{clone(){return new Qi(null,{...this.filter})}constructor(l,d){super(l),this.filter=d}static make(l,d){let{config:h,mark:y,markDef:w}=d;if(Ht("invalid",w,h)!=="filter")return null;let S=d.reduceFieldDef((A,C,L)=>{let G=Nr(L)&&d.getScaleComponent(L);return G&&Ha(G.get("type"))&&C.aggregate!=="count"&&!is(y)&&(A[C.field]=C),A},{});return be(S).length?new Qi(l,S):null}dependentFields(){return new Set(be(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${ae(this.filter)}`}assemble(){let l=be(this.filter).reduce((d,h)=>{let y=this.filter[h],w=je(y,{expr:"datum"});return y!==null&&(y.type==="temporal"?d.push(`(isDate(${w}) || (isValid(${w}) && isFinite(+${w})))`):y.type==="quantitative"&&(d.push(`isValid(${w})`),d.push(`isFinite(+${w})`))),d},[]);return l.length>0?{type:"filter",expr:l.join(" && ")}:null}}class Pr extends qt{clone(){return new Pr(this.parent,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let{flatten:h,as:y=[]}=this.transform;this.transform.as=h.map((w,S)=>y[S]??w)}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${ae(this.transform)}`}assemble(){let{flatten:l,as:d}=this.transform;return{type:"flatten",fields:l,as:d}}}class _s extends qt{clone(){return new _s(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let h=this.transform.as??[void 0,void 0];this.transform.as=[h[0]??"key",h[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${ae(this.transform)}`}assemble(){let{fold:l,as:d}=this.transform;return{type:"fold",fields:l,as:d}}}class eo extends qt{clone(){return new eo(null,j(this.fields),this.geojson,this.signal)}static parseAll(l,d){if(d.component.projection&&!d.component.projection.isFit)return l;let h=0;for(let y of[[$a,nt],[rr,da]]){let w=y.map(S=>{let A=yn(d.encoding[S]);return ze(A)?A.field:Pi(A)?{expr:`${A.datum}`}:cr(A)?{expr:`${A.value}`}:void 0});(w[0]||w[1])&&(l=new eo(l,w,null,d.getName("geojson_"+h++)))}if(d.channelHasField(xn)){let y=d.typedFieldDef(xn);y.type===Vs&&(l=new eo(l,null,y.field,d.getName("geojson_"+h++)))}return l}constructor(l,d,h,y){super(l),this.fields=d,this.geojson=h,this.signal=y}dependentFields(){let l=(this.fields??[]).filter(b.isString);return new Set([...this.geojson?[this.geojson]:[],...l])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${ae(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class ks extends qt{clone(){return new ks(null,this.projection,j(this.fields),j(this.as))}constructor(l,d,h,y){super(l),this.projection=d,this.fields=h,this.as=y}static parseAll(l,d){if(!d.projectionName())return l;for(let h of[[$a,nt],[rr,da]]){let y=h.map(S=>{let A=yn(d.encoding[S]);return ze(A)?A.field:Pi(A)?{expr:`${A.datum}`}:cr(A)?{expr:`${A.value}`}:void 0}),w=h[0]===rr?"2":"";(y[0]||y[1])&&(l=new ks(l,d.projectionName(),y,[d.getName(`x${w}`),d.getName(`y${w}`)]))}return l}dependentFields(){return new Set(this.fields.filter(b.isString))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${ae(this.fields)} ${ae(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class hr extends qt{clone(){return new hr(null,j(this.transform))}constructor(l,d){super(l),this.transform=d}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(l){let{start:d=0,stop:h,step:y}=l;return{signal:`sequence(${[d,h,...y?[y]:[]].join(",")})`}}static makeFromTransform(l,d){return new hr(l,d)}static makeFromEncoding(l,d){let h=d.encoding,y=h.x,w=h.y;if(ze(y)&&ze(w)){let S=y.impute?y:w.impute?w:void 0;if(S===void 0)return;let A=y.impute?w:w.impute?y:void 0,{method:C,value:L,frame:G,keyvals:H}=S.impute,X=rm(d.mark,h);return new hr(l,{impute:S.field,key:A.field,...C?{method:C}:{},...L!==void 0?{value:L}:{},...G?{frame:G}:{},...H!==void 0?{keyvals:H}:{},...X.length?{groupby:X}:{}})}return null}hash(){return`Impute ${ae(this.transform)}`}assemble(){let{impute:l,key:d,keyvals:h,method:y,groupby:w,value:S,frame:A=[null,null]}=this.transform,C={type:"impute",field:l,key:d,...h?{keyvals:(L=h,(L==null?void 0:L.stop)!==void 0?this.processSequence(h):h)}:{},method:"value",...w?{groupby:w}:{},value:y&&y!=="value"?null:S};var L;return y&&y!=="value"?[C,{type:"window",as:[`imputed_${l}_value`],ops:[y],fields:[l],frame:A,ignorePeers:!1,...w?{groupby:w}:{}},{type:"formula",expr:`datum.${l} === null ? datum.imputed_${l}_value : datum.${l}`,as:l}]:[C]}}class to extends qt{clone(){return new to(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let h=this.transform.as??[void 0,void 0];this.transform.as=[h[0]??d.on,h[1]??d.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${ae(this.transform)}`}assemble(){let{loess:l,on:d,...h}=this.transform;return{type:"loess",x:d,y:l,...h}}}class Ka extends qt{clone(){return new Ka(null,j(this.transform),this.secondary)}constructor(l,d,h){super(l),this.transform=d,this.secondary=h}static make(l,d,h,y){let w=d.component.data.sources,{from:S}=h,A=null;if(function(C){return"data"in C}(S)){let C=Bg(S.data,w);C||(C=new Ro(S.data),w.push(C));let L=d.getName(`lookup_${y}`);A=new ia(C,L,nn.Lookup,d.component.data.outputNodeRefCounts),d.component.data.outputNodes[L]=A}else if(function(C){return"param"in C}(S)){let C=S.param,L;h={as:C,...h};try{L=d.getSelectionComponent($e(C),C)}catch{throw new Error(function(H){return`Lookups can only be performed on selection parameters. "${H}" is a variable parameter.`}(C))}if(A=L.materialized,!A)throw new Error(function(G){return`Cannot define and lookup the "${G}" selection in the same view. Try moving the lookup into a second, layered view?`}(C))}return new Ka(l,h,A.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?b.array(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${ae({transform:this.transform,secondary:this.secondary})}`}assemble(){let l;if(this.transform.from.fields)l={values:this.transform.from.fields,...this.transform.as?{as:b.array(this.transform.as)}:{}};else{let d=this.transform.as;b.isString(d)||(Be('If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.'),d="_lookup"),l={as:[d]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...l,...this.transform.default?{default:this.transform.default}:{}}}}class Io extends qt{clone(){return new Io(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let h=this.transform.as??[void 0,void 0];this.transform.as=[h[0]??"prob",h[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${ae(this.transform)}`}assemble(){let{quantile:l,...d}=this.transform;return{type:"quantile",field:l,...d}}}class Oo extends qt{clone(){return new Oo(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let h=this.transform.as??[void 0,void 0];this.transform.as=[h[0]??d.on,h[1]??d.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${ae(this.transform)}`}assemble(){let{regression:l,on:d,...h}=this.transform;return{type:"regression",x:d,y:l,...h}}}class hl extends qt{clone(){return new hl(null,j(this.transform))}constructor(l,d){super(l),this.transform=d}addDimensions(l){this.transform.groupby=Se((this.transform.groupby??[]).concat(l),d=>d)}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${ae(this.transform)}`}assemble(){let{pivot:l,value:d,groupby:h,limit:y,op:w}=this.transform;return{type:"pivot",field:l,value:d,...y!==void 0?{limit:y}:{},...w!==void 0?{op:w}:{},...h!==void 0?{groupby:h}:{}}}}class ml extends qt{clone(){return new ml(null,j(this.transform))}constructor(l,d){super(l),this.transform=d}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${ae(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function _p(s){let l=0;return function d(h,y){if(h instanceof Ro&&!h.isGenerator&&!fs(h.data)&&(s.push(y),y={name:null,source:y.name,transform:[]}),h instanceof Kn&&(h.parent instanceof Ro&&!y.source?(y.format={...y.format??{},parse:h.assembleFormatParse()},y.transform.push(...h.assembleTransforms(!0))):y.transform.push(...h.assembleTransforms())),h instanceof cl)return y.name||(y.name="data_"+l++),!y.source||y.transform.length>0?(s.push(y),h.data=y.name):h.data=y.source,void s.push(...h.assemble());switch((h instanceof Kc||h instanceof Xc||h instanceof Qi||h instanceof ci||h instanceof ol||h instanceof ks||h instanceof Va||h instanceof Ka||h instanceof fl||h instanceof dl||h instanceof _s||h instanceof Pr||h instanceof ku||h instanceof to||h instanceof Io||h instanceof Oo||h instanceof Co||h instanceof ml||h instanceof hl||h instanceof xu)&&y.transform.push(h.assemble()),(h instanceof pi||h instanceof Wi||h instanceof hr||h instanceof No||h instanceof eo)&&y.transform.push(...h.assemble()),h instanceof ia&&(y.source&&y.transform.length===0?h.setSource(y.source):h.parent instanceof ia?h.setSource(y.name):(y.name||(y.name="data_"+l++),h.setSource(y.name),h.numChildren()===1&&(s.push(y),y={name:null,source:y.name,transform:[]}))),h.numChildren()){case 0:h instanceof ia&&(!y.source||y.transform.length>0)&&s.push(y);break;case 1:d(h.children[0],y);break;default:{y.name||(y.name="data_"+l++);let w=y.name;!y.source||y.transform.length>0?s.push(y):w=y.source;for(let S of h.children)d(S,{name:null,source:w,transform:[]});break}}}}function $g(s){return s==="top"||s==="left"||Ze(s)?"header":"footer"}function hv(s,l){var S;let{facet:d,config:h,child:y,component:w}=s;if(s.channelHasField(l)){let A=d[l],C=Zi("title",null,h,l),L=ss(A,h,{allowDisabling:!0,includeDefault:C===void 0||!!C});y.component.layoutHeaders[l].title&&(L=b.isArray(L)?L.join(", "):L,L+=` / ${y.component.layoutHeaders[l].title}`,y.component.layoutHeaders[l].title=null);let G=Zi("labelOrient",A.header,h,l),H=A.header!==null&&Ke((S=A.header)==null?void 0:S.labels,h.header.labels,!0),X=Q(["bottom","right"],G)?"footer":"header";w.layoutHeaders[l]={title:A.header!==null?L:null,facetFieldDef:A,[X]:l==="facet"?[]:[kp(s,l,H)]}}}function kp(s,l,d){let h=l==="row"?"height":"width";return{labels:d,sizeSignal:s.child.component.layoutSize.get(h)?s.child.getSizeSignalRef(h):void 0,axes:[]}}function Rn(s,l){let{child:d}=s;if(d.component.axes[l]){let{layoutHeaders:h,resolve:y}=s.component;if(y.axis[l]=sp(y,l),y.axis[l]==="shared"){let w=l==="x"?"column":"row",S=h[w];for(let A of d.component.axes[l]){let C=$g(A.get("orient"));S[C]??=[kp(s,w,!1)];let L=Xi(A,"main",s.config,{header:!0});L&&S[C][0].axes.push(L),A.mainExtracted=!0}}}}function gl(s){for(let l of s.children)l.parseLayoutSize()}function xs(s,l){let d=lg(l),h=ec(d),y=s.component.resolve,w=s.component.layoutSize,S;for(let A of s.children){let C=A.component.layoutSize.getWithExplicit(d),L=y.scale[h]??cg(h,s);if(L==="independent"&&C.value==="step"){S=void 0;break}if(S){if(L==="independent"&&S.value!==C.value){S=void 0;break}S=qi(S,C,d,"")}else S=C}if(S){for(let A of s.children)s.renameSignal(A.getName(d),s.getName(l)),A.component.layoutSize.set(d,"merged",!1);w.setWithExplicit(l,S)}else w.setWithExplicit(l,{explicit:!1,value:void 0})}function $r(s,l){let d=l==="width"?"x":"y",h=s.config,y=s.getScaleComponent(d);if(y){let w=y.get("type"),S=y.get("range");if(Hn(w)){let A=Ac(h.view,l);return go(S)||qa(A)?"step":A}return ds(h.view,l)}if(s.hasProjection||s.mark==="arc")return ds(h.view,l);{let w=Ac(h.view,l);return qa(w)?w.step:w}}function id(s,l,d){return je(l,{suffix:`by_${je(s)}`,...d??{}})}class bl extends rd{constructor(l,d,h,y){super(l,"facet",d,h,y,l.resolve),at(this,"facet",void 0),at(this,"child",void 0),at(this,"children",void 0),this.child=Wg(l.spec,this,this.getName("child"),void 0,y),this.children=[this.child],this.facet=this.initFacet(l.facet)}initFacet(l){if(!Ql(l))return{facet:this.initFacetFieldDef(l,"facet")};let d=be(l),h={};for(let y of d){if(![tt,Kr].includes(y)){Be(Mi(y,"facet"));break}let w=l[y];if(w.field===void 0){Be(Hd(w,y));break}h[y]=this.initFacetFieldDef(w,y)}return h}initFacetFieldDef(l,d){let h=ru(l,d);return h.header?h.header=ea(h.header):h.header===null&&(h.header=null),h}channelHasField(l){return!!this.facet[l]}fieldDef(l){return this.facet[l]}parseData(){this.component.data=xp(this),this.child.parseData()}parseLayoutSize(){gl(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(l){for(let d of Ua)hv(l,d);Rn(l,"x"),Rn(l,"y")}(this)}assembleSelectionTopLevelSignals(l){return this.child.assembleSelectionTopLevelSignals(l)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(l){return this.child.assembleSelectionData(l)}getHeaderLayoutMixins(){let l={};for(let d of Ua)for(let h of zc){let y=this.component.layoutHeaders[d],w=y[h],{facetFieldDef:S}=y;if(S){let A=Zi("titleOrient",S.header,this.config,d);if(["right","bottom"].includes(A)){let C=Bc(d,A);l.titleAnchor??={},l.titleAnchor[C]="end"}}if(w!=null&&w[0]){let A=d==="row"?"height":"width",C=h==="header"?"headerBand":"footerBand";d==="facet"||this.child.component.layoutSize.get(A)||(l[C]??={},l[C][d]=.5),y.title&&(l.offset??={},l.offset[d==="row"?"rowTitle":"columnTitle"]=10)}}return l}assembleDefaultLayout(){let{column:l,row:d}=this.facet,h=l?this.columnDistinctSignal():d?1:void 0,y="all";return(d||this.component.resolve.scale.x!=="independent")&&(l||this.component.resolve.scale.y!=="independent")||(y="none"),{...this.getHeaderLayoutMixins(),...h?{columns:h}:{},bounds:"full",align:y}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof bl))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(l){return this.parent&&this.parent instanceof bl?{...this.channelHasField("column")?{encode:{update:{columns:{field:je(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(l)}:super.assembleGroup(l)}getCardinalityAggregateForChild(){let l=[],d=[],h=[];if(this.child instanceof bl){if(this.child.channelHasField("column")){let y=je(this.child.facet.column);l.push(y),d.push("distinct"),h.push(`distinct_${y}`)}}else for(let y of Qr){let w=this.child.component.scales[y];if(w&&!w.merged){let S=w.get("type"),A=w.get("range");if(Hn(S)&&go(A)){let C=Cg(Es(this.child,y));C?(l.push(C),d.push("distinct"),h.push(`distinct_${C}`)):Be(ha(y))}}}return{fields:l,ops:d,as:h}}assembleFacet(){let{name:l,data:d}=this.component.data.facetRoot,{row:h,column:y}=this.facet,{fields:w,ops:S,as:A}=this.getCardinalityAggregateForChild(),C=[];for(let G of Ua){let H=this.facet[G];if(H){C.push(je(H));let{bin:X,sort:Z}=H;if(Vt(X)&&C.push(je(H,{binSuffix:"end"})),ii(Z)){let{field:le,op:ee=dc}=Z,de=id(H,Z);h&&y?(w.push(de),S.push("max"),A.push(de)):(w.push(le),S.push(ee),A.push(de))}else if(b.isArray(Z)){let le=sl(H,G);w.push(le),S.push("max"),A.push(le)}}}let L=!!h&&!!y;return{name:l,data:d,groupby:C,...L||w.length>0?{aggregate:{...L?{cross:L}:{},...w.length?{fields:w,ops:S,as:A}:{}}}:{}}}facetSortFields(l){let{facet:d}=this,h=d[l];return h?ii(h.sort)?[id(h,h.sort,{expr:"datum"})]:b.isArray(h.sort)?[sl(h,l,{expr:"datum"})]:[je(h,{expr:"datum"})]:[]}facetSortOrder(l){let{facet:d}=this,h=d[l];if(h){let{sort:y}=h;return[(ii(y)?y.order:!b.isArray(y)&&y)||"ascending"]}return[]}assembleLabelTitle(){var y;let{facet:l,config:d}=this;if(l.facet)return So(l.facet,"facet",d);let h={row:["top","bottom"],column:["left","right"]};for(let w of _u)if(l[w]){let S=Zi("labelOrient",(y=l[w])==null?void 0:y.header,d,w);if(h[w].includes(S))return So(l[w],w,d)}}assembleMarks(){let{child:l}=this,d=function(S){let A=[],C=_p(A);for(let L of S.children)C(L,{source:S.name,name:null,transform:[]});return A}(this.component.data.facetRoot),h=l.assembleGroupEncodeEntry(!1),y=this.assembleLabelTitle()||l.assembleTitle(),w=l.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...y?{title:y}:{},...w?{style:w}:{},from:{facet:this.assembleFacet()},sort:{field:Ua.map(S=>this.facetSortFields(S)).flat(),order:Ua.map(S=>this.facetSortOrder(S)).flat()},...d.length>0?{data:d}:{},...h?{encode:{update:h}}:{},...l.assembleGroup(Nc(this,[]))}]}getMapping(){return this.facet}}function Bg(s,l){var d,h,y,w;for(let S of l){let A=S.data;if(s.name&&S.hasName()&&s.name!==S.dataName)continue;let C=(d=s.format)==null?void 0:d.mesh,L=(h=A.format)==null?void 0:h.feature;if(C&&L)continue;let G=(y=s.format)==null?void 0:y.feature;if((G||L)&&G!==L)continue;let H=(w=A.format)==null?void 0:w.mesh;if(!C&&!H||C===H){if(mu(s)&&mu(A)){if(Ne(s.values,A.values))return S}else if(fs(s)&&fs(A)){if(s.url===A.url)return S}else if(qf(s)&&s.name===S.dataName)return S}}return null}function xp(s){var le;let l=function(ee,de){if(ee.data||!ee.parent){if(ee.data===null){let xe=new Ro({values:[]});return de.push(xe),xe}let ge=Bg(ee.data,de);if(ge)return Eo(ee.data)||(ge.data.format=fe({},ee.data.format,ge.data.format)),!ge.hasName()&&ee.data.name&&(ge.dataName=ee.data.name),ge;{let xe=new Ro(ee.data);return de.push(xe),xe}}return ee.parent.component.data.facetRoot?ee.parent.component.data.facetRoot:ee.parent.component.data.main}(s,s.component.data.sources),{outputNodes:d,outputNodeRefCounts:h}=s.component.data,y=s.data,w=!(y&&(Eo(y)||fs(y)||mu(y)))&&s.parent?s.parent.component.data.ancestorParse.clone():new Ay;Eo(y)?(Wf(y)?l=new Xc(l,y.sequence):Yf(y)&&(l=new Kc(l,y.graticule)),w.parseNothing=!0):((le=y==null?void 0:y.format)==null?void 0:le.parse)===null&&(w.parseNothing=!0),l=Kn.makeExplicit(l,s,w)??l,l=new Co(l);let S=s.parent&&ws(s.parent);(cn(s)||Ya(s))&&S&&(l=pi.makeFromEncoding(l,s)??l),s.transforms.length>0&&(l=function(ee,de,ge){let xe=0;for(let me of de.transforms){let Ae,Ce;if(r1(me))Ce=ee=new ol(ee,me),Ae="derived";else if(Rm(me)){let Pe=p1(me);Ce=ee=Kn.makeWithAncestors(ee,{},Pe,ge)??ee,ee=new ci(ee,de,me.filter)}else if(Bf(me))Ce=ee=pi.makeFromTransform(ee,me,de),Ae="number";else if(Uf(me))Ae="date",ge.getWithExplicit(me.field).value===void 0&&(ee=new Kn(ee,{[me.field]:Ae}),ge.set(me.field,Ae,!1)),Ce=ee=Wi.makeFromTransform(ee,me);else if(ky(me))Ce=ee=Va.makeFromTransform(ee,me),Ae="number",rg(de)&&(ee=new Co(ee));else if(Nm(me))Ce=ee=Ka.make(ee,de,me,xe++),Ae="derived";else if(Om(me))Ce=ee=new fl(ee,me),Ae="number";else if(Dm(me))Ce=ee=new dl(ee,me),Ae="number";else if(i1(me))Ce=ee=No.makeFromTransform(ee,me),Ae="derived";else if(Lm(me))Ce=ee=new _s(ee,me),Ae="derived";else if(Fm(me))Ce=ee=new xu(ee,me),Ae="derived";else if(_y(me))Ce=ee=new Pr(ee,me),Ae="derived";else if(n1(me))Ce=ee=new hl(ee,me),Ae="derived";else if(wy(me))ee=new ml(ee,me);else if(Mm(me))Ce=ee=hr.makeFromTransform(ee,me),Ae="derived";else if(vy(me))Ce=ee=new ku(ee,me),Ae="derived";else if(Im(me))Ce=ee=new Io(ee,me),Ae="derived";else if(Ey(me))Ce=ee=new Oo(ee,me),Ae="derived";else{if(!a1(me)){Be(`Ignoring an invalid transform: ${Xe(me)}.`);continue}Ce=ee=new to(ee,me),Ae="derived"}if(Ce&&Ae!==void 0)for(let Pe of Ce.producedFields()??[])ge.set(Pe,Ae,!1)}return ee}(l,s,w));let A=function(ee){let de={};if(cn(ee)&&ee.component.selection)for(let ge of be(ee.component.selection)){let xe=ee.component.selection[ge];for(let me of xe.project.items)!me.channel&&Xt(me.field)>1&&(de[me.field]="flatten")}return de}(s),C=Yn(s);l=Kn.makeWithAncestors(l,{},{...A,...C},w)??l,cn(s)&&(l=eo.parseAll(l,s),l=ks.parseAll(l,s)),(cn(s)||Ya(s))&&(S||(l=pi.makeFromEncoding(l,s)??l),l=Wi.makeFromEncoding(l,s)??l,l=ol.parseAllForSortIndex(l,s));let L=s.getDataName(nn.Raw),G=new ia(l,L,nn.Raw,h);if(d[L]=G,l=G,cn(s)){let ee=Va.makeFromEncoding(l,s);ee&&(l=ee,rg(s)&&(l=new Co(l))),l=hr.makeFromEncoding(l,s)??l,l=No.makeFromEncoding(l,s)??l}cn(s)&&(l=Qi.make(l,s)??l);let H=s.getDataName(nn.Main),X=new ia(l,H,nn.Main,h);d[H]=X,l=X,cn(s)&&function(ee,de){for(let[ge,xe]of _e(ee.component.selection??{})){let me=ee.getName(`lookup_${ge}`);ee.component.data.outputNodes[me]=xe.materialized=new ia(new ci(de,ee,{param:ge}),me,nn.Lookup,ee.component.data.outputNodeRefCounts)}}(s,X);let Z=null;if(Ya(s)){let ee=s.getName("facet");l=function(de,ge){let{row:xe,column:me}=ge;if(xe&&me){let Ae=null;for(let Ce of[xe,me])if(ii(Ce.sort)){let{field:Pe,op:We=dc}=Ce.sort;de=Ae=new dl(de,{joinaggregate:[{op:We,field:Pe,as:id(Ce,Ce.sort,{forAs:!0})}],groupby:[je(Ce)]})}return Ae}return null}(l,s.facet)??l,Z=new cl(l,s,ee,X.getSource()),d[ee]=Z}return{...s.component.data,outputNodes:d,outputNodeRefCounts:h,raw:G,main:X,facetRoot:Z,ancestorParse:w}}class y1 extends ad{constructor(l,d,h,y){var w,S,A,C;super(l,"concat",d,h,y,l.resolve),at(this,"children",void 0),((S=(w=l.resolve)==null?void 0:w.axis)==null?void 0:S.x)!=="shared"&&((C=(A=l.resolve)==null?void 0:A.axis)==null?void 0:C.y)!=="shared"||Be("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(l).map((L,G)=>Wg(L,this,this.getName(`concat_${G}`),void 0,y))}parseData(){this.component.data=xp(this);for(let l of this.children)l.parseData()}parseSelections(){this.component.selection={};for(let l of this.children){l.parseSelections();for(let d of be(l.component.selection))this.component.selection[d]=l.component.selection[d]}}parseMarkGroup(){for(let l of this.children)l.parseMarkGroup()}parseAxesAndHeaders(){for(let l of this.children)l.parseAxesAndHeaders()}getChildren(l){return du(l)?l.vconcat:Df(l)?l.hconcat:l.concat}parseLayoutSize(){(function(l){gl(l);let d=l.layout.columns===1?"width":"childWidth",h=l.layout.columns===void 0?"height":"childHeight";xs(l,d),xs(l,h)})(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(l){return this.children.reduce((d,h)=>h.assembleSelectionTopLevelSignals(d),l)}assembleSignals(){return this.children.forEach(l=>l.assembleSignals()),[]}assembleLayoutSignals(){let l=pr(this);for(let d of this.children)l.push(...d.assembleLayoutSignals());return l}assembleSelectionData(l){return this.children.reduce((d,h)=>h.assembleSelectionData(d),l)}assembleMarks(){return this.children.map(l=>{let d=l.assembleTitle(),h=l.assembleGroupStyle(),y=l.assembleGroupEncodeEntry(!1);return{type:"group",name:l.getName("group"),...d?{title:d}:{},...h?{style:h}:{},...y?{encode:{update:y}}:{},...l.assembleGroup()}})}assembleGroupStyle(){}assembleDefaultLayout(){let l=this.layout.columns;return{...l!=null?{columns:l}:{},bounds:"full",align:"each"}}}let Sp={disable:1,gridScale:1,scale:1,...gc,labelExpr:1,encode:1},Ug=be(Sp);class Ap extends ji{constructor(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},h=arguments.length>2&&arguments[2]!==void 0&&arguments[2];super(),this.explicit=l,this.implicit=d,this.mainExtracted=h}clone(){return new Ap(j(this.explicit),j(this.implicit),this.mainExtracted)}hasAxisPart(l){return l==="axis"||(l==="grid"||l==="title"?!!this.get(l):!((d=this.get(l))===!1||d===null));var d}hasOrientSignalRef(){return Ze(this.explicit.orient)}}let Bt={bottom:"top",top:"bottom",left:"right",right:"left"};function mv(s,l){if(!s)return l.map(d=>d.clone());{if(s.length!==l.length)return;let d=s.length;for(let h=0;h<d;h++){let y=s[h],w=l[h];if(!!y!=!!w)return;if(y&&w){let S=y.getWithExplicit("orient"),A=w.getWithExplicit("orient");if(S.explicit&&A.explicit&&S.value!==A.value)return;s[h]=yl(y,w)}}}return s}function yl(s,l){for(let d of Ug){let h=qi(s.getWithExplicit(d),l.getWithExplicit(d),d,"axis",(y,w)=>{switch(d){case"title":return ni(y,w);case"gridScale":return{explicit:y.explicit,value:Ke(y.value,w.value)}}return Rc(y,w,d,"axis")});s.setWithExplicit(d,h)}return s}function zg(s,l,d,h,y){if(l==="disable")return d!==void 0;switch(d=d||{},l){case"titleAngle":case"labelAngle":return s===(Ze(d.labelAngle)?d.labelAngle:Lt(d.labelAngle));case"values":return!!d.values;case"encode":return!!d.encoding||!!d.labelAngle;case"title":if(s===Wy(h,y))return!0}return s===d[l]}let Su=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Gg(s,l){var ge,xe;let d=l.axis(s),h=new Ap,y=yn(l.encoding[s]),{mark:w,config:S}=l,A=(d==null?void 0:d.orient)||((ge=S[s==="x"?"axisX":"axisY"])==null?void 0:ge.orient)||((xe=S.axis)==null?void 0:xe.orient)||function(me){return me==="x"?"bottom":"left"}(s),C=l.getScaleComponent(s).get("type"),L=function(me,Ae,Ce,Pe){let We=Ae==="band"?["axisDiscrete","axisBand"]:Ae==="point"?["axisDiscrete","axisPoint"]:W0(Ae)?["axisQuantitative"]:Ae==="time"||Ae==="utc"?["axisTemporal"]:[],Je=me==="x"?"axisX":"axisY",it=Ze(Ce)?"axisOrient":`axis${yt(Ce)}`,Qe=[...We,...We.map(kt=>Je+kt.substr(4))],lt=["axis",it,Je];return{vlOnlyAxisConfig:di(Qe,Pe,me,Ce),vgAxisConfig:di(lt,Pe,me,Ce),axisConfigStyle:f1([...lt,...Qe],Pe)}}(s,C,A,l.config),G=d!==void 0?!d:ig("disable",S.style,d==null?void 0:d.style,L).configValue;if(h.set("disable",G,d!==void 0),G)return h;d=d||{};let H=function(me,Ae,Ce,Pe,We){let Je=Ae==null?void 0:Ae.labelAngle;if(Je!==void 0)return Ze(Je)?Je:Lt(Je);{let{configValue:it}=ig("labelAngle",Pe,Ae==null?void 0:Ae.style,We);return it!==void 0?Lt(it):Ce!==Qt||!Q([nf,tf],me.type)||ze(me)&&me.timeUnit?void 0:270}}(y,d,s,S.style,L),X=ay(d.formatType,y,C),Z=ny(y,y.type,d.format,d.formatType,S,!0),le={fieldOrDatumDef:y,axis:d,channel:s,model:l,scaleType:C,orient:A,labelAngle:H,format:Z,formatType:X,mark:w,config:S};for(let me of Ug){let Ae=me in jy?jy[me](le):ly(me)?d[me]:void 0,Ce=Ae!==void 0,Pe=zg(Ae,me,d,l,s);if(Ce&&Pe)h.set(me,Ae,Pe);else{let{configValue:We,configFrom:Je}=ly(me)&&me!=="values"?ig(me,S.style,d.style,L):{},it=We!==void 0;Ce&&!it?h.set(me,Ae,Pe):(Je!=="vgAxisConfig"||Su.has(me)&&it||su(We)||Ze(We))&&h.set(me,We,!1)}}let ee=d.encoding??{},de=us.reduce((me,Ae)=>{if(!h.hasAxisPart(Ae))return me;let Ce=ug(ee[Ae]??{},l),Pe=Ae==="labels"?function(We,Je,it){let{encoding:Qe,config:lt}=We,kt=yn(Qe[Je])??yn(Qe[Ci(Je)]),Fn=We.axis(Je)||{},{format:dn,formatType:sn}=Fn;if(Xs(sn))return{text:ri({fieldOrDatumDef:kt,field:"datum.value",format:dn,formatType:sn,config:lt}),...it};if(dn===void 0&&sn===void 0&&lt.customFormatTypes){if(tu(kt)==="quantitative"){if(nu(kt)&&kt.stack==="normalize"&&lt.normalizedNumberFormatType)return{text:ri({fieldOrDatumDef:kt,field:"datum.value",format:lt.normalizedNumberFormat,formatType:lt.normalizedNumberFormatType,config:lt}),...it};if(lt.numberFormatType)return{text:ri({fieldOrDatumDef:kt,field:"datum.value",format:lt.numberFormat,formatType:lt.numberFormatType,config:lt}),...it}}if(tu(kt)==="temporal"&&lt.timeFormatType&&ze(kt)&&!kt.timeUnit)return{text:ri({fieldOrDatumDef:kt,field:"datum.value",format:lt.timeFormat,formatType:lt.timeFormatType,config:lt}),...it}}return it}(l,s,Ce):Ce;return Pe===void 0||ye(Pe)||(me[Ae]={update:Pe}),me},{});return ye(de)||h.set("encode",de,!!d.encoding||d.labelAngle!==void 0),h}function Tp(s,l){let{config:d}=s;return{...Na(s,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Vn("x",s,{defaultPos:"mid"}),...Vn("y",s,{defaultPos:"mid"}),...Wn("size",s),...Wn("angle",s),...gv(s,d,l)}}function gv(s,l,d){return d?{shape:{value:d}}:Wn("shape",s)}let bv={vgMark:"rule",encodeEntry:s=>{let{markDef:l}=s,d=l.orient;return s.encoding.x||s.encoding.y||s.encoding.latitude||s.encoding.longitude?{...Na(s,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...ep("x",s,{defaultPos:d==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:d!=="vertical"}),...ep("y",s,{defaultPos:d==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:d!=="horizontal"}),...Wn("size",s,{vgChannel:"strokeWidth"})}:{}}};function v1(s,l,d){if(Ht("align",s,d)===void 0)return"center"}function yv(s,l,d){if(Ht("baseline",s,d)===void 0)return"middle"}let Cp={vgMark:"rect",encodeEntry:s=>{let{config:l,markDef:d}=s,h=d.orient,y=h==="horizontal"?"width":"height",w=h==="horizontal"?"height":"width";return{...Na(s,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Vn("x",s,{defaultPos:"mid",vgChannel:"xc"}),...Vn("y",s,{defaultPos:"mid",vgChannel:"yc"}),...Wn("size",s,{defaultValue:vv(s),vgChannel:y}),[w]:on(Ht("thickness",d,l))}}};function vv(s){let{config:l,markDef:d}=s,{orient:h}=d,y=h==="horizontal"?"width":"height",w=s.getScaleComponent(h==="horizontal"?"x":"y"),S=Ht("size",d,l,{vgChannel:y})??l.tick.bandSize;if(S!==void 0)return S;{let A=w?w.get("range"):void 0;return A&&go(A)&&b.isNumber(A.step)?3*A.step/4:3*fu(l.view,y)/4}}let od={arc:{vgMark:"arc",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Vn("x",s,{defaultPos:"mid"}),...Vn("y",s,{defaultPos:"mid"}),...li(s,"radius"),...li(s,"theta")})},area:{vgMark:"area",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...ep("x",s,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:s.markDef.orient==="horizontal"}),...ep("y",s,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:s.markDef.orient==="vertical"}),...Lc(s)})},bar:{vgMark:"rect",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...li(s,"x"),...li(s,"y")})},circle:{vgMark:"symbol",encodeEntry:s=>Tp(s,"circle")},geoshape:{vgMark:"shape",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:s=>{let{encoding:l}=s,d=l.shape;return[{type:"geoshape",projection:s.projectionName(),...d&&ze(d)&&d.type===Vs?{field:je(d,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...li(s,"x"),...li(s,"y"),...Jf(s,"url")})},line:{vgMark:"line",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Vn("x",s,{defaultPos:"mid"}),...Vn("y",s,{defaultPos:"mid"}),...Wn("size",s,{vgChannel:"strokeWidth"}),...Lc(s)})},point:{vgMark:"symbol",encodeEntry:s=>Tp(s)},rect:{vgMark:"rect",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...li(s,"x"),...li(s,"y")})},rule:bv,square:{vgMark:"symbol",encodeEntry:s=>Tp(s,"square")},text:{vgMark:"text",encodeEntry:s=>{let{config:l,encoding:d}=s;return{...Na(s,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...Vn("x",s,{defaultPos:"mid"}),...Vn("y",s,{defaultPos:"mid"}),...Jf(s),...Wn("size",s,{vgChannel:"fontSize"}),...Wn("angle",s),...Ly("align",v1(s.markDef,d,l)),...Ly("baseline",yv(s.markDef,d,l)),...Vn("radius",s,{defaultPos:null}),...Vn("theta",s,{defaultPos:null})}}},tick:Cp,trail:{vgMark:"trail",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Vn("x",s,{defaultPos:"mid"}),...Vn("y",s,{defaultPos:"mid"}),...Wn("size",s),...Lc(s)})}};function jg(s){if(Q([uc,af,z_],s.mark)){let l=rm(s.mark,s.encoding);if(l.length>0)return function(d,h){return[{name:d.getName("pathgroup"),type:"group",from:{facet:{name:Hg+d.requestDataName(nn.Main),data:d.requestDataName(nn.Main),groupby:h}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:Rp(d,{fromPrefix:Hg})}]}(s,l)}else if(s.mark===rf){let l=Sh.some(d=>Ht(d,s.markDef,s.config));if(s.stack&&!s.fieldDef("size")&&l)return function(d){var G;let[h]=Rp(d,{fromPrefix:qg}),y=d.scaleName(d.stack.fieldChannel),w=function(){let H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return d.vgField(d.stack.fieldChannel,H)},S=(H,X)=>`${H}(${[w({prefix:"min",suffix:"start",expr:X}),w({prefix:"max",suffix:"start",expr:X}),w({prefix:"min",suffix:"end",expr:X}),w({prefix:"max",suffix:"end",expr:X})].map(Z=>`scale('${y}',${Z})`).join(",")})`,A,C;d.stack.fieldChannel==="x"?(A={...V(h.encode.update,["y","yc","y2","height",...Sh]),x:{signal:S("min","datum")},x2:{signal:S("max","datum")},clip:{value:!0}},C={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},h.encode.update={...te(h.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(A={...V(h.encode.update,["x","xc","x2","width"]),y:{signal:S("min","datum")},y2:{signal:S("max","datum")},clip:{value:!0}},C={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},h.encode.update={...te(h.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(let H of Sh){let X=Ga(H,d.markDef,d.config);h.encode.update[H]?(A[H]=h.encode.update[H],delete h.encode.update[H]):X&&(A[H]=on(X)),X&&(h.encode.update[H]={value:0})}let L=[];if(((G=d.stack.groupbyChannels)==null?void 0:G.length)>0)for(let H of d.stack.groupbyChannels){let X=d.fieldDef(H),Z=je(X);Z&&L.push(Z),(X!=null&&X.bin||X!=null&&X.timeUnit)&&L.push(je(X,{binSuffix:"end"}))}return A=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((H,X)=>{if(h.encode.update[X])return{...H,[X]:h.encode.update[X]};{let Z=Ga(X,d.markDef,d.config);return Z!==void 0?{...H,[X]:on(Z)}:H}},A),A.stroke&&(A.strokeForeground={value:!0},A.strokeOffset={value:0}),[{type:"group",from:{facet:{data:d.requestDataName(nn.Main),name:qg+d.requestDataName(nn.Main),groupby:L,aggregate:{fields:[w({suffix:"start"}),w({suffix:"start"}),w({suffix:"end"}),w({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:A},marks:[{type:"group",encode:{update:C},marks:[h]}]}]}(s)}return Rp(s)}let Hg="faceted_path_",qg="stack_group_";function Rp(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{fromPrefix:""},{mark:d,markDef:h,encoding:y,config:w}=s,S=Ke(h.clip,function(Z){let le=Z.getScaleComponent("x"),ee=Z.getScaleComponent("y");return!(!(le!=null&&le.get("selectionExtent"))&&!(ee!=null&&ee.get("selectionExtent")))||void 0}(s),function(Z){let le=Z.component.projection;return!(!le||le.isFit)||void 0}(s)),A=C0(h),C=y.key,L=function(Z){var Ae;let{encoding:le,stack:ee,mark:de,markDef:ge,config:xe}=Z,me=le.order;if(!(!b.isArray(me)&&cr(me)&&he(me.value)||!me&&he(Ht("order",ge,xe)))){if((b.isArray(me)||ze(me))&&!ee)return ql(me,{expr:"datum"});if(is(de)){let Ce=ge.orient==="horizontal"?"y":"x",Pe=le[Ce];if(ze(Pe)){let We=Pe.sort;return b.isArray(We)?{field:je(Pe,{prefix:Ce,suffix:"sort_index",expr:"datum"})}:ii(We)?{field:je({aggregate:am(Z.encoding)?We.op:void 0,field:We.field},{expr:"datum"})}:Xh(We)?{field:je(Z.fieldDef(We.encoding),{expr:"datum"}),order:We.order}:We===null?void 0:{field:je(Pe,{binSuffix:(Ae=Z.stack)!=null&&Ae.impute?"mid":void 0,expr:"datum"})}}}}}(s),G=function(Z){if(!Z.component.selection)return null;let le=be(Z.component.selection).length,ee=le,de=Z.parent;for(;de&&ee===0;)ee=be(de.component.selection).length,de=de.parent;return ee?{interactive:le>0||Z.mark==="geoshape"||!!Z.encoding.tooltip}:null}(s),H=Ht("aria",h,w),X=od[d].postEncodingTransform?od[d].postEncodingTransform(s):null;return[{name:s.getName("marks"),type:od[d].vgMark,...S?{clip:!0}:{},...A?{style:A}:{},...C?{key:C.field}:{},...L?{sort:L}:{},...G||{},...H===!1?{aria:H}:{},from:{data:l.fromPrefix+s.requestDataName(nn.Main)},encode:{update:od[d].encodeEntry(s)},...X?{transform:X}:{}}]}class Np extends rd{constructor(l,d,h){let y=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},w=arguments.length>4?arguments[4]:void 0;super(l,"unit",d,h,w,void 0,xc(l)?l.view:void 0),at(this,"markDef",void 0),at(this,"encoding",void 0),at(this,"specifiedScales",{}),at(this,"stack",void 0),at(this,"specifiedAxes",{}),at(this,"specifiedLegends",{}),at(this,"specifiedProjection",{}),at(this,"selection",[]),at(this,"children",[]);let S=Li(l.mark)?{...l.mark}:{type:l.mark},A=S.type;S.filled===void 0&&(S.filled=function(L,G,H){let{graticule:X}=H;if(X)return!1;let Z=Ga("filled",L,G),le=L.type;return Ke(Z,le!==of&&le!==uc&&le!==sf)}(S,w,{graticule:l.data&&Yf(l.data)}));let C=this.encoding=function(L,G,H,X){let Z={};for(let ee of be(L))g0(ee)||Be(`${le=ee}-encoding is dropped as ${le} is not a valid encoding channel.`);var le;for(let ee of Zu){if(!L[ee])continue;let de=L[ee];if(Qn(ee)){let ge=v_(ee),xe=Z[ge];if(ze(xe)&&H0(xe.type)&&ze(de)&&!xe.timeUnit){Be(Th(ge));continue}}if(ee!=="angle"||G!=="arc"||L.theta||(Be("Arc marks uses theta channel rather than angle, replacing angle with theta."),ee=ar),_f(L,ee,G)){if(ee===xi&&G==="line"){let ge=dr(L[ee]);if(ge!=null&&ge.aggregate){Be("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}}if(ee===Le&&(H?"fill"in L:"stroke"in L))Be(O0("encoding",{fill:"fill"in L,stroke:"stroke"in L}));else if(ee===po||ee===Bs&&!b.isArray(de)&&!cr(de)||ee===Jr&&b.isArray(de)){if(de){if(ee===Bs){let ge=L[ee];if(ry(ge)){Z[ee]=ge;continue}}Z[ee]=b.array(de).reduce((ge,xe)=>(ze(xe)?ge.push(ru(xe,ee)):Be(Hd(xe,ee)),ge),[])}}else{if(ee===Jr&&de===null)Z[ee]=null;else if(!(ze(de)||Pi(de)||cr(de)||hf(de)||Ze(de))){Be(Hd(de,ee));continue}Z[ee]=nm(de,ee,X)}}else Be(Mi(ee,G))}return Z}(l.encoding||{},A,S.filled,w);this.markDef=by(S,C,w),this.size=function(L){let{encoding:G,size:H}=L;for(let X of Qr){let Z=Sa(X);qa(H[Z])&&os(G[X])&&(delete H[Z],Be(Ih(Z)))}return H}({encoding:C,size:xc(l)?{...y,...l.width?{width:l.width}:{},...l.height?{height:l.height}:{}}:y}),this.stack=wm(this.markDef,C),this.specifiedScales=this.initScales(A,C),this.specifiedAxes=this.initAxes(C),this.specifiedLegends=this.initLegends(C),this.specifiedProjection=l.projection,this.selection=(l.params??[]).filter(L=>_c(L))}get hasProjection(){let{encoding:l}=this,d=this.mark===Z0,h=l&&h0.some(y=>wt(l[y]));return d||h}scaleDomain(l){let d=this.specifiedScales[l];return d?d.domain:void 0}axis(l){return this.specifiedAxes[l]}legend(l){return this.specifiedLegends[l]}initScales(l,d){return Gl.reduce((h,y)=>{let w=yn(d[y]);return w&&(h[y]=this.initScale(w.scale??{})),h},{})}initScale(l){let{domain:d,range:h}=l,y=ea(l);return b.isArray(d)&&(y.domain=d.map(Gn)),b.isArray(h)&&(y.range=h.map(Gn)),y}initAxes(l){return Qr.reduce((d,h)=>{let y=l[h];if(wt(y)||h===Qt&&wt(l.x2)||h===Bn&&wt(l.y2)){let w=wt(y)?y.axis:void 0;d[h]=w&&this.initAxis({...w})}return d},{})}initAxis(l){let d=be(l),h={};for(let y of d){let w=l[y];h[y]=su(w)?A0(w):Gn(w)}return h}initLegends(l){return _0.reduce((d,h)=>{let y=yn(l[h]);if(y&&function(w){switch(w){case Le:case xa:case Zr:case xi:case xn:case Si:case fo:case Jo:return!0;case Ft:case Ai:case Ba:return!1}}(h)){let w=y.legend;d[h]=w&&ea(w)}return d},{})}parseData(){this.component.data=xp(this)}parseLayoutSize(){(function(l){let{size:d,component:h}=l;for(let y of Qr){let w=Sa(y);if(d[w]){let S=d[w];h.layoutSize.set(w,qa(S)?"step":S,!0)}else{let S=$r(l,w);h.layoutSize.set(w,S,!1)}}})(this)}parseSelections(){this.component.selection=function(l,d){let h={},y=l.config.selection;if(!d||!d.length)return h;for(let w of d){let S=$e(w.name),A=w.select,C=b.isString(A)?A:A.type,L=b.isObject(A)?j(A):{type:C},G=y[C];for(let Z in G)Z!=="fields"&&Z!=="encodings"&&(Z==="mark"&&(L[Z]={...G[Z],...L[Z]}),L[Z]!==void 0&&L[Z]!==!0||(L[Z]=j(G[Z]??L[Z])));let H=h[S]={...L,name:S,type:C,init:w.value,bind:w.bind,events:b.isString(L.on)?b.parseSelector(L.on,"scope"):b.array(j(L.on))},X=j(w);for(let Z of il)Z.defined(H)&&Z.parse&&Z.parse(l,H,X)}return h}(this,this.selection)}parseMarkGroup(){this.component.mark=jg(this)}parseAxesAndHeaders(){var l;this.component.axes=(l=this,Qr.reduce((d,h)=>(l.component.scales[h]&&(d[h]=[Gg(h,l)]),d),{}))}assembleSelectionTopLevelSignals(l){return function(d,h){let y=!1;for(let w of Te(d.component.selection??{})){let S=w.name,A=b.stringValue(S+ms);if(h.filter(C=>C.name===S).length===0){let C=w.resolve==="global"?"union":w.resolve,L=w.type==="point"?", true, true)":")";h.push({name:w.name,update:`${ag}(${A}, ${b.stringValue(C)}${L}`})}y=!0;for(let C of il)C.defined(w)&&C.topLevelSignals&&(h=C.topLevelSignals(d,w,h))}return y&&h.filter(w=>w.name==="unit").length===0&&h.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),Kf(h)}(this,l)}assembleSignals(){return[...wu(this),...Ty(this,[])]}assembleSelectionData(l){return function(d,h){let y=[...h],w=Wa(d,{escape:!1});for(let S of Te(d.component.selection??{})){let A={name:S.name+ms};if(S.project.hasSelectionId&&(A.transform=[{type:"collect",sort:{field:fr}}]),S.init){let C=S.project.items.map(jm);A.values=S.project.hasSelectionId?S.init.map(L=>({unit:w,[fr]:ps(L,!1)[0]})):S.init.map(L=>({unit:w,fields:C,values:ps(L,!1)}))}y.filter(C=>C.name===S.name+ms).length||y.push(A)}return y}(this,l)}assembleLayout(){return null}assembleLayoutSignals(){return pr(this)}assembleMarks(){let l=this.component.mark??[];return this.parent&&ws(this.parent)||(l=Cy(this,l)),l.map(this.correctDataNames)}assembleGroupStyle(){let{style:l}=this.view||{};return l!==void 0?l:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(l){return Ui(this.encoding,l)}fieldDef(l){return dr(this.encoding[l])}typedFieldDef(l){let d=this.fieldDef(l);return ma(d)?d:null}}class Au extends ad{constructor(l,d,h,y,w){super(l,"layer",d,h,w,l.resolve,l.view),at(this,"children",void 0);let S={...y,...l.width?{width:l.width}:{},...l.height?{height:l.height}:{}};this.children=l.layer.map((A,C)=>{if(pu(A))return new Au(A,this,this.getName(`layer_${C}`),S,w);if(Bi(A))return new Np(A,this,this.getName(`layer_${C}`),S,w);throw new Error(Ah(A))})}parseData(){this.component.data=xp(this);for(let l of this.children)l.parseData()}parseLayoutSize(){var l;gl(l=this),xs(l,"width"),xs(l,"height")}parseSelections(){this.component.selection={};for(let l of this.children){l.parseSelections();for(let d of be(l.component.selection))this.component.selection[d]=l.component.selection[d]}}parseMarkGroup(){for(let l of this.children)l.parseMarkGroup()}parseAxesAndHeaders(){(function(l){let{axes:d,resolve:h}=l.component,y={top:0,bottom:0,right:0,left:0};for(let w of l.children){w.parseAxesAndHeaders();for(let S of be(w.component.axes))h.axis[S]=sp(l.component.resolve,S),h.axis[S]==="shared"&&(d[S]=mv(d[S],w.component.axes[S]),d[S]||(h.axis[S]="independent",delete d[S]))}for(let w of Qr){for(let S of l.children)if(S.component.axes[w]){if(h.axis[w]==="independent"){d[w]=(d[w]??[]).concat(S.component.axes[w]);for(let A of S.component.axes[w]){let{value:C,explicit:L}=A.getWithExplicit("orient");if(!Ze(C)){if(y[C]>0&&!L){let G=Bt[C];y[C]>y[G]&&A.set("orient",G,!1)}y[C]++}}}delete S.component.axes[w]}if(h.axis[w]==="independent"&&d[w]&&d[w].length>1)for(let[S,A]of(d[w]||[]).entries())S>0&&A.get("grid")&&!A.explicit.grid&&(A.implicit.grid=!1)}})(this)}assembleSelectionTopLevelSignals(l){return this.children.reduce((d,h)=>h.assembleSelectionTopLevelSignals(d),l)}assembleSignals(){return this.children.reduce((l,d)=>l.concat(d.assembleSignals()),wu(this))}assembleLayoutSignals(){return this.children.reduce((l,d)=>l.concat(d.assembleLayoutSignals()),pr(this))}assembleSelectionData(l){return this.children.reduce((d,h)=>h.assembleSelectionData(d),l)}assembleGroupStyle(){let l=new Set;for(let h of this.children)for(let y of b.array(h.assembleGroupStyle()))l.add(y);let d=Array.from(l);return d.length>1?d:d.length===1?d[0]:void 0}assembleTitle(){let l=super.assembleTitle();if(l)return l;for(let d of this.children)if(l=d.assembleTitle(),l)return l}assembleLayout(){return null}assembleMarks(){return function(l,d){for(let h of l.children)cn(h)&&(d=Cy(h,d));return d}(this,this.children.flatMap(l=>l.assembleMarks()))}assembleLegends(){return this.children.reduce((l,d)=>l.concat(d.assembleLegends()),dp(this))}}function Wg(s,l,d,h,y){if(pc(s))return new bl(s,l,d,y);if(pu(s))return new Au(s,l,d,h,y);if(Bi(s))return new Np(s,l,d,h,y);if(function(w){return du(w)||Df(w)||kc(w)}(s))return new y1(s,l,d,y);throw new Error(Ah(s))}let E1=x;p.accessPathDepth=Xt,p.accessPathWithDatum=St,p.compile=function(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var d;l.logger&&(d=l.logger,ic=d),l.fieldTitle&&hc(l.fieldTitle);try{let h=ym(b.mergeConfig(l.config,s.config)),y=jf(s,h),w=Wg(y,null,"",void 0,h);return w.parse(),function(A,C){yp(A.sources);let L=0,G=0;for(let H=0;H<bp&&rv(A,C,!0);H++)L++;A.sources.map(Sg);for(let H=0;H<bp&&rv(A,C,!1);H++)G++;yp(A.sources),Math.max(L,G)===bp&&Be(`Maximum optimization runs(${bp}) reached.`)}(w.component.data,w),{spec:function(A,C){let L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},G=arguments.length>3?arguments[3]:void 0,H=A.config?Lf(A.config):void 0,X=[].concat(A.assembleSelectionData([]),function(Ae,Ce){let Pe=[],We=_p(Pe),Je=0;for(let Qe of Ae.sources){Qe.hasName()||(Qe.dataName="source_"+Je++);let lt=Qe.assemble();We(Qe,lt)}for(let Qe of Pe)Qe.transform.length===0&&delete Qe.transform;let it=0;for(let[Qe,lt]of Pe.entries())(lt.transform??[]).length!==0||lt.source||Pe.splice(it++,0,Pe.splice(Qe,1)[0]);for(let Qe of Pe)for(let lt of Qe.transform??[])lt.type==="lookup"&&(lt.from=Ae.outputNodes[lt.from].getSource());for(let Qe of Pe)Qe.name in Ce&&(Qe.values=Ce[Qe.name]);return Pe}(A.component.data,L)),Z=A.assembleProjections(),le=A.assembleTitle(),ee=A.assembleGroupStyle(),de=A.assembleGroupEncodeEntry(!0),ge=A.assembleLayoutSignals();ge=ge.filter(Ae=>Ae.name!=="width"&&Ae.name!=="height"||Ae.value===void 0||(C[Ae.name]=+Ae.value,!1));let{params:xe,...me}=C;return{$schema:"https://vega.github.io/schema/vega/v5.json",...A.description?{description:A.description}:{},...me,...le?{title:le}:{},...ee?{style:ee}:{},...de?{encode:{update:de}}:{},data:X,...Z.length>0?{projections:Z}:{},...A.assembleGroup([...ge,...A.assembleSelectionTopLevelSignals([]),...Of(xe)]),...H?{config:H}:{},...G?{usermeta:G}:{}}}(w,function(A,C,L,G){let H=G.component.layoutSize.get("width"),X=G.component.layoutSize.get("height");if(C===void 0?(C={type:"pad"},G.hasAxisOrientSignalRef()&&(C.resize=!0)):b.isString(C)&&(C={type:C}),H&&X&&(Z=C.type,Z==="fit"||Z==="fit-x"||Z==="fit-y")){if(H==="step"&&X==="step")Be(Cn()),C.type="pad";else if(H==="step"||X==="step"){let le=H==="step"?"width":"height";Be(Cn(ec(le)));let ee=le==="width"?"height":"width";C.type=function(de){return de?`fit-${ec(de)}`:"fit"}(ee)}}var Z;return{...be(C).length===1&&C.type?C.type==="pad"?{}:{autosize:C.type}:{autosize:C},...Hf(L,!1),...Hf(A,!0)}}(s,y.autosize,h,w),s.datasets,s.usermeta),normalized:y}}finally{l.logger&&(ic=F0),l.fieldTitle&&hc(sy)}},p.contains=Q,p.deepEqual=Ne,p.deleteNestedProperty=dt,p.duplicate=j,p.entries=_e,p.every=se,p.fieldIntersection=Ee,p.flatAccessWithDatum=rn,p.getFirstDefined=Ke,p.hasIntersection=Fe,p.hash=ae,p.internalField=Et,p.isBoolean=Ye,p.isEmpty=ye,p.isEqual=function(s,l){let d=be(s),h=be(l);if(d.length!==h.length)return!1;for(let y of d)if(s[y]!==l[y])return!1;return!0},p.isInternalField=Jt,p.isNullOrFalse=he,p.isNumeric=Ct,p.keys=be,p.logicalExpr=Me,p.mergeDeep=fe,p.never=W,p.normalize=jf,p.normalizeAngle=Lt,p.omit=te,p.pick=V,p.prefixGenerator=Ge,p.removePathFromField=Tt,p.replaceAll=xt,p.replacePathInField=jt,p.resetIdCounter=function(){et=42},p.setEqual=Ie,p.some=ie,p.stringify=Xe,p.titleCase=yt,p.unique=Se,p.uniqueId=Zt,p.vals=Te,p.varName=$e,p.version=E1})});var A2=rA((lG,c_)=>{var $z=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{},D=function(p){var b=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,x=0,T={},O={manual:p.Prism&&p.Prism.manual,disableWorkerMessageHandler:p.Prism&&p.Prism.disableWorkerMessageHandler,util:{encode:function Q(ie){return ie instanceof B?new B(ie.type,Q(ie.content),ie.alias):Array.isArray(ie)?ie.map(Q):ie.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(Q){return Object.prototype.toString.call(Q).slice(8,-1)},objId:function(Q){return Q.__id||Object.defineProperty(Q,"__id",{value:++x}),Q.__id},clone:function Q(ie,se){var fe,pe;switch(se=se||{},O.util.type(ie)){case"Object":if(pe=O.util.objId(ie),se[pe])return se[pe];for(var Se in fe={},se[pe]=fe,ie)ie.hasOwnProperty(Se)&&(fe[Se]=Q(ie[Se],se));return fe;case"Array":return pe=O.util.objId(ie),se[pe]?se[pe]:(fe=[],se[pe]=fe,ie.forEach(function(Ie,Fe){fe[Fe]=Q(Ie,se)}),fe);default:return ie}},getLanguage:function(Q){for(;Q;){var ie=b.exec(Q.className);if(ie)return ie[1].toLowerCase();Q=Q.parentElement}return"none"},setLanguage:function(Q,ie){Q.className=Q.className.replace(RegExp(b,"gi"),""),Q.classList.add("language-"+ie)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(fe){var Q=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(fe.stack)||[])[1];if(Q){var ie=document.getElementsByTagName("script");for(var se in ie)if(ie[se].src==Q)return ie[se]}return null}},isActive:function(Q,ie,se){for(var fe="no-"+ie;Q;){var pe=Q.classList;if(pe.contains(ie))return!0;if(pe.contains(fe))return!1;Q=Q.parentElement}return!!se}},languages:{plain:T,plaintext:T,text:T,txt:T,extend:function(Q,ie){var se=O.util.clone(O.languages[Q]);for(var fe in ie)se[fe]=ie[fe];return se},insertBefore:function(Q,ie,se,fe){var pe=(fe=fe||O.languages)[Q],Se={};for(var Ie in pe)if(pe.hasOwnProperty(Ie)){if(Ie==ie)for(var Fe in se)se.hasOwnProperty(Fe)&&(Se[Fe]=se[Fe]);se.hasOwnProperty(Ie)||(Se[Ie]=pe[Ie])}var Ge=fe[Q];return fe[Q]=Se,O.languages.DFS(O.languages,function(Ee,ye){ye===Ge&&Ee!=Q&&(this[Ee]=Se)}),Se},DFS:function Q(ie,se,fe,pe){pe=pe||{};var Se=O.util.objId;for(var Ie in ie)if(ie.hasOwnProperty(Ie)){se.call(ie,Ie,ie[Ie],fe||Ie);var Fe=ie[Ie],Ge=O.util.type(Fe);Ge!=="Object"||pe[Se(Fe)]?Ge!=="Array"||pe[Se(Fe)]||(pe[Se(Fe)]=!0,Q(Fe,se,Ie,pe)):(pe[Se(Fe)]=!0,Q(Fe,se,null,pe))}}},plugins:{},highlightAll:function(Q,ie){O.highlightAllUnder(document,Q,ie)},highlightAllUnder:function(Q,ie,se){var fe={callback:se,container:Q,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};O.hooks.run("before-highlightall",fe),fe.elements=Array.prototype.slice.apply(fe.container.querySelectorAll(fe.selector)),O.hooks.run("before-all-elements-highlight",fe);for(var pe,Se=0;pe=fe.elements[Se++];)O.highlightElement(pe,ie===!0,fe.callback)},highlightElement:function(Q,ie,se){var fe=O.util.getLanguage(Q),pe=O.languages[fe];O.util.setLanguage(Q,fe);var Se=Q.parentElement;Se&&Se.nodeName.toLowerCase()==="pre"&&O.util.setLanguage(Se,fe);var Ie={element:Q,language:fe,grammar:pe,code:Q.textContent};function Fe(Ee){Ie.highlightedCode=Ee,O.hooks.run("before-insert",Ie),Ie.element.innerHTML=Ie.highlightedCode,O.hooks.run("after-highlight",Ie),O.hooks.run("complete",Ie),se&&se.call(Ie.element)}if(O.hooks.run("before-sanity-check",Ie),(Se=Ie.element.parentElement)&&Se.nodeName.toLowerCase()==="pre"&&!Se.hasAttribute("tabindex")&&Se.setAttribute("tabindex","0"),!Ie.code)return O.hooks.run("complete",Ie),void(se&&se.call(Ie.element));if(O.hooks.run("before-highlight",Ie),Ie.grammar)if(ie&&p.Worker){var Ge=new Worker(O.filename);Ge.onmessage=function(Ee){Fe(Ee.data)},Ge.postMessage(JSON.stringify({language:Ie.language,code:Ie.code,immediateClose:!0}))}else Fe(O.highlight(Ie.code,Ie.grammar,Ie.language));else Fe(O.util.encode(Ie.code))},highlight:function(Q,ie,se){var fe={code:Q,grammar:ie,language:se};if(O.hooks.run("before-tokenize",fe),!fe.grammar)throw new Error('The language "'+fe.language+'" has no grammar.');return fe.tokens=O.tokenize(fe.code,fe.grammar),O.hooks.run("after-tokenize",fe),B.stringify(O.util.encode(fe.tokens),fe.language)},tokenize:function(Q,ie){var se=ie.rest;if(se){for(var fe in se)ie[fe]=se[fe];delete ie.rest}var pe=new j;return W(pe,pe.head,Q),F(Q,pe,ie,pe.head,0),function(Se){for(var Ie=[],Fe=Se.head.next;Fe!==Se.tail;)Ie.push(Fe.value),Fe=Fe.next;return Ie}(pe)},hooks:{all:{},add:function(Q,ie){var se=O.hooks.all;se[Q]=se[Q]||[],se[Q].push(ie)},run:function(Q,ie){var se=O.hooks.all[Q];if(se&&se.length)for(var fe,pe=0;fe=se[pe++];)fe(ie)}},Token:B};function B(Q,ie,se,fe){this.type=Q,this.content=ie,this.alias=se,this.length=0|(fe||"").length}function $(Q,ie,se,fe){Q.lastIndex=ie;var pe=Q.exec(se);if(pe&&fe&&pe[1]){var Se=pe[1].length;pe.index+=Se,pe[0]=pe[0].slice(Se)}return pe}function F(Q,ie,se,fe,pe,Se){for(var Ie in se)if(se.hasOwnProperty(Ie)&&se[Ie]){var Fe=se[Ie];Fe=Array.isArray(Fe)?Fe:[Fe];for(var Ge=0;Ge<Fe.length;++Ge){if(Se&&Se.cause==Ie+","+Ge)return;var Ee=Fe[Ge],ye=Ee.inside,be=!!Ee.lookbehind,Te=!!Ee.greedy,_e=Ee.alias;if(Te&&!Ee.pattern.global){var Ye=Ee.pattern.toString().match(/[imsuy]*$/)[0];Ee.pattern=RegExp(Ee.pattern.source,Ye+"g")}for(var $e=Ee.pattern||Ee,Me=fe.next,dt=pe;Me!==ie.tail&&!(Se&&dt>=Se.reach);dt+=Me.value.length,Me=Me.next){var yt=Me.value;if(ie.length>Q.length)return;if(!(yt instanceof B)){var St,rn=1;if(Te){if(!(St=$($e,dt,Q,be))||St.index>=Q.length)break;var pn=St.index,jt=St.index+St[0].length,xt=dt;for(xt+=Me.value.length;pn>=xt;)xt+=(Me=Me.next).value.length;if(dt=xt-=Me.value.length,Me.value instanceof B)continue;for(var Tt=Me;Tt!==ie.tail&&(xt<jt||typeof Tt.value=="string");Tt=Tt.next)rn++,xt+=Tt.value.length;rn--,yt=Q.slice(dt,xt),St.index-=dt}else if(!(St=$($e,0,yt,be)))continue;pn=St.index;var Xt=St[0],Ke=yt.slice(0,pn),et=yt.slice(pn+Xt.length),Zt=dt+yt.length;Se&&Zt>Se.reach&&(Se.reach=Zt);var Et=Me.prev;if(Ke&&(Et=W(ie,Et,Ke),dt+=Ke.length),V(ie,Et,rn),Me=W(ie,Et,new B(Ie,ye?O.tokenize(Xt,ye):Xt,_e,Xt)),et&&W(ie,Me,et),rn>1){var Jt={cause:Ie+","+Ge,reach:Zt};F(Q,ie,se,Me.prev,dt,Jt),Se&&Jt.reach>Se.reach&&(Se.reach=Jt.reach)}}}}}}function j(){var Q={value:null,prev:null,next:null},ie={value:null,prev:Q,next:null};Q.next=ie,this.head=Q,this.tail=ie,this.length=0}function W(Q,ie,se){var fe=ie.next,pe={value:se,prev:ie,next:fe};return ie.next=pe,fe.prev=pe,Q.length++,pe}function V(Q,ie,se){for(var fe=ie.next,pe=0;pe<se&&fe!==Q.tail;pe++)fe=fe.next;ie.next=fe,fe.prev=ie,Q.length-=pe}if(p.Prism=O,B.stringify=function Q(ie,se){if(typeof ie=="string")return ie;if(Array.isArray(ie)){var fe="";return ie.forEach(function(Ge){fe+=Q(Ge,se)}),fe}var pe={type:ie.type,content:Q(ie.content,se),tag:"span",classes:["token",ie.type],attributes:{},language:se},Se=ie.alias;Se&&(Array.isArray(Se)?Array.prototype.push.apply(pe.classes,Se):pe.classes.push(Se)),O.hooks.run("wrap",pe);var Ie="";for(var Fe in pe.attributes)Ie+=" "+Fe+'="'+(pe.attributes[Fe]||"").replace(/"/g,"&quot;")+'"';return"<"+pe.tag+' class="'+pe.classes.join(" ")+'"'+Ie+">"+pe.content+"</"+pe.tag+">"},!p.document)return p.addEventListener&&(O.disableWorkerMessageHandler||p.addEventListener("message",function(Q){var ie=JSON.parse(Q.data),se=ie.language,fe=ie.code,pe=ie.immediateClose;p.postMessage(O.highlight(fe,O.languages[se],se)),pe&&p.close()},!1)),O;var te=O.util.currentScript();function ae(){O.manual||O.highlightAll()}if(te&&(O.filename=te.src,te.hasAttribute("data-manual")&&(O.manual=!0)),!O.manual){var he=document.readyState;he==="loading"||he==="interactive"&&te&&te.defer?document.addEventListener("DOMContentLoaded",ae):window.requestAnimationFrame?window.requestAnimationFrame(ae):window.setTimeout(ae,16)}return O}($z);typeof c_<"u"&&c_.exports&&(c_.exports=D),typeof global<"u"&&(global.Prism=D);D.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},D.languages.markup.tag.inside["attr-value"].inside.entity=D.languages.markup.entity,D.languages.markup.doctype.inside["internal-subset"].inside=D.languages.markup,D.hooks.add("wrap",function(p){p.type==="entity"&&(p.attributes.title=p.content.replace(/&amp;/,"&"))}),Object.defineProperty(D.languages.markup.tag,"addInlined",{value:function(p,b){var x={};x["language-"+b]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:D.languages[b]},x.cdata=/^<!\[CDATA\[|\]\]>$/i;var T={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:x}};T["language-"+b]={pattern:/[\s\S]+/,inside:D.languages[b]};var O={};O[p]={pattern:RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)".replace(/__/g,function(){return p}),"i"),lookbehind:!0,greedy:!0,inside:T},D.languages.insertBefore("markup","cdata",O)}}),Object.defineProperty(D.languages.markup.tag,"addAttribute",{value:function(p,b){D.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(`(^|["'\\s])(?:`+p+`)\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s'">=]+(?=[\\s>]))`,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[b,"language-"+b],inside:D.languages[b]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),D.languages.html=D.languages.markup,D.languages.mathml=D.languages.markup,D.languages.svg=D.languages.markup,D.languages.xml=D.languages.extend("markup",{}),D.languages.ssml=D.languages.xml,D.languages.atom=D.languages.xml,D.languages.rss=D.languages.xml;(function(p){var b=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;p.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp(`@[\\w-](?:[^;{\\s"']|\\s+(?!\\s)|`+b.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+b.source+`|(?:[^\\\\\r
13
+ `)):i+"";var o}(a))}function dO(e){return"["+e.map(fO).join(", ")+"]"}function fO(e){return Ee(e)?"[\u2026]":ye(e)&&!xn(e)?"{\u2026}":e}function pO(e,t){let n=this;if(t=t||{},el.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),t.logLevel!=null&&n.logLevel(t.logLevel),t.locale||e.locale){let i=mt({},e.locale,t.locale);n.locale(Jh(i.number,i.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||Fu.Canvas,n._scenegraph=new V1;let a=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||BB,n._redraw=!0,n._handler=new ob().scene(a),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=function(i){let o=mt({defaults:{}},i),u=(c,f)=>{f.forEach(m=>{Ee(c[m])&&(c[m]=ir(c[m]))})};return u(o.defaults,["prevent","allow"]),u(o,["view","window","selector"]),o}(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);let r=function(i,o,u){return VI(i,tl,qb,u).parse(o)}(n,e,t.expr);n._runtime=r,n._signals=r.signals,n._bind=(e.bindings||[]).map(i=>({state:null,param:mt({},i)})),r.root&&r.root.set(a),a.source=r.data.root.input,n.pulse(r.data.root.input,n.changeset().insert(a.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=uO(n,n._width),n._viewHeight=cO(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,function(i){var o=i._signals,u=o[oO],c=o[sO],f=o[IS];function m(){i._autosize=i._resize=1}i._resizeWidth=i.add(null,v=>{i._width=v.size,i._viewWidth=uO(i,v.size),m()},{size:u}),i._resizeHeight=i.add(null,v=>{i._height=v.size,i._viewHeight=cO(i,v.size),m()},{size:c});let g=i.add(null,m,{pad:f});i._resizeWidth.rank=u.rank+1,i._resizeHeight.rank=c.rank+1,g.rank=f.rank+1}(n),function(i){i.add(null,o=>(i._background=o.bg,i._resize=1,o.bg),{bg:i._signals.background})}(n),function(i){let o=i._signals.cursor||(i._signals.cursor=i.add({user:AS,item:null}));i.on(i.events("view","mousemove"),o,(u,c)=>{let f=o.value,m=f?Ft(f)?f:f.user:AS,g=c.item&&c.item.cursor||null;return f&&m===f.user&&g==f.item?f:{user:m,item:g}}),i.add(null,function(u){let c=u.cursor,f=this.value;return Ft(c)||(f=c.item,c=c.user),TS(i,c&&c!==AS?c:f||c),f},{cursor:o})}(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind)}function mw(e,t){return nt(e._signals,t)?e._signals[t]:F("Unrecognized signal name: "+st(t))}function hO(e,t){let n=(e._targets||[]).filter(a=>a._update&&a._update.handler===t);return n.length?n[0]:null}function mO(e,t,n,a){let r=hO(n,a);return r||(r=CS(e,()=>a(t,n.value)),r.handler=a,e.on(n,null,r)),e}function gO(e,t,n){let a=hO(t,n);return a&&t._targets.remove(a),e}Le(pO,el,{async evaluate(e,t,n){if(await el.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,function(a){var r=fw(a),i=ZI(a),o=JI(a);a._renderer.background(a.background()),a._renderer.resize(i,o,r),a._handler.origin(r),a._resizeListeners.forEach(u=>{try{u(i,o)}catch(c){a.error(c)}})}(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(a){this.error(a)}return n&&yn(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){let t=e!=null?e+"":null;return t!==this._desc&&XI(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){let a=mw(this,e);return arguments.length===1?a.value:this.update(a,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",iO(e)):iO(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(Kv(e)||F("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(el.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(mw(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,n,a,r,i){this.runAfter(o=>{let u=0;o._autosize=0,o.width()!==n&&(u=1,o.signal(oO,n,lO),o._resizeWidth.skip(!0)),o.height()!==a&&(u=1,o.signal(sO,a,lO),o._resizeHeight.skip(!0)),o._viewWidth!==e&&(o._resize=1,o._viewWidth=e),o._viewHeight!==t&&(o._resize=1,o._viewHeight=t),o._origin[0]===r[0]&&o._origin[1]===r[1]||(o._resize=1,o._origin=r),u&&o.run("enter"),i&&o.runAfter(c=>c.resize())},!1,1)},addEventListener(e,t,n){let a=t;return n&&n.trap===!1||(a=CS(this,t),a.raw=t),this._handler.on(e,a),this},removeEventListener(e,t){for(var n,a,r=this._handler.handlers(e),i=r.length;--i>=0;)if(a=r[i].type,n=r[i].handler,e===a&&(t===n||t===n.raw)){this._handler.off(a,n);break}return this},addResizeListener(e){let t=this._resizeListeners;return t.indexOf(e)<0&&t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return mO(this,e,mw(this,e),t)},removeSignalListener(e,t){return gO(this,mw(this,e),t)},addDataListener(e,t){return mO(this,e,cw(this,e).values,t)},removeDataListener(e,t){return gO(this,cw(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){let t=TS(this,null);this._globalCursor=!!e,t&&TS(this,t)}return this}return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push(function(n,a,r){var i=new GE,o=a;return a==null?(i.restart(n,a,r),i):(i._restart=i.restart,i.restart=function(u,c,f){c=+c,f=f==null?vx():+f,i._restart(function m(g){g+=o,i._restart(m,o+=c,f),u(g)},c,f)},i.restart(n,a,r),i)}(function(n){e({timestamp:Date.now(),elapsed:n})},t))},events:function(e,t,n){var a,r=this,i=new Ui(n),o=function(f,m){r.runAsync(null,()=>{e===QI&&function(g,v){var E=g._eventConfig.defaults,k=E.prevent,_=E.allow;return k!==!1&&_!==!0&&(k===!0||_===!1||(k?k[v]:_?!_[v]:g.preventDefault()))}(r,t)&&f.preventDefault(),i.receive(_B(r,f,m))})};if(e===kB)pw(r,"timer",t)&&r.timer(o,t);else if(e===QI)pw(r,"view",t)&&r.addEventListener(t,o,SB);else if(e===xB?pw(r,"window",t)&&typeof window<"u"&&(a=[window]):typeof document<"u"&&pw(r,"selector",t)&&(a=Array.from(document.querySelectorAll(e))),a){for(var u=0,c=a.length;u<c;++u)a[u].addEventListener(t,o);eO(r,a,t,o)}else r.warn("Can not resolve event source: "+e);return i},finalize:function(){var e,t,n,a=this._tooltip,r=this._timers,i=this._eventListeners;for(e=r.length;--e>=0;)r[e].stop();for(e=i.length;--e>=0;)for(t=(n=i[e]).sources.length;--t>=0;)n.sources[t].removeEventListener(n.type,n.handler);return a&&a.call(this,this._handler,null,null,null),this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","mouseover",tO),nO,aO(e)),this.on(this.events("view","mouseout",tO),nO,aO(t)),this},data:function(e,t){return arguments.length<2?cw(this,e).values.value:dw.call(this,e,us().remove(Q).insert(t))},change:dw,insert:function(e,t){return dw.call(this,e,us().insert(t))},remove:function(e,t){return dw.call(this,e,us().remove(t))},scale:function(e){var t=this._runtime.scales;return nt(t,e)||F("Unrecognized scale or projection: "+e),t[e].value},initialize:function(e,t){let n=this,a=n._renderType,r=n._eventConfig.bind,i=Kv(a);e=n._el=e?RS(n,e,!0):null,function(c){let f=c.container();f&&(f.setAttribute("role","graphics-document"),f.setAttribute("aria-roleDescription","visualization"),XI(f,c.description()))}(n),i||n.error("Unrecognized renderer type: "+a);let o=i.handler||ob,u=e?i.renderer:i.headless;return n._renderer=u?rO(n,n._renderer,e,u):null,n._handler=function(c,f,m,g){let v=new g(c.loader(),CS(c,c.tooltip())).scene(c.scenegraph().root).initialize(m,fw(c),c);return f&&f.handlers().forEach(E=>{v.on(E.type,E.handler)}),v}(n,n._handler,e,o),n._redraw=!0,e&&r!=="none"&&(t=t?n._elBind=RS(n,t,!0):e.appendChild(wi("form",{class:"vega-bindings"})),n._bind.forEach(c=>{c.param.element&&r!=="container"&&(c.element=RS(n,c.param.element,!!c.param.input))}),n._bind.forEach(c=>{(function(f,m,g){if(!m)return;let v=g.param,E=g.state;E||(E=g.state={elements:null,active:!1,set:null,update:k=>{k!=f.signal(v.signal)&&f.runAsync(null,()=>{E.source=!0,f.signal(v.signal,k)})}},v.debounce&&(E.update=Zo(v.debounce,E.update))),(v.input==null&&v.element?RB:NB)(E,m,v,f),E.active||(f.on(f._signals[v.signal],null,()=>{E.source?E.source=!1:E.set(f.signal(v.signal))}),E.active=!0)})(n,c.element||t,c)})),n},toImageURL:async function(e,t){e!==Fu.Canvas&&e!==Fu.SVG&&e!==Fu.PNG&&F("Unrecognized image type: "+e);let n=await NS(this,e,t);return e===Fu.SVG?function(a,r){let i=new Blob([a],{type:r});return window.URL.createObjectURL(i)}(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await NS(this,Fu.Canvas,e,t)).canvas()},toSVG:async function(e){return(await NS(this,Fu.SVG,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:PB,signals:$B,recurse:!0})},setState:function(e){return this.runAsync(null,t=>{t._trigger=!1,t._runtime.setState(e)},t=>{t._trigger=!0}),this}});let UB="view",gw="[",bw="]",bO="{",yO="}",zB=":",vO=",",GB="@",jB=">",HB=/[[\]{}]/,qB={"*":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},EO,wO;function _O(e,t,n){return EO=t||UB,wO=n||qB,kO(e.trim()).map(OS)}function Yb(e,t,n,a,r){let i=e.length,o,u=0;for(;t<i;++t){if(o=e[t],!u&&o===n)return t;r&&r.indexOf(o)>=0?--u:a&&a.indexOf(o)>=0&&++u}return t}function kO(e){let t=[],n=e.length,a=0,r=0;for(;r<n;)r=Yb(e,r,vO,gw+bO,bw+yO),t.push(e.substring(a,r).trim()),a=++r;if(t.length===0)throw"Empty event selector: "+e;return t}function OS(e){return e[0]==="["?function(t){let n=t.length,a,r=1;if(r=Yb(t,r,bw,gw,bw),r===n)throw"Empty between selector: "+t;if(a=kO(t.substring(1,r)),a.length!==2)throw"Between selector must have two elements: "+t;if(t=t.slice(r+1).trim(),t[0]!==jB)throw"Expected '>' after between selector: "+t;a=a.map(OS);let i=OS(t.slice(1).trim());return i.between?{between:a,stream:i}:(i.between=a,i)}(e):function(t){let n={source:EO},a=[],r,i,o=[0,0],u=0,c=0,f=t.length,m=0;if(t[f-1]===yO){if(m=t.lastIndexOf(bO),!(m>=0))throw"Unmatched right brace: "+t;try{o=function(g){let v=g.split(vO);if(!g.length||v.length>2)throw g;return v.map(E=>{let k=+E;if(k!=k)throw g;return k})}(t.substring(m+1,f-1))}catch{throw"Invalid throttle specification: "+t}f=(t=t.slice(0,m).trim()).length,m=0}if(!f)throw t;if(t[0]===GB&&(u=++m),r=Yb(t,m,zB),r<f&&(a.push(t.substring(c,r).trim()),c=m=++r),m=Yb(t,m,gw),m===f)a.push(t.substring(c,f).trim());else if(a.push(t.substring(c,m).trim()),i=[],c=++m,c===f)throw"Unmatched left bracket: "+t;for(;m<f;){if(m=Yb(t,m,bw),m===f)throw"Unmatched left bracket: "+t;if(i.push(t.substring(c,m).trim()),m<f-1&&t[++m]!==gw)throw"Expected left bracket: "+t;c=++m}if(!(f=a.length)||HB.test(a[f-1]))throw"Invalid event selector: "+t;return f>1?(n.type=a[1],u?n.markname=a[0].slice(1):function(g){return wO[g]}(a[0])?n.marktype=a[0]:n.source=a[0]):n.type=a[0],n.type.slice(-1)==="!"&&(n.consume=!0,n.type=n.type.slice(0,-1)),i!=null&&(n.filter=i),o[0]&&(n.throttle=o[0]),o[1]&&(n.debounce=o[1]),n}(e)}function WB(e){return ye(e)?e:{type:e||"pad"}}let Kb=e=>+e||0,VB=e=>({top:e,bottom:e,left:e,right:e});function YB(e){return ye(e)?e.signal?e:{top:Kb(e.top),bottom:Kb(e.bottom),left:Kb(e.left),right:Kb(e.right)}:VB(Kb(e))}let va=e=>ye(e)&&!Ee(e)?mt({},e):{value:e};function xO(e,t,n,a){return n!=null?(ye(n)&&!Ee(n)||Ee(n)&&n.length&&ye(n[0])?e.update[t]=n:e[a||"enter"][t]={value:n},1):0}function Fa(e,t,n){for(let a in t)xO(e,a,t[a]);for(let a in n)xO(e,a,n[a],"update")}function eh(e,t,n){for(let a in t)n&&nt(n,a)||(e[a]=mt(e[a]||{},t[a]));return e}function th(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}let DS="mark",MS="frame",LS="scope",KB="axis",XB="axis-domain",ZB="axis-grid",JB="axis-label",QB="axis-tick",eU="axis-title",tU="legend",nU="legend-band",aU="legend-entry",rU="legend-gradient",SO="legend-label",iU="legend-symbol",oU="legend-title",sU="title",lU="title-text",uU="title-subtitle";function FS(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}let AO=e=>Ft(e)?st(e):e.signal?`(${e.signal})`:TO(e);function yw(e){if(e.gradient!=null)return function(n){let a=[n.start,n.stop,n.count].map(r=>r==null?null:st(r));for(;a.length&&$e(a)==null;)a.pop();return a.unshift(AO(n.gradient)),`gradient(${a.join(",")})`}(e);let t=e.signal?`(${e.signal})`:e.color?function(n){return n.c?vw("hcl",n.h,n.c,n.l):n.h||n.s?vw("hsl",n.h,n.s,n.l):n.l||n.a?vw("lab",n.l,n.a,n.b):n.r||n.g||n.b?vw("rgb",n.r,n.g,n.b):null}(e.color):e.field!=null?TO(e.field):e.value!==void 0?st(e.value):void 0;return e.scale!=null&&(t=function(n,a){let r=AO(n.scale);return n.range!=null?a=`lerp(_range(${r}), ${+n.range})`:(a!==void 0&&(a=`_scale(${r}, ${a})`),n.band&&(a=(a?a+"+":"")+`_bandwidth(${r})`+(+n.band==1?"":"*"+Ew(n.band)),n.extra&&(a=`(datum.extra ? _scale(${r}, datum.extra.value) : ${a})`)),a==null&&(a="0")),a}(e,t)),t===void 0&&(t=null),e.exponent!=null&&(t=`pow(${t},${Ew(e.exponent)})`),e.mult!=null&&(t+=`*${Ew(e.mult)}`),e.offset!=null&&(t+=`+${Ew(e.offset)}`),e.round&&(t=`round(${t})`),t}let vw=(e,t,n,a)=>`(${e}(${[t,n,a].map(yw).join(",")})+'')`;function Ew(e){return ye(e)?"("+yw(e)+")":e}function TO(e){return CO(ye(e)?e:{datum:e})}function CO(e){let t,n,a;if(e.signal)t="datum",a=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(a=e.parent,t+=".datum"):a=e.group}else e.datum?(t="datum",a=e.datum):F("Invalid field reference: "+st(e));return e.signal||(a=Ft(a)?j(a).map(st).join("]["):CO(a)),t+"["+a+"]"}function RO(e,t,n,a,r,i){let o={};(i=i||{}).encoders={$encode:o},e=function(u,c,f,m,g){let v={},E={},k,_,R,I;for(_ in _="lineBreak",c!=="text"||g[_]==null||th(_,u)||FS(v,_,g[_]),(f=="legend"||String(f).startsWith("axis"))&&(f=null),I=f===MS?g.group:f===DS?mt({},g.mark,g[c]):null,I)R=th(_,u)||(_==="fill"||_==="stroke")&&(th("fill",u)||th("stroke",u)),R||FS(v,_,I[_]);for(_ in Ne(m).forEach(N=>{let P=g.style&&g.style[N];for(let M in P)th(M,u)||FS(v,M,P[M])}),u=mt({},u),v)I=v[_],I.signal?(k=k||{})[_]=I:E[_]=I;return u.enter=mt(E,u.enter),k&&(u.update=mt(k,u.update)),u}(e,t,n,a,r.config);for(let u in e)o[u]=cU(e[u],t,i,r);return i}function cU(e,t,n,a){let r={},i={};for(let u in e)e[u]!=null&&(r[u]=dU((o=e[u],Ee(o)?function(c){let f="";return c.forEach(m=>{let g=yw(m);f+=m.test?`(${m.test})?${g}:`:g}),$e(f)===":"&&(f+="null"),f}(o):yw(o)),a,n,i));var o;return{$expr:{marktype:t,channels:r},$fields:Object.keys(i),$output:Object.keys(e)}}function dU(e,t,n,a){let r=Ms(e,t);return r.$fields.forEach(i=>a[i]=1),mt(n,r.$params),r.$expr}let fU="outer",pU=["value","update","init","react","bind"];function NO(e,t){F(e+' for "outer" push: '+st(t))}function IO(e,t){let n=e.name;if(e.push===fU)t.signals[n]||NO("No prior signal definition",n),pU.forEach(a=>{e[a]!==void 0&&NO("Invalid property ",a)});else{let a=t.addSignal(n,e.value);e.react===!1&&(a.react=!1),e.bind&&t.addBinding(n,e.bind)}}function PS(e,t,n,a){this.id=-1,this.type=e,this.value=t,this.params=n,a&&(this.parent=a)}function ww(e,t,n,a){return new PS(e,t,n,a)}function _w(e,t){return ww("operator",e,t)}function pt(e){let t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function Xb(e,t){return t?{$field:e,$name:t}:{$field:e}}let $S=Xb("key");function OO(e,t){return{$compare:e,$order:t}}let hU="descending";function kw(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}let BS="scope",US="view";function ua(e){return e&&e.signal}function xw(e){if(ua(e))return!0;if(ye(e)){for(let t in e)if(xw(e[t]))return!0}return!1}function Wo(e,t){return e??t}function kd(e){return e&&e.signal||e}let DO="timer";function Zb(e,t){return(e.merge?mU:e.stream?gU:e.type?bU:F("Invalid stream specification: "+st(e)))(e,t)}function mU(e,t){let n=zS({merge:e.merge.map(a=>Zb(a,t))},e,t);return t.addStream(n).id}function gU(e,t){let n=zS({stream:Zb(e.stream,t)},e,t);return t.addStream(n).id}function bU(e,t){let n;e.type===DO?(n=t.event(DO,e.throttle),e={between:e.between,filter:e.filter}):n=t.event(function(r){return r===BS?US:r||US}(e.source),e.type);let a=zS({stream:n},e,t);return Object.keys(a).length===1?n:t.addStream(a).id}function zS(e,t,n){let a=t.between;return a&&(a.length!==2&&F('Stream "between" parameter must have 2 entries: '+st(t)),e.between=[Zb(a[0],n),Zb(a[1],n)]),a=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&a.push(function(r,i,o){let u="event.item";return u+(r&&r!=="*"?"&&"+u+".mark.marktype==='"+r+"'":"")+(o?"&&"+u+".mark.role==='"+o+"'":"")+(i?"&&"+u+".mark.name==='"+i+"'":"")}(t.marktype,t.markname,t.markrole)),t.source===BS&&a.push("inScope(event.item)"),a.length&&(e.filter=Ms("("+a.join(")&&(")+")",n).$expr),(a=t.throttle)!=null&&(e.throttle=+a),(a=t.debounce)!=null&&(e.debounce=+a),t.consume&&(e.consume=!0),e}let yU={code:"_.$value",ast:{type:"Identifier",value:"value"}};function vU(e,t,n){let a=e.encode,r={target:n},i=e.events,o=e.update,u=[];i||F("Signal update missing events specification."),Ft(i)&&(i=_O(i,t.isSubscope()?BS:US)),i=Ne(i).filter(c=>c.signal||c.scale?(u.push(c),0):1),u.length>1&&(u=[EU(u)]),i.length&&u.push(i.length>1?{merge:i}:i[0]),a!=null&&(o&&F("Signal encode and update are mutually exclusive."),o="encode(item(),"+st(a)+")"),r.update=Ft(o)?Ms(o,t):o.expr!=null?Ms(o.expr,t):o.value!=null?o.value:o.signal!=null?{$expr:yU,$params:{$value:t.signalRef(o.signal)}}:F("Invalid signal update specification."),e.force&&(r.options={force:!0}),u.forEach(c=>t.addUpdate(mt(function(f,m){return{source:f.signal?m.signalRef(f.signal):f.scale?m.scaleRef(f.scale):Zb(f,m)}}(c,t),r)))}function EU(e){return{signal:"["+e.map(t=>t.scale?'scale("'+t.scale+'")':t.signal)+"]"}}let an=e=>(t,n,a)=>ww(e,n,t||void 0,a),MO=an("aggregate"),wU=an("axisticks"),LO=an("bound"),Vo=an("collect"),FO=an("compare"),_U=an("datajoin"),PO=an("encode"),kU=an("expression"),xU=an("facet"),SU=an("field"),AU=an("key"),TU=an("legendentries"),CU=an("load"),RU=an("mark"),NU=an("multiextent"),IU=an("multivalues"),OU=an("overlap"),DU=an("params"),$O=an("prefacet"),MU=an("projection"),LU=an("proxy"),FU=an("relay"),BO=an("render"),PU=an("scale"),xd=an("sieve"),$U=an("sortitems"),UO=an("viewlayout"),BU=an("values"),UU=0,zO={min:"min",max:"max",count:"sum"};function zU(e,t){let n=t.getScale(e.name).params,a;for(a in n.domain=GO(e.domain,e,t),e.range!=null&&(n.range=HO(e,t,n)),e.interpolate!=null&&function(r,i){i.interpolate=io(r.type||r),r.gamma!=null&&(i.interpolateGamma=io(r.gamma))}(e.interpolate,n),e.nice!=null&&(n.nice=function(r){return ye(r)?{interval:io(r.interval),step:io(r.step)}:io(r)}(e.nice)),e.bins!=null&&(n.bins=function(r,i){return r.signal||Ee(r)?Sw(r,i):i.objectProperty(r)}(e.bins,t)),e)nt(n,a)||a==="name"||(n[a]=io(e[a],t))}function io(e,t){return ye(e)?e.signal?t.signalRef(e.signal):F("Unsupported object: "+st(e)):e}function Sw(e,t){return e.signal?t.signalRef(e.signal):e.map(n=>io(n,t))}function Aw(e){F("Can not find data set: "+st(e))}function GO(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(Ee(e)?GU:e.fields?HU:jU)(e,t,n);t.domainMin==null&&t.domainMax==null||F("No scale domain defined for domainMin/domainMax to override.")}function GU(e,t,n){return e.map(a=>io(a,n))}function jU(e,t,n){let a=n.getData(e.data);return a||Aw(e.data),Su(t.type)?a.valuesRef(n,e.field,jO(e.sort,!1)):bv(t.type)?a.domainRef(n,e.field):a.extentRef(n,e.field)}function HU(e,t,n){let a=e.data,r=e.fields.reduce((i,o)=>(o=Ft(o)?{data:a,field:o}:Ee(o)||o.signal?function(u,c){let f="_:vega:_"+UU++,m=Vo({});if(Ee(u))m.value={$ingest:u};else if(u.signal){let g="setdata("+st(f)+","+u.signal+")";m.params.input=c.signalRef(g)}return c.addDataPipeline(f,[m,xd({})]),{data:f,field:"data"}}(o,n):o,i.push(o),i),[]);return(Su(t.type)?qU:bv(t.type)?WU:VU)(e,n,r)}function qU(e,t,n){let a=jO(e.sort,!0),r,i,o=n.map(f=>{let m=t.getData(f.data);return m||Aw(f.data),m.countsRef(t,f.field,a)}),u={groupby:$S,pulse:o};a&&(r=a.op||"count",i=a.field?kw(r,a.field):"count",u.ops=[zO[r]],u.fields=[t.fieldRef(i)],u.as=[i]),r=t.add(MO(u));let c=t.add(Vo({pulse:pt(r)}));return i=t.add(BU({field:$S,sort:t.sortRef(a),pulse:pt(c)})),pt(i)}function jO(e,t){return e&&(e.field||e.op?e.field||e.op==="count"?t&&e.field&&e.op&&!zO[e.op]&&F("Multiple domain scales can not be sorted using "+e.op):F("No field provided for sort aggregate op: "+e.op):ye(e)?e.field="key":e={field:"key"}),e}function WU(e,t,n){let a=n.map(r=>{let i=t.getData(r.data);return i||Aw(r.data),i.domainRef(t,r.field)});return pt(t.add(IU({values:a})))}function VU(e,t,n){let a=n.map(r=>{let i=t.getData(r.data);return i||Aw(r.data),i.extentRef(t,r.field)});return pt(t.add(NU({extents:a})))}function HO(e,t,n){let a=t.config.range,r=e.range;if(r.signal)return t.signalRef(r.signal);if(Ft(r)){if(a&&nt(a,r))return HO(e=mt({},e,{range:a[r]}),t,n);r==="width"?r=[0,{signal:"width"}]:r==="height"?r=Su(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:F("Unrecognized scale range value: "+st(r))}else{if(r.scheme)return n.scheme=Ee(r.scheme)?Sw(r.scheme,t):io(r.scheme,t),r.extent&&(n.schemeExtent=Sw(r.extent,t)),void(r.count&&(n.schemeCount=io(r.count,t)));if(r.step)return void(n.rangeStep=io(r.step,t));if(Su(e.type)&&!Ee(r))return GO(r,e,t);Ee(r)||F("Unsupported range type: "+st(r))}return r.map(i=>(Ee(i)?Sw:io)(i,t))}function GS(e,t,n){return Ee(e)?e.map(a=>GS(a,t,n)):ye(e)?e.signal?n.signalRef(e.signal):t==="fit"?e:F("Unsupported parameter object: "+st(e)):e}let Yo="top",nh="left",ah="right",Wu="bottom",qO="center",YU="vertical",KU="start",XU="end",jS="index",HS="label",ZU="offset",rh="perc",JU="perc2",oo="value",Jb="guide-label",qS="guide-title",QU="group-title",e3="group-subtitle",WO="symbol",Tw="gradient",WS="discrete",VS="size",YS=[VS,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],Qb={name:1,style:1,interactive:1},zt={value:0},so={value:1},Cw="group",VO="rect",KS="rule",t3="symbol",Sd="text";function e0(e){return e.type=Cw,e.interactive=e.interactive||!1,e}function Wr(e,t){let n=(a,r)=>Wo(e[a],Wo(t[a],r));return n.isVertical=a=>YU===Wo(e.direction,t.direction||(a?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>Wo(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>Wo(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>Wo(e.columns,Wo(t.columns,+n.isVertical(!0))),n}function YO(e,t){let n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function Rw(e,t,n){return`item.anchor === '${KU}' ? ${e} : item.anchor === '${XU}' ? ${t} : ${n}`}let XS=Rw(st(nh),st(ah),st(qO));function KO(e,t){return t?e?ye(e)?Object.assign({},e,{offset:KO(e.offset,t)}):{value:e,offset:t}:t:e}function _i(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=eh(e.encode,t,Qb)):e.interactive=!1,e}function n3(e,t,n,a){let r=Wr(e,n),i=r.isVertical(),o=r.gradientThickness(),u=r.gradientLength(),c,f,m,g,v;i?(f=[0,1],m=[0,0],g=o,v=u):(f=[0,0],m=[1,0],g=u,v=o);let E={enter:c={opacity:zt,x:zt,y:zt,width:va(g),height:va(v)},update:mt({},c,{opacity:so,fill:{gradient:t,start:f,stop:m}}),exit:{opacity:zt}};return Fa(E,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),_i({type:VO,role:rU,encode:E},a)}function a3(e,t,n,a,r){let i=Wr(e,n),o=i.isVertical(),u=i.gradientThickness(),c=i.gradientLength(),f,m,g,v,E="";o?(f="y",g="y2",m="x",v="width",E="1-"):(f="x",g="x2",m="y",v="height");let k={opacity:zt,fill:{scale:t,field:oo}};k[f]={signal:E+"datum."+rh,mult:c},k[m]=zt,k[g]={signal:E+"datum."+JU,mult:c},k[v]=va(u);let _={enter:k,update:mt({},k,{opacity:so}),exit:{opacity:zt}};return Fa(_,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),_i({type:VO,role:nU,key:oo,from:r,encode:_},a)}let r3=`datum.${rh}<=0?"${nh}":datum.${rh}>=1?"${ah}":"${qO}"`,i3=`datum.${rh}<=0?"${Wu}":datum.${rh}>=1?"${Yo}":"middle"`;function XO(e,t,n,a){let r=Wr(e,t),i=r.isVertical(),o=va(r.gradientThickness()),u=r.gradientLength(),c,f,m,g,v=r("labelOverlap"),E="",k={enter:c={opacity:zt},update:f={opacity:so,text:{field:HS}},exit:{opacity:zt}};return Fa(k,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:Wo(e.labelLimit,t.gradientLabelLimit)}),i?(c.align={value:"left"},c.baseline=f.baseline={signal:i3},m="y",g="x",E="1-"):(c.align=f.align={signal:r3},c.baseline={value:"top"},m="x",g="y"),c[m]=f[m]={signal:E+"datum."+rh,mult:u},c[g]=f[g]=o,o.offset=Wo(e.labelOffset,t.gradientLabelOffset)||0,v=v?{separation:r("labelSeparation"),method:v,order:"datum."+jS}:void 0,_i({type:Sd,role:SO,style:Jb,key:oo,from:a,encode:k,overlap:v},n)}function o3(e,t,n,a,r){let i=Wr(e,t),o=n.entries,u=!(!o||!o.interactive),c=o?o.name:void 0,f=i("clipHeight"),m=i("symbolOffset"),g={data:"value"},v=`(${r}) ? datum.${ZU} : datum.${VS}`,E=f?va(f):{field:VS},k=`datum.${jS}`,_=`max(1, ${r})`,R,I,N,P,M;E.mult=.5,R={enter:I={opacity:zt,x:{signal:v,mult:.5,offset:m},y:E},update:N={opacity:so,x:I.x,y:I.y},exit:{opacity:zt}};let U=null,z=null;e.fill||(U=t.symbolBaseFillColor,z=t.symbolBaseStrokeColor),Fa(R,{fill:i("symbolFillColor",U),shape:i("symbolType"),size:i("symbolSize"),stroke:i("symbolStrokeColor",z),strokeDash:i("symbolDash"),strokeDashOffset:i("symbolDashOffset"),strokeWidth:i("symbolStrokeWidth")},{opacity:i("symbolOpacity")}),YS.forEach(ne=>{e[ne]&&(N[ne]=I[ne]={scale:e[ne],field:oo})});let q=_i({type:t3,role:iU,key:oo,from:g,clip:!!f||void 0,encode:R},n.symbols),Y=va(m);Y.offset=i("labelOffset"),R={enter:I={opacity:zt,x:{signal:v,offset:Y},y:E},update:N={opacity:so,text:{field:HS},x:I.x,y:I.y},exit:{opacity:zt}},Fa(R,{align:i("labelAlign"),baseline:i("labelBaseline"),fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:i("labelLimit")});let K=_i({type:Sd,role:SO,style:Jb,key:oo,from:g,encode:R},n.labels);return R={enter:{noBound:{value:!f},width:zt,height:f?va(f):zt,opacity:zt},exit:{opacity:zt},update:N={opacity:so,row:{signal:null},column:{signal:null}}},i.isVertical(!0)?(P=`ceil(item.mark.items.length / ${_})`,N.row.signal=`${k}%${P}`,N.column.signal=`floor(${k} / ${P})`,M={field:["row",k]}):(N.row.signal=`floor(${k} / ${_})`,N.column.signal=`${k} % ${_}`,M={field:k}),N.column.signal=`(${r})?${N.column.signal}:${k}`,e0({role:LS,from:a={facet:{data:a,name:"value",groupby:jS}},encode:eh(R,o,Qb),marks:[q,K],name:c,interactive:u,sort:M})}let ZS='item.orient === "left"',JS='item.orient === "right"',Nw=`(${ZS} || ${JS})`,s3=`datum.vgrad && ${Nw}`,l3=Rw('"top"','"bottom"','"middle"'),u3=`datum.vgrad && ${JS} ? (${Rw('"right"','"left"','"center"')}) : (${Nw} && !(datum.vgrad && ${ZS})) ? "left" : ${XS}`,c3=`item._anchor || (${Nw} ? "middle" : "start")`,d3=`${s3} ? (${ZS} ? -90 : 90) : 0`,f3=`${Nw} ? (datum.vgrad ? (${JS} ? "bottom" : "top") : ${l3}) : "top"`;function p3(e,t){let n;return ye(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+ZO(e.path)+")":e.sphere&&(n="geoShape("+ZO(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function ZO(e){return ye(e)&&e.signal?e.signal:st(e)}function JO(e){let t=e.role||"";return t.indexOf("axis")&&t.indexOf("legend")&&t.indexOf("title")?e.type===Cw?LS:t||DS:t}function h3(e){return{marktype:e.type,name:e.name||void 0,role:e.role||JO(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function m3(e,t){return e&&e.signal?t.signalRef(e.signal):e!==!1}function QS(e,t){let n=im(e.type);n||F("Unrecognized transform type: "+st(e.type));let a=ww(n.type.toLowerCase(),null,QO(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(a)),a.metadata=n.metadata||{},a}function QO(e,t,n){let a={},r=e.params.length;for(let i=0;i<r;++i){let o=e.params[i];a[o.name]=g3(o,t,n)}return a}function g3(e,t,n){let a=e.type,r=t[e.name];return a==="index"?function(i,o,u){return Ft(o.from)||F('Lookup "from" parameter must be a string literal.'),u.getData(o.from).lookupRef(u,o.key)}(0,t,n):r!==void 0?a==="param"?function(i,o,u){let c=o[i.name];return i.array?(Ee(c)||F("Expected an array of sub-parameters. Instead: "+st(c)),c.map(f=>tD(i,f,u))):tD(i,c,u)}(e,t,n):a==="projection"?n.projectionRef(t[e.name]):e.array&&!ua(r)?r.map(i=>eD(e,i,n)):eD(e,r,n):void(e.required&&F("Missing required "+st(t.type)+" parameter: "+st(e.name)))}function eD(e,t,n){let a=e.type;if(ua(t))return nD(a)?F("Expression references can not be signals."):eA(a)?n.fieldRef(t):aD(a)?n.compareRef(t):n.signalRef(t.signal);{let r=e.expr||eA(a);return r&&b3(t)?n.exprRef(t.expr,t.as):r&&y3(t)?Xb(t.field,t.as):nD(a)?Ms(t,n):v3(a)?pt(n.getData(t).values):eA(a)?Xb(t):aD(a)?n.compareRef(t):t}}function tD(e,t,n){let a=e.params.length,r;for(let o=0;o<a;++o){r=e.params[o];for(let u in r.key)if(r.key[u]!==t[u]){r=null;break}if(r)break}r||F("Unsupported parameter: "+st(t));let i=mt(QO(r,t,n),r.key);return pt(n.add(DU(i)))}let b3=e=>e&&e.expr,y3=e=>e&&e.field,v3=e=>e==="data",nD=e=>e==="expr",eA=e=>e==="field",aD=e=>e==="compare";function Iw(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:pt(t.getData(e.data).output)}function Ad(e,t,n,a,r){this.scope=e,this.input=t,this.output=n,this.values=a,this.aggregate=r,this.index={}}function rD(e){return Ft(e)?e:null}function iD(e,t,n){let a=kw(n.op,n.field),r;if(t.ops){for(let i=0,o=t.as.length;i<o;++i)if(t.as[i]===a)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((r=n.op.signal)?e.signalRef(r):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(a))}function t0(e,t,n,a,r,i,o){let u=t[n]||(t[n]={}),c=function(v){return ye(v)?(v.order===hU?"-":"+")+kw(v.op,v.field):""}(i),f,m,g=rD(r);if(g!=null&&(e=t.scope,g+=c?"|"+c:"",f=u[g]),!f){let v=i?{field:$S,pulse:t.countsRef(e,r,i)}:{field:e.fieldRef(r),pulse:pt(t.output)};c&&(v.sort=e.sortRef(i)),m=e.add(ww(a,void 0,v)),o&&(t.index[r]=m),f=pt(m),g!=null&&(u[g]=f)}return f}function oD(e,t,n){let a=e.remove,r=e.insert,i=e.toggle,o=e.modify,u=e.values,c=t.add(_w()),f=Ms("if("+e.trigger+',modify("'+n+'",'+[r,a,i,o,u].map(m=>m??"null").join(",")+"),0)",t);c.update=f.$expr,c.params=f.$params}function Ow(e,t){let n=JO(e),a=e.type===Cw,r=e.from&&e.from.facet,i=e.overlap,o,u,c,f,m,g,v,E=e.layout||n===LS||n===MS,k=n===DS||E||r,_=function(z,q,Y){let K,ne,J,re,oe;return z?(K=z.facet)&&(q||F("Only group marks can be faceted."),K.field!=null?re=oe=Iw(K,Y):(z.data?oe=pt(Y.getData(z.data).aggregate):(J=QS(mt({type:"aggregate",groupby:Ne(K.groupby)},K.aggregate),Y),J.params.key=Y.keyRef(K.groupby),J.params.pulse=Iw(K,Y),re=oe=pt(Y.add(J))),ne=Y.keyRef(K.groupby,!0))):re=pt(Y.add(Vo(null,[{}]))),re||(re=Iw(z,Y)),{key:ne,pulse:re,parent:oe}}(e.from,a,t);u=t.add(_U({key:_.key||(e.key?Xb(e.key):void 0),pulse:_.pulse,clean:!a}));let R=pt(u);u=c=t.add(Vo({pulse:R})),u=t.add(RU({markdef:h3(e),interactive:m3(e.interactive,t),clip:p3(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:pt(u)}));let I=pt(u);u=f=t.add(PO(RO(e.encode,e.type,n,e.style,t,{mod:!1,pulse:I}))),u.params.parent=t.encode(),e.transform&&e.transform.forEach(z=>{let q=QS(z,t),Y=q.metadata;(Y.generates||Y.changes)&&F("Mark transforms should not generate new data."),Y.nomod||(f.params.mod=!0),q.params.pulse=pt(u),t.add(u=q)}),e.sort&&(u=t.add($U({sort:t.compareRef(e.sort),pulse:pt(u)})));let N=pt(u);(r||E)&&(E=t.add(UO({layout:t.objectProperty(e.layout),legends:t.legends,mark:I,pulse:N})),g=pt(E));let P=t.add(LO({mark:I,pulse:g||N}));v=pt(P),a&&(k&&(o=t.operators,o.pop(),E&&o.pop()),t.pushState(N,g||v,R),r?function(z,q,Y){let K=z.from.facet,ne=K.name,J=Iw(K,q),re;K.name||F("Facet must have a name: "+st(K)),K.data||F("Facet must reference a data set: "+st(K)),K.field?re=q.add($O({field:q.fieldRef(K.field),pulse:J})):K.groupby?re=q.add(xU({key:q.keyRef(K.groupby),group:pt(q.proxy(Y.parent)),pulse:J})):F("Facet must specify groupby or field: "+st(K));let oe=q.fork(),ue=oe.add(Vo()),ce=oe.add(xd({pulse:pt(ue)}));oe.addData(ne,new Ad(oe,ue,ue,ce)),oe.addSignal("parent",null),re.params.subflow={$subflow:oe.parse(z).toRuntime()}}(e,t,_):k?function(z,q,Y){let K=q.add($O({pulse:Y.pulse})),ne=q.fork();ne.add(xd()),ne.addSignal("parent",null),K.params.subflow={$subflow:ne.parse(z).toRuntime()}}(e,t,_):t.parse(e),t.popState(),k&&(E&&o.push(E),o.push(P))),i&&(v=function(z,q,Y){let K=z.method,ne=z.bound,J=z.separation,re={separation:ua(J)?Y.signalRef(J.signal):J,method:ua(K)?Y.signalRef(K.signal):K,pulse:q};if(z.order&&(re.sort=Y.compareRef({field:z.order})),ne){let oe=ne.tolerance;re.boundTolerance=ua(oe)?Y.signalRef(oe.signal):+oe,re.boundScale=Y.scaleRef(ne.scale),re.boundOrient=ne.orient}return pt(Y.add(OU(re)))}(i,v,t));let M=t.add(BO({pulse:v})),U=t.add(xd({pulse:pt(M)},void 0,t.parent()));e.name!=null&&(m=e.name,t.addData(m,new Ad(t,c,M,U)),e.on&&e.on.forEach(z=>{(z.insert||z.remove||z.toggle)&&F("Marks only support modify triggers."),oD(z,t,m)}))}function E3(e,t){let n=t.config.legend,a=e.encode||{},r=Wr(e,n),i=a.legend||{},o=i.name||void 0,u=i.interactive,c=i.style,f={},m,g,v,E=0;YS.forEach(N=>e[N]?(f[N]=e[N],E=E||e[N]):0),E||F("Missing valid scale for legend.");let k=function(N,P){let M=N.type||WO;return N.type||function(U){return YS.reduce((z,q)=>z+(U[q]?1:0),0)}(N)!==1||!N.fill&&!N.stroke||(M=zg(P)?Tw:Gg(P)?WS:WO),M!==Tw?M:Gg(P)?WS:Tw}(e,t.scaleType(E)),_={title:e.title!=null,scales:f,type:k,vgrad:k!=="symbol"&&r.isVertical()},R=pt(t.add(Vo(null,[_]))),I=pt(t.add(TU(g={type:k,scale:t.scaleRef(E),count:t.objectProperty(r("tickCount")),limit:t.property(r("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return k===Tw?(v=[n3(e,E,n,a.gradient),XO(e,n,a.labels,I)],g.count=g.count||t.signalRef(`max(2,2*floor((${kd(r.gradientLength())})/100))`)):k===WS?v=[a3(e,E,n,a.gradient,I),XO(e,n,a.labels,I)]:(m=function(N,P){let M=Wr(N,P);return{align:M("gridAlign"),columns:M.entryColumns(),center:{row:!0,column:!1},padding:{row:M("rowPadding"),column:M("columnPadding")}}}(e,n),v=[o3(e,n,a,I,kd(m.columns))],g.size=function(N,P,M){let U=kd(sD("size",N,M)),z=kd(sD("strokeWidth",N,M)),q=kd(function(Y,K,ne){return YO("fontSize",Y)||function(J,re,oe){let ue=re.config.style[oe];return ue&&ue[J]}("fontSize",K,ne)}(M[1].encode,P,Jb));return Ms(`max(ceil(sqrt(${U})+${z}),${q})`,P)}(e,t,v[0].marks)),v=[e0({role:aU,from:R,encode:{enter:{x:{value:0},y:{value:0}}},marks:v,layout:m,interactive:u})],_.title&&v.push(function(N,P,M,U){let z=Wr(N,P),q={enter:{opacity:zt},update:{opacity:so,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:zt}};return Fa(q,{orient:z("titleOrient"),_anchor:z("titleAnchor"),anchor:{signal:c3},angle:{signal:d3},align:{signal:u3},baseline:{signal:f3},text:N.title,fill:z("titleColor"),fillOpacity:z("titleOpacity"),font:z("titleFont"),fontSize:z("titleFontSize"),fontStyle:z("titleFontStyle"),fontWeight:z("titleFontWeight"),limit:z("titleLimit"),lineHeight:z("titleLineHeight")},{align:z("titleAlign"),baseline:z("titleBaseline")}),_i({type:Sd,role:oU,style:qS,from:U,encode:q},M)}(e,n,a.title,R)),Ow(e0({role:tU,from:R,encode:eh(w3(r,e,n),i,Qb),marks:v,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:o,interactive:u,style:c}),t)}function w3(e,t,n){let a={enter:{},update:{}};return Fa(a,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),a}function sD(e,t,n){return t[e]?`scale("${t[e]}",datum)`:YO(e,n[0].encode)}Ad.fromEntries=function(e,t){let n=t.length,a=t[n-1],r=t[n-2],i=t[0],o=null,u=1;for(i&&i.type==="load"&&(i=t[1]),e.add(t[0]);u<n;++u)t[u].params.pulse=pt(t[u-1]),e.add(t[u]),t[u].type==="aggregate"&&(o=t[u]);return new Ad(e,i,r,a,o)},Ad.prototype={countsRef(e,t,n){let a=this,r=a.counts||(a.counts={}),i=rD(t),o,u,c;return i!=null&&(e=a.scope,o=r[i]),o?n&&n.field&&iD(e,o.agg.params,n):(c={groupby:e.fieldRef(t,"key"),pulse:pt(a.output)},n&&n.field&&iD(e,c,n),u=e.add(MO(c)),o=e.add(Vo({pulse:pt(u)})),o={agg:u,ref:pt(o)},i!=null&&(r[i]=o)),o.ref},tuplesRef(){return pt(this.values)},extentRef(e,t){return t0(e,this,"extent","extent",t,!1)},domainRef(e,t){return t0(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return t0(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return t0(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return t0(e,this,"indata","tupleindex",t,!0,!0)}};let _3=`item.orient==="${nh}"?-90:item.orient==="${ah}"?90:0`;function k3(e,t){let n=Wr(e=Ft(e)?{text:e}:e,t.config.title),a=e.encode||{},r=a.group||{},i=r.name||void 0,o=r.interactive,u=r.style,c=[],f=pt(t.add(Vo(null,[{}])));return c.push(function(m,g,v,E){let k={value:0},_=m.text,R={enter:{opacity:k},update:{opacity:{value:1}},exit:{opacity:k}};return Fa(R,{text:_,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:g("dx"),dy:g("dy"),fill:g("color"),font:g("font"),fontSize:g("fontSize"),fontStyle:g("fontStyle"),fontWeight:g("fontWeight"),lineHeight:g("lineHeight")},{align:g("align"),angle:g("angle"),baseline:g("baseline")}),_i({type:Sd,role:lU,style:QU,from:E,encode:R},v)}(e,n,function(m){let g=m.encode;return g&&g.title||mt({name:m.name,interactive:m.interactive,style:m.style},g)}(e),f)),e.subtitle&&c.push(function(m,g,v,E){let k={value:0},_=m.subtitle,R={enter:{opacity:k},update:{opacity:{value:1}},exit:{opacity:k}};return Fa(R,{text:_,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:g("dx"),dy:g("dy"),fill:g("subtitleColor"),font:g("subtitleFont"),fontSize:g("subtitleFontSize"),fontStyle:g("subtitleFontStyle"),fontWeight:g("subtitleFontWeight"),lineHeight:g("subtitleLineHeight")},{align:g("align"),angle:g("angle"),baseline:g("baseline")}),_i({type:Sd,role:uU,style:e3,from:E,encode:R},v)}(e,n,a.subtitle,f)),Ow(e0({role:sU,from:f,encode:x3(n,r),marks:c,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:i,interactive:o,style:u}),t)}function x3(e,t){let n={enter:{},update:{}};return Fa(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:XS},angle:{signal:_3},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),eh(n,t,Qb)}function S3(e,t){let n=[];e.transform&&e.transform.forEach(a=>{n.push(QS(a,t))}),e.on&&e.on.forEach(a=>{oD(a,t,e.name)}),t.addDataPipeline(e.name,function(a,r,i){let o=[],u,c,f,m,g,v=null,E=!1,k=!1;for(a.values?ua(a.values)||xw(a.format)?(o.push(lD(r,a)),o.push(v=Td())):o.push(v=Td({$ingest:a.values,$format:a.format})):a.url?xw(a.url)||xw(a.format)?(o.push(lD(r,a)),o.push(v=Td())):o.push(v=Td({$request:a.url,$format:a.format})):a.source&&(v=u=Ne(a.source).map(_=>pt(r.getData(_).output)),o.push(null)),c=0,f=i.length;c<f;++c)m=i[c],g=m.metadata,v||g.source||o.push(v=Td()),o.push(m),g.generates&&(k=!0),g.modifies&&!k&&(E=!0),g.source?v=m:g.changes&&(v=null);return u&&(f=u.length-1,o[0]=FU({derive:E,pulse:f?u:u[0]}),(E||f)&&o.splice(1,0,Td())),v||o.push(Td()),o.push(xd({})),o}(e,t,n))}function Td(e){let t=Vo({},e);return t.metadata={source:!0},t}function lD(e,t){return CU({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}let uD=e=>e===Wu||e===Yo,Dw=(e,t,n)=>ua(e)?R3(e.signal,t,n):e===nh||e===Yo?t:n,Ea=(e,t,n)=>ua(e)?T3(e.signal,t,n):uD(e)?t:n,Ko=(e,t,n)=>ua(e)?C3(e.signal,t,n):uD(e)?n:t,cD=(e,t,n)=>ua(e)?N3(e.signal,t,n):e===Yo?{value:t}:{value:n},A3=(e,t,n)=>ua(e)?I3(e.signal,t,n):e===ah?{value:t}:{value:n},T3=(e,t,n)=>dD(`${e} === '${Yo}' || ${e} === '${Wu}'`,t,n),C3=(e,t,n)=>dD(`${e} !== '${Yo}' && ${e} !== '${Wu}'`,t,n),R3=(e,t,n)=>tA(`${e} === '${nh}' || ${e} === '${Yo}'`,t,n),N3=(e,t,n)=>tA(`${e} === '${Yo}'`,t,n),I3=(e,t,n)=>tA(`${e} === '${ah}'`,t,n),dD=(e,t,n)=>(t=t!=null?va(t):t,n=n!=null?va(n):n,fD(t)&&fD(n)?{signal:`${e} ? (${t=t?t.signal||st(t.value):null}) : (${n=n?n.signal||st(n.value):null})`}:[mt({test:e},t)].concat(n||[])),fD=e=>e==null||Object.keys(e).length===1,tA=(e,t,n)=>({signal:`${e} ? (${ih(t)}) : (${ih(n)})`}),O3=(e,t,n,a,r)=>({signal:(a!=null?`${e} === '${nh}' ? (${ih(a)}) : `:"")+(n!=null?`${e} === '${Wu}' ? (${ih(n)}) : `:"")+(r!=null?`${e} === '${ah}' ? (${ih(r)}) : `:"")+(t!=null?`${e} === '${Yo}' ? (${ih(t)}) : `:"")+"(null)"}),ih=e=>ua(e)?e.signal:e==null?null:st(e),D3=(e,t)=>t===0?0:ua(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},oh=(e,t)=>{let n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function sh(e,t,n,a){let r;if(t&&nt(t,e))return t[e];if(nt(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":r="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":r=e[5].toLowerCase()+e.slice(6)}return a[qS][r]}if(e.startsWith("label")){switch(e){case"labelColor":r="fill";break;case"labelFont":case"labelFontSize":r=e[5].toLowerCase()+e.slice(6)}return a[Jb][r]}return null}function pD(e){let t={};for(let n of e)if(n)for(let a in n)t[a]=1;return Object.keys(t)}function hD(e,t){return{scale:e.scale,range:t}}function M3(e,t,n,a,r){let i=Wr(e,t),o=e.orient,u=e.gridScale,c=Dw(o,1,-1),f=function(N,P){if(P!==1)if(ye(N)){let M=N=mt({},N);for(;M.mult!=null;){if(!ye(M.mult))return M.mult=ua(P)?{signal:`(${M.mult}) * (${P.signal})`}:M.mult*P,N;M=M.mult=mt({},M.mult)}M.mult=P}else N=ua(P)?{signal:`(${P.signal}) * (${N||0})`}:P*(N||0);return N}(e.offset,c),m,g,v,E={enter:m={opacity:zt},update:v={opacity:so},exit:g={opacity:zt}};Fa(E,{stroke:i("gridColor"),strokeCap:i("gridCap"),strokeDash:i("gridDash"),strokeDashOffset:i("gridDashOffset"),strokeOpacity:i("gridOpacity"),strokeWidth:i("gridWidth")});let k={scale:e.scale,field:oo,band:r.band,extra:r.extra,offset:r.offset,round:i("tickRound")},_=Ea(o,{signal:"height"},{signal:"width"}),R=u?{scale:u,range:0,mult:c,offset:f}:{value:0,offset:f},I=u?{scale:u,range:1,mult:c,offset:f}:mt(_,{mult:c,offset:f});return m.x=v.x=Ea(o,k,R),m.y=v.y=Ko(o,k,R),m.x2=v.x2=Ko(o,I),m.y2=v.y2=Ea(o,I),g.x=Ea(o,k),g.y=Ko(o,k),_i({type:KS,role:ZB,key:oo,from:a,encode:E},n)}function nA(e,t,n,a,r){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+a+","+r+")"}}function L3(e,t,n,a){let r=Wr(e,t),i=e.orient,o=Dw(i,-1,1),u,c,f={enter:u={opacity:zt,anchor:va(r("titleAnchor",null)),align:{signal:XS}},update:c=mt({},u,{opacity:so,text:va(e.title)}),exit:{opacity:zt}},m={signal:`lerp(range("${e.scale}"), ${Rw(0,1,.5)})`};return c.x=Ea(i,m),c.y=Ko(i,m),u.angle=Ea(i,zt,D3(o,90)),u.baseline=Ea(i,cD(i,Wu,Yo),{value:Wu}),c.angle=u.angle,c.baseline=u.baseline,Fa(f,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")}),function(g,v,E,k){let _=(N,P)=>N!=null?(E.update[P]=oh(va(N),E.update[P]),!1):!th(P,k),R=_(g("titleX"),"x"),I=_(g("titleY"),"y");E.enter.auto=I===R?va(I):Ea(v,va(I),va(R))}(r,i,f,n),f.update.align=oh(f.update.align,u.align),f.update.angle=oh(f.update.angle,u.angle),f.update.baseline=oh(f.update.baseline,u.baseline),_i({type:Sd,role:eU,style:qS,from:a,encode:f},n)}function F3(e,t){let n=function(_,R){var I,N,P,M=R.config,U=M.style,z=M.axis,q=R.scaleType(_.scale)==="band"&&M.axisBand,Y=_.orient;if(ua(Y)){let K=pD([M.axisX,M.axisY]),ne=pD([M.axisTop,M.axisBottom,M.axisLeft,M.axisRight]);for(P of(I={},K))I[P]=Ea(Y,sh(P,M.axisX,z,U),sh(P,M.axisY,z,U));for(P of(N={},ne))N[P]=O3(Y.signal,sh(P,M.axisTop,z,U),sh(P,M.axisBottom,z,U),sh(P,M.axisLeft,z,U),sh(P,M.axisRight,z,U))}else I=Y===Yo||Y===Wu?M.axisX:M.axisY,N=M["axis"+Y[0].toUpperCase()+Y.slice(1)];return I||N||q?mt({},z,I,N,q):z}(e,t),a=e.encode||{},r=a.axis||{},i=r.name||void 0,o=r.interactive,u=r.style,c=Wr(e,n),f=function(_){let R=_("tickBand"),I,N,P=_("tickOffset");return R?R.signal?(I={signal:`(${R.signal}) === 'extent' ? 1 : 0.5`},N={signal:`(${R.signal}) === 'extent'`},ye(P)||(P={signal:`(${R.signal}) === 'extent' ? 0 : ${P}`})):R==="extent"?(I=1,N=!0,P=0):(I=.5,N=!1):(I=_("bandPosition"),N=_("tickExtra")),{extra:N,band:I,offset:P}}(c),m={scale:e.scale,ticks:!!c("ticks"),labels:!!c("labels"),grid:!!c("grid"),domain:!!c("domain"),title:e.title!=null},g=pt(t.add(Vo({},[m]))),v=pt(t.add(wU({scale:t.scaleRef(e.scale),extra:t.property(f.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),E=[],k;return m.grid&&E.push(M3(e,n,a.grid,v,f)),m.ticks&&(k=c("tickSize"),E.push(function(_,R,I,N,P,M){let U=Wr(_,R),z=_.orient,q=Dw(z,-1,1),Y,K,ne,J={enter:Y={opacity:zt},update:ne={opacity:so},exit:K={opacity:zt}};Fa(J,{stroke:U("tickColor"),strokeCap:U("tickCap"),strokeDash:U("tickDash"),strokeDashOffset:U("tickDashOffset"),strokeOpacity:U("tickOpacity"),strokeWidth:U("tickWidth")});let re=va(P);re.mult=q;let oe={scale:_.scale,field:oo,band:M.band,extra:M.extra,offset:M.offset,round:U("tickRound")};return ne.y=Y.y=Ea(z,zt,oe),ne.y2=Y.y2=Ea(z,re),K.x=Ea(z,oe),ne.x=Y.x=Ko(z,zt,oe),ne.x2=Y.x2=Ko(z,re),K.y=Ko(z,oe),_i({type:KS,role:QB,key:oo,from:N,encode:J},I)}(e,n,a.ticks,v,k,f))),m.labels&&(k=m.ticks?k:0,E.push(function(_,R,I,N,P,M){let U=Wr(_,R),z=_.orient,q=_.scale,Y=Dw(z,-1,1),K=kd(U("labelFlush")),ne=kd(U("labelFlushOffset")),J=U("labelAlign"),re=U("labelBaseline"),oe,ue=K===0||!!K,ce=va(P);ce.mult=Y,ce.offset=va(U("labelPadding")||0),ce.offset.mult=Y;let ve={scale:q,field:oo,band:.5,offset:KO(M.offset,U("labelOffset"))},we=Ea(z,ue?nA(q,K,'"left"','"right"','"center"'):{value:"center"},A3(z,"left","right")),Oe=Ea(z,cD(z,"bottom","top"),ue?nA(q,K,'"top"','"bottom"','"middle"'):{value:"middle"}),Ue=nA(q,K,`-(${ne})`,ne,0);ue=ue&&ne;let He={opacity:zt,x:Ea(z,ve,ce),y:Ko(z,ve,ce)},De={enter:He,update:oe={opacity:so,text:{field:HS},x:He.x,y:He.y,align:we,baseline:Oe},exit:{opacity:zt,x:He.x,y:He.y}};Fa(De,{dx:!J&&ue?Ea(z,Ue):null,dy:!re&&ue?Ko(z,Ue):null}),Fa(De,{angle:U("labelAngle"),fill:U("labelColor"),fillOpacity:U("labelOpacity"),font:U("labelFont"),fontSize:U("labelFontSize"),fontWeight:U("labelFontWeight"),fontStyle:U("labelFontStyle"),limit:U("labelLimit"),lineHeight:U("labelLineHeight")},{align:J,baseline:re});let ut=U("labelBound"),ct=U("labelOverlap");return ct=ct||ut?{separation:U("labelSeparation"),method:ct,order:"datum.index",bound:ut?{scale:q,orient:z,tolerance:ut}:null}:void 0,oe.align!==we&&(oe.align=oh(oe.align,we)),oe.baseline!==Oe&&(oe.baseline=oh(oe.baseline,Oe)),_i({type:Sd,role:JB,style:Jb,key:oo,from:N,encode:De,overlap:ct},I)}(e,n,a.labels,v,k,f))),m.domain&&E.push(function(_,R,I,N){let P=Wr(_,R),M=_.orient,U,z,q={enter:U={opacity:zt},update:z={opacity:so},exit:{opacity:zt}};Fa(q,{stroke:P("domainColor"),strokeCap:P("domainCap"),strokeDash:P("domainDash"),strokeDashOffset:P("domainDashOffset"),strokeWidth:P("domainWidth"),strokeOpacity:P("domainOpacity")});let Y=hD(_,0),K=hD(_,1);return U.x=z.x=Ea(M,Y,zt),U.x2=z.x2=Ea(M,K),U.y=z.y=Ko(M,Y,zt),U.y2=z.y2=Ko(M,K),_i({type:KS,role:XB,from:N,encode:q},I)}(e,n,a.domain,g)),m.title&&E.push(L3(e,n,a.title,g)),Ow(e0({role:KB,from:g,encode:eh(P3(c,e),r,Qb),marks:E,aria:c("aria"),description:c("description"),zindex:c("zindex"),name:i,interactive:o,style:u}),t)}function P3(e,t){let n={enter:{},update:{}};return Fa(n,{orient:e("orient"),offset:e("offset")||0,position:Wo(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function mD(e,t,n){let a=Ne(e.signals),r=Ne(e.scales);return n||a.forEach(i=>IO(i,t)),Ne(e.projections).forEach(i=>function(o,u){let c=u.config.projection||{},f={};for(let m in o)m!=="name"&&(f[m]=GS(o[m],m,u));for(let m in c)f[m]==null&&(f[m]=GS(c[m],m,u));u.addProjection(o.name,f)}(i,t)),r.forEach(i=>function(o,u){let c=o.type||"linear";mv(c)||F("Unrecognized scale type: "+st(c)),u.addScale(o.name,{type:c,domain:void 0})}(i,t)),Ne(e.data).forEach(i=>S3(i,t)),r.forEach(i=>zU(i,t)),(n||a).forEach(i=>function(o,u){let c=u.getSignal(o.name),f=o.update;o.init&&(f?F("Signals can not include both init and update expressions."):(f=o.init,c.initonly=!0)),f&&(f=Ms(f,u),c.update=f.$expr,c.params=f.$params),o.on&&o.on.forEach(m=>vU(m,u,c.id))}(i,t)),Ne(e.axes).forEach(i=>F3(i,t)),Ne(e.marks).forEach(i=>Ow(i,t)),Ne(e.legends).forEach(i=>E3(i,t)),e.title&&k3(e.title,t),t.parseLambdas(),t}let $3=e=>eh({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e);function B3(e,t){let n=t.config,a=pt(t.root=t.add(_w())),r=function(f,m){let g=_=>Wo(f[_],m[_]),v=[n0("background",g("background")),n0("autosize",WB(g("autosize"))),n0("padding",YB(g("padding"))),n0("width",g("width")||0),n0("height",g("height")||0)],E=v.reduce((_,R)=>(_[R.name]=R,_),{}),k={};return Ne(f.signals).forEach(_=>{nt(E,_.name)?_=mt(E[_.name],_):v.push(_),k[_.name]=_}),Ne(m.signals).forEach(_=>{nt(k,_.name)||nt(E,_.name)||v.push(_)}),v}(e,n);r.forEach(f=>IO(f,t)),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;let i=t.add(Vo()),o=t.add(PO(RO($3(e.encode),Cw,MS,e.style,t,{pulse:pt(i)}))),u=t.add(UO({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:a,pulse:pt(o)}));t.operators.pop(),t.pushState(pt(o),pt(u),null),mD(e,t,r),t.operators.push(u);let c=t.add(LO({mark:a,pulse:pt(u)}));return c=t.add(BO({pulse:pt(c)})),c=t.add(xd({pulse:pt(c)})),t.addData("root",new Ad(t,i,i,c)),t}function n0(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function gD(e,t){this.config=e||{},this.options=t||{},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 bD(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function aA(e){return(Ee(e)?U3:z3)(e)}function U3(e){let t=e.length,n="[";for(let a=0;a<t;++a){let r=e[a];n+=(a>0?",":"")+(ye(r)?r.signal||aA(r):st(r))}return n+"]"}function z3(e){let t,n,a="{",r=0;for(t in e)n=e[t],a+=(++r>1?",":"")+st(t)+":"+(ye(n)?n.signal||aA(n):st(n));return a+"}"}gD.prototype=bD.prototype={parse(e){return mD(e,this)},fork(){return new bD(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(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach(t=>{t.$ref=e.id}),e.refs=null),e},proxy(e){let t=e instanceof PS?pt(e):e;return this.add(LU({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(a,r,i){let o,u;a&&(o=a.data||(a.data={}),u=o[r]||(o[r]=[]),u.push(i))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(let a in t.index)n(t.index[a],e,"index:"+a)}return this},pushState(e,t,n){this._encode.push(pt(this.add(xd({pulse:e})))),this._parent.push(t),this._lookup.push(n?pt(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return $e(this._parent)},encode(){return $e(this._encode)},lookup(){return $e(this._lookup)},markpath(){let e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(Ft(e))return Xb(e,t);e.signal||F("Unsupported field reference: "+st(e));let n=e.signal,a=this.field[n];if(!a){let r={name:this.signalRef(n)};t&&(r.as=t),this.field[n]=a=pt(this.add(SU(r)))}return a},compareRef(e){let t=!1,n=i=>ua(i)?(t=!0,this.signalRef(i.signal)):function(o){return o&&o.expr}(i)?(t=!0,this.exprRef(i.expr)):i,a=Ne(e.field).map(n),r=Ne(e.order).map(n);return t?pt(this.add(FO({fields:a,orders:r}))):OO(a,r)},keyRef(e,t){let n=!1,a=this.signals;return e=Ne(e).map(r=>ua(r)?(n=!0,pt(a[r.signal])):r),n?pt(this.add(AU({fields:e,flat:t}))):function(r,i){let o={$key:r};return i&&(o.$flat=!0),o}(e,t)},sortRef(e){if(!e)return e;let t=kw(e.op,e.field),n=e.order||"ascending";return n.signal?pt(this.add(FO({fields:t,orders:this.signalRef(n.signal)}))):OO(t,n)},event(e,t){let n=e+":"+t;if(!this.events[n]){let a=this.id();this.streams.push({id:a,source:e,type:t}),this.events[n]=a}return this.events[n]},hasOwnSignal(e){return nt(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&F("Duplicate signal name: "+st(e));let n=t instanceof PS?t:this.add(_w(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||F("Unrecognized signal name: "+st(e)),this.signals[e]},signalRef(e){return this.signals[e]?pt(this.signals[e]):(nt(this.lambdas,e)||(this.lambdas[e]=this.add(_w(null))),pt(this.lambdas[e]))},parseLambdas(){let e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){let a=e[t],r=Ms(a,this),i=this.lambdas[a];i.params=r.$params,i.update=r.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return e&&ye(e)?this.signalRef(e.signal||aA(e)):e},exprRef(e,t){let n={expr:Ms(e,this)};return t&&(n.expr.$name=t),pt(this.add(kU(n)))},addBinding(e,t){this.bindings||F("Nested signals do not support binding: "+st(e)),this.bindings.push(mt({signal:e},t))},addScaleProj(e,t){nt(this.scales,e)&&F("Duplicate scale or projection name: "+st(e)),this.scales[e]=this.add(t)},addScale(e,t){this.addScaleProj(e,PU(t))},addProjection(e,t){this.addScaleProj(e,MU(t))},getScale(e){return this.scales[e]||F("Unrecognized scale name: "+st(e)),this.scales[e]},scaleRef(e){return pt(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,t){return nt(this.data,e)&&F("Duplicate data set name: "+st(e)),this.data[e]=t},getData(e){return this.data[e]||F("Undefined data set name: "+st(e)),this.data[e]},addDataPipeline(e,t){return nt(this.data,e)&&F("Duplicate data set name: "+st(e)),this.addData(e,Ad.fromEntries(this,t))}},mt(tl,Xf,PL,YL,MF,tP,LP,SP,FP,ZP,i$,l$),p.Bounds=In,p.CanvasHandler=ob,p.CanvasRenderer=qv,p.DATE=ha,p.DAY=aa,p.DAYOFYEAR=Di,p.Dataflow=el,p.Debug=Fe,p.Error=pe,p.EventStream=Ui,p.Gradient=Je,p.GroupItem=vl,p.HOURS=ja,p.Handler=Mu,p.Info=Ie,p.Item=Lo,p.MILLISECONDS=Dr,p.MINUTES=lr,p.MONTH=na,p.Marks=yi,p.MultiPulse=yc,p.None=fe,p.Operator=Yt,p.Parameters=gc,p.Pulse=oi,p.QUARTER=Ta,p.RenderType=Fu,p.Renderer=Cs,p.ResourceLoader=El,p.SECONDS=ur,p.SVGHandler=J1,p.SVGRenderer=ik,p.SVGStringRenderer=sk,p.Scenegraph=V1,p.TIME_UNITS=Gd,p.Transform=ke,p.View=pO,p.WEEK=Cn,p.Warn=Se,p.YEAR=ta,p.accessor=b,p.accessorFields=T,p.accessorName=x,p.array=Ne,p.ascending=Qt,p.bandwidthNRD=lm,p.bin=um,p.bootstrapCI=cm,p.boundClip=eC,p.boundContext=Zg,p.boundItem=W1,p.boundMark=bT,p.boundStroke=_l,p.changeset=us,p.clampRange=Xe,p.codegenExpression=SI,p.compare=Fl,p.constant=hn,p.cumulativeLogNormal=fr,p.cumulativeNormal=Ec,p.cumulativeUniform=kc,p.dayofyear=D0,p.debounce=Zo,p.defaultLocale=pf,p.definition=im,p.densityLogNormal=Rf,p.densityNormal=dm,p.densityUniform=Of,p.domChild=Ur,p.domClear=Bo,p.domCreate=Du,p.domFind=Y1,p.dotbin=Tf,p.error=F,p.expressionFunction=Zn,p.extend=mt,p.extent=Un,p.extentIndex=ar,p.falsy=ie,p.fastmap=da,p.field=W,p.flush=rr,p.font=Fv,p.fontFamily=nb,p.fontSize=Ts,p.format=hc,p.formatLocale=fc,p.formats=ss,p.hasOwnProperty=nt,p.id=V,p.identity=te,p.inferType=Qh,p.inferTypes=em,p.ingest=It,p.inherits=Le,p.inrange=xa,p.interpolate=jg,p.interpolateColors=Cp,p.interpolateRange=yv,p.intersect=XT,p.intersectBoxLine=Dp,p.intersectPath=N1,p.intersectPoint=I1,p.intersectRule=nT,p.isArray=Ee,p.isBoolean=Zr,p.isDate=xn,p.isFunction=tt,p.isIterable=xi,p.isNumber=Ba,p.isObject=ye,p.isRegExp=Si,p.isString=Ft,p.isTuple=ru,p.key=Ai,p.lerp=fo,p.lineHeight=Iu,p.loader=Js,p.locale=Jh,p.logger=Ge,p.lruCache=Pl,p.markup=rk,p.merge=Bs,p.mergeConfig=Te,p.multiLineOffset=j1,p.one=he,p.pad=Ku,p.panLinear=xt,p.panLog=Tt,p.panPow=Xt,p.panSymlog=Ke,p.parse=function(e,t,n){return ye(e)||F("Input Vega specification must be an object."),B3(e,new gD(t=Te(function(){let a="sans-serif",r="#4c78a8",i="#000",o="#888",u="#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:a,fontSize:11},trail:{fill:r,size:2},style:{"guide-label":{fill:i,font:a,fontSize:10},"guide-title":{fill:i,font:a,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:a,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,font:a,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:u},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:o,grid:!1,gridWidth:1,gridColor:u,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:o,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:u,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:o,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"]}}}(),t,e.config),n)).toRuntime()},p.parseExpression=_I,p.parseSelector=_O,p.path=Oc,p.pathCurves=Qe,p.pathEqual=tC,p.pathParse=Ut,p.pathRectangle=Yg,p.pathRender=En,p.pathSymbols=Xa,p.pathTrail=Kg,p.peek=$e,p.point=$v,p.projection=rx,p.quantileLogNormal=hm,p.quantileNormal=wc,p.quantileUniform=du,p.quantiles=sm,p.quantizeInterpolator=vv,p.quarter=Ct,p.quartiles=Af,p.randomInteger=function(e,t){let n,a,r;t==null&&(t=e,e=0);let i={min(o){return arguments.length?(n=o||0,r=a-n,i):n},max(o){return arguments.length?(a=o||0,r=a-n,i):a},sample:()=>n+Math.floor(r*p.random()),pdf:o=>o===Math.floor(o)&&o>=n&&o<a?1/r:0,cdf(o){let u=Math.floor(o);return u<n?0:u>=a?1:(u-n+1)/r},icdf:o=>o>=0&&o<=1?n-1+Math.floor(o*r):NaN};return i.min(e).max(t)},p.randomKDE=pm,p.randomLCG=function(e){return function(){return(e=(1103515245*e+12345)%2147483647)/2147483647}},p.randomLogNormal=Nf,p.randomMixture=If,p.randomNormal=fm,p.randomUniform=Df,p.read=yf,p.regressionConstant=Mf,p.regressionExp=mm,p.regressionLinear=fu,p.regressionLoess=ym,p.regressionLog=Ac,p.regressionPoly=gm,p.regressionPow=hy,p.regressionQuad=si,p.renderModule=Kv,p.repeat=po,p.resetDefaultLocale=function(){return Xh(),pc(),pf()},p.resetSVGClipId=xv,p.resetSVGDefIds=function(){xv(),me=0},p.responseType=bf,p.runtimeContext=VI,p.sampleCurve=Lf,p.sampleLogNormal=Cf,p.sampleNormal=cu,p.sampleUniform=_c,p.scale=Bt,p.sceneEqual=uk,p.sceneFromJSON=vT,p.scenePickVisit=Iv,p.sceneToJSON=yT,p.sceneVisit=Po,p.sceneZOrder=O1,p.scheme=Np,p.serializeXML=zT,p.setRandom=function(e){p.random=e},p.span=Jr,p.splitAccessPath=j,p.stringValue=st,p.textMetrics=$o,p.timeBin=ai,p.timeFloor=$0,p.timeFormatLocale=Zs,p.timeInterval=as,p.timeOffset=Kd,p.timeSequence=Mh,p.timeUnitSpecifier=Hd,p.timeUnits=jd,p.toBoolean=$l,p.toDate=Ld,p.toNumber=Me,p.toSet=ir,p.toString=Fd,p.transform=om,p.transforms=tl,p.truncate=mh,p.truthy=Q,p.tupleid=rt,p.typeParsers=cr,p.utcFloor=Yd,p.utcInterval=Mr,p.utcOffset=z0,p.utcSequence=Lh,p.utcdayofyear=Ih,p.utcquarter=ht,p.utcweek=Oh,p.version="5.25.0",p.visitArray=Qo,p.week=qd,p.writeConfig=_e,p.zero=ae,p.zoomLinear=Zt,p.zoomLog=Et,p.zoomPow=Jt,p.zoomSymlog=Lt})});var EM=rA((Ww,vM)=>{(function(p,b){typeof Ww=="object"&&typeof vM<"u"?b(Ww,wA()):typeof define=="function"&&define.amd?define(["exports","vega"],b):b((p=typeof globalThis<"u"?globalThis:p||self).vegaLite={},p.vega)})(Ww,function(p,b){"use strict";var x="5.16.1";function T(s){return!!s.or}function O(s){return!!s.and}function B(s){return!!s.not}function $(s,l){if(B(s))$(s.not,l);else if(O(s))for(let d of s.and)$(d,l);else if(T(s))for(let d of s.or)$(d,l);else l(s)}function F(s,l){return B(s)?{not:F(s.not,l)}:O(s)?{and:s.and.map(d=>F(d,l))}:T(s)?{or:s.or.map(d=>F(d,l))}:l(s)}let j=globalThis.structuredClone;function W(s){throw new Error(s)}function V(s,l){let d={};for(let h of l)b.hasOwnProperty(s,h)&&(d[h]=s[h]);return d}function te(s,l){let d={...s};for(let h of l)delete d[h];return d}function ae(s){if(b.isNumber(s))return s;let l=b.isString(s)?s:Xe(s);if(l.length<250)return l;let d=0;for(let h=0;h<l.length;h++)d=(d<<5)-d+l.charCodeAt(h),d&=d;return d}function he(s){return s===!1||s===null}function Q(s,l){return s.includes(l)}function ie(s,l){let d=0;for(let[h,y]of s.entries())if(l(y,h,d++))return!0;return!1}function se(s,l){let d=0;for(let[h,y]of s.entries())if(!l(y,h,d++))return!1;return!0}function fe(s){for(var l=arguments.length,d=new Array(l>1?l-1:0),h=1;h<l;h++)d[h-1]=arguments[h];for(let y of d)pe(s,y??{});return s}function pe(s,l){for(let d of be(l))b.writeConfig(s,d,l[d],!0)}function Se(s,l){let d=[],h={},y;for(let w of s)y=l(w),y in h||(h[y]=1,d.push(w));return d}function Ie(s,l){if(s.size!==l.size)return!1;for(let d of s)if(!l.has(d))return!1;return!0}function Fe(s,l){for(let d of s)if(l.has(d))return!0;return!1}function Ge(s){let l=new Set;for(let d of s){let h=b.splitAccessPath(d).map((w,S)=>S===0?w:`[${w}]`),y=h.map((w,S)=>h.slice(0,S+1).join(""));for(let w of y)l.add(w)}return l}function Ee(s,l){return s===void 0||l===void 0||Fe(Ge(s),Ge(l))}function ye(s){return be(s).length===0}Set.prototype.toJSON=function(){return`Set(${[...this].map(s=>Xe(s)).join(",")})`};let be=Object.keys,Te=Object.values,_e=Object.entries;function Ye(s){return s===!0||s===!1}function $e(s){let l=s.replace(/\W/g,"_");return(s.match(/^\d+/)?"_":"")+l}function Me(s,l){return B(s)?`!(${Me(s.not,l)})`:O(s)?`(${s.and.map(d=>Me(d,l)).join(") && (")})`:T(s)?`(${s.or.map(d=>Me(d,l)).join(") || (")})`:l(s)}function dt(s,l){if(l.length===0)return!0;let d=l.shift();return d in s&&dt(s[d],l)&&delete s[d],ye(s)}function yt(s){return s.charAt(0).toUpperCase()+s.substr(1)}function St(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"datum",d=b.splitAccessPath(s),h=[];for(let y=1;y<=d.length;y++){let w=`[${d.slice(0,y).map(b.stringValue).join("][")}]`;h.push(`${l}${w}`)}return h.join(" && ")}function rn(s){return`${arguments.length>1&&arguments[1]!==void 0?arguments[1]:"datum"}[${b.stringValue(b.splitAccessPath(s).join("."))}]`}function pn(s){return s.replace(/(\[|\]|\.|'|")/g,"\\$1")}function jt(s){return`${b.splitAccessPath(s).map(pn).join("\\.")}`}function xt(s,l,d){return s.replace(new RegExp(l.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),d)}function Tt(s){return`${b.splitAccessPath(s).join(".")}`}function Xt(s){return s?b.splitAccessPath(s).length:0}function Ke(){for(var s=arguments.length,l=new Array(s),d=0;d<s;d++)l[d]=arguments[d];for(let h of l)if(h!==void 0)return h}let et=42;function Zt(s){let l=++et;return s?String(s)+l:l}function Et(s){return Jt(s)?s:`__${s}`}function Jt(s){return s.startsWith("__")}function Lt(s){if(s!==void 0)return(s%360+360)%360}function Ct(s){return!!b.isNumber(s)||!isNaN(s)&&!isNaN(parseFloat(s))}let ht=Object.getPrototypeOf(globalThis.structuredClone({}));function Ne(s,l){if(s===l)return!0;if(s&&l&&typeof s=="object"&&typeof l=="object"){if(s.constructor.name!==l.constructor.name)return!1;let d,h;if(Array.isArray(s)){if(d=s.length,d!=l.length)return!1;for(h=d;h--!=0;)if(!Ne(s[h],l[h]))return!1;return!0}if(s instanceof Map&&l instanceof Map){if(s.size!==l.size)return!1;for(h of s.entries())if(!l.has(h[0]))return!1;for(h of s.entries())if(!Ne(h[1],l.get(h[0])))return!1;return!0}if(s instanceof Set&&l instanceof Set){if(s.size!==l.size)return!1;for(h of s.entries())if(!l.has(h[0]))return!1;return!0}if(ArrayBuffer.isView(s)&&ArrayBuffer.isView(l)){if(d=s.length,d!=l.length)return!1;for(h=d;h--!=0;)if(s[h]!==l[h])return!1;return!0}if(s.constructor===RegExp)return s.source===l.source&&s.flags===l.flags;if(s.valueOf!==Object.prototype.valueOf&&s.valueOf!==ht.valueOf)return s.valueOf()===l.valueOf();if(s.toString!==Object.prototype.toString&&s.toString!==ht.toString)return s.toString()===l.toString();let y=Object.keys(s);if(d=y.length,d!==Object.keys(l).length)return!1;for(h=d;h--!=0;)if(!Object.prototype.hasOwnProperty.call(l,y[h]))return!1;for(h=d;h--!=0;){let w=y[h];if(!Ne(s[w],l[w]))return!1}return!0}return s!=s&&l!=l}function Xe(s){let l=[];return function d(h){if(h&&h.toJSON&&typeof h.toJSON=="function"&&(h=h.toJSON()),h===void 0)return;if(typeof h=="number")return isFinite(h)?""+h:"null";if(typeof h!="object")return JSON.stringify(h);let y,w;if(Array.isArray(h)){for(w="[",y=0;y<h.length;y++)y&&(w+=","),w+=d(h[y])||"null";return w+"]"}if(h===null)return"null";if(l.includes(h))throw new TypeError("Converting circular structure to JSON");let S=l.push(h)-1,A=Object.keys(h).sort();for(w="",y=0;y<A.length;y++){let C=A[y],L=d(h[C]);L&&(w&&(w+=","),w+=JSON.stringify(C)+":"+L)}return l.splice(S,1),`{${w}}`}(s)}let tt="row",Kr="column",Fl="facet",Qt="x",Bn="y",Xr="x2",ki="y2",hn="xOffset",Zo="yOffset",mt="radius",Un="radius2",ar="theta",co="theta2",nt="latitude",$a="longitude",da="latitude2",rr="longitude2",Le="color",xa="fill",Zr="stroke",xn="shape",xi="size",Ba="angle",Si="opacity",Ft="fillOpacity",Ai="strokeOpacity",fo="strokeWidth",Jo="strokeDash",Pl="text",Bs="order",po="detail",Ku="key",Jr="tooltip",st="href",$l="url",Md="description",Ld={theta:1,theta2:1,radius:1,radius2:1};function Fd(s){return s in Ld}let ir={longitude:1,longitude2:1,latitude:1,latitude2:1};function mh(s){switch(s){case nt:return"y";case da:return"y2";case $a:return"x";case rr:return"x2"}}function Qo(s){return s in ir}let h0=be(ir),Xu={x:1,y:1,x2:1,y2:1,...Ld,...ir,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1};function es(s){return s===Le||s===xa||s===Zr}let Bl={row:1,column:1,facet:1},Ua=be(Bl),Pd={...Xu,...Bl},m0=be(Pd),{order:or,detail:PA,tooltip:$A,...h_}=Pd,{row:BA,column:m_,facet:g_,...b_}=h_;function g0(s){return!!Pd[s]}let y_=[Xr,ki,da,rr,co,Un];function Ti(s){return Us(s)!==s}function Us(s){switch(s){case Xr:return Qt;case ki:return Bn;case da:return nt;case rr:return $a;case co:return ar;case Un:return mt}return s}function sr(s){if(Fd(s))switch(s){case ar:return"startAngle";case co:return"endAngle";case mt:return"outerRadius";case Un:return"innerRadius"}return s}function Ci(s){switch(s){case Qt:return Xr;case Bn:return ki;case nt:return da;case $a:return rr;case ar:return co;case mt:return Un}}function Sa(s){switch(s){case Qt:case Xr:return"width";case Bn:case ki:return"height"}}function gh(s){switch(s){case Qt:return"xOffset";case Bn:return"yOffset";case Xr:return"x2Offset";case ki:return"y2Offset";case ar:return"thetaOffset";case mt:return"radiusOffset";case co:return"theta2Offset";case Un:return"radius2Offset"}}function Ul(s){switch(s){case Qt:return"xOffset";case Bn:return"yOffset"}}function v_(s){switch(s){case"xOffset":return"x";case"yOffset":return"y"}}let Zu=be(Xu),{x:za,y:E_,x2:bh,y2:b0,xOffset:w_,yOffset:__,latitude:k_,longitude:x_,latitude2:UA,longitude2:zA,theta:GA,theta2:yh,radius:y0,radius2:v0,...Ri}=Xu,zs=be(Ri),Ju={x:1,y:1},Qr=be(Ju);function un(s){return s in Ju}let Qu={theta:1,radius:1},E0=be(Qu);function ec(s){return s==="width"?Qt:Bn}let vh={xOffset:1,yOffset:1};function Qn(s){return s in vh}let{text:S_,tooltip:jA,href:Eh,url:tc,description:A_,detail:HA,key:zl,order:w0,...wh}=Ri,_0=be(wh),_h={...Ju,...Qu,...vh,...wh},Gl=be(_h);function Nr(s){return!!_h[s]}function kh(s,l){return function(d){switch(d){case Le:case xa:case Zr:case Md:case po:case Ku:case Jr:case st:case Bs:case Si:case Ft:case Ai:case fo:case Fl:case tt:case Kr:return xh;case Qt:case Bn:case hn:case Zo:case nt:case $a:return k0;case Xr:case ki:case da:case rr:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case xi:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case Jo:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case xn:return{point:"always",geoshape:"always"};case Pl:return{text:"always"};case Ba:return{point:"always",square:"always",text:"always"};case $l:return{image:"always"};case ar:case mt:return{text:"always",arc:"always"};case co:case Un:return{arc:"always"}}}(s)[l]}let xh={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:T_,...k0}=xh;function $d(s){switch(s){case Qt:case Bn:case ar:case mt:case hn:case Zo:case xi:case Ba:case fo:case Si:case Ft:case Ai:case Xr:case ki:case co:case Un:return;case Fl:case tt:case Kr:case xn:case Jo:case Pl:case Jr:case st:case $l:case Md:return"discrete";case Le:case xa:case Zr:return"flexible";case nt:case $a:case da:case rr:case po:case Ku:case Bs:return}}let x0={argmax:1,argmin:1,average:1,count:1,distinct:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},S0={count:1,min:1,max:1};function ei(s){return!!s&&!!s.argmin}function Ni(s){return!!s&&!!s.argmax}function Sn(s){return b.isString(s)&&!!x0[s]}let jl=new Set(["count","valid","missing","distinct"]);function Ii(s){return b.isString(s)&&jl.has(s)}let Ir=new Set(["count","sum","distinct","valid","missing"]),ho=new Set(["mean","average","median","q1","q3","min","max"]);function Oi(s){return b.isBoolean(s)&&(s=rt(s,void 0)),"bin"+be(s).map(l=>Or(s[l])?$e(`_${l}_${_e(s[l])}`):$e(`_${l}_${s[l]}`)).join("")}function Vt(s){return s===!0||mo(s)&&!s.binned}function zn(s){return s==="binned"||mo(s)&&s.binned===!0}function mo(s){return b.isObject(s)}function Or(s){return s==null?void 0:s.param}function nc(s){switch(s){case tt:case Kr:case xi:case Le:case xa:case Zr:case fo:case Si:case Ft:case Ai:case xn:return 6;case Jo:return 4;default:return 10}}function ts(s){return!!(s!=null&&s.expr)}function ea(s){let l=be(s||{}),d={};for(let h of l)d[h]=Gn(s[h]);return d}function ac(s){let{anchor:l,frame:d,offset:h,orient:y,angle:w,limit:S,color:A,subtitleColor:C,subtitleFont:L,subtitleFontSize:G,subtitleFontStyle:H,subtitleFontWeight:X,subtitleLineHeight:Z,subtitlePadding:le,...ee}=s,de={...l?{anchor:l}:{},...d?{frame:d}:{},...h?{offset:h}:{},...y?{orient:y}:{},...w!==void 0?{angle:w}:{},...S!==void 0?{limit:S}:{}},ge={...C?{subtitleColor:C}:{},...L?{subtitleFont:L}:{},...G?{subtitleFontSize:G}:{},...H?{subtitleFontStyle:H}:{},...X?{subtitleFontWeight:X}:{},...Z?{subtitleLineHeight:Z}:{},...le?{subtitlePadding:le}:{}};return{titleMarkConfig:{...ee,...A?{fill:A}:{}},subtitleMarkConfig:V(s,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:de,subtitle:ge}}function fa(s){return b.isString(s)||b.isArray(s)&&b.isString(s[0])}function Ze(s){return!!(s!=null&&s.signal)}function go(s){return!!s.step}function Aa(s){return!b.isArray(s)&&"field"in s&&"data"in s}let Hl=be({aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1}),Bd={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Sh=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function A0(s){let l=b.isArray(s.condition)?s.condition.map(T0):T0(s.condition);return{...Gn(s),condition:l}}function Gn(s){if(ts(s)){let{expr:l,...d}=s;return{signal:l,...d}}return s}function T0(s){if(ts(s)){let{expr:l,...d}=s;return{signal:l,...d}}return s}function on(s){if(ts(s)){let{expr:l,...d}=s;return{signal:l,...d}}return Ze(s)?s:s!==void 0?{value:s}:void 0}function ns(s){return Ze(s)?s.signal:b.stringValue(s.value)}function pa(s){return Ze(s)?s.signal:s==null?null:b.stringValue(s)}function Ud(s,l,d){for(let h of d){let y=Ga(h,l.markDef,l.config);y!==void 0&&(s[h]=on(y))}return s}function C0(s){return[].concat(s.type,s.style??[])}function Ht(s,l,d){let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},{vgChannel:y,ignoreVgConfig:w}=h;return y&&l[y]!==void 0?l[y]:l[s]!==void 0?l[s]:!w||y&&y!==s?Ga(s,l,d,h):void 0}function Ga(s,l,d){let{vgChannel:h}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return Ke(h?zd(s,l,d.style):void 0,zd(s,l,d.style),h?d[l.type][h]:void 0,d[l.type][s],h?d.mark[h]:d.mark[s])}function zd(s,l,d){return R0(s,C0(l),d)}function R0(s,l,d){let h;l=b.array(l);for(let y of l){let w=d[y];w&&w[s]!==void 0&&(h=w[s])}return h}function ql(s,l){return b.array(s).reduce((d,h)=>(d.field.push(je(h,l)),d.order.push(h.sort??"ascending"),d),{field:[],order:[]})}function Wl(s,l){let d=[...s];return l.forEach(h=>{for(let y of d)if(Ne(y,h))return;d.push(h)}),d}function ti(s,l){return Ne(s,l)||!l?s:s?[...b.array(s),...b.array(l)].join(", "):l}function ni(s,l){let d=s.value,h=l.value;if(d==null||h===null)return{explicit:s.explicit,value:null};if((fa(d)||Ze(d))&&(fa(h)||Ze(h)))return{explicit:s.explicit,value:ti(d,h)};if(fa(d)||Ze(d))return{explicit:s.explicit,value:d};if(fa(h)||Ze(h))return{explicit:s.explicit,value:h};if(!(fa(d)||Ze(d)||fa(h)||Ze(h)))return{explicit:s.explicit,value:Wl(d,h)};throw new Error("It should never reach here")}function at(s,l,d){return(l=function(h){var y=function(w,S){if(typeof w!="object"||w===null)return w;var A=w[Symbol.toPrimitive];if(A!==void 0){var C=A.call(w,S||"default");if(typeof C!="object")return C;throw new TypeError("@@toPrimitive must return a primitive value.")}return(S==="string"?String:Number)(w)}(h,"string");return typeof y=="symbol"?y:String(y)}(l))in s?Object.defineProperty(s,l,{value:d,enumerable:!0,configurable:!0,writable:!0}):s[l]=d,s}function N0(s,l,d){return function(h,y,w){if(y.set)y.set.call(h,w);else{if(!y.writable)throw new TypeError("attempted to set read only private field");y.value=w}}(s,I0(s,l,"set"),d),d}function I0(s,l,d){if(!l.has(s))throw new TypeError("attempted to "+d+" private field on non-instance");return l.get(s)}function C_(s,l,d){(function(h,y){if(y.has(h))throw new TypeError("Cannot initialize the same private elements twice on an object")})(s,l),l.set(s,d)}function Ah(s){return`Invalid specification ${Xe(s)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}let ta='Autosize "fit" only works for single views and layered views.';function Ta(s){return`${s=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function na(s){return`${s=="width"?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${s=="width"?"x":"y"}".`}function Cn(s){return s?`Dropping "fit-${s}" because spec has discrete ${Sa(s)}.`:'Dropping "fit" because spec has discrete size.'}function ha(s){return`Unknown field for ${s}. Cannot calculate view size.`}function aa(s){return`Cannot project a selection on encoding channel "${s}", which has no field.`}function Di(s,l){return`Cannot project a selection on encoding channel "${s}" as it uses an aggregate function ("${l}").`}function ja(s){return`Selection not supported for ${s} yet.`}let lr="The same selection must be used to override scale domains in a layered view.";function ur(s){return`The "columns" property cannot be used when "${s}" has nested row/column.`}function Dr(s,l,d){return`An ancestor parsed field "${s}" as ${d} but a child wants to parse the field as ${l}.`}function Gd(s){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${s} are dropped.`}function Th(s){return`${s}Offset dropped because ${s} is continuous`}function jd(s){return`Invalid field type "${s}".`}function O0(s,l){let{fill:d,stroke:h}=l;return`Dropping color ${s} as the plot also has ${d&&h?"fill and stroke":d?"fill":"stroke"}.`}function Hd(s,l){return`Dropping ${Xe(s)} from channel "${l}" since it does not contain any data field, datum, value, or signal.`}function Mi(s,l,d){return`${s} dropped as it is incompatible with "${l}"${d?` when ${d}`:""}.`}function Ch(s){return`${s} encoding should be discrete (ordinal / nominal / binned).`}function D0(s){return`${s} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function qd(s,l){return`Using discrete channel "${s}" to encode "${l}" field can be misleading as it does not encode ${l==="ordinal"?"order":"magnitude"}.`}function M0(s){return`Using unaggregated domain with raw field has no effect (${Xe(s)}).`}function Rh(s){return`Unaggregated domain not applicable for "${s}" since it produces values outside the origin domain of the source data.`}function Nh(s){return`Unaggregated domain is currently unsupported for log scale (${Xe(s)}).`}function L0(s,l,d){return`${d}-scale's "${l}" is dropped as it does not work with ${s} scale.`}function Ih(s){return`The step for "${s}" is dropped because the ${s==="width"?"x":"y"} is continuous.`}let Oh="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function rc(s,l){return`Invalid ${s}: ${Xe(l)}.`}function Wd(s){return`1D error band does not support ${s}.`}function Vd(s){return`Channel ${s} is required for "binned" bin.`}let F0=b.logger(b.Warn),ic=F0;function Be(){ic.warn(...arguments)}function Gs(s){if(s&&b.isObject(s)){for(let l of as)if(l in s)return!0}return!1}let P0=["january","february","march","april","may","june","july","august","september","october","november","december"],$0=P0.map(s=>s.substr(0,3)),B0=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],R_=B0.map(s=>s.substr(0,3));function Yd(s,l){let d=[];if(l&&s.day!==void 0&&be(s).length>1&&(Be(function(h){return`Dropping day from datetime ${Xe(h)} as day cannot be combined with other units.`}(s)),delete(s=j(s)).day),s.year!==void 0?d.push(s.year):d.push(2012),s.month!==void 0){let h=l?function(y){if(Ct(y)&&(y=+y),b.isNumber(y))return y-1;{let w=y.toLowerCase(),S=P0.indexOf(w);if(S!==-1)return S;let A=w.substr(0,3),C=$0.indexOf(A);if(C!==-1)return C;throw new Error(rc("month",y))}}(s.month):s.month;d.push(h)}else if(s.quarter!==void 0){let h=l?function(y){if(Ct(y)&&(y=+y),b.isNumber(y))return y>4&&Be(rc("quarter",y)),y-1;throw new Error(rc("quarter",y))}(s.quarter):s.quarter;d.push(b.isNumber(h)?3*h:`${h}*3`)}else d.push(0);if(s.date!==void 0)d.push(s.date);else if(s.day!==void 0){let h=l?function(y){if(Ct(y)&&(y=+y),b.isNumber(y))return y%7;{let w=y.toLowerCase(),S=B0.indexOf(w);if(S!==-1)return S;let A=w.substr(0,3),C=R_.indexOf(A);if(C!==-1)return C;throw new Error(rc("day",y))}}(s.day):s.day;d.push(b.isNumber(h)?h+1:`${h}+1`)}else d.push(1);for(let h of["hours","minutes","seconds","milliseconds"]){let y=s[h];d.push(y===void 0?0:y)}return d}function js(s){let l=Yd(s,!0).join(", ");return s.utc?`utc(${l})`:`datetime(${l})`}let U0={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},as=be(U0);function Mr(s){return b.isObject(s)?s.binned:Dh(s)}function Dh(s){return s&&s.startsWith("binned")}function Kd(s){return s.startsWith("utc")}let z0={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function oc(s){return as.filter(l=>Lh(s,l))}function Mh(s){let l=oc(s);return l[l.length-1]}function Lh(s,l){let d=s.indexOf(l);return!(d<0)&&!(d>0&&l==="seconds"&&s.charAt(d-1)==="i")&&!(s.length>d+3&&l==="day"&&s.charAt(d+3)==="o")&&!(d>0&&l==="year"&&s.charAt(d-1)==="f")}function N_(s,l){let{end:d}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{end:!1},h=St(l),y=Kd(s)?"utc":"",w,S={};for(let C of as)Lh(s,C)&&(S[C]=(A=C)==="quarter"?`(${y}quarter(${h})-1)`:`${y}${A}(${h})`,w=C);var A;return d&&(S[w]+="+1"),function(C){let L=Yd(C,!1).join(", ");return C.utc?`utc(${L})`:`datetime(${L})`}(S)}function G0(s){if(s)return`timeUnitSpecifier(${Xe(oc(s))}, ${Xe(z0)})`}function jn(s){if(!s)return;let l;return b.isString(s)?l=Dh(s)?{unit:s.substring(6),binned:!0}:{unit:s}:b.isObject(s)&&(l={...s,...s.unit?{unit:s.unit}:{}}),Kd(l.unit)&&(l.utc=!0,l.unit=l.unit.substring(3)),l}function j0(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:y=>y,d=jn(s),h=Mh(d.unit);if(h&&h!=="day"){let y={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:w,part:S}=Xd(h,d.step);return`${l(js({...y,[S]:+y[S]+w}))} - ${l(js(y))}`}}let I_={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function Xd(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;if(function(d){return!!I_[d]}(s))return{part:s,step:l};switch(s){case"day":case"dayofyear":return{part:"date",step:l};case"quarter":return{part:"month",step:3*l};case"week":return{part:"date",step:7*l}}}function Zd(s){return!!(s!=null&&s.field)&&s.equal!==void 0}function Hs(s){return!!(s!=null&&s.field)&&s.lt!==void 0}function qs(s){return!!(s!=null&&s.field)&&s.lte!==void 0}function Ws(s){return!!(s!=null&&s.field)&&s.gt!==void 0}function Fh(s){return!!(s!=null&&s.field)&&s.gte!==void 0}function Jd(s){return!!(s!=null&&s.field&&(b.isArray(s.range)&&s.range.length===2||Ze(s.range)))}function Qd(s){return!!(s!=null&&s.field)&&(b.isArray(s.oneOf)||b.isArray(s.in))}function Vl(s){return Qd(s)||Zd(s)||Jd(s)||Hs(s)||Ws(s)||qs(s)||Fh(s)}function ai(s,l){return iu(s,{timeUnit:l,wrapTime:!0})}function ef(s){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],{field:d}=s,h=jn(s.timeUnit),{unit:y,binned:w}=h||{},S=je(s,{expr:"datum"}),A=y?`time(${w?S:N_(y,d)})`:S;if(Zd(s))return`${A}===${ai(s.equal,y)}`;if(Hs(s))return`${A}<${ai(s.lt,y)}`;if(Ws(s))return`${A}>${ai(s.gt,y)}`;if(qs(s))return`${A}<=${ai(s.lte,y)}`;if(Fh(s))return`${A}>=${ai(s.gte,y)}`;if(Qd(s))return`indexof([${function(C,L){return C.map(G=>ai(G,L))}(s.oneOf,y).join(",")}], ${A}) !== -1`;if(function(C){return!!(C!=null&&C.field)&&C.valid!==void 0}(s))return sc(A,s.valid);if(Jd(s)){let{range:C}=s,L=Ze(C)?{signal:`${C.signal}[0]`}:C[0],G=Ze(C)?{signal:`${C.signal}[1]`}:C[1];if(L!==null&&G!==null&&l)return"inrange("+A+", ["+ai(L,y)+", "+ai(G,y)+"])";let H=[];return L!==null&&H.push(`${A} >= ${ai(L,y)}`),G!==null&&H.push(`${A} <= ${ai(G,y)}`),H.length>0?H.join(" && "):"true"}throw new Error(`Invalid field predicate: ${Xe(s)}`)}function sc(s){return!(arguments.length>1&&arguments[1]!==void 0)||arguments[1]?`isValid(${s}) && isFinite(+${s})`:`!isValid(${s}) || !isFinite(+${s})`}function lc(s){return Vl(s)&&s.timeUnit?{...s,timeUnit:jn(s.timeUnit)}:s}function H0(s){return s==="quantitative"||s==="temporal"}function Yl(s){return s==="ordinal"||s==="nominal"}let bo="quantitative",tf="ordinal",rs="temporal",nf="nominal",Vs="geojson",Gt={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"},Ph={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 O_(s,l){let d=Ph[s],h=Ph[l];return d===h||d==="ordinal-position"&&h==="time"||h==="ordinal-position"&&d==="time"}let Pt={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 q0(s){return Pt[s]}let Kl=new Set(["linear","log","pow","sqrt","symlog"]),Xl=new Set([...Kl,"time","utc"]);function W0(s){return Kl.has(s)}let V0=new Set(["quantile","quantize","threshold"]),D_=new Set([...Xl,...V0,"sequential","identity"]),M_=new Set(["ordinal","bin-ordinal","point","band"]);function Hn(s){return M_.has(s)}function Ha(s){return D_.has(s)}function Lr(s){return Xl.has(s)}function Zl(s){return V0.has(s)}function Y0(s){return s==null?void 0:s.param}let{type:qA,domain:L_,range:WA,rangeMax:F_,rangeMin:VA,scheme:YA,...P_}={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw: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},$_=be(P_);function $h(s,l){switch(l){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(s);case"bins":return!["point","band","identity","ordinal"].includes(s);case"round":return Lr(s)||s==="band"||s==="point";case"padding":case"rangeMin":case"rangeMax":return Lr(s)||["point","band"].includes(s);case"paddingOuter":case"align":return["point","band"].includes(s);case"paddingInner":return s==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return Lr(s);case"nice":return Lr(s)||s==="quantize"||s==="threshold";case"exponent":return s==="pow";case"base":return s==="log";case"constant":return s==="symlog";case"zero":return Ha(s)&&!Q(["log","time","utc","threshold","quantile"],s)}}function K0(s,l){switch(l){case"interpolate":case"scheme":case"domainMid":return es(s)?void 0:`Cannot use the scale property "${l}" with non-color channel.`;case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":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}}let Ca={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"},Bh=Ca.arc,af=Ca.area,rf=Ca.bar,B_=Ca.image,uc=Ca.line,of=Ca.point,U_=Ca.rect,sf=Ca.rule,X0=Ca.text,Uh=Ca.tick,z_=Ca.trail,lf=Ca.circle,zh=Ca.square,Z0=Ca.geoshape;function is(s){return["line","area","trail"].includes(s)}function cc(s){return["rect","bar","image","arc"].includes(s)}let G_=new Set(be(Ca));function Li(s){return s.type}let j_=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],J0=be({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),Gh=be({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function Ys(s){return s&&s.band!=null}let H_={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},q_={binSpacing:1,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},Q0={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5};function jh(s){let{channel:l,channelDef:d,markDef:h,scale:y,config:w}=s,S=qh(s);return ze(d)&&!Ii(d.aggregate)&&y&&Lr(y.get("type"))?function(A){let{fieldDef:C,channel:L,markDef:G,ref:H,config:X}=A;return is(G.type)?H:Ht("invalid",G,X)===null?[W_(C,L),H]:H}({fieldDef:d,channel:l,markDef:h,ref:S,config:w}):S}function W_(s,l){return{test:Hh(s,!0),...Us(l)==="y"?{field:{group:"height"}}:{value:0}}}function Hh(s){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return sc(b.isString(s)?s:je(s,{expr:"datum"}),!l)}function Ks(s,l,d,h){let y={};if(l&&(y.scale=l),Pi(s)){let{datum:w}=s;Gs(w)?y.signal=js(w):Ze(w)?y.signal=w.signal:ts(w)?y.signal=w.expr:y.value=w}else y.field=je(s,d);if(h){let{offset:w,band:S}=h;w&&(y.offset=w),S&&(y.band=S)}return y}function uf(s){let{scaleName:l,fieldOrDatumDef:d,fieldOrDatumDef2:h,offset:y,startSuffix:w,endSuffix:S="end",bandPosition:A=.5}=s,C=!Ze(A)&&0<A&&A<1?"datum":void 0,L=je(d,{expr:C,suffix:w}),G=h!==void 0?je(h,{expr:C}):je(d,{suffix:S,expr:C}),H={};if(A===0||A===1){H.scale=l;let X=A===0?L:G;H.field=X}else{let X=Ze(A)?`(1-${A.signal}) * ${L} + ${A.signal} * ${G}`:`${1-A} * ${L} + ${A} * ${G}`;H.signal=`scale("${l}", ${X})`}return y&&(H.offset=y),H}function qh(s){let{channel:l,channelDef:d,channel2Def:h,markDef:y,config:w,scaleName:S,scale:A,stack:C,offset:L,defaultRef:G,bandPosition:H}=s;if(d){if(wt(d)){let X=A==null?void 0:A.get("type");if(ma(d)){H??=Fi({fieldDef:d,fieldDef2:h,markDef:y,config:w});let{bin:Z,timeUnit:le,type:ee}=d;if(Vt(Z)||H&&le&&ee===rs)return C!=null&&C.impute?Ks(d,S,{binSuffix:"mid"},{offset:L}):H&&!Hn(X)?uf({scaleName:S,fieldOrDatumDef:d,bandPosition:H,offset:L}):Ks(d,S,ou(d,l)?{binSuffix:"range"}:{},{offset:L});if(zn(Z)){if(ze(h))return uf({scaleName:S,fieldOrDatumDef:d,fieldOrDatumDef2:h,bandPosition:H,offset:L});Be(Vd(l===Qt?Xr:ki))}}return Ks(d,S,Hn(X)?{binSuffix:"range"}:{},{offset:L,band:X==="band"?H??d.bandPosition??.5:void 0})}if(cr(d)){let X=L?{offset:L}:{};return{...Jl(l,d.value),...X}}}return b.isFunction(G)&&(G=G()),G&&{...G,...L?{offset:L}:{}}}function Jl(s,l){return Q(["x","x2"],s)&&l==="width"?{field:{group:"width"}}:Q(["y","y2"],s)&&l==="height"?{field:{group:"height"}}:on(l)}function Xs(s){return s&&s!=="number"&&s!=="time"}function ey(s,l,d){return`${s}(${l}${d?`, ${Xe(d)}`:""})`}let V_=" \u2013 ";function Wh(s){var L,G;let{fieldOrDatumDef:l,format:d,formatType:h,expr:y,normalizeStack:w,config:S}=s;if(Xs(h))return ri({fieldOrDatumDef:l,format:d,formatType:h,expr:y,config:S});let A=ty(l,y,w),C=tu(l);if(d===void 0&&h===void 0&&S.customFormatTypes){if(C==="quantitative"){if(w&&S.normalizedNumberFormatType)return ri({fieldOrDatumDef:l,format:S.normalizedNumberFormat,formatType:S.normalizedNumberFormatType,expr:y,config:S});if(S.numberFormatType)return ri({fieldOrDatumDef:l,format:S.numberFormat,formatType:S.numberFormatType,expr:y,config:S})}if(C==="temporal"&&S.timeFormatType&&ze(l)&&l.timeUnit===void 0)return ri({fieldOrDatumDef:l,format:S.timeFormat,formatType:S.timeFormatType,expr:y,config:S})}if(It(l)){let H=function(X){let{field:Z,timeUnit:le,format:ee,formatType:de,rawTimeFormat:ge,isUTCScale:xe}=X;return!le||ee?!le&&de?`${de}(${Z}, '${ee}')`:(ee=b.isString(ee)?ee:ge,`${xe?"utc":"time"}Format(${Z}, '${ee}')`):function(me,Ae,Ce){if(!me)return;let Pe=G0(me);return`${Ce||Kd(me)?"utc":"time"}Format(${Ae}, ${Pe})`}(le,Z,xe)}({field:A,timeUnit:ze(l)?(L=jn(l.timeUnit))==null?void 0:L.unit:void 0,format:d,formatType:S.timeFormatType,rawTimeFormat:S.timeFormat,isUTCScale:$i(l)&&((G=l.scale)==null?void 0:G.type)===Gt.UTC});return H?{signal:H}:void 0}return d=cf({type:C,specifiedFormat:d,config:S,normalizeStack:w}),ze(l)&&Vt(l.bin)?{signal:yo(A,je(l,{expr:y,binSuffix:"end"}),d,h,S)}:d||tu(l)==="quantitative"?{signal:`${Vh(A,d)}`}:{signal:`isValid(${A}) ? ${A} : ""+${A}`}}function ty(s,l,d){return ze(s)?d?`${je(s,{expr:l,suffix:"end"})}-${je(s,{expr:l,suffix:"start"})}`:je(s,{expr:l}):function(h){let{datum:y}=h;return Gs(y)?js(y):`${Xe(y)}`}(s)}function ri(s){let{fieldOrDatumDef:l,format:d,formatType:h,expr:y,normalizeStack:w,config:S,field:A}=s;return A??=ty(l,y,w),A!=="datum.value"&&ze(l)&&Vt(l.bin)?{signal:yo(A,je(l,{expr:y,binSuffix:"end"}),d,h,S)}:{signal:ey(h,A,d)}}function ny(s,l,d,h,y,w){var S;if(!b.isString(h)||!Xs(h)){if(d===void 0&&h===void 0&&y.customFormatTypes&&tu(s)==="quantitative"&&(y.normalizedNumberFormatType&&nu(s)&&s.stack==="normalize"||y.numberFormatType))return;if(nu(s)&&s.stack==="normalize"&&y.normalizedNumberFormat)return cf({type:"quantitative",config:y,normalizeStack:!0});if(It(s)){let A=ze(s)?(S=jn(s.timeUnit))==null?void 0:S.unit:void 0;return A===void 0&&y.customFormatTypes&&y.timeFormatType?void 0:function(C){let{specifiedFormat:L,timeUnit:G,config:H,omitTimeFormatConfig:X}=C;return L||(G?{signal:G0(G)}:X?void 0:H.timeFormat)}({specifiedFormat:d,timeUnit:A,config:y,omitTimeFormatConfig:w})}return cf({type:l,specifiedFormat:d,config:y})}}function ay(s,l,d){var h;return s&&(Ze(s)||s==="number"||s==="time")?s:It(l)&&d!=="time"&&d!=="utc"?ze(l)&&((h=jn(l==null?void 0:l.timeUnit))!=null&&h.utc)?"utc":"time":void 0}function cf(s){let{type:l,specifiedFormat:d,config:h,normalizeStack:y}=s;return b.isString(d)?d:l===bo?y?h.normalizedNumberFormat:h.numberFormat:void 0}function Vh(s,l){return`format(${s}, "${l||""}")`}function Yh(s,l,d,h){return Xs(d)?ey(d,s,l):Vh(s,(b.isString(l)?l:void 0)??h.numberFormat)}function yo(s,l,d,h,y){if(d===void 0&&h===void 0&&y.customFormatTypes&&y.numberFormatType)return yo(s,l,y.numberFormat,y.numberFormatType,y);let w=Yh(s,d,h,y),S=Yh(l,d,h,y);return`${sc(s,!1)} ? "null" : ${w} + "${V_}" + ${S}`}let dc="min",Kh={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 df(s){return s in Kh}function Xh(s){return!!(s!=null&&s.encoding)}function ii(s){return s&&(s.op==="count"||!!s.field)}function fc(s){return s&&b.isArray(s)}function Ql(s){return"row"in s||"column"in s}function ff(s){return!!s&&"header"in s}function pc(s){return"facet"in s}function Zh(s){let{field:l,timeUnit:d,bin:h,aggregate:y}=s;return{...d?{timeUnit:d}:{},...h?{bin:h}:{},...y?{aggregate:y}:{},field:l}}function Zs(s){return"sort"in s}function Fi(s){let{fieldDef:l,fieldDef2:d,markDef:h,config:y}=s;if(wt(l)&&l.bandPosition!==void 0)return l.bandPosition;if(ze(l)){let{timeUnit:w,bin:S}=l;if(w&&!d)return Ga("timeUnitBandPosition",h,y);if(Vt(S))return .5}}function Jh(s){var G,H,X;let{channel:l,fieldDef:d,fieldDef2:h,markDef:y,config:w,scaleType:S,useVlSizeChannel:A}=s,C=Sa(l),L=Ht(A?"size":C,y,w,{vgChannel:C});if(L!==void 0)return L;if(ze(d)){let{timeUnit:Z,bin:le}=d;if(Z&&!h)return{band:Ga("timeUnitBandSize",y,w)};if(Vt(le)&&!Hn(S))return{band:1}}return cc(y.type)?S?Hn(S)?((G=w[y.type])==null?void 0:G.discreteBandSize)||{band:1}:(H=w[y.type])==null?void 0:H.continuousBandSize:(X=w[y.type])==null?void 0:X.discreteBandSize:void 0}function pf(s,l,d,h){return!!(Vt(s.bin)||s.timeUnit&&ma(s)&&s.type==="temporal")&&Fi({fieldDef:s,fieldDef2:l,markDef:d,config:h})!==void 0}function ry(s){return s&&!!s.sort&&!s.field}function hf(s){return s&&"condition"in s}function mf(s){let l=s==null?void 0:s.condition;return!!l&&!b.isArray(l)&&ze(l)}function eu(s){let l=s==null?void 0:s.condition;return!!l&&!b.isArray(l)&&wt(l)}function ze(s){return s&&(!!s.field||s.aggregate==="count")}function tu(s){return s==null?void 0:s.type}function Pi(s){return s&&"datum"in s}function os(s){return ma(s)&&!au(s)||gf(s)}function iy(s){return ma(s)&&s.type==="quantitative"&&!s.bin||gf(s)}function gf(s){return Pi(s)&&b.isNumber(s.datum)}function wt(s){return ze(s)||Pi(s)}function ma(s){return s&&("field"in s||s.aggregate==="count")&&"type"in s}function cr(s){return s&&"value"in s&&"value"in s}function $i(s){return s&&("scale"in s||"sort"in s)}function nu(s){return s&&("axis"in s||"stack"in s||"impute"in s)}function Qh(s){return s&&"legend"in s}function em(s){return s&&("format"in s||"formatType"in s)}function oy(s){return te(s,["legend","axis","header","scale"])}function je(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=s.field,h=l.prefix,y=l.suffix,w="";if(function(S){return S.aggregate==="count"}(s))d=Et("count");else{let S;if(!l.nofn)if(function(A){return"op"in A}(s))S=s.op;else{let{bin:A,aggregate:C,timeUnit:L}=s;Vt(A)?(S=Oi(A),y=(l.binSuffix??"")+(l.suffix??"")):C?Ni(C)?(w=`["${d}"]`,d=`argmax_${C.argmax}`):ei(C)?(w=`["${d}"]`,d=`argmin_${C.argmin}`):S=String(C):L&&!Mr(L)&&(S=function(G){let{utc:H,...X}=jn(G);return X.unit?(H?"utc":"")+be(X).map(Z=>$e(`${Z==="unit"?"":`_${Z}_`}${X[Z]}`)).join(""):(H?"utc":"")+"timeunit"+be(X).map(Z=>$e(`_${Z}_${X[Z]}`)).join("")}(L),y=(!["range","mid"].includes(l.binSuffix)&&l.binSuffix||"")+(l.suffix??""))}S&&(d=d?`${S}_${d}`:S)}return y&&(d=`${d}_${y}`),h&&(d=`${h}_${d}`),l.forAs?Tt(d):l.expr?rn(d,l.expr)+w:jt(d)+w}function au(s){switch(s.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return ze(s)&&!!s.bin;case"temporal":return!1}throw new Error(jd(s.type))}let sy=(s,l)=>{switch(l.fieldTitle){case"plain":return s.field;case"functional":return function(d){let{aggregate:h,bin:y,timeUnit:w,field:S}=d;if(Ni(h))return`${S} for argmax(${h.argmax})`;if(ei(h))return`${S} for argmin(${h.argmin})`;let A=w&&!Mr(w)?jn(w):void 0,C=h||(A==null?void 0:A.unit)||(A==null?void 0:A.maxbins)&&"timeunit"||Vt(y)&&"bin";return C?`${C.toUpperCase()}(${S})`:S}(s);default:return function(d,h){var C;let{field:y,bin:w,timeUnit:S,aggregate:A}=d;if(A==="count")return h.countTitle;if(Vt(w))return`${y} (binned)`;if(S&&!Mr(S)){let L=(C=jn(S))==null?void 0:C.unit;if(L)return`${y} (${oc(L).join("-")})`}else if(A)return Ni(A)?`${y} for max ${A.argmax}`:ei(A)?`${y} for min ${A.argmin}`:`${yt(A)} of ${y}`;return y}(s,l)}},tm=sy;function hc(s){tm=s}function ss(s,l,d){var C;let{allowDisabling:h,includeDefault:y=!0}=d,w=(C=bf(s))==null?void 0:C.title;if(!ze(s))return w??s.title;let S=s,A=y?yf(S,l):void 0;return h?Ke(w,S.title,A):w??S.title??A}function bf(s){return nu(s)&&s.axis?s.axis:Qh(s)&&s.legend?s.legend:ff(s)&&s.header?s.header:void 0}function yf(s,l){return tm(s,l)}function Js(s){if(em(s)){let{format:l,formatType:d}=s;return{format:l,formatType:d}}{let l=bf(s)??{},{format:d,formatType:h}=l;return{format:d,formatType:h}}}function dr(s){return ze(s)?s:mf(s)?s.condition:void 0}function yn(s){return wt(s)?s:eu(s)?s.condition:void 0}function nm(s,l,d){let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return b.isString(s)||b.isNumber(s)||b.isBoolean(s)?(Be(function(y,w,S){return`Channel ${y} is a ${w}. Converted to {value: ${Xe(S)}}.`}(l,b.isString(s)?"string":b.isNumber(s)?"number":"boolean",s)),{value:s}):wt(s)?vf(s,l,d,h):eu(s)?{...s,condition:vf(s.condition,l,d,h)}:s}function vf(s,l,d,h){if(em(s)){let{format:y,formatType:w,...S}=s;if(Xs(w)&&!d.customFormatTypes)return Be(Gd(l)),vf(S,l,d,h)}else{let y=nu(s)?"axis":Qh(s)?"legend":ff(s)?"header":null;if(y&&s[y]){let{format:w,formatType:S,...A}=s[y];if(Xs(S)&&!d.customFormatTypes)return Be(Gd(l)),vf({...s,[y]:A},l,d,h)}}return ze(s)?ru(s,l,h):function(y){let w=y.type;if(w)return y;let{datum:S}=y;return w=b.isNumber(S)?"quantitative":b.isString(S)?"nominal":Gs(S)?"temporal":void 0,{...y,type:w}}(s)}function ru(s,l){let{compositeMark:d=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{aggregate:h,timeUnit:y,bin:w,field:S}=s,A={...s};if(d||!h||Sn(h)||Ni(h)||ei(h)||(Be(function(C){return`Invalid aggregation operator "${C}".`}(h)),delete A.aggregate),y&&(A.timeUnit=jn(y)),S&&(A.field=`${S}`),Vt(w)&&(A.bin=rt(w,l)),zn(w)&&!un(l)&&Be(function(C){return`Channel ${C} should not be used with "binned" bin.`}(l)),ma(A)){let{type:C}=A,L=function(G){if(G)switch(G=G.toLowerCase()){case"q":case bo:return"quantitative";case"t":case rs:return"temporal";case"o":case tf:return"ordinal";case"n":case nf:return"nominal";case Vs:return"geojson"}}(C);C!==L&&(A.type=L),C!=="quantitative"&&Ii(h)&&(Be(function(G,H){return`Invalid field type "${G}" for aggregate: "${H}", using "quantitative" instead.`}(C,h)),A.type="quantitative")}else if(!Ti(l)){let C=function(L,G){var le;switch(G){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Zs(L)&&b.isArray(L.sort))return"ordinal";let{aggregate:H,bin:X,timeUnit:Z}=L;if(Z)return"temporal";if(X||H&&!Ni(H)&&!ei(H))return"quantitative";if($i(L)&&((le=L.scale)!=null&&le.type))switch(Ph[L.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(A,l);A.type=C}if(ma(A)){let{compatible:C,warning:L}=function(G,H){var le;let X=G.type;if(X==="geojson"&&H!=="shape")return{compatible:!1,warning:`Channel ${H} should not be used with a geojson data.`};switch(H){case tt:case Kr:case Fl:return au(G)?Qs:{compatible:!1,warning:Ch(H)};case Qt:case Bn:case hn:case Zo:case Le:case xa:case Zr:case Pl:case po:case Ku:case Jr:case st:case $l:case Ba:case ar:case mt:case Md:return Qs;case $a:case rr:case nt:case da:return X!==bo?{compatible:!1,warning:`Channel ${H} should be used with a quantitative field only, not ${G.type} field.`}:Qs;case Si:case Ft:case Ai:case fo:case xi:case co:case Un:case Xr:case ki:return X!=="nominal"||G.sort?Qs:{compatible:!1,warning:`Channel ${H} should not be used with an unsorted discrete field.`};case xn:case Jo:return au(G)||$i(Z=G)&&Zl((le=Z.scale)==null?void 0:le.type)?Qs:{compatible:!1,warning:D0(H)};case Bs:return G.type!=="nominal"||"sort"in G?Qs:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var Z}(A,l)||{};C===!1&&Be(L)}if(Zs(A)&&b.isString(A.sort)){let{sort:C}=A;if(df(C))return{...A,sort:{encoding:C}};let L=C.substr(1);if(C.charAt(0)==="-"&&df(L))return{...A,sort:{encoding:L,order:"descending"}}}if(ff(A)){let{header:C}=A;if(C){let{orient:L,...G}=C;if(L)return{...A,header:{...G,labelOrient:C.labelOrient||L,titleOrient:C.titleOrient||L}}}}return A}function rt(s,l){return b.isBoolean(s)?{maxbins:nc(l)}:s==="binned"?{binned:!0}:s.maxbins||s.step?s:{...s,maxbins:nc(l)}}let Qs={compatible:!0};function It(s){let{formatType:l}=Js(s);return l==="time"||!l&&(d=s)&&(d.type==="temporal"||ze(d)&&!!d.timeUnit);var d}function iu(s,l){var L;let{timeUnit:d,type:h,wrapTime:y,undefinedIfExprNotRequired:w}=l,S=d&&((L=jn(d))==null?void 0:L.unit),A,C=S||h==="temporal";return ts(s)?A=s.expr:Ze(s)?A=s.signal:Gs(s)?(C=!0,A=js(s)):(b.isString(s)||b.isNumber(s))&&C&&(A=`datetime(${Xe(s)})`,function(G){return!!U0[G]}(S)&&(b.isNumber(s)&&s<1e4||b.isString(s)&&isNaN(Date.parse(s)))&&(A=js({[S]:s}))),A?y&&C?`time(${A})`:A:w?void 0:Xe(s)}function mc(s,l){let{type:d}=s;return l.map(h=>{let y=iu(h,{timeUnit:ze(s)&&!Mr(s.timeUnit)?s.timeUnit:void 0,type:d,undefinedIfExprNotRequired:!0});return y!==void 0?{signal:y}:h})}function ou(s,l){return Vt(s.bin)?Nr(l)&&["ordinal","nominal"].includes(s.type):(console.warn("Only call this method for binned field defs."),!1)}let ls={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 su(s){return s==null?void 0:s.condition}let us=["domain","grid","labels","ticks","title"],Ef={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"},gc={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},Y_={...gc,style:1,labelExpr:1,encoding:1};function ly(s){return!!Y_[s]}let Yt=be({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function Bi(s){return"mark"in s}class wf{constructor(l,d){this.name=l,this.run=d}hasMatchingType(l){return!!Bi(l)&&(Li(d=l.mark)?d.type:d)===this.name;var d}}function Ui(s,l){let d=s&&s[l];return!!d&&(b.isArray(d)?ie(d,h=>!!h.field):ze(d)||mf(d))}function vo(s,l){let d=s&&s[l];return!!d&&(b.isArray(d)?ie(d,h=>!!h.field):ze(d)||Pi(d)||eu(d))}function uy(s,l){if(un(l)){let d=s[l];if((ze(d)||Pi(d))&&(Yl(d.type)||ze(d)&&d.timeUnit))return vo(s,Ul(l))}return!1}function am(s){return ie(m0,l=>{if(Ui(s,l)){let d=s[l];if(b.isArray(d))return ie(d,h=>!!h.aggregate);{let h=dr(d);return h&&!!h.aggregate}}return!1})}function cy(s,l){let d=[],h=[],y=[],w=[],S={};return bc(s,(A,C)=>{if(ze(A)){let{field:L,aggregate:G,bin:H,timeUnit:X,...Z}=A;if(G||X||H){let le=bf(A),ee=le==null?void 0:le.title,de=je(A,{forAs:!0}),ge={...ee?[]:{title:ss(A,l,{allowDisabling:!0})},...Z,field:de};if(G){let xe;if(Ni(G)?(xe="argmax",de=je({op:"argmax",field:G.argmax},{forAs:!0}),ge.field=`${de}.${L}`):ei(G)?(xe="argmin",de=je({op:"argmin",field:G.argmin},{forAs:!0}),ge.field=`${de}.${L}`):G!=="boxplot"&&G!=="errorbar"&&G!=="errorband"&&(xe=G),xe){let me={op:xe,as:de};L&&(me.field=L),w.push(me)}}else if(d.push(de),ma(A)&&Vt(H)){if(h.push({bin:H,field:L,as:de}),d.push(je(A,{binSuffix:"end"})),ou(A,C)&&d.push(je(A,{binSuffix:"range"})),un(C)){let xe={field:`${de}_end`};S[`${C}2`]=xe}ge.bin="binned",Ti(C)||(ge.type=bo)}else if(X&&!Mr(X)){y.push({timeUnit:X,field:L,as:de});let xe=ma(A)&&A.type!==rs&&"time";xe&&(C===Pl||C===Jr?ge.formatType=xe:function(me){return!!Ri[me]}(C)?ge.legend={formatType:xe,...ge.legend}:un(C)&&(ge.axis={formatType:xe,...ge.axis}))}S[C]=ge}else d.push(L),S[C]=s[C]}else S[C]=s[C]}),{bins:h,timeUnits:y,aggregate:w,groupby:d,encoding:S}}function _f(s,l,d){let h=kh(l,d);if(!h)return!1;if(h==="binned"){let y=s[l===Xr?Qt:Bn];return!!(ze(y)&&ze(s[l])&&zn(y.bin))}return!0}function oi(s,l){let d={};for(let h of be(s)){let y=nm(s[h],h,l,{compositeMark:!0});d[h]=y}return d}function bc(s,l,d){if(s)for(let h of be(s)){let y=s[h];if(b.isArray(y))for(let w of y)l.call(d,w,h);else l.call(d,y,h)}}function rm(s,l){return be(l).reduce((d,h)=>{switch(h){case Qt:case Bn:case st:case Md:case $l:case Xr:case ki:case hn:case Zo:case ar:case co:case mt:case Un:case nt:case $a:case da:case rr:case Pl:case xn:case Ba:case Jr:return d;case Bs:if(s==="line"||s==="trail")return d;case po:case Ku:{let y=l[h];if(b.isArray(y)||ze(y))for(let w of b.array(y))w.aggregate||d.push(je(w,{}));return d}case xi:if(s==="trail")return d;case Le:case xa:case Zr:case Si:case Ft:case Ai:case Jo:case fo:{let y=dr(l[h]);return y&&!y.aggregate&&d.push(je(y,{})),d}}},[])}function lu(s,l,d){let h=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return"tooltip"in d?{tooltip:d.tooltip}:{tooltip:[...s.map(y=>{let{fieldPrefix:w,titlePrefix:S}=y,A=h?` of ${yc(l)}`:"";return{field:w+l.field,type:l.type,title:Ze(S)?{signal:`${S}"${escape(A)}"`}:S+A}}),...Se(function(y){let w=[];for(let S of be(y))if(Ui(y,S)){let A=y[S],C=b.array(A);for(let L of C)ze(L)?w.push(L):mf(L)&&w.push(L.condition)}return w}(d).map(oy),ae)]}}function yc(s){let{title:l,field:d}=s;return Ke(l,d)}function kf(s,l,d,h,y){let{scale:w,axis:S}=d;return A=>{let{partName:C,mark:L,positionPrefix:G,endPositionPrefix:H,extraEncoding:X={}}=A,Z=yc(d);return xf(s,C,y,{mark:L,encoding:{[l]:{field:`${G}_${d.field}`,type:d.type,...Z!==void 0?{title:Z}:{},...w!==void 0?{scale:w}:{},...S!==void 0?{axis:S}:{}},...b.isString(H)?{[`${l}2`]:{field:`${H}_${d.field}`}}:{},...h,...X}})}}function xf(s,l,d,h){let{clip:y,color:w,opacity:S}=s,A=s.type;return s[l]||s[l]===void 0&&d[l]?[{...h,mark:{...d[l],...y?{clip:y}:{},...w?{color:w}:{},...S?{opacity:S}:{},...Li(h.mark)?h.mark:{type:h.mark},style:`${A}-${String(l)}`,...b.isBoolean(s[l])?{}:s[l]}}]:[]}function dy(s,l,d){let{encoding:h}=s,y=l==="vertical"?"y":"x",w=h[y],S=h[`${y}2`],A=h[`${y}Error`],C=h[`${y}Error2`];return{continuousAxisChannelDef:vc(w,d),continuousAxisChannelDef2:vc(S,d),continuousAxisChannelDefError:vc(A,d),continuousAxisChannelDefError2:vc(C,d),continuousAxis:y}}function vc(s,l){if(s!=null&&s.aggregate){let{aggregate:d,...h}=s;return d!==l&&Be(function(y,w){return`Continuous axis should not have customized aggregation function ${y}; ${w} already agregates the axis.`}(d,l)),h}return s}function el(s,l){let{mark:d,encoding:h}=s,{x:y,y:w}=h;if(Li(d)&&d.orient)return d.orient;if(os(y)){if(os(w)){let S=ze(y)&&y.aggregate,A=ze(w)&&w.aggregate;if(S||A!==l){if(A||S!==l){if(S===l&&A===l)throw new Error("Both x and y cannot have aggregate");return It(w)&&!It(y)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(os(w))return"vertical";throw new Error(`Need a valid continuous axis for ${l}s`)}let cs="boxplot",ke=new wf(cs,im);function tl(s){return b.isNumber(s)?"tukey":s}function im(s,l){let{config:d}=l;s={...s,encoding:oi(s.encoding,d)};let{mark:h,encoding:y,params:w,projection:S,...A}=s,C=Li(h)?h:{type:h};w&&Be(ja("boxplot"));let L=C.extent??d.boxplot.extent,G=Ht("size",C,d),H=C.invalid,X=tl(L),{bins:Z,timeUnits:le,transform:ee,continuousAxisChannelDef:de,continuousAxis:ge,groupby:xe,aggregate:me,encodingWithoutContinuousAxis:Ae,ticksOrient:Ce,boxOrient:Pe,customTooltipWithoutAggregatedField:We}=function(sd,Vg,Mo){let Tu=el(sd,cs),{continuousAxisChannelDef:Yg,continuousAxis:Kg}=dy(sd,Tu,cs),wn=Yg.field,As=tl(Vg),ld=[...om(wn),{op:"median",field:wn,as:`mid_box_${wn}`},{op:"min",field:wn,as:(As==="min-max"?"lower_whisker_":"min_")+wn},{op:"max",field:wn,as:(As==="min-max"?"upper_whisker_":"max_")+wn}],Ip=As==="min-max"||As==="tukey"?[]:[{calculate:`datum["upper_box_${wn}"] - datum["lower_box_${wn}"]`,as:`iqr_${wn}`},{calculate:`min(datum["upper_box_${wn}"] + datum["iqr_${wn}"] * ${Vg}, datum["max_${wn}"])`,as:`upper_whisker_${wn}`},{calculate:`max(datum["lower_box_${wn}"] - datum["iqr_${wn}"] * ${Vg}, datum["min_${wn}"])`,as:`lower_whisker_${wn}`}],{[Kg]:KA,...w1}=sd.encoding,{customTooltipWithoutAggregatedField:_1,filteredEncoding:k1}=function(In){let{tooltip:Lo,...vl}=In;if(!Lo)return{filteredEncoding:vl};let El,no;if(b.isArray(Lo)){for(let wl of Lo)wl.aggregate?(El||(El=[]),El.push(wl)):(no||(no=[]),no.push(wl));El&&(vl.tooltip=El)}else Lo.aggregate?vl.tooltip=Lo:no=Lo;return b.isArray(no)&&no.length===1&&(no=no[0]),{customTooltipWithoutAggregatedField:no,filteredEncoding:vl}}(w1),{bins:Ev,timeUnits:wv,aggregate:_v,groupby:Op,encoding:Cu}=cy(k1,Mo),kv=Tu==="vertical"?"horizontal":"vertical",xv=Tu,Xg=[...Ev,...wv,{aggregate:[..._v,...ld],groupby:Op},...Ip];return{bins:Ev,timeUnits:wv,transform:Xg,groupby:Op,aggregate:_v,continuousAxisChannelDef:Yg,continuousAxis:Kg,encodingWithoutContinuousAxis:Cu,ticksOrient:kv,boxOrient:xv,customTooltipWithoutAggregatedField:_1}}(s,L,d),{color:Je,size:it,...Qe}=Ae,lt=sd=>kf(C,ge,de,sd,d.boxplot),kt=lt(Qe),Fn=lt(Ae),dn=lt({...Qe,...it?{size:it}:{}}),sn=lu([{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"}],de,Ae),Ut={type:"tick",color:"black",opacity:1,orient:Ce,invalid:H,aria:!1},Dt=X==="min-max"?sn:lu([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],de,Ae),vn=[...kt({partName:"rule",mark:{type:"rule",invalid:H,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:Dt}),...kt({partName:"rule",mark:{type:"rule",invalid:H,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:Dt}),...kt({partName:"ticks",mark:Ut,positionPrefix:"lower_whisker",extraEncoding:Dt}),...kt({partName:"ticks",mark:Ut,positionPrefix:"upper_whisker",extraEncoding:Dt})],Nn=[...X!=="tukey"?vn:[],...Fn({partName:"box",mark:{type:"bar",...G?{size:G}:{},orient:Pe,invalid:H,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:sn}),...dn({partName:"median",mark:{type:"tick",invalid:H,...b.isObject(d.boxplot.median)&&d.boxplot.median.color?{color:d.boxplot.median.color}:{},...G?{size:G}:{},orient:Ce,aria:!1},positionPrefix:"mid_box",extraEncoding:sn})];if(X==="min-max")return{...A,transform:(A.transform??[]).concat(ee),layer:Nn};let fn=`datum["lower_box_${de.field}"]`,Oa=`datum["upper_box_${de.field}"]`,Da=`(${Oa} - ${fn})`,Br=`${fn} - ${L} * ${Da}`,Xn=`${Oa} + ${L} * ${Da}`,ga=`datum["${de.field}"]`,ln={joinaggregate:om(de.field),groupby:xe},At={transform:[{filter:`(${Br} <= ${ga}) && (${ga} <= ${Xn})`},{aggregate:[{op:"min",field:de.field,as:`lower_whisker_${de.field}`},{op:"max",field:de.field,as:`upper_whisker_${de.field}`},{op:"min",field:`lower_box_${de.field}`,as:`lower_box_${de.field}`},{op:"max",field:`upper_box_${de.field}`,as:`upper_box_${de.field}`},...me],groupby:xe}],layer:vn},{tooltip:En,...mi}=Qe,{scale:gi,axis:Ss}=de,Xa=yc(de),mr=te(Ss,["title"]),ba=xf(C,"outliers",d.boxplot,{transform:[{filter:`(${ga} < ${Br}) || (${ga} > ${Xn})`}],mark:"point",encoding:{[ge]:{field:de.field,type:de.type,...Xa!==void 0?{title:Xa}:{},...gi!==void 0?{scale:gi}:{},...ye(mr)?{}:{axis:mr}},...mi,...Je?{color:Je}:{},...We?{tooltip:We}:{}}})[0],bi,Do=[...Z,...le,ln];return ba?bi={transform:Do,layer:[ba,At]}:(bi=At,bi.transform.unshift(...Do)),{...A,layer:[bi,{transform:ee,layer:Nn}]}}function om(s){return[{op:"q1",field:s,as:`lower_box_${s}`},{op:"q3",field:s,as:`upper_box_${s}`}]}let Sf="errorbar",sm=new wf(Sf,Af);function Af(s,l){let{config:d}=l;s={...s,encoding:oi(s.encoding,d)};let{transform:h,continuousAxisChannelDef:y,continuousAxis:w,encodingWithoutContinuousAxis:S,ticksOrient:A,markDef:C,outerSpec:L,tooltipEncoding:G}=um(s,Sf,d);delete S.size;let H=kf(C,w,y,S,d.errorbar),X=C.thickness,Z=C.size,le={type:"tick",orient:A,aria:!1,...X!==void 0?{thickness:X}:{},...Z!==void 0?{size:Z}:{}},ee=[...H({partName:"ticks",mark:le,positionPrefix:"lower",extraEncoding:G}),...H({partName:"ticks",mark:le,positionPrefix:"upper",extraEncoding:G}),...H({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...X!==void 0?{size:X}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:G})];return{...L,transform:h,...ee.length>1?{layer:ee}:{...ee[0]}}}function lm(s,l){let{encoding:d}=s;if(function(A){return(wt(A.x)||wt(A.y))&&!wt(A.x2)&&!wt(A.y2)&&!wt(A.xError)&&!wt(A.xError2)&&!wt(A.yError)&&!wt(A.yError2)}(d))return{orient:el(s,l),inputType:"raw"};let h=function(A){return wt(A.x2)||wt(A.y2)}(d),y=function(A){return wt(A.xError)||wt(A.xError2)||wt(A.yError)||wt(A.yError2)}(d),w=d.x,S=d.y;if(h){if(y)throw new Error(`${l} cannot be both type aggregated-upper-lower and aggregated-error`);let A=d.x2,C=d.y2;if(wt(A)&&wt(C))throw new Error(`${l} cannot have both x2 and y2`);if(wt(A)){if(os(w))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${l}`)}if(wt(C)){if(os(S))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${l}`)}throw new Error("No ranged axis")}{let A=d.xError,C=d.xError2,L=d.yError,G=d.yError2;if(wt(C)&&!wt(A))throw new Error(`${l} cannot have xError2 without xError`);if(wt(G)&&!wt(L))throw new Error(`${l} cannot have yError2 without yError`);if(wt(A)&&wt(L))throw new Error(`${l} cannot have both xError and yError with both are quantiative`);if(wt(A)){if(os(w))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(wt(L)){if(os(S))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 um(s,l,d){let{mark:h,encoding:y,params:w,projection:S,...A}=s,C=Li(h)?h:{type:h};w&&Be(ja(l));let{orient:L,inputType:G}=lm(s,l),{continuousAxisChannelDef:H,continuousAxisChannelDef2:X,continuousAxisChannelDefError:Z,continuousAxisChannelDefError2:le,continuousAxis:ee}=dy(s,L,l),{errorBarSpecificAggregate:de,postAggregateCalculates:ge,tooltipSummary:xe,tooltipTitleWithFieldName:me}=function(Dt,vn,Nn,fn,Oa,Da,Br,Xn){let ga=[],ln=[],At=vn.field,En,mi=!1;if(Da==="raw"){let Xa=Dt.center?Dt.center:Dt.extent?Dt.extent==="iqr"?"median":"mean":Xn.errorbar.center,mr=Dt.extent?Dt.extent:Xa==="mean"?"stderr":"iqr";if(Xa==="median"!=(mr==="iqr")&&Be(function(ba,bi,Do){return`${ba} is not usually used with ${bi} for ${Do}.`}(Xa,mr,Br)),mr==="stderr"||mr==="stdev")ga=[{op:mr,field:At,as:`extent_${At}`},{op:Xa,field:At,as:`center_${At}`}],ln=[{calculate:`datum["center_${At}"] + datum["extent_${At}"]`,as:`upper_${At}`},{calculate:`datum["center_${At}"] - datum["extent_${At}"]`,as:`lower_${At}`}],En=[{fieldPrefix:"center_",titlePrefix:yt(Xa)},{fieldPrefix:"upper_",titlePrefix:cm(Xa,mr,"+")},{fieldPrefix:"lower_",titlePrefix:cm(Xa,mr,"-")}],mi=!0;else{let ba,bi,Do;mr==="ci"?(ba="mean",bi="ci0",Do="ci1"):(ba="median",bi="q1",Do="q3"),ga=[{op:bi,field:At,as:`lower_${At}`},{op:Do,field:At,as:`upper_${At}`},{op:ba,field:At,as:`center_${At}`}],En=[{fieldPrefix:"upper_",titlePrefix:ss({field:At,aggregate:Do,type:"quantitative"},Xn,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:ss({field:At,aggregate:bi,type:"quantitative"},Xn,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:ss({field:At,aggregate:ba,type:"quantitative"},Xn,{allowDisabling:!1})}]}}else{(Dt.center||Dt.extent)&&Be((gi=Dt.center,`${(Ss=Dt.extent)?"extent ":""}${Ss&&gi?"and ":""}${gi?"center ":""}${Ss&&gi?"are ":"is "}not needed when data are aggregated.`)),Da==="aggregated-upper-lower"?(En=[],ln=[{calculate:`datum["${Nn.field}"]`,as:`upper_${At}`},{calculate:`datum["${At}"]`,as:`lower_${At}`}]):Da==="aggregated-error"&&(En=[{fieldPrefix:"",titlePrefix:At}],ln=[{calculate:`datum["${At}"] + datum["${fn.field}"]`,as:`upper_${At}`}],Oa?ln.push({calculate:`datum["${At}"] + datum["${Oa.field}"]`,as:`lower_${At}`}):ln.push({calculate:`datum["${At}"] - datum["${fn.field}"]`,as:`lower_${At}`}));for(let Xa of ln)En.push({fieldPrefix:Xa.as.substring(0,6),titlePrefix:xt(xt(Xa.calculate,'datum["',""),'"]',"")})}var gi,Ss;return{postAggregateCalculates:ln,errorBarSpecificAggregate:ga,tooltipSummary:En,tooltipTitleWithFieldName:mi}}(C,H,X,Z,le,G,l,d),{[ee]:Ae,[ee==="x"?"x2":"y2"]:Ce,[ee==="x"?"xError":"yError"]:Pe,[ee==="x"?"xError2":"yError2"]:We,...Je}=y,{bins:it,timeUnits:Qe,aggregate:lt,groupby:kt,encoding:Fn}=cy(Je,d),dn=[...lt,...de],sn=G!=="raw"?[]:kt,Ut=lu(xe,H,Fn,me);return{transform:[...A.transform??[],...it,...Qe,...dn.length===0?[]:[{aggregate:dn,groupby:sn}],...ge],groupby:sn,continuousAxisChannelDef:H,continuousAxis:ee,encodingWithoutContinuousAxis:Fn,ticksOrient:L==="vertical"?"horizontal":"vertical",markDef:C,outerSpec:A,tooltipEncoding:Ut}}function cm(s,l,d){return`${yt(s)} ${d} ${l}`}let Tf="errorband",fy=new wf(Tf,py);function py(s,l){let{config:d}=l;s={...s,encoding:oi(s.encoding,d)};let{transform:h,continuousAxisChannelDef:y,continuousAxis:w,encodingWithoutContinuousAxis:S,markDef:A,outerSpec:C,tooltipEncoding:L}=um(s,Tf,d),G=A,H=kf(G,w,y,S,d.errorband),X=s.encoding.x!==void 0&&s.encoding.y!==void 0,Z={type:X?"area":"rect"},le={type:X?"line":"rule"},ee={...G.interpolate?{interpolate:G.interpolate}:{},...G.tension&&G.interpolate?{tension:G.tension}:{}};return X?(Z={...Z,...ee,ariaRoleDescription:"errorband"},le={...le,...ee,aria:!1}):G.interpolate?Be(Wd("interpolate")):G.tension&&Be(Wd("tension")),{...C,transform:h,layer:[...H({partName:"band",mark:Z,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:L}),...H({partName:"borders",mark:le,positionPrefix:"lower",extraEncoding:L}),...H({partName:"borders",mark:le,positionPrefix:"upper",extraEncoding:L})]}}let uu={};function cu(s,l,d){let h=new wf(s,l);uu[s]={normalizer:h,parts:d}}cu(cs,im,["box","median","outliers","rule","ticks"]),cu(Sf,Af,["ticks","rule"]),cu(Tf,py,["band","borders"]);let dm=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Ec={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"},wc={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"},fm=be(Ec),pm=be(wc),Cf=be({header:1,headerRow:1,headerColumn:1,headerFacet:1}),Rf=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],fr="_vgsid_",hm={point:{on:"click",fields:[fr],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function Nf(s){return s==="legend"||!!(s!=null&&s.legend)}function If(s){return Nf(s)&&b.isObject(s)}function _c(s){return!!(s!=null&&s.select)}function Of(s){let l=[];for(let d of s||[]){if(_c(d))continue;let{expr:h,bind:y,...w}=d;if(y&&h){let S={...w,bind:y,init:h};l.push(S)}else{let S={...w,...h?{update:h}:{},...y?{bind:y}:{}};l.push(S)}}return l}function kc(s){return"concat"in s}function du(s){return"vconcat"in s}function Df(s){return"hconcat"in s}function Mf(s){let{step:l,offsetIsDiscrete:d}=s;return d?l.for??"offset":"position"}function qa(s){return b.isObject(s)&&s.step!==void 0}function xc(s){return s.view||s.width||s.height}let Sc=be({align:1,bounds:1,center:1,columns:1,spacing:1});function ds(s,l){return s[l]??s[l==="width"?"continuousWidth":"continuousHeight"]}function fu(s,l){let d=Ac(s,l);return qa(d)?d.step:mm}function Ac(s,l){return Ke(s[l]??s[l==="width"?"discreteWidth":"discreteHeight"],{step:s.step})}let mm=20,hy={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:mm},mark:{color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},arc:{},area:{},bar:q_,circle:{},geoshape:{},image:{},line:{},point:{},rect:Q0,rule:{color:"black"},square:{},text:{color:"black"},tick:{thickness:1},trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:hm,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},si=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],gm={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},my={blue:si[0],orange:si[1],red:si[2],teal:si[3],green:si[4],yellow:si[5],purple:si[6],pink:si[7],brown:si[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 bm(s){let l=be(s||{}),d={};for(let h of l){let y=s[h];d[h]=su(y)?A0(y):Gn(y)}return d}let gy=[...Gh,...Yt,...Cf,"background","padding","legend","lineBreak","scale","style","title","view"];function ym(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{color:l,font:d,fontSize:h,selection:y,...w}=s,S=b.mergeConfig({},j(hy),d?function(C){return{text:{font:C},style:{"guide-label":{font:C},"guide-title":{font:C},"group-title":{font:C},"group-subtitle":{font:C}}}}(d):{},l?function(){let C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return{signals:[{name:"color",value:b.isObject(C)?{...my,...C}:my}],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"}]}}}(l):{},h?function(C){return{signals:[{name:"fontSize",value:b.isObject(C)?{...gm,...C}:gm}],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"}}}}}(h):{},w||{});y&&b.writeConfig(S,"selection",y,!0);let A=te(S,gy);for(let C of["background","lineBreak","padding"])S[C]&&(A[C]=Gn(S[C]));for(let C of Gh)S[C]&&(A[C]=ea(S[C]));for(let C of Yt)S[C]&&(A[C]=bm(S[C]));for(let C of Cf)S[C]&&(A[C]=ea(S[C]));return S.legend&&(A.legend=ea(S.legend)),S.scale&&(A.scale=ea(S.scale)),S.style&&(A.style=function(C){let L=be(C),G={};for(let H of L)G[H]=bm(C[H]);return G}(S.style)),S.title&&(A.title=ea(S.title)),S.view&&(A.view=ea(S.view)),A}let K_=new Set(["view",...G_]),X_=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],Z_={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],line:["point"],tick:["bandSize","thickness"]};function Lf(s){s=j(s);for(let l of X_)delete s[l];if(s.axis)for(let l in s.axis)su(s.axis[l])&&delete s.axis[l];if(s.legend)for(let l of dm)delete s.legend[l];if(s.mark){for(let l of J0)delete s.mark[l];s.mark.tooltip&&b.isObject(s.mark.tooltip)&&delete s.mark.tooltip}s.params&&(s.signals=(s.signals||[]).concat(Of(s.params)),delete s.params);for(let l of K_){for(let h of J0)delete s[l][h];let d=Z_[l];if(d)for(let h of d)delete s[l][h];J_(s,l)}for(let l of be(uu))delete s[l];(function(l){let{titleMarkConfig:d,subtitleMarkConfig:h,subtitle:y}=ac(l.title);ye(d)||(l.style["group-title"]={...l.style["group-title"],...d}),ye(h)||(l.style["group-subtitle"]={...l.style["group-subtitle"],...h}),ye(y)?delete l.title:l.title=y})(s);for(let l in s)b.isObject(s[l])&&ye(s[l])&&delete s[l];return ye(s)?void 0:s}function J_(s,l,d,h){l==="view"&&(d="cell");let y={...h?s[l][h]:s[l],...s.style[d??l]};ye(y)||(s.style[d??l]=y),h||delete s[l]}function pu(s){return"layer"in s}class Ff{map(l,d){return pc(l)?this.mapFacet(l,d):function(h){return"repeat"in h}(l)?this.mapRepeat(l,d):Df(l)?this.mapHConcat(l,d):du(l)?this.mapVConcat(l,d):kc(l)?this.mapConcat(l,d):this.mapLayerOrUnit(l,d)}mapLayerOrUnit(l,d){if(pu(l))return this.mapLayer(l,d);if(Bi(l))return this.mapUnit(l,d);throw new Error(Ah(l))}mapLayer(l,d){return{...l,layer:l.layer.map(h=>this.mapLayerOrUnit(h,d))}}mapHConcat(l,d){return{...l,hconcat:l.hconcat.map(h=>this.map(h,d))}}mapVConcat(l,d){return{...l,vconcat:l.vconcat.map(h=>this.map(h,d))}}mapConcat(l,d){let{concat:h,...y}=l;return{...y,concat:h.map(w=>this.map(w,d))}}mapFacet(l,d){return{...l,spec:this.map(l.spec,d)}}mapRepeat(l,d){return{...l,spec:this.map(l.spec,d)}}}let vm={zero:1,center:1,normalize:1},Q_=new Set([Bh,rf,af,sf,of,lf,zh,uc,X0,Uh]),Tc=new Set([rf,af,Bh]);function zi(s){return ze(s)&&tu(s)==="quantitative"&&!s.bin}function Em(s,l,d){let{orient:h,type:y}=d,w=l==="x"?"y":"radius",S=l==="x",A=s[l],C=s[w];if(ze(A)&&ze(C))if(zi(A)&&zi(C)){if(A.stack)return l;if(C.stack)return w;let L=ze(A)&&!!A.aggregate;if(L!==(ze(C)&&!!C.aggregate))return L?l:w;if(S&&["bar","area"].includes(y)){if(h==="vertical")return w;if(h==="horizontal")return l}}else{if(zi(A))return l;if(zi(C))return w}else{if(zi(A))return l;if(zi(C))return w}}function wm(s,l){var de,ge;let d=Li(s)?s:{type:s},h=d.type;if(!Q_.has(h))return null;let y=Em(l,"x",d)||Em(l,"theta",d);if(!y)return null;let w=l[y],S=ze(w)?je(w,{}):void 0,A=function(xe){switch(xe){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(y),C=[],L=new Set;if(l[A]){let xe=l[A],me=ze(xe)?je(xe,{}):void 0;me&&me!==S&&(C.push(A),L.add(me))}let G=A==="x"?"xOffset":"yOffset",H=l[G],X=ze(H)?je(H,{}):void 0;X&&X!==S&&(C.push(G),L.add(X));let Z=zs.reduce((xe,me)=>{if(me!=="tooltip"&&Ui(l,me)){let Ae=l[me];for(let Ce of b.array(Ae)){let Pe=dr(Ce);if(Pe.aggregate)continue;let We=je(Pe,{});We&&L.has(We)||xe.push({channel:me,fieldDef:Pe})}}return xe},[]),le;return w.stack!==void 0?le=b.isBoolean(w.stack)?w.stack?"zero":null:w.stack:Tc.has(h)&&(le="zero"),le&&le in vm?am(l)&&Z.length===0?null:(de=w==null?void 0:w.scale)!=null&&de.type&&((ge=w==null?void 0:w.scale)==null?void 0:ge.type)!==Gt.LINEAR?(w!=null&&w.stack&&Be(function(xe){return`Cannot stack non-linear scale (${xe}).`}(w.scale.type)),null):wt(l[Ci(y)])?(w.stack!==void 0&&Be(`Cannot stack "${ee=y}" if there is already "${ee}2".`),null):(ze(w)&&w.aggregate&&!Ir.has(w.aggregate)&&Be(`Stacking is applied even though the aggregate function is non-summative ("${w.aggregate}").`),{groupbyChannels:C,groupbyFields:L,fieldChannel:y,impute:w.impute!==null&&is(h),stackBy:Z,offset:le}):null;var ee}function by(s,l,d){let h=ea(s),y=Ht("orient",h,d);if(h.orient=function(w,S,A){switch(w){case of:case lf:case zh:case X0:case U_:case B_:return}let{x:C,y:L,x2:G,y2:H}=S;switch(w){case rf:if(ze(C)&&(zn(C.bin)||ze(L)&&L.aggregate&&!C.aggregate))return"vertical";if(ze(L)&&(zn(L.bin)||ze(C)&&C.aggregate&&!L.aggregate))return"horizontal";if(H||G){if(A)return A;if(!G)return(ze(C)&&C.type===bo&&!Vt(C.bin)||gf(C))&&ze(L)&&zn(L.bin)?"horizontal":"vertical";if(!H)return(ze(L)&&L.type===bo&&!Vt(L.bin)||gf(L))&&ze(C)&&zn(C.bin)?"vertical":"horizontal"}case sf:if(G&&(!ze(C)||!zn(C.bin))&&H&&(!ze(L)||!zn(L.bin)))return;case af:if(H)return ze(L)&&zn(L.bin)?"horizontal":"vertical";if(G)return ze(C)&&zn(C.bin)?"vertical":"horizontal";if(w===sf){if(C&&!L)return"vertical";if(L&&!C)return"horizontal"}case uc:case Uh:{let X=iy(C),Z=iy(L);if(A)return A;if(X&&!Z)return w!=="tick"?"horizontal":"vertical";if(!X&&Z)return w!=="tick"?"vertical":"horizontal";if(X&&Z)return"vertical";{let le=ma(C)&&C.type===rs,ee=ma(L)&&L.type===rs;if(le&&!ee)return"vertical";if(!le&&ee)return"horizontal"}return}}return"vertical"}(h.type,l,y),y!==void 0&&y!==h.orient&&Be(`Specified orient "${h.orient}" overridden with "${y}".`),h.type==="bar"&&h.orient){let w=Ht("cornerRadiusEnd",h,d);if(w!==void 0){let S=h.orient==="horizontal"&&l.x2||h.orient==="vertical"&&l.y2?["cornerRadius"]:H_[h.orient];for(let A of S)h[A]=w;h.cornerRadiusEnd!==void 0&&delete h.cornerRadiusEnd}}return Ht("opacity",h,d)===void 0&&(h.opacity=function(w,S){if(Q([of,Uh,lf,zh],w)&&!am(S))return .7}(h.type,l)),Ht("cursor",h,d)===void 0&&(h.cursor=function(w,S,A){return S.href||w.href||Ht("href",w,A)?"pointer":w.cursor}(h,l,d)),h}function e1(s){let{point:l,line:d,...h}=s;return be(h).length>1?h:h.type}function t1(s){for(let l of["line","area","rule","trail"])s[l]&&(s={...s,[l]:te(s[l],["point","line"])});return s}function _m(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=arguments.length>2?arguments[2]:void 0;return s.point==="transparent"?{opacity:0}:s.point?b.isObject(s.point)?s.point:{}:s.point!==void 0?null:l.point||d.shape?b.isObject(l.point)?l.point:{}:void 0}function km(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return s.line?s.line===!0?{}:s.line:s.line!==void 0?null:l.line?l.line===!0?{}:l.line:void 0}class xm{constructor(){at(this,"name","path-overlay")}hasMatchingType(l,d){if(Bi(l)){let{mark:h,encoding:y}=l,w=Li(h)?h:{type:h};switch(w.type){case"line":case"rule":case"trail":return!!_m(w,d[w.type],y);case"area":return!!_m(w,d[w.type],y)||!!km(w,d[w.type])}}return!1}run(l,d,h){let{config:y}=d,{params:w,projection:S,mark:A,name:C,encoding:L,...G}=l,H=oi(L,y),X=Li(A)?A:{type:A},Z=_m(X,y[X.type],H),le=X.type==="area"&&km(X,y[X.type]),ee=[{name:C,...w?{params:w}:{},mark:e1({...X.type==="area"&&X.opacity===void 0&&X.fillOpacity===void 0?{opacity:.7}:{},...X}),encoding:te(H,["shape"])}],de=wm(by(X,H,y),H),ge=H;if(de){let{fieldChannel:xe,offset:me}=de;ge={...H,[xe]:{...H[xe],...me?{stack:me}:{}}}}return ge=te(ge,["y2","x2"]),le&&ee.push({...S?{projection:S}:{},mark:{type:"line",...V(X,["clip","interpolate","tension","tooltip"]),...le},encoding:ge}),Z&&ee.push({...S?{projection:S}:{},mark:{type:"point",opacity:1,filled:!0,...V(X,["clip","tooltip"]),...Z},encoding:ge}),h({...G,layer:ee},{...d,config:t1(y)})}}function ra(s,l){return l?Ql(s)?yy(s,l):Sm(s,l):s}function Gi(s,l){return l?yy(s,l):s}function Cc(s,l,d){let h=l[s];return(y=h)&&!b.isString(y)&&"repeat"in y?h.repeat in d?{...l,[s]:d[h.repeat]}:void Be(function(w){return`Unknown repeated value "${w}".`}(h.repeat)):l;var y}function Sm(s,l){if((s=Cc("field",s,l))!==void 0){if(s===null)return null;if(Zs(s)&&ii(s.sort)){let d=Cc("field",s.sort,l);s={...s,...d?{sort:d}:{}}}return s}}function Pf(s,l){if(ze(s))return Sm(s,l);{let d=Cc("datum",s,l);return d===s||d.type||(d.type="nominal"),d}}function Am(s,l){if(!wt(s)){if(eu(s)){let d=Pf(s.condition,l);if(d)return{...s,condition:d};{let{condition:h,...y}=s;return y}}return s}{let d=Pf(s,l);if(d)return d;if(hf(s))return{condition:s.condition}}}function yy(s,l){let d={};for(let h in s)if(b.hasOwnProperty(s,h)){let y=s[h];if(b.isArray(y))d[h]=y.map(w=>Am(w,l)).filter(w=>w);else{let w=Am(y,l);w!==void 0&&(d[h]=w)}}return d}class Tm{constructor(){at(this,"name","RuleForRangedLine")}hasMatchingType(l){if(Bi(l)){let{encoding:d,mark:h}=l;if(h==="line"||Li(h)&&h.type==="line")for(let y of y_){let w=d[Us(y)];if(d[y]&&(ze(w)&&!zn(w.bin)||Pi(w)))return!0}}return!1}run(l,d,h){let{encoding:y,mark:w}=l;var S,A;return Be((S=!!y.x2,A=!!y.y2,`Line mark is for continuous lines and thus cannot be used with ${S&&A?"x2 and y2":S?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),h({...l,mark:b.isObject(w)?{...w,type:"rule"}:"rule"},d)}}function $f(s){let{parentEncoding:l,encoding:d={},layer:h}=s,y={};if(l){let w=new Set([...be(l),...be(d)]);for(let S of w){let A=d[S],C=l[S];if(wt(A)){let L={...C,...A};y[S]=L}else eu(A)?y[S]={...A,condition:{...C,...A.condition}}:A||A===null?y[S]=A:(h||cr(C)||Ze(C)||wt(C)||b.isArray(C))&&(y[S]=C)}}else y=d;return!y||ye(y)?void 0:y}function Cm(s){let{parentProjection:l,projection:d}=s;return l&&d&&Be(function(h){let{parentProjection:y,projection:w}=h;return`Layer's shared projection ${Xe(y)} is overridden by a child projection ${Xe(w)}.`}({parentProjection:l,projection:d})),d??l}function Rm(s){return"filter"in s}function Nm(s){return"lookup"in s}function n1(s){return"pivot"in s}function vy(s){return"density"in s}function Im(s){return"quantile"in s}function Ey(s){return"regression"in s}function a1(s){return"loess"in s}function wy(s){return"sample"in s}function Om(s){return"window"in s}function Dm(s){return"joinaggregate"in s}function _y(s){return"flatten"in s}function r1(s){return"calculate"in s}function Bf(s){return"bin"in s}function Mm(s){return"impute"in s}function Uf(s){return"timeUnit"in s}function ky(s){return"aggregate"in s}function i1(s){return"stack"in s}function Lm(s){return"fold"in s}function Fm(s){return"extent"in s&&!("density"in s)}function zf(s,l){let{transform:d,...h}=s;return d?{...h,transform:d.map(y=>{if(Rm(y))return{filter:hu(y,l)};if(Bf(y)&&mo(y.bin))return{...y,bin:Pm(y.bin)};if(Nm(y)){let{selection:w,...S}=y.from;return w?{...y,from:{param:w,...S}}:y}return y})}:s}function Gf(s,l){var h,y;let d=j(s);if(ze(d)&&mo(d.bin)&&(d.bin=Pm(d.bin)),$i(d)&&((y=(h=d.scale)==null?void 0:h.domain)==null?void 0:y.selection)){let{selection:w,...S}=d.scale.domain;d.scale.domain={...S,...w?{param:w}:{}}}if(hf(d))if(b.isArray(d.condition))d.condition=d.condition.map(w=>{let{selection:S,param:A,test:C,...L}=w;return A?w:{...L,test:hu(w,l)}});else{let{selection:w,param:S,test:A,...C}=Gf(d.condition,l);d.condition=S?d.condition:{...C,test:hu(d.condition,l)}}return d}function Pm(s){let l=s.extent;if(l!=null&&l.selection){let{selection:d,...h}=l;return{...s,extent:{...h,param:d}}}return s}function hu(s,l){let d=h=>F(h,y=>{let w={param:y,empty:l.emptySelections[y]??!0};return l.selectionPredicates[y]??=[],l.selectionPredicates[y].push(w),w});return s.selection?d(s.selection):F(s.test||s.filter,h=>h.selection?d(h.selection):h)}class $m extends Ff{map(l,d){let h=d.selections??[];if(l.params&&!Bi(l)){let y=[];for(let w of l.params)_c(w)?h.push(w):y.push(w);l.params=y}return d.selections=h,super.map(l,d)}mapUnit(l,d){let h=d.selections;if(!h||!h.length)return l;let y=(d.path??[]).concat(l.name),w=[];for(let S of h)if(S.views&&S.views.length)for(let A of S.views)(b.isString(A)&&(A===l.name||y.includes(A))||b.isArray(A)&&A.map(C=>y.indexOf(C)).every((C,L,G)=>C!==-1&&(L===0||C>G[L-1])))&&w.push(S);else w.push(S);return w.length&&(l.params=w),l}}for(let s of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){let l=$m.prototype[s];$m.prototype[s]=function(d,h){return l.call(this,d,Bm(d,h))}}function Bm(s,l){return s.name?{...l,path:(l.path??[]).concat(s.name)}:l}function jf(s,l){l===void 0&&(l=ym(s.config));let d=function(S){let C={config:arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}};return o1.map(Um.map(xy.map(S,C),C),C)}(s,l),{width:h,height:y}=s,w=function(S,A,C){let{width:L,height:G}=A,H=Bi(S)||pu(S),X={};H?L=="container"&&G=="container"?(X.type="fit",X.contains="padding"):L=="container"?(X.type="fit-x",X.contains="padding"):G=="container"&&(X.type="fit-y",X.contains="padding"):(L=="container"&&(Be(Ta("width")),L=void 0),G=="container"&&(Be(Ta("height")),G=void 0));let Z={type:"pad",...X,...C?zm(C.autosize):{},...zm(S.autosize)};if(Z.type!=="fit"||H||(Be(ta),Z.type="pad"),L=="container"&&Z.type!="fit"&&Z.type!="fit-x"&&Be(na("width")),G=="container"&&Z.type!="fit"&&Z.type!="fit-y"&&Be(na("height")),!Ne(Z,{type:"pad"}))return Z}(d,{width:h,height:y,autosize:s.autosize},l);return{...d,...w?{autosize:w}:{}}}let Um=new class extends Ff{constructor(){super(...arguments),at(this,"nonFacetUnitNormalizers",[ke,sm,fy,new xm,new Tm])}map(s,l){if(Bi(s)){let d=Ui(s.encoding,tt),h=Ui(s.encoding,Kr),y=Ui(s.encoding,Fl);if(d||h||y)return this.mapFacetedUnit(s,l)}return super.map(s,l)}mapUnit(s,l){let{parentEncoding:d,parentProjection:h}=l,y=Gi(s.encoding,l.repeater),w={...s,...s.name?{name:[l.repeaterPrefix,s.name].filter(A=>A).join("_")}:{},...y?{encoding:y}:{}};if(d||h)return this.mapUnitWithParentEncodingOrProjection(w,l);let S=this.mapLayerOrUnit.bind(this);for(let A of this.nonFacetUnitNormalizers)if(A.hasMatchingType(w,l.config))return A.run(w,l,S);return w}mapRepeat(s,l){return function(d){return!b.isArray(d.repeat)&&d.repeat.layer}(s)?this.mapLayerRepeat(s,l):this.mapNonLayerRepeat(s,l)}mapLayerRepeat(s,l){let{repeat:d,spec:h,...y}=s,{row:w,column:S,layer:A}=d,{repeater:C={},repeaterPrefix:L=""}=l;return w||S?this.mapRepeat({...s,repeat:{...w?{row:w}:{},...S?{column:S}:{}},spec:{repeat:{layer:A},spec:h}},l):{...y,layer:A.map(G=>{let H={...C,layer:G},X=`${(h.name?`${h.name}_`:"")+L}child__layer_${$e(G)}`,Z=this.mapLayerOrUnit(h,{...l,repeater:H,repeaterPrefix:X});return Z.name=X,Z})}}mapNonLayerRepeat(s,l){let{repeat:d,spec:h,data:y,...w}=s;!b.isArray(d)&&s.columns&&(s=te(s,["columns"]),Be(ur("repeat")));let S=[],{repeater:A={},repeaterPrefix:C=""}=l,L=!b.isArray(d)&&d.row||[A?A.row:null],G=!b.isArray(d)&&d.column||[A?A.column:null],H=b.isArray(d)&&d||[A?A.repeat:null];for(let Z of H)for(let le of L)for(let ee of G){let de={repeat:Z,row:le,column:ee,layer:A.layer},ge=(h.name?`${h.name}_`:"")+C+"child__"+(b.isArray(d)?`${$e(Z)}`:(d.row?`row_${$e(le)}`:"")+(d.column?`column_${$e(ee)}`:"")),xe=this.map(h,{...l,repeater:de,repeaterPrefix:ge});xe.name=ge,S.push(te(xe,["data"]))}let X=b.isArray(d)?s.columns:d.column?d.column.length:1;return{data:h.data??y,align:"all",...w,columns:X,concat:S}}mapFacet(s,l){let{facet:d}=s;return Ql(d)&&s.columns&&(s=te(s,["columns"]),Be(ur("facet"))),super.mapFacet(s,l)}mapUnitWithParentEncodingOrProjection(s,l){let{encoding:d,projection:h}=s,{parentEncoding:y,parentProjection:w,config:S}=l,A=Cm({parentProjection:w,projection:h}),C=$f({parentEncoding:y,encoding:Gi(d,l.repeater)});return this.mapUnit({...s,...A?{projection:A}:{},...C?{encoding:C}:{}},{config:S})}mapFacetedUnit(s,l){let{row:d,column:h,facet:y,...w}=s.encoding,{mark:S,width:A,projection:C,height:L,view:G,params:H,encoding:X,...Z}=s,{facetMapping:le,layout:ee}=this.getFacetMappingAndLayout({row:d,column:h,facet:y},l),de=Gi(w,l.repeater);return this.mapFacet({...Z,...ee,facet:le,spec:{...A?{width:A}:{},...L?{height:L}:{},...G?{view:G}:{},...C?{projection:C}:{},mark:S,encoding:de,...H?{params:H}:{}}},l)}getFacetMappingAndLayout(s,l){let{row:d,column:h,facet:y}=s;if(d||h){y&&Be(`Facet encoding dropped as ${(w=[...d?[tt]:[],...h?[Kr]:[]]).join(" and ")} ${w.length>1?"are":"is"} also specified.`);let S={},A={};for(let C of[tt,Kr]){let L=s[C];if(L){let{align:G,center:H,spacing:X,columns:Z,...le}=L;S[C]=le;for(let ee of["align","center","spacing"])L[ee]!==void 0&&(A[ee]??={},A[ee][C]=L[ee])}}return{facetMapping:S,layout:A}}{let{align:S,center:A,spacing:C,columns:L,...G}=y;return{facetMapping:ra(G,l.repeater),layout:{...S?{align:S}:{},...A?{center:A}:{},...C?{spacing:C}:{},...L?{columns:L}:{}}}}var w}mapLayer(s,l){let{parentEncoding:d,parentProjection:h,...y}=l,{encoding:w,projection:S,...A}=s,C={...y,parentEncoding:$f({parentEncoding:d,encoding:w,layer:!0}),parentProjection:Cm({parentProjection:h,projection:S})};return super.mapLayer({...A,...s.name?{name:[C.repeaterPrefix,s.name].filter(L=>L).join("_")}:{}},C)}},xy=new class extends Ff{map(s,l){return l.emptySelections??={},l.selectionPredicates??={},s=zf(s,l),super.map(s,l)}mapLayerOrUnit(s,l){if((s=zf(s,l)).encoding){let d={};for(let[h,y]of _e(s.encoding))d[h]=Gf(y,l);s={...s,encoding:d}}return super.mapLayerOrUnit(s,l)}mapUnit(s,l){let{selection:d,...h}=s;return d?{...h,params:_e(d).map(y=>{let[w,S]=y,{init:A,bind:C,empty:L,...G}=S;G.type==="single"?(G.type="point",G.toggle=!1):G.type==="multi"&&(G.type="point"),l.emptySelections[w]=L!=="none";for(let H of Te(l.selectionPredicates[w]??{}))H.empty=L!=="none";return{name:w,value:A,select:G,bind:C}})}:s}},o1=new $m;function zm(s){return b.isString(s)?{type:s}:s??{}}let Gm=["background","padding"];function Hf(s,l){let d={};for(let h of Gm)s&&s[h]!==void 0&&(d[h]=Gn(s[h]));return l&&(d.params=s.params),d}class ji{constructor(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.explicit=l,this.implicit=d}clone(){return new ji(j(this.explicit),j(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(l){return Ke(this.explicit[l],this.implicit[l])}getWithExplicit(l){return this.explicit[l]!==void 0?{explicit:!0,value:this.explicit[l]}:this.implicit[l]!==void 0?{explicit:!1,value:this.implicit[l]}:{explicit:!1,value:void 0}}setWithExplicit(l,d){let{value:h,explicit:y}=d;h!==void 0&&this.set(l,h,y)}set(l,d,h){return delete this[h?"implicit":"explicit"][l],this[h?"explicit":"implicit"][l]=d,this}copyKeyFromSplit(l,d){let{explicit:h,implicit:y}=d;h[l]!==void 0?this.set(l,h[l],!0):y[l]!==void 0&&this.set(l,y[l],!1)}copyKeyFromObject(l,d){d[l]!==void 0&&this.set(l,d[l],!0)}copyAll(l){for(let d of be(l.combine())){let h=l.getWithExplicit(d);this.setWithExplicit(d,h)}}}function Hi(s){return{explicit:!0,value:s}}function Fr(s){return{explicit:!1,value:s}}function Sy(s){return(l,d,h,y)=>{let w=s(l.value,d.value);return w>0?l:w<0?d:Rc(l,d,h,y)}}function Rc(s,l,d,h){return s.explicit&&l.explicit&&Be(function(y,w,S,A){return`Conflicting ${w.toString()} property "${y.toString()}" (${Xe(S)} and ${Xe(A)}). Using ${Xe(S)}.`}(d,h,s.value,l.value)),s}function qi(s,l,d,h){let y=arguments.length>4&&arguments[4]!==void 0?arguments[4]:Rc;return s===void 0||s.value===void 0?l:s.explicit&&!l.explicit?s:l.explicit&&!s.explicit?l:Ne(s.value,l.value)?s:y(s,l,d,h)}class Ay extends ji{constructor(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},h=arguments.length>2&&arguments[2]!==void 0&&arguments[2];super(l,d),this.explicit=l,this.implicit=d,this.parseNothing=h}clone(){let l=super.clone();return l.parseNothing=this.parseNothing,l}}function fs(s){return"url"in s}function mu(s){return"values"in s}function qf(s){return"name"in s&&!fs(s)&&!mu(s)&&!Eo(s)}function Eo(s){return s&&(Wf(s)||Vf(s)||Yf(s))}function Wf(s){return"sequence"in s}function Vf(s){return"sphere"in s}function Yf(s){return"graticule"in s}let nn=function(s){return s[s.Raw=0]="Raw",s[s.Main=1]="Main",s[s.Row=2]="Row",s[s.Column=3]="Column",s[s.Lookup=4]="Lookup",s}({});function jm(s){let{signals:l,hasLegend:d,index:h,...y}=s;return y.field=jt(y.field),y}function ps(s){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:b.identity;if(b.isArray(s)){let h=s.map(y=>ps(y,l,d));return l?`[${h.join(", ")}]`:h}return Gs(s)?d(l?js(s):function(h){let y=Yd(h,!0);return h.utc?+new Date(Date.UTC(...y)):+new Date(...y)}(s)):l?d(Xe(s)):s}function Ty(s,l){for(let d of Te(s.component.selection??{})){let h=d.name,y=`${h}${ko}, ${d.resolve==="global"?"true":`{unit: ${Wa(s)}}`}`;for(let w of il)w.defined(d)&&(w.signals&&(l=w.signals(s,d,l)),w.modifyExpr&&(y=w.modifyExpr(s,d,y)));l.push({name:h+Gy,on:[{events:{signal:d.name+ko},update:`modify(${b.stringValue(d.name+ms)}, ${y})`}]})}return Kf(l)}function Nc(s,l){if(s.component.selection&&be(s.component.selection).length){let d=b.stringValue(s.getName("cell"));l.unshift({name:"facet",value:{},on:[{events:b.parseSelector("pointermove","scope"),update:`isTuple(facet) ? facet : group(${d}).datum`}]})}return Kf(l)}function Cy(s,l){for(let d of Te(s.component.selection??{}))for(let h of il)h.defined(d)&&h.marks&&(l=h.marks(s,d,l));return l}function Kf(s){return s.map(l=>(l.on&&!l.on.length&&delete l.on,l))}class qt{constructor(l,d){this.debugName=d,at(this,"_children",[]),at(this,"_parent",null),at(this,"_hash",void 0),l&&(this.parent=l)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(l){this._parent=l,l&&l.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(l,d){this._children.includes(l)?Be("Attempt to add the same child twice."):d!==void 0?this._children.splice(d,0,l):this._children.push(l)}removeChild(l){let d=this._children.indexOf(l);return this._children.splice(d,1),d}remove(){let l=this._parent.removeChild(this);for(let d of this._children)d._parent=this._parent,this._parent.addChild(d,l++)}insertAsParentOf(l){let d=l.parent;d.removeChild(this),this.parent=d,l.parent=this}swapWithParent(){let l=this._parent,d=l.parent;for(let y of this._children)y.parent=l;this._children=[],l.removeChild(this);let h=l.parent.removeChild(l);this._parent=d,d.addChild(this,h),l.parent=this}}class ia extends qt{clone(){let l=new this.constructor;return l.debugName=`clone_${this.debugName}`,l._source=this._source,l._name=`clone_${this._name}`,l.type=this.type,l.refCounts=this.refCounts,l.refCounts[l._name]=0,l}constructor(l,d,h,y){super(l,d),this.type=h,this.refCounts=y,at(this,"_source",void 0),at(this,"_name",void 0),this._source=this._name=d,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${Zt()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(l){this._source=l}}function Hm(s){return s.as!==void 0}function Ry(s){return`${s}_end`}class Wi extends qt{clone(){return new Wi(null,j(this.timeUnits))}constructor(l,d){super(l),this.timeUnits=d}static makeFromEncoding(l,d){let h=d.reduceFieldDef((y,w,S)=>{let{field:A,timeUnit:C}=w;if(C){let L;if(Mr(C)){if(cn(d)){let{mark:G,markDef:H,config:X}=d,Z=Fi({fieldDef:w,markDef:H,config:X});(cc(G)||Z)&&(L={timeUnit:jn(C),field:A})}}else L={as:je(w,{forAs:!0}),field:A,timeUnit:C};if(cn(d)){let{mark:G,markDef:H,config:X}=d,Z=Fi({fieldDef:w,markDef:H,config:X});cc(G)&&un(S)&&Z!==.5&&(L.rectBandPosition=Z)}L&&(y[ae(L)]=L)}return y},{});return ye(h)?null:new Wi(l,h)}static makeFromTransform(l,d){let{timeUnit:h,...y}={...d},w={...y,timeUnit:jn(h)};return new Wi(l,{[ae(w)]:w})}merge(l){this.timeUnits={...this.timeUnits};for(let d in l.timeUnits)this.timeUnits[d]||(this.timeUnits[d]=l.timeUnits[d]);for(let d of l.children)l.removeChild(d),d.parent=this;l.remove()}removeFormulas(l){let d={};for(let[h,y]of _e(this.timeUnits)){let w=Hm(y)?y.as:`${y.field}_end`;l.has(w)||(d[h]=y)}this.timeUnits=d}producedFields(){return new Set(Te(this.timeUnits).map(l=>Hm(l)?l.as:Ry(l.field)))}dependentFields(){return new Set(Te(this.timeUnits).map(l=>l.field))}hash(){return`TimeUnit ${ae(this.timeUnits)}`}assemble(){let l=[];for(let d of Te(this.timeUnits)){let{rectBandPosition:h}=d,y=jn(d.timeUnit);if(Hm(d)){let{field:w,as:S}=d,{unit:A,utc:C,...L}=y,G=[S,`${S}_end`];l.push({field:jt(w),type:"timeunit",...A?{units:oc(A)}:{},...C?{timezone:"utc"}:{},...L,as:G}),l.push(...oa(G,h,y))}else if(d){let{field:w}=d,S=w.replaceAll("\\.","."),A=qm({timeUnit:y,field:S}),C=Ry(S);l.push({type:"formula",expr:A,as:C}),l.push(...oa([S,C],h,y))}}return l}}let Xf="offsetted_rect_start",$t="offsetted_rect_end";function qm(s){let{timeUnit:l,field:d,reverse:h}=s,{unit:y,utc:w}=l,S=Mh(y),{part:A,step:C}=Xd(S,l.step);return`${w?"utcOffset":"timeOffset"}('${A}', datum['${d}'], ${h?-C:C})`}function oa(s,l,d){let[h,y]=s;if(l!==void 0&&l!==.5){let w=`datum['${h}']`,S=`datum['${y}']`;return[{type:"formula",expr:hs([qm({timeUnit:d,field:h,reverse:!0}),w],l+.5),as:`${h}_${Xf}`},{type:"formula",expr:hs([w,S],l+.5),as:`${h}_${$t}`}]}return[]}function hs(s,l){let[d,h]=s;return`${1-l} * ${d} + ${l} * ${h}`}let Ic="_tuple_fields";class Wm{constructor(){at(this,"hasChannel",void 0),at(this,"hasField",void 0),at(this,"hasSelectionId",void 0),at(this,"timeUnit",void 0),at(this,"items",void 0);for(var l=arguments.length,d=new Array(l),h=0;h<l;h++)d[h]=arguments[h];this.items=d,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}let Vi={defined:()=>!0,parse:(s,l,d)=>{let h=l.name,y=l.project??=new Wm,w={},S={},A=new Set,C=(le,ee)=>{let de=ee==="visual"?le.channel:le.field,ge=$e(`${h}_${de}`);for(let xe=1;A.has(ge);xe++)ge=$e(`${h}_${de}_${xe}`);return A.add(ge),{[ee]:ge}},L=l.type,G=s.config.selection[L],H=d.value!==void 0?b.array(d.value):null,{fields:X,encodings:Z}=b.isObject(d.select)?d.select:{};if(!X&&!Z&&H){for(let le of H)if(b.isObject(le))for(let ee of be(le))b_[ee]?(Z||(Z=[])).push(ee):L==="interval"?(Be('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),Z=G.encodings):(X??=[]).push(ee)}X||Z||(Z=G.encodings,"fields"in G&&(X=G.fields));for(let le of Z??[]){let ee=s.fieldDef(le);if(ee){let de=ee.field;if(ee.aggregate){Be(Di(le,ee.aggregate));continue}if(!de){Be(aa(le));continue}if(ee.timeUnit&&!Mr(ee.timeUnit)){de=s.vgField(le);let ge={timeUnit:ee.timeUnit,as:de,field:ee.field};S[ae(ge)]=ge}if(!w[de]){let ge={field:de,channel:le,type:L==="interval"&&Nr(le)&&Ha(s.getScaleComponent(le).get("type"))?"R":ee.bin?"R-RE":"E",index:y.items.length};ge.signals={...C(ge,"data"),...C(ge,"visual")},y.items.push(w[de]=ge),y.hasField[de]=w[de],y.hasSelectionId=y.hasSelectionId||de===fr,Qo(le)?(ge.geoChannel=le,ge.channel=mh(le),y.hasChannel[ge.channel]=w[de]):y.hasChannel[le]=w[de]}}else Be(aa(le))}for(let le of X??[]){if(y.hasField[le])continue;let ee={type:"E",field:le,index:y.items.length};ee.signals={...C(ee,"data")},y.items.push(ee),y.hasField[le]=ee,y.hasSelectionId=y.hasSelectionId||le===fr}H&&(l.init=H.map(le=>y.items.map(ee=>b.isObject(le)?le[ee.geoChannel||ee.channel]!==void 0?le[ee.geoChannel||ee.channel]:le[ee.field]:le))),ye(S)||(y.timeUnit=new Wi(null,S))},signals:(s,l,d)=>{let h=l.name+Ic;return d.filter(y=>y.name===h).length>0||l.project.hasSelectionId?d:d.concat({name:h,value:l.project.items.map(jm)})}},Ra={defined:s=>s.type==="interval"&&s.resolve==="global"&&s.bind&&s.bind==="scales",parse:(s,l)=>{let d=l.scales=[];for(let h of l.project.items){let y=h.channel;if(!Nr(y))continue;let w=s.getScaleComponent(y),S=w?w.get("type"):void 0;w&&Ha(S)?(w.set("selectionExtent",{param:l.name,field:h.field},!0),d.push(h)):Be("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(s,l,d)=>{let h=l.scales.filter(S=>d.filter(A=>A.name===S.signals.data).length===0);if(!s.parent||nl(s)||h.length===0)return d;let y=d.filter(S=>S.name===l.name)[0],w=y.update;if(w.indexOf(ag)>=0)y.update=`{${h.map(S=>`${b.stringValue(jt(S.field))}: ${S.signals.data}`).join(", ")}}`;else{for(let S of h){let A=`${b.stringValue(jt(S.field))}: ${S.signals.data}`;w.includes(A)||(w=`${w.substring(0,w.length-1)}, ${A}}`)}y.update=w}return d.concat(h.map(S=>({name:S.signals.data})))},signals:(s,l,d)=>{if(s.parent&&!nl(s))for(let h of l.scales){let y=d.filter(w=>w.name===h.signals.data)[0];y.push="outer",delete y.value,delete y.update}return d}};function qn(s,l){return`domain(${b.stringValue(s.scaleName(l))})`}function nl(s){return s.parent&&ws(s.parent)&&!s.parent.parent}let wo="_brush",Vm="_scale_trigger",gu="geo_interval_init_tick",Zf="_init",Ym={defined:s=>s.type==="interval",parse:(s,l,d)=>{if(s.hasProjection){let h={...b.isObject(d.select)?d.select:{}};h.fields=[fr],h.encodings||(h.encodings=d.value?be(d.value):[$a,nt]),d.select={type:"interval",...h}}if(l.translate&&!Ra.defined(l)){let h=`!event.item || event.item.mark.name !== ${b.stringValue(l.name+wo)}`;for(let y of l.events){if(!y.between){Be(`${y} is not an ordered event stream for interval selections.`);continue}let w=b.array(y.between[0].filter??=[]);w.indexOf(h)<0&&w.push(h)}}},signals:(s,l,d)=>{let h=l.name,y=h+ko,w=Te(l.project.hasChannel).filter(A=>A.channel===Qt||A.channel===Bn),S=l.init?l.init[0]:null;if(d.push(...w.reduce((A,C)=>A.concat(function(L,G,H,X){let Z=!L.hasProjection,le=H.channel,ee=H.signals.visual,de=b.stringValue(Z?L.scaleName(le):L.projectionName()),ge=Ce=>`scale(${de}, ${Ce})`,xe=L.getSizeSignalRef(le===Qt?"width":"height").signal,me=`${le}(unit)`,Ae=G.events.reduce((Ce,Pe)=>[...Ce,{events:Pe.between[0],update:`[${me}, ${me}]`},{events:Pe,update:`[${ee}[0], clamp(${me}, 0, ${xe})]`}],[]);if(Z){let Ce=H.signals.data,Pe=Ra.defined(G),We=L.getScaleComponent(le),Je=We?We.get("type"):void 0,it=X?{init:ps(X,!0,ge)}:{value:[]};return Ae.push({events:{signal:G.name+Vm},update:Ha(Je)?`[${ge(`${Ce}[0]`)}, ${ge(`${Ce}[1]`)}]`:"[0, 0]"}),Pe?[{name:Ce,on:[]}]:[{name:ee,...it,on:Ae},{name:Ce,...X?{init:ps(X)}:{},on:[{events:{signal:ee},update:`${ee}[0] === ${ee}[1] ? null : invert(${de}, ${ee})`}]}]}{let Ce=le===Qt?0:1,Pe=G.name+Zf;return[{name:ee,...X?{init:`[${Pe}[0][${Ce}], ${Pe}[1][${Ce}]]`}:{value:[]},on:Ae}]}}(s,l,C,S&&S[C.index])),[])),s.hasProjection){let A=b.stringValue(s.projectionName()),C=s.projectionName()+"_center",{x:L,y:G}=l.project.hasChannel,H=L&&L.signals.visual,X=G&&G.signals.visual,Z=L?S&&S[L.index]:`${C}[0]`,le=G?S&&S[G.index]:`${C}[1]`,ee=me=>s.getSizeSignalRef(me).signal,de=`[[${H?H+"[0]":"0"}, ${X?X+"[0]":"0"}],[${H?H+"[1]":ee("width")}, ${X?X+"[1]":ee("height")}]]`;S&&(d.unshift({name:h+Zf,init:`[scale(${A}, [${L?Z[0]:Z}, ${G?le[0]:le}]), scale(${A}, [${L?Z[1]:Z}, ${G?le[1]:le}])]`}),!L||!G)&&(d.find(me=>me.name===C)||d.unshift({name:C,update:`invert(${A}, [${ee("width")}/2, ${ee("height")}/2])`}));let ge=`vlSelectionTuples(${`intersect(${de}, {markname: ${b.stringValue(s.getName("marks"))}}, unit.mark)`}, ${`{unit: ${Wa(s)}}`})`,xe=w.map(me=>me.signals.visual);return d.concat({name:y,on:[{events:[...xe.length?[{signal:xe.join(" || ")}]:[],...S?[{signal:gu}]:[]],update:ge}]})}{if(!Ra.defined(l)){let L=h+Vm,G=w.map(H=>{let X=H.channel,{data:Z,visual:le}=H.signals,ee=b.stringValue(s.scaleName(X)),de=Ha(s.getScaleComponent(X).get("type"))?"+":"";return`(!isArray(${Z}) || (${de}invert(${ee}, ${le})[0] === ${de}${Z}[0] && ${de}invert(${ee}, ${le})[1] === ${de}${Z}[1]))`});G.length&&d.push({name:L,value:{},on:[{events:w.map(H=>({scale:s.scaleName(H.channel)})),update:G.join(" && ")+` ? ${L} : {}`}]})}let A=w.map(L=>L.signals.data),C=`unit: ${Wa(s)}, fields: ${h+Ic}, values`;return d.concat({name:y,...S?{init:`{${C}: ${ps(S)}}`}:{},...A.length?{on:[{events:[{signal:A.join(" || ")}],update:`${A.join(" && ")} ? {${C}: [${A}]} : null`}]}:{}})}},topLevelSignals:(s,l,d)=>(cn(s)&&s.hasProjection&&l.init&&(d.filter(h=>h.name===gu).length||d.unshift({name:gu,value:null,on:[{events:"timer{1}",update:`${gu} === null ? {} : ${gu}`}]})),d),marks:(s,l,d)=>{let h=l.name,{x:y,y:w}=l.project.hasChannel,S=y==null?void 0:y.signals.visual,A=w==null?void 0:w.signals.visual,C=`data(${b.stringValue(l.name+ms)})`;if(Ra.defined(l)||!y&&!w)return d;let L={x:y!==void 0?{signal:`${S}[0]`}:{value:0},y:w!==void 0?{signal:`${A}[0]`}:{value:0},x2:y!==void 0?{signal:`${S}[1]`}:{field:{group:"width"}},y2:w!==void 0?{signal:`${A}[1]`}:{field:{group:"height"}}};if(l.resolve==="global")for(let ee of be(L))L[ee]=[{test:`${C}.length && ${C}[0].unit === ${Wa(s)}`,...L[ee]},{value:0}];let{fill:G,fillOpacity:H,cursor:X,...Z}=l.mark,le=be(Z).reduce((ee,de)=>(ee[de]=[{test:[y!==void 0&&`${S}[0] !== ${S}[1]`,w!==void 0&&`${A}[0] !== ${A}[1]`].filter(ge=>ge).join(" && "),value:Z[de]},{value:null}],ee),{});return[{name:`${h+wo}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:G},fillOpacity:{value:H}},update:L}},...d,{name:h+wo,type:"rect",clip:!0,encode:{enter:{...X?{cursor:{value:X}}:{},fill:{value:"transparent"}},update:{...L,...le}}}]}},al={defined:s=>s.type==="point",signals:(s,l,d)=>{let h=l.name,y=h+Ic,w=l.project,S="(item().isVoronoi ? datum.datum : datum)",A=Te(s.component.selection??{}).reduce((H,X)=>X.type==="interval"?H.concat(X.name+wo):H,[]).map(H=>`indexof(item().mark.name, '${H}') < 0`).join(" && "),C="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(A?` && ${A}`:""),L=`unit: ${Wa(s)}, `;l.project.hasSelectionId?L+=`${fr}: ${S}[${b.stringValue(fr)}]`:L+=`fields: ${y}, values: [${w.items.map(H=>{let X=s.fieldDef(H.channel);return X!=null&&X.bin?`[${S}[${b.stringValue(s.vgField(H.channel,{}))}], ${S}[${b.stringValue(s.vgField(H.channel,{binSuffix:"end"}))}]]`:`${S}[${b.stringValue(H.field)}]`}).join(", ")}]`;let G=l.events;return d.concat([{name:h+ko,on:G?[{events:G,update:`${C} ? {${L}} : null`,force:!0}]:[]}])}};function bu(s,l,d,h){let y=hf(l)&&l.condition,w=h(l);return y?{[d]:[...b.array(y).map(S=>{let A=h(S);if(function(C){return C.param}(S)){let{param:C,empty:L}=S;return{test:Eu(s,{param:C,empty:L}),...A}}return{test:Ki(s,S.test),...A}}),...w!==void 0?[w]:[]]}:w!==void 0?{[d]:w}:{}}function Jf(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"text",d=s.encoding[l];return bu(s,d,l,h=>yu(h,s.config))}function yu(s,l){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"datum";if(s){if(cr(s))return on(s.value);if(wt(s)){let{format:h,formatType:y}=Js(s);return Wh({fieldOrDatumDef:s,format:h,formatType:y,expr:d,config:l})}}}function Oc(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{encoding:d,markDef:h,config:y,stack:w}=s,S=d.tooltip;if(b.isArray(S))return{tooltip:Ny({tooltip:S},w,y,l)};{let A=l.reactiveGeom?"datum.datum":"datum";return bu(s,S,"tooltip",C=>{let L=yu(C,y,A);if(L)return L;if(C===null)return;let G=Ht("tooltip",h,y);return G===!0&&(G={content:"encoding"}),b.isString(G)?{value:G}:b.isObject(G)?Ze(G)?G:G.content==="encoding"?Ny(d,w,y,l):{signal:A}:void 0})}}function Dc(s,l,d){let{reactiveGeom:h}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y={...d,...d.tooltipFormat},w={},S=h?"datum.datum":"datum",A=[];function C(G,H){let X=Us(H),Z=ma(G)?G:{...G,type:s[X].type},le=Z.title||yf(Z,y),ee=b.array(le).join(", ").replaceAll(/"/g,'\\"'),de;if(un(H)){let ge=H==="x"?"x2":"y2",xe=dr(s[ge]);if(zn(Z.bin)&&xe){let me=je(Z,{expr:S}),Ae=je(xe,{expr:S}),{format:Ce,formatType:Pe}=Js(Z);de=yo(me,Ae,Ce,Pe,y),w[ge]=!0}}if((un(H)||H===ar||H===mt)&&l&&l.fieldChannel===H&&l.offset==="normalize"){let{format:ge,formatType:xe}=Js(Z);de=Wh({fieldOrDatumDef:Z,format:ge,formatType:xe,expr:S,config:y,normalizeStack:!0}).signal}de??=yu(Z,y,S).signal,A.push({channel:H,key:ee,value:de})}bc(s,(G,H)=>{ze(G)?C(G,H):mf(G)&&C(G.condition,H)});let L={};for(let{channel:G,key:H,value:X}of A)w[G]||L[H]||(L[H]=X);return L}function Ny(s,l,d){let{reactiveGeom:h}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=Dc(s,l,d,{reactiveGeom:h}),w=_e(y).map(S=>{let[A,C]=S;return`"${A}": ${C}`});return w.length>0?{signal:`{${w.join(", ")}}`}:void 0}function s1(s){let{markDef:l,config:d}=s,h=Ht("aria",l,d);return h===!1?{}:{...h?{aria:h}:{},...l1(s),...u1(s)}}function l1(s){let{mark:l,markDef:d,config:h}=s;if(h.aria===!1)return{};let y=Ht("ariaRoleDescription",d,h);return y!=null?{ariaRoleDescription:{value:y}}:l in Bd?{}:{ariaRoleDescription:{value:l}}}function u1(s){let{encoding:l,markDef:d,config:h,stack:y}=s,w=l.description;if(w)return bu(s,w,"description",C=>yu(C,s.config));let S=Ht("description",d,h);if(S!=null)return{description:on(S)};if(h.aria===!1)return{};let A=Dc(l,y,h);return ye(A)?void 0:{description:{signal:_e(A).map((C,L)=>{let[G,H]=C;return`"${L>0?"; ":""}${G}: " + (${H})`}).join(" + ")}}}function Wn(s,l){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{markDef:h,encoding:y,config:w}=l,{vgChannel:S}=d,{defaultRef:A,defaultValue:C}=d;A===void 0&&(C??=Ht(s,h,w,{vgChannel:S,ignoreVgConfig:!0}),C!==void 0&&(A=on(C)));let L=y[s];return bu(l,L,S??s,G=>qh({channel:s,channelDef:G,markDef:h,config:w,scaleName:l.scaleName(s),scale:l.getScaleComponent(s),stack:null,defaultRef:A}))}function Mc(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{filled:void 0},{markDef:d,encoding:h,config:y}=s,{type:w}=d,S=l.filled??Ht("filled",d,y),A=Q(["bar","point","circle","square","geoshape"],w)?"transparent":void 0,C=Ht(S===!0?"color":void 0,d,y,{vgChannel:"fill"})??y.mark[S===!0&&"color"]??A,L=Ht(S===!1?"color":void 0,d,y,{vgChannel:"stroke"})??y.mark[S===!1&&"color"],G=S?"fill":"stroke",H={...C?{fill:on(C)}:{},...L?{stroke:on(L)}:{}};return d.color&&(S?d.fill:d.stroke)&&Be(O0("property",{fill:"fill"in d,stroke:"stroke"in d})),{...H,...Wn("color",s,{vgChannel:G,defaultValue:S?C:L}),...Wn("fill",s,{defaultValue:h.fill?C:void 0}),...Wn("stroke",s,{defaultValue:h.stroke?L:void 0})}}function Iy(s){let{encoding:l,mark:d}=s,h=l.order;return!is(d)&&cr(h)?bu(s,h,"zindex",y=>on(y.value)):{}}function vu(s){let{channel:l,markDef:d,encoding:h={},model:y,bandPosition:w}=s,S=`${l}Offset`,A=d[S],C=h[S];if((S==="xOffset"||S==="yOffset")&&C)return{offsetType:"encoding",offset:qh({channel:S,channelDef:C,markDef:d,config:y==null?void 0:y.config,scaleName:y.scaleName(S),scale:y.getScaleComponent(S),stack:null,defaultRef:on(A),bandPosition:w})};let L=d[S];return L?{offsetType:"visual",offset:L}:{}}function Vn(s,l,d){let{defaultPos:h,vgChannel:y}=d,{encoding:w,markDef:S,config:A,stack:C}=l,L=w[s],G=w[Ci(s)],H=l.scaleName(s),X=l.getScaleComponent(s),{offset:Z,offsetType:le}=vu({channel:s,markDef:S,encoding:w,model:l,bandPosition:.5}),ee=Qf({model:l,defaultPos:h,channel:s,scaleName:H,scale:X}),de=!L&&un(s)&&(w.latitude||w.longitude)?{field:l.getName(s)}:function(ge){let{channel:xe,channelDef:me,scaleName:Ae,stack:Ce,offset:Pe,markDef:We}=ge;if(wt(me)&&Ce&&xe===Ce.fieldChannel){if(ze(me)){let Je=me.bandPosition;if(Je!==void 0||We.type!=="text"||xe!=="radius"&&xe!=="theta"||(Je=.5),Je!==void 0)return uf({scaleName:Ae,fieldOrDatumDef:me,startSuffix:"start",bandPosition:Je,offset:Pe})}return Ks(me,Ae,{suffix:"end"},{offset:Pe})}return jh(ge)}({channel:s,channelDef:L,channel2Def:G,markDef:S,config:A,scaleName:H,scale:X,stack:C,offset:Z,defaultRef:ee,bandPosition:le==="encoding"?0:void 0});return de?{[y||s]:de}:void 0}function Qf(s){let{model:l,defaultPos:d,channel:h,scaleName:y,scale:w}=s,{markDef:S,config:A}=l;return()=>{let C=Us(h),L=sr(h),G=Ht(h,S,A,{vgChannel:L});if(G!==void 0)return Jl(h,G);switch(d){case"zeroOrMin":case"zeroOrMax":if(y){let H=w.get("type");if(!Q([Gt.LOG,Gt.TIME,Gt.UTC],H)){if(w.domainDefinitelyIncludesZero())return{scale:y,value:0}}}if(d==="zeroOrMin")return C==="y"?{field:{group:"height"}}:{value:0};switch(C){case"radius":return{signal:`min(${l.width.signal},${l.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":return{...l[Sa(h)],mult:.5}}}}let Oy={left:"x",center:"xc",right:"x2"},Dy={top:"y",middle:"yc",bottom:"y2"};function Km(s,l,d){let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"middle";if(s==="radius"||s==="theta")return sr(s);let y=s==="x"?"align":"baseline",w=Ht(y,l,d),S;return Ze(w)?(Be(function(A){return`The ${A} for range marks cannot be an expression`}(y)),S=void 0):S=w,s==="x"?Oy[S||(h==="top"?"left":"center")]:Dy[S||h]}function ep(s,l,d){let{defaultPos:h,defaultPos2:y,range:w}=d;return w?_o(s,l,{defaultPos:h,defaultPos2:y}):Vn(s,l,{defaultPos:h})}function _o(s,l,d){let{defaultPos:h,defaultPos2:y}=d,{markDef:w,config:S}=l,A=Ci(s),C=Sa(s),L=function(G,H,X){let{encoding:Z,mark:le,markDef:ee,stack:de,config:ge}=G,xe=Us(X),me=Sa(X),Ae=sr(X),Ce=Z[xe],Pe=G.scaleName(xe),We=G.getScaleComponent(xe),{offset:Je}=vu(X in Z||X in ee?{channel:X,markDef:ee,encoding:Z,model:G}:{channel:xe,markDef:ee,encoding:Z,model:G});if(!Ce&&(X==="x2"||X==="y2")&&(Z.latitude||Z.longitude)){let Qe=Sa(X),lt=G.markDef[Qe];return lt!=null?{[Qe]:{value:lt}}:{[Ae]:{field:G.getName(X)}}}let it=function(Qe){let{channel:lt,channelDef:kt,channel2Def:Fn,markDef:dn,config:sn,scaleName:Ut,scale:Dt,stack:vn,offset:Nn,defaultRef:fn}=Qe;return wt(kt)&&vn&&lt.charAt(0)===vn.fieldChannel.charAt(0)?Ks(kt,Ut,{suffix:"start"},{offset:Nn}):jh({channel:lt,channelDef:Fn,scaleName:Ut,scale:Dt,stack:vn,markDef:dn,config:sn,offset:Nn,defaultRef:fn})}({channel:X,channelDef:Ce,channel2Def:Z[X],markDef:ee,config:ge,scaleName:Pe,scale:We,stack:de,offset:Je,defaultRef:void 0});return it!==void 0?{[Ae]:it}:rl(X,ee)||rl(X,{[X]:zd(X,ee,ge.style),[me]:zd(me,ee,ge.style)})||rl(X,ge[le])||rl(X,ge.mark)||{[Ae]:Qf({model:G,defaultPos:H,channel:X,scaleName:Pe,scale:We})()}}(l,y,A);return{...Vn(s,l,{defaultPos:h,vgChannel:L[C]?Km(s,w,S):sr(s)}),...L}}function rl(s,l){let d=Sa(s),h=sr(s);if(l[h]!==void 0)return{[h]:Jl(s,l[h])};if(l[s]!==void 0)return{[h]:Jl(s,l[s])};if(l[d]){let y=l[d];if(!Ys(y))return{[d]:Jl(s,y)};Be(function(w){return`Position range does not support relative band size for ${w}.`}(d))}}function li(s,l){let{config:d,encoding:h,markDef:y}=s,w=y.type,S=Ci(l),A=Sa(l),C=h[l],L=h[S],G=s.getScaleComponent(l),H=G?G.get("type"):void 0,X=y.orient,Z=h[A]??h.size??Ht("size",y,d,{vgChannel:A}),le=gh(l),ee=w==="bar"&&(l==="x"?X==="vertical":X==="horizontal");return!ze(C)||!(Vt(C.bin)||zn(C.bin)||C.timeUnit&&!L)||Z&&!Ys(Z)||h[le]||Hn(H)?(wt(C)&&Hn(H)||ee)&&!L?function(de,ge,xe){var ga,ln;let{markDef:me,encoding:Ae,config:Ce,stack:Pe}=xe,We=me.orient,Je=xe.scaleName(ge),it=xe.getScaleComponent(ge),Qe=Sa(ge),lt=Ci(ge),kt=gh(ge),Fn=xe.scaleName(kt),dn=xe.getScaleComponent(Ul(ge)),sn=We==="horizontal"&&ge==="y"||We==="vertical"&&ge==="x",Ut;(Ae.size||me.size)&&(sn?Ut=Wn("size",xe,{vgChannel:Qe,defaultRef:on(me.size)}):Be(function(At){return`Cannot apply size to non-oriented mark "${At}".`}(me.type)));let Dt=!!Ut,vn=Jh({channel:ge,fieldDef:de,markDef:me,config:Ce,scaleType:(ga=it||dn)==null?void 0:ga.get("type"),useVlSizeChannel:sn});Ut=Ut||{[Qe]:My(Qe,Fn||Je,dn||it,Ce,vn,!!de,me.type)};let Nn=((ln=it||dn)==null?void 0:ln.get("type"))==="band"&&Ys(vn)&&!Dt?"top":"middle",fn=Km(ge,me,Ce,Nn),Oa=fn==="xc"||fn==="yc",{offset:Da,offsetType:Br}=vu({channel:ge,markDef:me,encoding:Ae,model:xe,bandPosition:Oa?.5:0}),Xn=jh({channel:ge,channelDef:de,markDef:me,config:Ce,scaleName:Je,scale:it,stack:Pe,offset:Da,defaultRef:Qf({model:xe,defaultPos:"mid",channel:ge,scaleName:Je,scale:it}),bandPosition:Oa?Br==="encoding"?0:.5:Ze(vn)?{signal:`(1-${vn})/2`}:Ys(vn)?(1-vn.band)/2:0});if(Qe)return{[fn]:Xn,...Ut};{let At=sr(lt),En=Ut[Qe],mi=Da?{...En,offset:Da}:En;return{[fn]:Xn,[At]:b.isArray(Xn)?[Xn[0],{...Xn[1],offset:mi}]:{...Xn,offset:mi}}}}(C,l,s):_o(l,s,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function(de){var At;let{fieldDef:ge,fieldDef2:xe,channel:me,model:Ae}=de,{config:Ce,markDef:Pe,encoding:We}=Ae,Je=Ae.getScaleComponent(me),it=Ae.scaleName(me),Qe=Je?Je.get("type"):void 0,lt=Je.get("reverse"),kt=Jh({channel:me,fieldDef:ge,markDef:Pe,config:Ce,scaleType:Qe}),Fn=(At=Ae.component.axes[me])==null?void 0:At[0],dn=(Fn==null?void 0:Fn.get("translate"))??.5,sn=un(me)?Ht("binSpacing",Pe,Ce)??0:0,Ut=Ci(me),Dt=sr(me),vn=sr(Ut),Nn=Ga("minBandSize",Pe,Ce),{offset:fn}=vu({channel:me,markDef:Pe,encoding:We,model:Ae,bandPosition:0}),{offset:Oa}=vu({channel:Ut,markDef:Pe,encoding:We,model:Ae,bandPosition:0}),Da=function(En){let{scaleName:mi,fieldDef:gi}=En,Ss=je(gi,{expr:"datum"});return`abs(scale("${mi}", ${je(gi,{expr:"datum",suffix:"end"})}) - scale("${mi}", ${Ss}))`}({fieldDef:ge,scaleName:it}),Br=Xm(me,sn,lt,dn,fn,Nn,Da),Xn=Xm(Ut,sn,lt,dn,Oa??fn,Nn,Da),ga=Ze(kt)?{signal:`(1-${kt.signal})/2`}:Ys(kt)?(1-kt.band)/2:.5,ln=Fi({fieldDef:ge,fieldDef2:xe,markDef:Pe,config:Ce});if(Vt(ge.bin)||ge.timeUnit){let En=ge.timeUnit&&ln!==.5;return{[vn]:Zm({fieldDef:ge,scaleName:it,bandPosition:ga,offset:Xn,useRectOffsetField:En}),[Dt]:Zm({fieldDef:ge,scaleName:it,bandPosition:Ze(ga)?{signal:`1-${ga.signal}`}:1-ga,offset:Br,useRectOffsetField:En})}}if(zn(ge.bin)){let En=Ks(ge,it,{},{offset:Xn});if(ze(xe))return{[vn]:En,[Dt]:Ks(xe,it,{},{offset:Br})};if(mo(ge.bin)&&ge.bin.step)return{[vn]:En,[Dt]:{signal:`scale("${it}", ${je(ge,{expr:"datum"})} + ${ge.bin.step})`,offset:Br}}}return void Be(Vd(Ut))}({fieldDef:C,fieldDef2:L,channel:l,model:s})}function My(s,l,d,h,y,w,S){if(Ys(y)){if(!d)return{mult:y.band,field:{group:s}};{let A=d.get("type");if(A==="band"){let C=`bandwidth('${l}')`;y.band!==1&&(C=`${y.band} * ${C}`);let L=Ga("minBandSize",{type:S},h);return{signal:L?`max(${pa(L)}, ${C})`:C}}y.band!==1&&(Be(function(C){return`Cannot use the relative band size with ${C} scale.`}(A)),y=void 0)}}else{if(Ze(y))return y;if(y)return{value:y}}if(d){let A=d.get("range");if(go(A)&&b.isNumber(A.step))return{value:A.step-2}}if(!w){let{bandPaddingInner:A,barBandPaddingInner:C,rectBandPaddingInner:L}=h.scale,G=Ke(A,S==="bar"?C:L);if(Ze(G))return{signal:`(1 - (${G.signal})) * ${s}`};if(b.isNumber(G))return{signal:`${1-G} * ${s}`}}return{value:fu(h.view,s)-2}}function Xm(s,l,d,h,y,w,S){if(Fd(s))return 0;let A=s==="x"||s==="y2",C=A?-l/2:l/2;if(Ze(d)||Ze(y)||Ze(h)||w){let L=pa(d),G=pa(y),H=pa(h),X=pa(w),Z=w?`(${S} < ${X} ? ${A?"":"-"}0.5 * (${X} - (${S})) : ${C})`:C;return{signal:(H?`${H} + `:"")+(L?`(${L} ? -1 : 1) * `:"")+(G?`(${G} + ${Z})`:Z)}}return y=y||0,h+(d?-y-C:+y+C)}function Zm(s){let{fieldDef:l,scaleName:d,bandPosition:h,offset:y,useRectOffsetField:w}=s;return uf({scaleName:d,fieldOrDatumDef:l,bandPosition:h,offset:y,...w?{startSuffix:Xf,endSuffix:$t}:{}})}let c1=new Set(["aria","width","height"]);function Na(s,l){let{fill:d,stroke:h}=l.color==="include"?Mc(s):{};return{...d1(s.markDef,l),...tp(s,"fill",d),...tp(s,"stroke",h),...Wn("opacity",s),...Wn("fillOpacity",s),...Wn("strokeOpacity",s),...Wn("strokeWidth",s),...Wn("strokeDash",s),...Iy(s),...Oc(s),...Jf(s,"href"),...s1(s)}}function tp(s,l,d){let{config:h,mark:y,markDef:w}=s;if(Ht("invalid",w,h)==="hide"&&d&&!is(y)){let S=function(A,C){let{invalid:L=!1,channels:G}=C,H=G.reduce((Z,le)=>{let ee=A.getScaleComponent(le);if(ee){let de=ee.get("type"),ge=A.vgField(le,{expr:"datum"});ge&&Ha(de)&&(Z[ge]=!0)}return Z},{}),X=be(H);if(X.length>0){let Z=L?"||":"&&";return X.map(le=>Hh(le,L)).join(` ${Z} `)}}(s,{invalid:!0,channels:Gl});if(S)return{[l]:[{test:S,value:null},...b.array(d)]}}return d?{[l]:d}:{}}function d1(s,l){return Hl.reduce((d,h)=>(c1.has(h)||s[h]===void 0||l[h]==="ignore"||(d[h]=on(s[h])),d),{})}function Lc(s){let{config:l,markDef:d}=s;if(Ht("invalid",d,l)){let h=function(y,w){let{invalid:S=!1,channels:A}=w,C=A.reduce((G,H)=>{var Z;let X=y.getScaleComponent(H);if(X){let le=X.get("type"),ee=y.vgField(H,{expr:"datum",binSuffix:(Z=y.stack)!=null&&Z.impute?"mid":void 0});ee&&Ha(le)&&(G[ee]=!0)}return G},{}),L=be(C);if(L.length>0){let G=S?"||":"&&";return L.map(H=>Hh(H,S)).join(` ${G} `)}}(s,{channels:Qr});if(h)return{defined:{signal:h}}}return{}}function Ly(s,l){if(l!==void 0)return{[s]:on(l)}}let Fc="voronoi",Fy={defined:s=>s.type==="point"&&s.nearest,parse:(s,l)=>{if(l.events)for(let d of l.events)d.markname=s.getName(Fc)},marks:(s,l,d)=>{let{x:h,y}=l.project.hasChannel,w=s.mark;if(is(w))return Be(`The "nearest" transform is not supported for ${w} marks.`),d;let S={name:s.getName(Fc),type:"path",interactive:!0,from:{data:s.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...Oc(s,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:h||!y?"datum.datum.x || 0":"0"},y:{expr:y||!h?"datum.datum.y || 0":"0"},size:[s.getSizeSignalRef("width"),s.getSizeSignalRef("height")]}]},A=0,C=!1;return d.forEach((L,G)=>{let H=L.name??"";H===s.component.mark[0].name?A=G:H.indexOf(Fc)>=0&&(C=!0)}),C||d.splice(A+1,0,S),d}},np={defined:s=>s.type==="point"&&s.resolve==="global"&&s.bind&&s.bind!=="scales"&&!Nf(s.bind),parse:(s,l,d)=>ui(l,d),topLevelSignals:(s,l,d)=>{let h=l.name,y=l.project,w=l.bind,S=l.init&&l.init[0],A=Fy.defined(l)?"(item().isVoronoi ? datum.datum : datum)":"datum";return y.items.forEach((C,L)=>{let G=$e(`${h}_${C.field}`);d.filter(H=>H.name===G).length||d.unshift({name:G,...S?{init:ps(S[L])}:{value:null},on:l.events?[{events:l.events,update:`datum && item().mark.marktype !== 'group' ? ${A}[${b.stringValue(C.field)}] : null`}]:[],bind:w[C.field]??w[C.channel]??w})}),d},signals:(s,l,d)=>{let h=l.name,y=l.project,w=d.filter(L=>L.name===h+ko)[0],S=h+Ic,A=y.items.map(L=>$e(`${h}_${L.field}`)),C=A.map(L=>`${L} !== null`).join(" && ");return A.length&&(w.update=`${C} ? {fields: ${S}, values: [${A.join(", ")}]} : null`),delete w.value,delete w.on,d}},Pc="_toggle",Py={defined:s=>s.type==="point"&&!!s.toggle,signals:(s,l,d)=>d.concat({name:l.name+Pc,value:!1,on:[{events:l.events,update:l.toggle}]}),modifyExpr:(s,l)=>{let d=l.name+ko,h=l.name+Pc;return`${h} ? null : ${d}, `+(l.resolve==="global"?`${h} ? null : true, `:`${h} ? null : {unit: ${Wa(s)}}, `)+`${h} ? ${d} : null`}},$y={defined:s=>s.clear!==void 0&&s.clear!==!1,parse:(s,l)=>{l.clear&&(l.clear=b.isString(l.clear)?b.parseSelector(l.clear,"view"):l.clear)},topLevelSignals:(s,l,d)=>{if(np.defined(l))for(let h of l.project.items){let y=d.findIndex(w=>w.name===$e(`${l.name}_${h.field}`));y!==-1&&d[y].on.push({events:l.clear,update:"null"})}return d},signals:(s,l,d)=>{function h(y,w){y!==-1&&d[y].on&&d[y].on.push({events:l.clear,update:w})}if(l.type==="interval")for(let y of l.project.items){let w=d.findIndex(S=>S.name===y.signals.visual);h(w,"[0, 0]"),w===-1&&h(d.findIndex(S=>S.name===y.signals.data),"null")}else{let y=d.findIndex(w=>w.name===l.name+ko);h(y,"null"),Py.defined(l)&&(y=d.findIndex(w=>w.name===l.name+Pc),h(y,"false"))}return d}},By={defined:s=>{let l=s.resolve==="global"&&s.bind&&Nf(s.bind),d=s.project.items.length===1&&s.project.items[0].field!==fr;return l&&!d&&Be("Legend bindings are only supported for selections over an individual field or encoding channel."),l&&d},parse:(s,l,d)=>{let h=j(d);if(h.select=b.isString(h.select)?{type:h.select,toggle:l.toggle}:{...h.select,toggle:l.toggle},ui(l,h),b.isObject(d.select)&&(d.select.on||d.select.clear)){let S='event.item && indexof(event.item.mark.role, "legend") < 0';for(let A of l.events)A.filter=b.array(A.filter??[]),A.filter.includes(S)||A.filter.push(S)}let y=If(l.bind)?l.bind.legend:"click",w=b.isString(y)?b.parseSelector(y,"view"):b.array(y);l.bind={legend:{merge:w}}},topLevelSignals:(s,l,d)=>{let h=l.name,y=If(l.bind)&&l.bind.legend,w=S=>A=>{let C=j(A);return C.markname=S,C};for(let S of l.project.items){if(!S.hasLegend)continue;let A=`${$e(S.field)}_legend`,C=`${h}_${A}`;if(d.filter(L=>L.name===C).length===0){let L=y.merge.map(w(`${A}_symbols`)).concat(y.merge.map(w(`${A}_labels`))).concat(y.merge.map(w(`${A}_entries`)));d.unshift({name:C,...l.init?{}:{value:null},on:[{events:L,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:y.merge,update:`!event.item || !datum ? null : ${C}`,force:!0}]})}}return d},signals:(s,l,d)=>{let h=l.name,y=l.project,w=d.find(H=>H.name===h+ko),S=h+Ic,A=y.items.filter(H=>H.hasLegend).map(H=>$e(`${h}_${$e(H.field)}_legend`)),C=`${A.map(H=>`${H} !== null`).join(" && ")} ? {fields: ${S}, values: [${A.join(", ")}]} : null`;l.events&&A.length>0?w.on.push({events:A.map(H=>({signal:H})),update:C}):A.length>0&&(w.update=C,delete w.value,delete w.on);let L=d.find(H=>H.name===h+Pc),G=If(l.bind)&&l.bind.legend;return L&&(l.events?L.on.push({...L.on[0],events:G}):L.on[0].events=G),d}},Jm="_translate_anchor",Uy="_translate_delta",zy={defined:s=>s.type==="interval"&&s.translate,signals:(s,l,d)=>{let h=l.name,y=Ra.defined(l),w=h+Jm,{x:S,y:A}=l.project.hasChannel,C=b.parseSelector(l.translate,"scope");return y||(C=C.map(L=>(L.between[0].markname=h+wo,L))),d.push({name:w,value:{},on:[{events:C.map(L=>L.between[0]),update:"{x: x(unit), y: y(unit)"+(S!==void 0?`, extent_x: ${y?qn(s,Qt):`slice(${S.signals.visual})`}`:"")+(A!==void 0?`, extent_y: ${y?qn(s,Bn):`slice(${A.signals.visual})`}`:"")+"}"}]},{name:h+Uy,value:{},on:[{events:C,update:`{x: ${w}.x - x(unit), y: ${w}.y - y(unit)}`}]}),S!==void 0&&Qm(s,l,S,"width",d),A!==void 0&&Qm(s,l,A,"height",d),d}};function Qm(s,l,d,h,y){let w=l.name,S=w+Jm,A=w+Uy,C=d.channel,L=Ra.defined(l),G=y.filter(ge=>ge.name===d.signals[L?"data":"visual"])[0],H=s.getSizeSignalRef(h).signal,X=s.getScaleComponent(C),Z=X&&X.get("type"),le=X&&X.get("reverse"),ee=`${S}.extent_${C}`,de=`${L&&X?Z==="log"?"panLog":Z==="symlog"?"panSymlog":Z==="pow"?"panPow":"panLinear":"panLinear"}(${ee}, ${`${L?C===Qt?le?"":"-":le?"-":"":""}${A}.${C} / ${L?`${H}`:`span(${ee})`}`}${L?Z==="pow"?`, ${X.get("exponent")??1}`:Z==="symlog"?`, ${X.get("constant")??1}`:"":""})`;G.on.push({events:{signal:A},update:L?de:`clampRange(${de}, 0, ${H})`})}let eg="_zoom_anchor",tg="_zoom_delta",ng={defined:s=>s.type==="interval"&&s.zoom,signals:(s,l,d)=>{let h=l.name,y=Ra.defined(l),w=h+tg,{x:S,y:A}=l.project.hasChannel,C=b.stringValue(s.scaleName(Qt)),L=b.stringValue(s.scaleName(Bn)),G=b.parseSelector(l.zoom,"scope");return y||(G=G.map(H=>(H.markname=h+wo,H))),d.push({name:h+eg,on:[{events:G,update:y?"{"+[C?`x: invert(${C}, x(unit))`:"",L?`y: invert(${L}, y(unit))`:""].filter(H=>H).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:w,on:[{events:G,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),S!==void 0&&$c(s,l,S,"width",d),A!==void 0&&$c(s,l,A,"height",d),d}};function $c(s,l,d,h,y){let w=l.name,S=d.channel,A=Ra.defined(l),C=y.filter(ee=>ee.name===d.signals[A?"data":"visual"])[0],L=s.getSizeSignalRef(h).signal,G=s.getScaleComponent(S),H=G&&G.get("type"),X=A?qn(s,S):C.name,Z=w+tg,le=`${A&&G?H==="log"?"zoomLog":H==="symlog"?"zoomSymlog":H==="pow"?"zoomPow":"zoomLinear":"zoomLinear"}(${X}, ${`${w}${eg}.${S}`}, ${Z}${A?H==="pow"?`, ${G.get("exponent")??1}`:H==="symlog"?`, ${G.get("constant")??1}`:"":""})`;C.on.push({events:{signal:Z},update:A?le:`clampRange(${le}, 0, ${L})`})}let ms="_store",ko="_tuple",Gy="_modify",ag="vlSelectionResolve",il=[al,Ym,Vi,Py,np,Ra,By,$y,zy,ng,Fy];function Wa(s){let{escape:l}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{escape:!0},d=l?b.stringValue(s.name):s.name,h=function(y){let w=y.parent;for(;w&&!Ya(w);)w=w.parent;return w}(s);if(h){let{facet:y}=h;for(let w of Ua)y[w]&&(d+=` + '__facet_${w}_' + (facet[${b.stringValue(h.vgField(w))}])`)}return d}function rg(s){return Te(s.component.selection??{}).reduce((l,d)=>l||d.project.hasSelectionId,!1)}function ui(s,l){!b.isString(l.select)&&l.select.on||delete s.events,!b.isString(l.select)&&l.select.clear||delete s.clear,!b.isString(l.select)&&l.select.toggle||delete s.toggle}function Yi(s){let l=[];return s.type==="Identifier"?[s.name]:s.type==="Literal"?[s.value]:(s.type==="MemberExpression"&&(l.push(...Yi(s.object)),l.push(...Yi(s.property))),l)}function ap(s){return s.object.type==="MemberExpression"?ap(s.object):s.object.name==="datum"}function rp(s){let l=b.parseExpression(s),d=new Set;return l.visit(h=>{h.type==="MemberExpression"&&ap(h)&&d.add(Yi(h).slice(1).join("."))}),d}class ci extends qt{clone(){return new ci(null,this.model,j(this.filter))}constructor(l,d,h){super(l),this.model=d,this.filter=h,at(this,"expr",void 0),at(this,"_dependentFields",void 0),this.expr=Ki(this.model,this.filter,this),this._dependentFields=rp(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Eu(s,l,d){let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"datum",y=b.isString(l)?l:l.param,w=$e(y),S=b.stringValue(w+ms),A;try{A=s.getSelectionComponent(w,y)}catch{return`!!${w}`}if(A.project.timeUnit){let G=d??s.component.data.raw,H=A.project.timeUnit.clone();G.parent?H.insertAsParentOf(G):G.parent=H}let C=`${A.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${S}, ${h}${A.resolve==="global"?")":`, ${b.stringValue(A.resolve)})`}`,L=`length(data(${S}))`;return l.empty===!1?`${L} && ${C}`:`!${L} || ${C}`}function xo(s,l,d){let h=$e(l),y=d.encoding,w,S=d.field;try{w=s.getSelectionComponent(h,l)}catch{return h}if(y||S){if(y&&!S){let A=w.project.items.filter(C=>C.channel===y);!A.length||A.length>1?(S=w.project.items[0].field,Be((A.length?"Multiple ":"No ")+`matching ${b.stringValue(y)} encoding found for selection ${b.stringValue(d.param)}. Using "field": ${b.stringValue(S)}.`)):S=A[0].field}}else S=w.project.items[0].field,w.project.items.length>1&&Be(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${b.stringValue(S)}.`);return`${w.name}[${b.stringValue(jt(S))}]`}function Ki(s,l,d){return Me(l,h=>b.isString(h)?h:function(y){return y==null?void 0:y.param}(h)?Eu(s,h,d):ef(h))}function gs(s,l,d,h){s.encode??={},s.encode[l]??={},s.encode[l].update??={},s.encode[l].update[d]=h}function Xi(s,l,d){var H,X;let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{header:!1},{disable:y,orient:w,scale:S,labelExpr:A,title:C,zindex:L,...G}=s.combine();if(!y){for(let Z in G){let le=Ef[Z],ee=G[Z];if(le&&le!==l&&le!=="both")delete G[Z];else if(su(ee)){let{condition:de,...ge}=ee,xe=b.array(de),me=ls[Z];if(me){let{vgProp:Ae,part:Ce}=me;gs(G,Ce,Ae,[...xe.map(Pe=>{let{test:We,...Je}=Pe;return{test:Ki(null,We),...Je}}),ge]),delete G[Z]}else if(me===null){let Ae={signal:xe.map(Ce=>{let{test:Pe,...We}=Ce;return`${Ki(null,Pe)} ? ${ns(We)} : `}).join("")+ns(ge)};G[Z]=Ae}}else if(Ze(ee)){let de=ls[Z];if(de){let{vgProp:ge,part:xe}=de;gs(G,xe,ge,ee),delete G[Z]}}Q(["labelAlign","labelBaseline"],Z)&&G[Z]===null&&delete G[Z]}if(l==="grid"){if(!G.grid)return;if(G.encode){let{grid:Z}=G.encode;G.encode={...Z?{grid:Z}:{}},ye(G.encode)&&delete G.encode}return{scale:S,orient:w,...G,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:Ke(L,0)}}{if(!h.header&&s.mainExtracted)return;if(A!==void 0){let le=A;(X=(H=G.encode)==null?void 0:H.labels)!=null&&X.update&&Ze(G.encode.labels.update.text)&&(le=xt(A,"datum.label",G.encode.labels.update.text.signal)),gs(G,"labels","text",{signal:le})}if(G.labelAlign===null&&delete G.labelAlign,G.encode){for(let le of us)s.hasAxisPart(le)||delete G.encode[le];ye(G.encode)&&delete G.encode}let Z=function(le,ee){if(le)return b.isArray(le)&&!fa(le)?le.map(de=>yf(de,ee)).join(", "):le}(C,d);return{scale:S,orient:w,grid:!1,...Z?{title:Z}:{},...G,...d.aria===!1?{aria:!1}:{},zindex:Ke(L,0)}}}}function wu(s){let{axes:l}=s.component,d=[];for(let h of Qr)if(l[h]){for(let y of l[h])if(!y.get("disable")&&!y.get("gridScale")){let w=h==="x"?"height":"width",S=s.getSizeSignalRef(w).signal;w!==S&&d.push({name:w,update:S})}}return d}function di(s,l,d,h){return Object.assign.apply(null,[{},...s.map(y=>{if(y==="axisOrient"){let w=d==="x"?"bottom":"left",S=l[d==="x"?"axisBottom":"axisLeft"]||{},A=l[d==="x"?"axisTop":"axisRight"]||{},C=new Set([...be(S),...be(A)]),L={};for(let G of C.values())L[G]={signal:`${h.signal} === "${w}" ? ${pa(S[G])} : ${pa(A[G])}`};return L}return l[y]})])}function f1(s,l){var h;let d=[{}];for(let y of s){let w=(h=l[y])==null?void 0:h.style;if(w){w=b.array(w);for(let S of w)d.push(l.style[S])}}return Object.assign.apply(null,d)}function ig(s,l,d){var w;let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=R0(s,d,l);if(y!==void 0)return{configFrom:"style",configValue:y};for(let S of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((w=h[S])==null?void 0:w[s])!==void 0)return{configFrom:S,configValue:h[S][s]};return{}}let jy={scale:s=>{let{model:l,channel:d}=s;return l.scaleName(d)},format:s=>{let{format:l}=s;return l},formatType:s=>{let{formatType:l}=s;return l},grid:s=>{let{fieldOrDatumDef:l,axis:d,scaleType:h}=s;return d.grid??function(y,w){return!Hn(y)&&ze(w)&&!Vt(w==null?void 0:w.bin)&&!zn(w==null?void 0:w.bin)}(h,l)},gridScale:s=>{let{model:l,channel:d}=s;return function(h,y){let w=y==="x"?"y":"x";if(h.getScaleComponent(w))return h.scaleName(w)}(l,d)},labelAlign:s=>{let{axis:l,labelAngle:d,orient:h,channel:y}=s;return l.labelAlign||qy(d,h,y)},labelAngle:s=>{let{labelAngle:l}=s;return l},labelBaseline:s=>{let{axis:l,labelAngle:d,orient:h,channel:y}=s;return l.labelBaseline||Hy(d,h,y)},labelFlush:s=>{let{axis:l,fieldOrDatumDef:d,channel:h}=s;return l.labelFlush??function(y,w){if(w==="x"&&Q(["quantitative","temporal"],y))return!0}(d.type,h)},labelOverlap:s=>{let{axis:l,fieldOrDatumDef:d,scaleType:h}=s;return l.labelOverlap??function(y,w,S,A){if(S&&!b.isObject(A)||y!=="nominal"&&y!=="ordinal")return w!=="log"&&w!=="symlog"||"greedy"}(d.type,h,ze(d)&&!!d.timeUnit,ze(d)?d.sort:void 0)},orient:s=>{let{orient:l}=s;return l},tickCount:s=>{let{channel:l,model:d,axis:h,fieldOrDatumDef:y,scaleType:w}=s,S=l==="x"?"width":l==="y"?"height":void 0,A=S?d.getSizeSignalRef(S):void 0;return h.tickCount??function(C){var Z;let{fieldOrDatumDef:L,scaleType:G,size:H,values:X}=C;if(!X&&!Hn(G)&&G!=="log"){if(ze(L)){if(Vt(L.bin))return{signal:`ceil(${H.signal}/10)`};if(L.timeUnit&&Q(["month","hours","day","quarter"],(Z=jn(L.timeUnit))==null?void 0:Z.unit))return}return{signal:`ceil(${H.signal}/40)`}}}({fieldOrDatumDef:y,scaleType:w,size:A,values:h.values})},tickMinStep:function(s){let{format:l,fieldOrDatumDef:d}=s;if(l==="d")return 1;if(ze(d)){let{timeUnit:h}=d;if(h){let y=j0(h);if(y)return{signal:y}}}},title:s=>{let{axis:l,model:d,channel:h}=s;if(l.title!==void 0)return l.title;let y=Wy(d,h);if(y!==void 0)return y;let w=d.typedFieldDef(h),S=h==="x"?"x2":"y2",A=d.fieldDef(S);return Wl(w?[Zh(w)]:[],ze(A)?[Zh(A)]:[])},values:s=>{let{axis:l,fieldOrDatumDef:d}=s;return function(h,y){let w=h.values;if(b.isArray(w))return mc(y,w);if(Ze(w))return w}(l,d)},zindex:s=>{let{axis:l,fieldOrDatumDef:d,mark:h}=s;return l.zindex??function(y,w){return y==="rect"&&au(w)?1:0}(h,d)}};function og(s){return`(((${s.signal} % 360) + 360) % 360)`}function Hy(s,l,d,h){if(s!==void 0){if(d==="x"){if(Ze(s)){let y=og(s);return{signal:`(45 < ${y} && ${y} < 135) || (225 < ${y} && ${y} < 315) ? "middle" :(${y} <= 45 || 315 <= ${y}) === ${Ze(l)?`(${l.signal} === "top")`:l==="top"} ? "bottom" : "top"`}}if(45<s&&s<135||225<s&&s<315)return"middle";if(Ze(l)){let y=s<=45||315<=s?"===":"!==";return{signal:`${l.signal} ${y} "top" ? "bottom" : "top"`}}return(s<=45||315<=s)==(l==="top")?"bottom":"top"}if(Ze(s)){let y=og(s);return{signal:`${y} <= 45 || 315 <= ${y} || (135 <= ${y} && ${y} <= 225) ? ${h?'"middle"':"null"} : (45 <= ${y} && ${y} <= 135) === ${Ze(l)?`(${l.signal} === "left")`:l==="left"} ? "top" : "bottom"`}}if(s<=45||315<=s||135<=s&&s<=225)return h?"middle":null;if(Ze(l)){let y=45<=s&&s<=135?"===":"!==";return{signal:`${l.signal} ${y} "left" ? "top" : "bottom"`}}return(45<=s&&s<=135)==(l==="left")?"top":"bottom"}}function qy(s,l,d){if(s===void 0)return;let h=d==="x",y=h?0:90,w=h?"bottom":"left";if(Ze(s)){let S=og(s);return{signal:`(${y?`(${S} + 90)`:S} % 180 === 0) ? ${h?null:'"center"'} :(${y} < ${S} && ${S} < ${180+y}) === ${Ze(l)?`(${l.signal} === "${w}")`:l===w} ? "left" : "right"`}}if((s+y)%180==0)return h?null:"center";if(Ze(l)){let S=y<s&&s<180+y?"===":"!==";return{signal:`${`${l.signal} ${S} "${w}"`} ? "left" : "right"`}}return(y<s&&s<180+y)==(l===w)?"left":"right"}function Wy(s,l){let d=l==="x"?"x2":"y2",h=s.fieldDef(l),y=s.fieldDef(d),w=h?h.title:void 0,S=y?y.title:void 0;return w&&S?ti(w,S):w||S||(w!==void 0?w:S!==void 0?S:void 0)}class ol extends qt{clone(){return new ol(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,at(this,"_dependentFields",void 0),this._dependentFields=rp(this.transform.calculate)}static parseAllForSortIndex(l,d){return d.forEachFieldDef((h,y)=>{if($i(h)&&fc(h.sort)){let{field:w,timeUnit:S}=h,A=h.sort,C=A.map((L,G)=>`${ef({field:w,timeUnit:S,equal:L})} ? ${G} : `).join("")+A.length;l=new ol(l,{calculate:C,as:sl(h,y,{forAs:!0})})}}),l}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 ${ae(this.transform)}`}}function sl(s,l,d){return je(s,{prefix:l,suffix:"sort_index",...d??{}})}function Bc(s,l){return Q(["top","bottom"],l)?"column":Q(["left","right"],l)||s==="row"?"row":"column"}function Zi(s,l,d,h){let y=h==="row"?d.headerRow:h==="column"?d.headerColumn:d.headerFacet;return Ke((l||{})[s],y[s],d.header[s])}function Uc(s,l,d,h){let y={};for(let w of s){let S=Zi(w,l||{},d,h);S!==void 0&&(y[w]=S)}return y}let _u=["row","column"],zc=["header","footer"];function bs(s,l){let d=s.component.layoutHeaders[l].title,h=s.config?s.config:void 0,y=s.component.layoutHeaders[l].facetFieldDef?s.component.layoutHeaders[l].facetFieldDef:void 0,{titleAnchor:w,titleAngle:S,titleOrient:A}=Uc(["titleAnchor","titleAngle","titleOrient"],y.header,h,l),C=Bc(l,A),L=Lt(S);return{name:`${l}-title`,type:"group",role:`${C}-title`,title:{text:d,...l==="row"?{orient:"left"}:{},style:"guide-title",...sg(L,C),...Mn(C,L,w),...Gc(h,y,l,fm,Ec)}}}function Mn(s,l){switch(arguments.length>2&&arguments[2]!==void 0?arguments[2]:"middle"){case"start":return{align:"left"};case"end":return{align:"right"}}let d=qy(l,s==="row"?"left":"top",s==="row"?"y":"x");return d?{align:d}:{}}function sg(s,l){let d=Hy(s,l==="row"?"left":"top",l==="row"?"y":"x",!0);return d?{baseline:d}:{}}function Vy(s,l){let d=s.component.layoutHeaders[l],h=[];for(let y of zc)if(d[y])for(let w of d[y]){let S=ll(s,l,y,d,w);S!=null&&h.push(S)}return h}function ip(s,l){let{sort:d}=s;return ii(d)?{field:je(d,{expr:"datum"}),order:d.order??"ascending"}:b.isArray(d)?{field:sl(s,l,{expr:"datum"}),order:"ascending"}:{field:je(s,{expr:"datum"}),order:d??"ascending"}}function So(s,l,d){let{format:h,formatType:y,labelAngle:w,labelAnchor:S,labelOrient:A,labelExpr:C}=Uc(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],s.header,d,l),L=Wh({fieldOrDatumDef:s,format:h,formatType:y,expr:"parent",config:d}).signal,G=Bc(l,A);return{text:{signal:C?xt(xt(C,"datum.label",L),"datum.value",je(s,{expr:"parent"})):L},...l==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...sg(w,G),...Mn(G,w,S),...Gc(d,s,l,pm,wc)}}function ll(s,l,d,h,y){if(y){let w=null,{facetFieldDef:S}=h,A=s.config?s.config:void 0;if(S&&y.labels){let{labelOrient:H}=Uc(["labelOrient"],S.header,A,l);(l==="row"&&!Q(["top","bottom"],H)||l==="column"&&!Q(["left","right"],H))&&(w=So(S,l,A))}let C=Ya(s)&&!Ql(s.facet),L=y.axes,G=(L==null?void 0:L.length)>0;if(w||G){let H=l==="row"?"height":"width";return{name:s.getName(`${l}_${d}`),type:"group",role:`${l}-${d}`,...h.facetFieldDef?{from:{data:s.getName(`${l}_domain`)},sort:ip(S,l)}:{},...G&&C?{from:{data:s.getName(`facet_domain_${l}`)}}:{},...w?{title:w}:{},...y.sizeSignal?{encode:{update:{[H]:y.sizeSignal}}}:{},...G?{axes:L}:{}}}}return null}let Yy={column:{start:0,end:1},row:{start:1,end:0}};function Ky(s,l){return Yy[l][s]}function Gc(s,l,d,h,y){let w={};for(let S of h){if(!y[S])continue;let A=Zi(S,l==null?void 0:l.header,s,d);A!==void 0&&(w[y[S]]=A)}return w}function pr(s){return[...jc(s,"width"),...jc(s,"height"),...jc(s,"childWidth"),...jc(s,"childHeight")]}function jc(s,l){let d=l==="width"?"x":"y",h=s.component.layoutSize.get(l);if(!h||h==="merged")return[];let y=s.getSizeSignalRef(l).signal;if(h==="step"){let w=s.getScaleComponent(d);if(w){let S=w.get("type"),A=w.get("range");if(Hn(S)&&go(A)){let C=s.scaleName(d);return Ya(s.parent)&&s.parent.component.resolve.scale[d]==="independent"?[Hc(C,A)]:[Hc(C,A),{name:y,update:op(C,w,`domain('${C}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if(h=="container"){let w=y.endsWith("width"),S=w?"containerSize()[0]":"containerSize()[1]",A=`isFinite(${S}) ? ${S} : ${ds(s.config.view,w?"width":"height")}`;return[{name:y,init:A,on:[{update:A,events:"window:resize"}]}]}return[{name:y,value:h}]}function Hc(s,l){let d=`${s}_step`;return Ze(l.step)?{name:d,update:l.step.signal}:{name:d,value:l.step}}function op(s,l,d){let h=l.get("type"),y=l.get("padding"),w=Ke(l.get("paddingOuter"),y),S=l.get("paddingInner");return S=h==="band"?S!==void 0?S:y:1,`bandspace(${d}, ${pa(S)}, ${pa(w)}) * ${s}_step`}function lg(s){return s==="childWidth"?"width":s==="childHeight"?"height":s}function ug(s,l){return be(s).reduce((d,h)=>{let y=s[h];return{...d,...bu(l,y,h,w=>on(w.value))}},{})}function cg(s,l){if(Ya(l))return s==="theta"?"independent":"shared";if(ws(l))return"shared";if(Ji(l))return un(s)||s==="theta"||s==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function sp(s,l){let d=s.scale[l],h=un(l)?"axis":"legend";return d==="independent"?(s[h][l]==="shared"&&Be(function(y){return`Setting the scale to be independent for "${y}" means we also have to set the guide (axis or legend) to be independent.`}(l)),"independent"):s[h][l]||"shared"}let dg=be({aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});class Xy extends ji{}let ul={symbols:function(s,l){let{fieldOrDatumDef:d,model:h,channel:y,legendCmpt:w,legendType:S}=l;if(S!=="symbol")return;let{markDef:A,encoding:C,config:L,mark:G}=h,H=A.filled&&G!=="trail",X={...Ud({},h,j_),...Mc(h,{filled:H})},Z=w.get("symbolOpacity")??L.legend.symbolOpacity,le=w.get("symbolFillColor")??L.legend.symbolFillColor,ee=w.get("symbolStrokeColor")??L.legend.symbolStrokeColor,de=Z===void 0?fg(C.opacity)??A.opacity:void 0;if(X.fill){if(y==="fill"||H&&y===Le)delete X.fill;else if(X.fill.field)le?delete X.fill:(X.fill=on(L.legend.symbolBaseFillColor??"black"),X.fillOpacity=on(de??1));else if(b.isArray(X.fill)){let ge=pg(C.fill??C.color)??A.fill??(H&&A.color);ge&&(X.fill=on(ge))}}if(X.stroke){if(y==="stroke"||!H&&y===Le)delete X.stroke;else if(X.stroke.field||ee)delete X.stroke;else if(b.isArray(X.stroke)){let ge=Ke(pg(C.stroke||C.color),A.stroke,H?A.color:void 0);ge&&(X.stroke={value:ge})}}if(y!==Si){let ge=ze(d)&&qc(h,w,d);ge?X.opacity=[{test:ge,...on(de??1)},on(L.legend.unselectedOpacity)]:de&&(X.opacity=on(de))}return X={...X,...s},ye(X)?void 0:X},gradient:function(s,l){let{model:d,legendType:h,legendCmpt:y}=l;if(h!=="gradient")return;let{config:w,markDef:S,encoding:A}=d,C={},L=(y.get("gradientOpacity")??w.legend.gradientOpacity)===void 0?fg(A.opacity)||S.opacity:void 0;return L&&(C.opacity=on(L)),C={...C,...s},ye(C)?void 0:C},labels:function(s,l){let{fieldOrDatumDef:d,model:h,channel:y,legendCmpt:w}=l,S=h.legend(y)||{},A=h.config,C=ze(d)?qc(h,w,d):void 0,L=C?[{test:C,value:1},{value:A.legend.unselectedOpacity}]:void 0,{format:G,formatType:H}=S,X;Xs(H)?X=ri({fieldOrDatumDef:d,field:"datum.value",format:G,formatType:H,config:A}):G===void 0&&H===void 0&&A.customFormatTypes&&(d.type==="quantitative"&&A.numberFormatType?X=ri({fieldOrDatumDef:d,field:"datum.value",format:A.numberFormat,formatType:A.numberFormatType,config:A}):d.type==="temporal"&&A.timeFormatType&&ze(d)&&d.timeUnit===void 0&&(X=ri({fieldOrDatumDef:d,field:"datum.value",format:A.timeFormat,formatType:A.timeFormatType,config:A})));let Z={...L?{opacity:L}:{},...X?{text:X}:{},...s};return ye(Z)?void 0:Z},entries:function(s,l){let{legendCmpt:d}=l,h=d.get("selections");return h!=null&&h.length?{...s,fill:{value:"transparent"}}:s}};function fg(s){return hg(s,(l,d)=>Math.max(l,d.value))}function pg(s){return hg(s,(l,d)=>Ke(l,d.value))}function hg(s,l){return function(d){let h=d==null?void 0:d.condition;return!!h&&(b.isArray(h)||cr(h))}(s)?b.array(s.condition).reduce(l,s.value):cr(s)?s.value:void 0}function qc(s,l,d){let h=l.get("selections");if(!(h!=null&&h.length))return;let y=b.stringValue(d.field);return h.map(w=>`(!length(data(${b.stringValue($e(w)+ms)})) || (${w}[${y}] && indexof(${w}[${y}], datum.value) >= 0))`).join(" || ")}let fi={direction:s=>{let{direction:l}=s;return l},format:s=>{let{fieldOrDatumDef:l,legend:d,config:h}=s,{format:y,formatType:w}=d;return ny(l,l.type,y,w,h,!1)},formatType:s=>{let{legend:l,fieldOrDatumDef:d,scaleType:h}=s,{formatType:y}=l;return ay(y,d,h)},gradientLength:s=>{let{legend:l,legendConfig:d}=s;return l.gradientLength??d.gradientLength??function(h){let{legendConfig:y,model:w,direction:S,orient:A,scaleType:C}=h,{gradientHorizontalMaxLength:L,gradientHorizontalMinLength:G,gradientVerticalMaxLength:H,gradientVerticalMinLength:X}=y;if(Lr(C))return S==="horizontal"?A==="top"||A==="bottom"?lp(w,"width",G,L):G:lp(w,"height",X,H)}(s)},labelOverlap:s=>{let{legend:l,legendConfig:d,scaleType:h}=s;return l.labelOverlap??d.labelOverlap??function(y){if(Q(["quantile","threshold","log","symlog"],y))return"greedy"}(h)},symbolType:s=>{let{legend:l,markDef:d,channel:h,encoding:y}=s;return l.symbolType??function(w,S,A,C){if(S!=="shape"){let L=pg(A)??C;if(L)return L}switch(w){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"}}(d.type,h,y.shape,d.shape)},title:s=>{let{fieldOrDatumDef:l,config:d}=s;return ss(l,d,{allowDisabling:!0})},type:s=>{let{legendType:l,scaleType:d,channel:h}=s;if(es(h)&&Lr(d)){if(l==="gradient")return}else if(l==="symbol")return;return l},values:s=>{let{fieldOrDatumDef:l,legend:d}=s;return function(h,y){let w=h.values;if(b.isArray(w))return mc(y,w);if(Ze(w))return w}(d,l)}};function mg(s){let{legend:l}=s;return Ke(l.type,function(d){let{channel:h,timeUnit:y,scaleType:w}=d;if(es(h)){if(Q(["quarter","month","day"],y))return"symbol";if(Lr(w))return"gradient"}return"symbol"}(s))}function gg(s){let{legendConfig:l,legendType:d,orient:h,legend:y}=s;return y.direction??l[d?"gradientDirection":"symbolDirection"]??function(w,S){switch(w){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return S==="gradient"?"horizontal":void 0}}(h,d)}function lp(s,l,d,h){return{signal:`clamp(${s.getSizeSignalRef(l).signal}, ${d}, ${h})`}}function up(s){let l=cn(s)?function(d){let{encoding:h}=d,y={};for(let w of[Le,...Rf]){let S=yn(h[w]);S&&d.getScaleComponent(w)&&(w===xn&&ze(S)&&S.type===Vs||(y[w]=Ao(d,w)))}return y}(s):function(d){let{legends:h,resolve:y}=d.component;for(let w of d.children){up(w);for(let S of be(w.component.legends))y.legend[S]=sp(d.component.resolve,S),y.legend[S]==="shared"&&(h[S]=bg(h[S],w.component.legends[S]),h[S]||(y.legend[S]="independent",delete h[S]))}for(let w of be(h))for(let S of d.children)S.component.legends[w]&&y.legend[w]==="shared"&&delete S.component.legends[w];return h}(s);return s.component.legends=l,l}function cp(s,l,d,h){switch(l){case"disable":return d!==void 0;case"values":return!!(d!=null&&d.values);case"title":if(l==="title"&&s===(h==null?void 0:h.title))return!0}return s===(d||{})[l]}function Ao(s,l){var me;let d=s.legend(l),{markDef:h,encoding:y,config:w}=s,S=w.legend,A=new Xy({},function(Ae,Ce){let Pe=Ae.scaleName(Ce);if(Ae.mark==="trail"){if(Ce==="color")return{stroke:Pe};if(Ce==="size")return{strokeWidth:Pe}}return Ce==="color"?Ae.markDef.filled?{fill:Pe}:{stroke:Pe}:{[Ce]:Pe}}(s,l));(function(Ae,Ce,Pe){var Je;let We=(Je=Ae.fieldDef(Ce))==null?void 0:Je.field;for(let it of Te(Ae.component.selection??{})){let Qe=it.project.hasField[We]??it.project.hasChannel[Ce];if(Qe&&By.defined(it)){let lt=Pe.get("selections")??[];lt.push(it.name),Pe.set("selections",lt,!1),Qe.hasLegend=!0}}})(s,l,A);let C=d!==void 0?!d:S.disable;if(A.set("disable",C,d!==void 0),C)return A;d=d||{};let L=s.getScaleComponent(l).get("type"),G=yn(y[l]),H=ze(G)?(me=jn(G.timeUnit))==null?void 0:me.unit:void 0,X=d.orient||w.legend.orient||"right",Z=mg({legend:d,channel:l,timeUnit:H,scaleType:L}),le={legend:d,channel:l,model:s,markDef:h,encoding:y,fieldOrDatumDef:G,legendConfig:S,config:w,scaleType:L,orient:X,legendType:Z,direction:gg({legend:d,legendType:Z,orient:X,legendConfig:S})};for(let Ae of dg){if(Z==="gradient"&&Ae.startsWith("symbol")||Z==="symbol"&&Ae.startsWith("gradient"))continue;let Ce=Ae in fi?fi[Ae](le):d[Ae];if(Ce!==void 0){let Pe=cp(Ce,Ae,d,s.fieldDef(l));(Pe||w.legend[Ae]===void 0)&&A.set(Ae,Ce,Pe)}}let ee=(d==null?void 0:d.encoding)??{},de=A.get("selections"),ge={},xe={fieldOrDatumDef:G,model:s,channel:l,legendCmpt:A,legendType:Z};for(let Ae of["labels","legend","title","symbols","gradient","entries"]){let Ce=ug(ee[Ae]??{},s),Pe=Ae in ul?ul[Ae](Ce,xe):Ce;Pe===void 0||ye(Pe)||(ge[Ae]={...de!=null&&de.length&&ze(G)?{name:`${$e(G.field)}_legend_${Ae}`}:{},...de!=null&&de.length?{interactive:!!de}:{},update:Pe})}return ye(ge)||A.set("encode",ge,!!(d!=null&&d.encoding)),A}function bg(s,l){var w,S,A,C;if(!s)return l.clone();let d=s.getWithExplicit("orient"),h=l.getWithExplicit("orient");if(d.explicit&&h.explicit&&d.value!==h.value)return;let y=!1;for(let L of dg){let G=qi(s.getWithExplicit(L),l.getWithExplicit(L),L,"legend",(H,X)=>{switch(L){case"symbolType":return Zy(H,X);case"title":return ni(H,X);case"type":return y=!0,Fr("symbol")}return Rc(H,X,L,"legend")});s.setWithExplicit(L,G)}return y&&((S=(w=s.implicit)==null?void 0:w.encode)!=null&&S.gradient&&dt(s.implicit,["encode","gradient"]),(C=(A=s.explicit)==null?void 0:A.encode)!=null&&C.gradient&&dt(s.explicit,["encode","gradient"])),s}function Zy(s,l){return l.value==="circle"?l:s}function dp(s){let l=s.component.legends,d={};for(let h of be(l)){let y=Xe(s.getScaleComponent(h).get("domains"));if(d[y])for(let w of d[y])bg(w,l[h])||d[y].push(l[h]);else d[y]=[l[h].clone()]}return Te(d).flat().map(h=>function(y,w){var G,H,X;let{disable:S,labelExpr:A,selections:C,...L}=y.combine();if(!S){if(w.aria===!1&&L.aria==null&&(L.aria=!1),(G=L.encode)!=null&&G.symbols){let Z=L.encode.symbols.update;!Z.fill||Z.fill.value==="transparent"||Z.stroke||L.stroke||(Z.stroke={value:"transparent"});for(let le of Rf)L[le]&&delete Z[le]}if(L.title||delete L.title,A!==void 0){let Z=A;(X=(H=L.encode)==null?void 0:H.labels)!=null&&X.update&&Ze(L.encode.labels.update.text)&&(Z=xt(A,"datum.label",L.encode.labels.update.text.signal)),function(le,ee,de,ge){le.encode??={},le.encode[ee]??={},le.encode[ee].update??={},le.encode[ee].update[de]=ge}(L,"labels","text",{signal:Z})}return L}}(h,s.config)).filter(h=>h!==void 0)}function yg(s){return ws(s)||Ji(s)?function(l){return l.children.reduce((d,h)=>d.concat(h.assembleProjections()),Wc(l))}(s):Wc(s)}function Wc(s){let l=s.component.projection;if(!l||l.merged)return[];let d=l.combine(),{name:h}=d;if(l.data){let y={signal:`[${l.size.map(S=>S.signal).join(", ")}]`},w=l.data.reduce((S,A)=>{let C=Ze(A)?A.signal:`data('${s.lookupDataSource(A)}')`;return Q(S,C)||S.push(C),S},[]);if(w.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:h,size:y,fit:{signal:w.length>1?`[${w.join(", ")}]`:w[0]},...d}]}return[{name:h,translate:{signal:"[width / 2, height / 2]"},...d}]}let Vc=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class vg extends ji{constructor(l,d,h,y){super({...d},{name:l}),this.specifiedProjection=d,this.size=h,this.data=y,at(this,"merged",!1)}get isFit(){return!!this.data}}function Eg(s){s.component.projection=cn(s)?function(l){if(l.hasProjection){let d=ea(l.specifiedProjection),h=!(d&&(d.scale!=null||d.translate!=null)),y=h?[l.getSizeSignalRef("width"),l.getSizeSignalRef("height")]:void 0,w=h?function(A){let C=[],{encoding:L}=A;for(let G of[[$a,nt],[rr,da]])(yn(L[G[0]])||yn(L[G[1]]))&&C.push({signal:A.getName(`geojson_${C.length}`)});return A.channelHasField(xn)&&A.typedFieldDef(xn).type===Vs&&C.push({signal:A.getName(`geojson_${C.length}`)}),C.length===0&&C.push(A.requestDataName(nn.Main)),C}(l):void 0,S=new vg(l.projectionName(!0),{...ea(l.config.projection)??{},...d??{}},y,w);return S.get("type")||S.set("type","equalEarth",!1),S}}(s):function(l){if(l.children.length===0)return;let d;for(let y of l.children)Eg(y);let h=se(l.children,y=>{let w=y.component.projection;if(w){if(d){let S=function(A,C){let L=se(Vc,G=>!b.hasOwnProperty(A.explicit,G)&&!b.hasOwnProperty(C.explicit,G)||!!(b.hasOwnProperty(A.explicit,G)&&b.hasOwnProperty(C.explicit,G)&&Ne(A.get(G),C.get(G))));if(Ne(A.size,C.size)){if(L)return A;if(Ne(A.explicit,{}))return C;if(Ne(C.explicit,{}))return A}return null}(d,w);return S&&(d=S),!!S}return d=w,!0}return!0});if(d&&h){let y=l.projectionName(!0),w=new vg(y,d.specifiedProjection,d.size,j(d.data));for(let S of l.children){let A=S.component.projection;A&&(A.isFit&&w.data.push(...S.component.projection.data),S.renameProjection(A.get("name"),y),A.merged=!0)}return w}}(s)}function Jy(s,l,d,h){if(ou(l,d)){let y=cn(s)?s.axis(d)??s.legend(d)??{}:{},w=je(l,{expr:"datum"}),S=je(l,{expr:"datum",binSuffix:"end"});return{formulaAs:je(l,{binSuffix:"range",forAs:!0}),formula:yo(w,S,y.format,y.formatType,h)}}return{}}function fp(s,l){return`${Oi(s)}_${l}`}function To(s,l,d){let h=fp(rt(d,void 0)??{},l);return s.getName(`${h}_bins`)}function wg(s,l,d){let h,y;h=function(L){return"as"in L}(s)?b.isString(s.as)?[s.as,`${s.as}_end`]:[s.as[0],s.as[1]]:[je(s,{forAs:!0}),je(s,{binSuffix:"end",forAs:!0})];let w={...rt(l,void 0)},S=fp(w,s.field),{signal:A,extentSignal:C}=function(L,G){return{signal:L.getName(`${G}_bins`),extentSignal:L.getName(`${G}_extent`)}}(d,S);if(Or(w.extent)){let L=w.extent;y=xo(d,L.param,L),delete w.extent}return{key:S,binComponent:{bin:w,field:s.field,as:[h],...A?{signal:A}:{},...C?{extentSignal:C}:{},...y?{span:y}:{}}}}class pi extends qt{clone(){return new pi(null,j(this.bins))}constructor(l,d){super(l),this.bins=d}static makeFromEncoding(l,d){let h=d.reduceFieldDef((y,w,S)=>{if(ma(w)&&Vt(w.bin)){let{key:A,binComponent:C}=wg(w,w.bin,d);y[A]={...C,...y[A],...Jy(d,w,S,d.config)}}return y},{});return ye(h)?null:new pi(l,h)}static makeFromTransform(l,d,h){let{key:y,binComponent:w}=wg(d,d.bin,h);return new pi(l,{[y]:w})}merge(l,d){for(let h of be(l.bins))h in this.bins?(d(l.bins[h].signal,this.bins[h].signal),this.bins[h].as=Se([...this.bins[h].as,...l.bins[h].as],ae)):this.bins[h]=l.bins[h];for(let h of l.children)l.removeChild(h),h.parent=this;l.remove()}producedFields(){return new Set(Te(this.bins).map(l=>l.as).flat(2))}dependentFields(){return new Set(Te(this.bins).map(l=>l.field))}hash(){return`Bin ${ae(this.bins)}`}assemble(){return Te(this.bins).flatMap(l=>{let d=[],[h,...y]=l.as,{extent:w,...S}=l.bin,A={type:"bin",field:jt(l.field),as:h,signal:l.signal,...Or(w)?{extent:null}:{extent:w},...l.span?{span:{signal:`span(${l.span})`}}:{},...S};!w&&l.extentSignal&&(d.push({type:"extent",field:jt(l.field),signal:l.extentSignal}),A.extent={signal:l.extentSignal}),d.push(A);for(let C of y)for(let L=0;L<2;L++)d.push({type:"formula",expr:je({field:h[L]},{expr:"datum"}),as:C[L]});return l.formula&&d.push({type:"formula",expr:l.formula,as:l.formulaAs}),d})}}function Qy(s,l,d,h){var w;let y=cn(h)?h.encoding[Ci(l)]:void 0;if(ma(d)&&cn(h)&&pf(d,y,h.markDef,h.config)){s.add(je(d,{})),s.add(je(d,{suffix:"end"}));let{mark:S,markDef:A,config:C}=h,L=Fi({fieldDef:d,markDef:A,config:C});cc(S)&&L!==.5&&un(l)&&(s.add(je(d,{suffix:Xf})),s.add(je(d,{suffix:$t}))),d.bin&&ou(d,l)&&s.add(je(d,{binSuffix:"range"}))}else if(Qo(l)){let S=mh(l);s.add(h.getName(S))}else s.add(je(d));return $i(d)&&function(S){return b.isObject(S)&&"field"in S}((w=d.scale)==null?void 0:w.range)&&s.add(d.scale.range.field),s}class Va extends qt{clone(){return new Va(null,new Set(this.dimensions),j(this.measures))}constructor(l,d,h){super(l),this.dimensions=d,this.measures=h}get groupBy(){return this.dimensions}static makeFromEncoding(l,d){let h=!1;d.forEachFieldDef(S=>{S.aggregate&&(h=!0)});let y={},w=new Set;return h?(d.forEachFieldDef((S,A)=>{let{aggregate:C,field:L}=S;if(C)if(C==="count")y["*"]??={},y["*"].count=new Set([je(S,{forAs:!0})]);else{if(ei(C)||Ni(C)){let G=ei(C)?"argmin":"argmax",H=C[G];y[H]??={},y[H][G]=new Set([je({op:G,field:H},{forAs:!0})])}else y[L]??={},y[L][C]=new Set([je(S,{forAs:!0})]);Nr(A)&&d.scaleDomain(A)==="unaggregated"&&(y[L]??={},y[L].min=new Set([je({field:L,aggregate:"min"},{forAs:!0})]),y[L].max=new Set([je({field:L,aggregate:"max"},{forAs:!0})]))}else Qy(w,A,S,d)}),w.size+be(y).length===0?null:new Va(l,w,y)):null}static makeFromTransform(l,d){let h=new Set,y={};for(let w of d.aggregate){let{op:S,field:A,as:C}=w;S&&(S==="count"?(y["*"]??={},y["*"].count=new Set([C||je(w,{forAs:!0})])):(y[A]??={},y[A][S]=new Set([C||je(w,{forAs:!0})])))}for(let w of d.groupby??[])h.add(w);return h.size+be(y).length===0?null:new Va(l,h,y)}merge(l){return Ie(this.dimensions,l.dimensions)?(function(d,h){for(let y of be(h)){let w=h[y];for(let S of be(w))y in d?d[y][S]=new Set([...d[y][S]??[],...w[S]]):d[y]={[S]:w[S]}}}(this.measures,l.measures),!0):(function(){ic.debug(...arguments)}("different dimensions, cannot merge"),!1)}addDimensions(l){l.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...be(this.measures)])}producedFields(){let l=new Set;for(let d of be(this.measures))for(let h of be(this.measures[d])){let y=this.measures[d][h];y.size===0?l.add(`${h}_${d}`):y.forEach(l.add,l)}return l}hash(){return`Aggregate ${ae({dimensions:this.dimensions,measures:this.measures})}`}assemble(){let l=[],d=[],h=[];for(let y of be(this.measures))for(let w of be(this.measures[y]))for(let S of this.measures[y][w])h.push(S),l.push(w),d.push(y==="*"?null:jt(y));return{type:"aggregate",groupby:[...this.dimensions].map(jt),ops:l,fields:d,as:h}}}class cl extends qt{constructor(l,d,h,y){super(l),this.model=d,this.name=h,this.data=y,at(this,"column",void 0),at(this,"row",void 0),at(this,"facet",void 0),at(this,"childModel",void 0);for(let w of Ua){let S=d.facet[w];if(S){let{bin:A,sort:C}=S;this[w]={name:d.getName(`${w}_domain`),fields:[je(S),...Vt(A)?[je(S,{binSuffix:"end"})]:[]],...ii(C)?{sortField:C}:b.isArray(C)?{sortIndexField:sl(S,w)}:{}}}}this.childModel=d.child}hash(){let l="Facet";for(let d of Ua)this[d]&&(l+=` ${d.charAt(0)}:${ae(this[d])}`);return l}get fields(){var d;let l=[];for(let h of Ua)(d=this[h])!=null&&d.fields&&l.push(...this[h].fields);return l}dependentFields(){let l=new Set(this.fields);for(let d of Ua)this[d]&&(this[d].sortField&&l.add(this[d].sortField.field),this[d].sortIndexField&&l.add(this[d].sortIndexField));return l}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){let l={};for(let d of Qr){let h=this.childModel.component.scales[d];if(h&&!h.merged){let y=h.get("type"),w=h.get("range");if(Hn(y)&&go(w)){let S=Cg(Es(this.childModel,d));S?l[d]=S:Be(ha(d))}}}return l}assembleRowColumnHeaderData(l,d,h){let y={row:"y",column:"x",facet:void 0}[l],w=[],S=[],A=[];y&&h&&h[y]&&(d?(w.push(`distinct_${h[y]}`),S.push("max")):(w.push(h[y]),S.push("distinct")),A.push(`distinct_${h[y]}`));let{sortField:C,sortIndexField:L}=this[l];if(C){let{op:G=dc,field:H}=C;w.push(H),S.push(G),A.push(je(C,{forAs:!0}))}else L&&(w.push(L),S.push("max"),A.push(L));return{name:this[l].name,source:d??this.data,transform:[{type:"aggregate",groupby:this[l].fields,...w.length?{fields:w,ops:S,as:A}:{}}]}}assembleFacetHeaderData(l){var C;let{columns:d}=this.model.layout,{layoutHeaders:h}=this.model.component,y=[],w={};for(let L of _u){for(let G of zc){let H=(h[L]&&h[L][G])??[];for(let X of H)if(((C=X.axes)==null?void 0:C.length)>0){w[L]=!0;break}}if(w[L]){let G=`length(data("${this.facet.name}"))`,H=L==="row"?d?{signal:`ceil(${G} / ${d})`}:1:d?{signal:`min(${G}, ${d})`}:{signal:G};y.push({name:`${this.facet.name}_${L}`,transform:[{type:"sequence",start:0,stop:H}]})}}let{row:S,column:A}=w;return(S||A)&&y.unshift(this.assembleRowColumnHeaderData("facet",null,l)),y}assemble(){let l=[],d=null,h=this.getChildIndependentFieldsWithStep(),{column:y,row:w,facet:S}=this;if(y&&w&&(h.x||h.y)){d=`cross_${this.column.name}_${this.row.name}`;let A=[].concat(h.x??[],h.y??[]),C=A.map(()=>"distinct");l.push({name:d,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:A,ops:C}]})}for(let A of[Kr,tt])this[A]&&l.push(this.assembleRowColumnHeaderData(A,d,h));if(S){let A=this.assembleFacetHeaderData(h);A&&l.push(...A)}return l}}function Yc(s){return s.startsWith("'")&&s.endsWith("'")||s.startsWith('"')&&s.endsWith('"')?s.slice(1,-1):s}function p1(s){let l={};return $(s.filter,d=>{if(Vl(d)){let h=null;Zd(d)?h=Gn(d.equal):qs(d)?h=Gn(d.lte):Hs(d)?h=Gn(d.lt):Ws(d)?h=Gn(d.gt):Fh(d)?h=Gn(d.gte):Jd(d)?h=d.range[0]:Qd(d)&&(h=(d.oneOf??d.in)[0]),h&&(Gs(h)?l[d.field]="date":b.isNumber(h)?l[d.field]="number":b.isString(h)&&(l[d.field]="string")),d.timeUnit&&(l[d.field]="date")}}),l}function Yn(s){let l={};function d(h){var y;It(h)?l[h.field]="date":h.type==="quantitative"&&(y=h.aggregate,b.isString(y)&&Q(["min","max"],y))?l[h.field]="number":Xt(h.field)>1?h.field in l||(l[h.field]="flatten"):$i(h)&&ii(h.sort)&&Xt(h.sort.field)>1&&(h.sort.field in l||(l[h.sort.field]="flatten"))}if((cn(s)||Ya(s))&&s.forEachFieldDef((h,y)=>{if(ma(h))d(h);else{let w=Us(y),S=s.fieldDef(w);d({...h,type:S.type})}}),cn(s)){let{mark:h,markDef:y,encoding:w}=s;if(is(h)&&!s.encoding.order){let S=w[y.orient==="horizontal"?"y":"x"];ze(S)&&S.type==="quantitative"&&!(S.field in l)&&(l[S.field]="number")}}return l}class Kn extends qt{clone(){return new Kn(null,j(this._parse))}constructor(l,d){super(l),at(this,"_parse",void 0),this._parse=d}hash(){return`Parse ${ae(this._parse)}`}static makeExplicit(l,d,h){var S;let y={},w=d.data;return!Eo(w)&&((S=w==null?void 0:w.format)!=null&&S.parse)&&(y=w.format.parse),this.makeWithAncestors(l,y,{},h)}static makeWithAncestors(l,d,h,y){for(let A of be(h)){let C=y.getWithExplicit(A);C.value!==void 0&&(C.explicit||C.value===h[A]||C.value==="derived"||h[A]==="flatten"?delete h[A]:Be(Dr(A,h[A],C.value)))}for(let A of be(d)){let C=y.get(A);C!==void 0&&(C===d[A]?delete d[A]:Be(Dr(A,d[A],C)))}let w=new ji(d,h);y.copyAll(w);let S={};for(let A of be(w.combine())){let C=w.get(A);C!==null&&(S[A]=C)}return be(S).length===0||y.parseNothing?null:new Kn(l,S)}get parse(){return this._parse}merge(l){this._parse={...this._parse,...l.parse},l.remove()}assembleFormatParse(){let l={};for(let d of be(this._parse)){let h=this._parse[d];Xt(d)===1&&(l[d]=h)}return l}producedFields(){return new Set(be(this._parse))}dependentFields(){return new Set(be(this._parse))}assembleTransforms(){let l=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return be(this._parse).filter(d=>!l||Xt(d)>1).map(d=>{let h=function(y,w){let S=St(y);return w==="number"?`toNumber(${S})`:w==="boolean"?`toBoolean(${S})`:w==="string"?`toString(${S})`:w==="date"?`toDate(${S})`:w==="flatten"?S:w.startsWith("date:")?`timeParse(${S},'${Yc(w.slice(5,w.length))}')`:w.startsWith("utc:")?`utcParse(${S},'${Yc(w.slice(4,w.length))}')`:(Be(`Unrecognized parse "${w}".`),null)}(d,this._parse[d]);return h?{type:"formula",expr:h,as:Tt(d)}:null}).filter(d=>d!==null)}}class Co extends qt{clone(){return new Co(null)}constructor(l){super(l)}dependentFields(){return new Set}producedFields(){return new Set([fr])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:fr}}}class Kc extends qt{clone(){return new Kc(null,this.params)}constructor(l,d){super(l),this.params=d}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${ae(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class Xc extends qt{clone(){return new Xc(null,this.params)}constructor(l,d){super(l),this.params=d}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${ae(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class Ro extends qt{constructor(l){let d;if(super(null),at(this,"_data",void 0),at(this,"_name",void 0),at(this,"_generator",void 0),l??={name:"source"},Eo(l)||(d=l.format?{...te(l.format,["parse"])}:{}),mu(l))this._data={values:l.values};else if(fs(l)){if(this._data={url:l.url},!d.type){let h=/(?:\.([^.]+))?$/.exec(l.url)[1];Q(["json","csv","tsv","dsv","topojson"],h)||(h="json"),d.type=h}}else Vf(l)?this._data={values:[{type:"Sphere"}]}:(qf(l)||Eo(l))&&(this._data={});this._generator=Eo(l),l.name&&(this._name=l.name),d&&!ye(d)&&(this._data.format=d)}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(l){this._name=l}set parent(l){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}function pp(s){return s instanceof Ro||s instanceof Kc||s instanceof Xc}var Zc=new WeakMap;class hp{constructor(){C_(this,Zc,{writable:!0,value:void 0}),N0(this,Zc,!1)}setModified(){N0(this,Zc,!0)}get modifiedFlag(){return function(d,h){return h.get?h.get.call(d):h.value}(l=this,I0(l,Zc,"get"));var l}}class sa extends hp{getNodeDepths(l,d,h){h.set(l,d);for(let y of l.children)this.getNodeDepths(y,d+1,h);return h}optimize(l){let d=[...this.getNodeDepths(l,0,new Map).entries()].sort((h,y)=>y[1]-h[1]);for(let h of d)this.run(h[0]);return this.modifiedFlag}}class mp extends hp{optimize(l){this.run(l);for(let d of l.children)this.optimize(d);return this.modifiedFlag}}class _g extends mp{mergeNodes(l,d){let h=d.shift();for(let y of d)l.removeChild(y),y.parent=h,y.remove()}run(l){let d=l.children.map(y=>y.hash()),h={};for(let y=0;y<d.length;y++)h[d[y]]===void 0?h[d[y]]=[l.children[y]]:h[d[y]].push(l.children[y]);for(let y of be(h))h[y].length>1&&(this.setModified(),this.mergeNodes(l,h[y]))}}class kg extends mp{constructor(l){super(),at(this,"requiresSelectionId",void 0),this.requiresSelectionId=l&&rg(l)}run(l){l instanceof Co&&(this.requiresSelectionId&&(pp(l.parent)||l.parent instanceof Va||l.parent instanceof Kn)||(this.setModified(),l.remove()))}}class ev extends hp{optimize(l){return this.run(l,new Set),this.modifiedFlag}run(l,d){let h=new Set;l instanceof Wi&&(h=l.producedFields(),Fe(h,d)&&(this.setModified(),l.removeFormulas(d),l.producedFields.length===0&&l.remove()));for(let y of l.children)this.run(y,new Set([...d,...h]))}}class ys extends mp{constructor(){super()}run(l){l instanceof ia&&!l.isRequired()&&(this.setModified(),l.remove())}}class Jc extends sa{run(l){if(!(pp(l)||l.numChildren()>1)){for(let d of l.children)if(d instanceof Kn)if(l instanceof Kn)this.setModified(),l.merge(d);else{if(Ee(l.producedFields(),d.dependentFields()))continue;this.setModified(),d.swapWithParent()}}}}class gp extends sa{run(l){let d=[...l.children],h=l.children.filter(y=>y instanceof Kn);if(l.numChildren()>1&&h.length>=1){let y={},w=new Set;for(let S of h){let A=S.parse;for(let C of be(A))C in y?y[C]!==A[C]&&w.add(C):y[C]=A[C]}for(let S of w)delete y[S];if(!ye(y)){this.setModified();let S=new Kn(l,y);for(let A of d){if(A instanceof Kn)for(let C of be(y))delete A.parse[C];l.removeChild(A),A.parent=S,A instanceof Kn&&be(A.parse).length===0&&A.remove()}}}}}class tv extends sa{run(l){l instanceof ia||l.numChildren()>0||l instanceof cl||l instanceof Ro||(this.setModified(),l.remove())}}class xg extends sa{run(l){let d=l.children.filter(y=>y instanceof Wi),h=d.pop();for(let y of d)this.setModified(),h.merge(y)}}class nv extends sa{run(l){let d=l.children.filter(y=>y instanceof Va),h={};for(let y of d){let w=ae(y.groupBy);w in h||(h[w]=[]),h[w].push(y)}for(let y of be(h)){let w=h[y];if(w.length>1){let S=w.pop();for(let A of w)S.merge(A)&&(l.removeChild(A),A.parent=S,A.remove(),this.setModified())}}}}class av extends sa{constructor(l){super(),this.model=l}run(l){let d=!(pp(l)||l instanceof ci||l instanceof Kn||l instanceof Co),h=[],y=[];for(let w of l.children)w instanceof pi&&(d&&!Ee(l.producedFields(),w.dependentFields())?h.push(w):y.push(w));if(h.length>0){let w=h.pop();for(let S of h)w.merge(S,this.model.renameSignal.bind(this.model));this.setModified(),l instanceof pi?l.merge(w,this.model.renameSignal.bind(this.model)):w.swapWithParent()}if(y.length>1){let w=y.pop();for(let S of y)w.merge(S,this.model.renameSignal.bind(this.model));this.setModified()}}}class h1 extends sa{run(l){let d=[...l.children];if(!ie(d,w=>w instanceof ia)||l.numChildren()<=1)return;let h=[],y;for(let w of d)if(w instanceof ia){let S=w;for(;S.numChildren()===1;){let[A]=S.children;if(!(A instanceof ia))break;S=A}h.push(...S.children),y?(l.removeChild(w),w.parent=y.parent,y.parent.removeChild(y),y.parent=S,this.setModified()):y=S}else h.push(w);if(h.length){this.setModified();for(let w of h)w.parent.removeChild(w),w.parent=y}}}class dl extends qt{clone(){return new dl(null,j(this.transform))}constructor(l,d){super(l),this.transform=d}addDimensions(l){this.transform.groupby=Se(this.transform.groupby.concat(l),d=>d)}dependentFields(){let l=new Set;return this.transform.groupby&&this.transform.groupby.forEach(l.add,l),this.transform.joinaggregate.map(d=>d.field).filter(d=>d!==void 0).forEach(l.add,l),l}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(l){return l.as??je(l)}hash(){return`JoinAggregateTransform ${ae(this.transform)}`}assemble(){let l=[],d=[],h=[];for(let w of this.transform.joinaggregate)d.push(w.op),h.push(this.getDefaultName(w)),l.push(w.field===void 0?null:w.field);let y=this.transform.groupby;return{type:"joinaggregate",as:h,ops:d,fields:l,...y!==void 0?{groupby:y}:{}}}}class No extends qt{clone(){return new No(null,j(this._stack))}constructor(l,d){super(l),at(this,"_stack",void 0),this._stack=d}static makeFromTransform(l,d){let{stack:h,groupby:y,as:w,offset:S="zero"}=d,A=[],C=[];if(d.sort!==void 0)for(let H of d.sort)A.push(H.field),C.push(Ke(H.order,"ascending"));let L={field:A,order:C},G;return G=function(H){return b.isArray(H)&&H.every(X=>b.isString(X))&&H.length>1}(w)?w:b.isString(w)?[w,`${w}_end`]:[`${d.stack}_start`,`${d.stack}_end`],new No(l,{dimensionFieldDefs:[],stackField:h,groupby:y,offset:S,sort:L,facetby:[],as:G})}static makeFromEncoding(l,d){let h=d.stack,{encoding:y}=d;if(!h)return null;let{groupbyChannels:w,fieldChannel:S,offset:A,impute:C}=h,L=w.map(Z=>dr(y[Z])).filter(Z=>!!Z),G=function(Z){return Z.stack.stackBy.reduce((le,ee)=>{let de=je(ee.fieldDef);return de&&le.push(de),le},[])}(d),H=d.encoding.order,X;if(b.isArray(H)||ze(H))X=ql(H);else{let Z=ry(H)?H.sort:S==="y"?"descending":"ascending";X=G.reduce((le,ee)=>(le.field.push(ee),le.order.push(Z),le),{field:[],order:[]})}return new No(l,{dimensionFieldDefs:L,stackField:d.vgField(S),facetby:[],stackby:G,sort:X,offset:A,impute:C,as:[d.vgField(S,{suffix:"start",forAs:!0}),d.vgField(S,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(l){this._stack.facetby.push(...l)}dependentFields(){let l=new Set;return l.add(this._stack.stackField),this.getGroupbyFields().forEach(l.add,l),this._stack.facetby.forEach(l.add,l),this._stack.sort.field.forEach(l.add,l),l}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${ae(this._stack)}`}getGroupbyFields(){let{dimensionFieldDefs:l,impute:d,groupby:h}=this._stack;return l.length>0?l.map(y=>y.bin?d?[je(y,{binSuffix:"mid"})]:[je(y,{}),je(y,{binSuffix:"end"})]:[je(y)]).flat():h??[]}assemble(){let l=[],{facetby:d,dimensionFieldDefs:h,stackField:y,stackby:w,sort:S,offset:A,impute:C,as:L}=this._stack;if(C)for(let G of h){let{bandPosition:H=.5,bin:X}=G;if(X){let Z=je(G,{expr:"datum"}),le=je(G,{expr:"datum",binSuffix:"end"});l.push({type:"formula",expr:`${H}*${Z}+${1-H}*${le}`,as:je(G,{binSuffix:"mid",forAs:!0})})}l.push({type:"impute",field:y,groupby:[...w,...d],key:je(G,{binSuffix:"mid"}),method:"value",value:0})}return l.push({type:"stack",groupby:[...this.getGroupbyFields(),...d],field:y,sort:S,as:L,offset:A}),l}}class fl extends qt{clone(){return new fl(null,j(this.transform))}constructor(l,d){super(l),this.transform=d}addDimensions(l){this.transform.groupby=Se(this.transform.groupby.concat(l),d=>d)}dependentFields(){let l=new Set;return(this.transform.groupby??[]).forEach(l.add,l),(this.transform.sort??[]).forEach(d=>l.add(d.field)),this.transform.window.map(d=>d.field).filter(d=>d!==void 0).forEach(l.add,l),l}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(l){return l.as??je(l)}hash(){return`WindowTransform ${ae(this.transform)}`}assemble(){let l=[],d=[],h=[],y=[];for(let H of this.transform.window)d.push(H.op),h.push(this.getDefaultName(H)),y.push(H.param===void 0?null:H.param),l.push(H.field===void 0?null:H.field);let w=this.transform.frame,S=this.transform.groupby;if(w&&w[0]===null&&w[1]===null&&d.every(H=>Sn(H)))return{type:"joinaggregate",as:h,ops:d,fields:l,...S!==void 0?{groupby:S}:{}};let A=[],C=[];if(this.transform.sort!==void 0)for(let H of this.transform.sort)A.push(H.field),C.push(H.order??"ascending");let L={field:A,order:C},G=this.transform.ignorePeers;return{type:"window",params:y,as:h,ops:d,fields:l,sort:L,...G!==void 0?{ignorePeers:G}:{},...S!==void 0?{groupby:S}:{},...w!==void 0?{frame:w}:{}}}}function Sg(s){if(s instanceof cl)if(s.numChildren()!==1||s.children[0]instanceof ia){let d=s.model.component.data.main;Ag(d);let h=(l=s,function w(S){if(!(S instanceof cl)){let A=S.clone();if(A instanceof ia){let C=Tg+A.getSource();A.setSource(C),l.model.component.data.outputNodes[C]=A}else(A instanceof Va||A instanceof No||A instanceof fl||A instanceof dl)&&A.addDimensions(l.fields);for(let C of S.children.flatMap(w))C.parent=A;return[A]}return S.children.flatMap(w)}),y=s.children.map(h).flat();for(let w of y)w.parent=d}else{let d=s.children[0];(d instanceof Va||d instanceof No||d instanceof fl||d instanceof dl)&&d.addDimensions(s.fields),d.swapWithParent(),Sg(s)}else s.children.map(Sg);var l}function Ag(s){if(s instanceof ia&&s.type===nn.Main&&s.numChildren()===1){let l=s.children[0];l instanceof cl||(l.swapWithParent(),Ag(s))}}let Tg="scale_",bp=5;function yp(s){for(let l of s){for(let d of l.children)if(d.parent!==l)return!1;if(!yp(l.children))return!1}return!0}function hi(s,l){let d=!1;for(let h of l)d=s.optimize(h)||d;return d}function rv(s,l,d){let h=s.sources,y=!1;return y=hi(new ys,h)||y,y=hi(new kg(l),h)||y,h=h.filter(w=>w.numChildren()>0),y=hi(new tv,h)||y,h=h.filter(w=>w.numChildren()>0),d||(y=hi(new Jc,h)||y,y=hi(new av(l),h)||y,y=hi(new ev,h)||y,y=hi(new gp,h)||y,y=hi(new nv,h)||y,y=hi(new xg,h)||y,y=hi(new _g,h)||y,y=hi(new h1,h)||y),s.sources=h,y}class Ln{constructor(l){at(this,"signal",void 0),Object.defineProperty(this,"signal",{enumerable:!0,get:l})}static fromName(l,d){return new Ln(()=>l(d))}}function iv(s){cn(s)?function(l){let d=l.component.scales;for(let h of be(d)){let y=m1(l,h);if(d[h].setWithExplicit("domains",y),ov(l,h),l.component.data.isFaceted){let w=l;for(;!Ya(w)&&w.parent;)w=w.parent;if(w.component.resolve.scale[h]==="shared")for(let S of y.value)Aa(S)&&(S.data=Tg+S.data.replace(Tg,""))}}}(s):function(l){for(let h of l.children)iv(h);let d=l.component.scales;for(let h of be(d)){let y,w=null;for(let S of l.children){let A=S.component.scales[h];if(A){y=y===void 0?A.getWithExplicit("domains"):qi(y,A.getWithExplicit("domains"),"domains","scale",td);let C=A.get("selectionExtent");w&&C&&w.param!==C.param&&Be(lr),w=C}}d[h].setWithExplicit("domains",y),w&&d[h].set("selectionExtent",w,!0)}}(s)}function m1(s,l){let d=s.getScaleComponent(l).get("type"),{encoding:h}=s,y=function(w,S,A,C){if(w==="unaggregated"){let{valid:L,reason:G}=Ia(S,A);if(!L)return void Be(G)}else if(w===void 0&&C.useUnaggregatedDomain){let{valid:L}=Ia(S,A);if(L)return"unaggregated"}return w}(s.scaleDomain(l),s.typedFieldDef(l),d,s.config.scale);return y!==s.scaleDomain(l)&&(s.specifiedScales[l]={...s.specifiedScales[l],domain:y}),l==="x"&&yn(h.x2)?yn(h.x)?qi(vs(d,y,s,"x"),vs(d,y,s,"x2"),"domain","scale",td):vs(d,y,s,"x2"):l==="y"&&yn(h.y2)?yn(h.y)?qi(vs(d,y,s,"y"),vs(d,y,s,"y2"),"domain","scale",td):vs(d,y,s,"y2"):vs(d,y,s,l)}function Qc(s,l,d){var y;let h=(y=jn(d))==null?void 0:y.unit;return l==="temporal"||h?function(w,S,A){return w.map(C=>({signal:`{data: ${iu(C,{timeUnit:A,type:S})}}`}))}(s,l,h):[s]}function vs(s,l,d,h){let{encoding:y,markDef:w,mark:S,config:A,stack:C}=d,L=yn(y[h]),{type:G}=L,H=L.timeUnit;if(function(le){return le==null?void 0:le.unionWith}(l)){let le=vs(s,void 0,d,h);return Hi([...Qc(l.unionWith,G,H),...le.value])}if(Ze(l))return Hi([l]);if(l&&l!=="unaggregated"&&!Y0(l))return Hi(Qc(l,G,H));if(C&&h===C.fieldChannel){if(C.offset==="normalize")return Fr([[0,1]]);let le=d.requestDataName(nn.Main);return Fr([{data:le,field:d.vgField(h,{suffix:"start"})},{data:le,field:d.vgField(h,{suffix:"end"})}])}let X=Nr(h)&&ze(L)?function(le,ee,de){if(!Hn(de))return;let ge=le.fieldDef(ee),xe=ge.sort;if(fc(xe))return{op:"min",field:sl(ge,ee),order:"ascending"};let{stack:me}=le,Ae=me?new Set([...me.groupbyFields,...me.stackBy.map(Ce=>Ce.fieldDef.field)]):void 0;if(ii(xe))return ed(xe,me&&!Ae.has(xe.field));if(Xh(xe)){let{encoding:Ce,order:Pe}=xe,We=le.fieldDef(Ce),{aggregate:Je,field:it}=We,Qe=me&&!Ae.has(it);if(ei(Je)||Ni(Je))return ed({field:je(We),order:Pe},Qe);if(Sn(Je)||!Je)return ed({op:Je,field:it,order:Pe},Qe)}else{if(xe==="descending")return{op:"min",field:le.vgField(ee),order:"descending"};if(Q(["ascending",void 0],xe))return!0}}(d,h,s):void 0;if(Pi(L))return Fr(Qc([L.datum],G,H));let Z=L;if(l==="unaggregated"){let le=d.requestDataName(nn.Main),{field:ee}=L;return Fr([{data:le,field:je({field:ee,aggregate:"min"})},{data:le,field:je({field:ee,aggregate:"max"})}])}if(Vt(Z.bin)){if(Hn(s))return Fr(s==="bin-ordinal"?[]:[{data:Ye(X)?d.requestDataName(nn.Main):d.requestDataName(nn.Raw),field:d.vgField(h,ou(Z,h)?{binSuffix:"range"}:{}),sort:X!==!0&&b.isObject(X)?X:{field:d.vgField(h,{}),op:"min"}}]);{let{bin:le}=Z;if(Vt(le)){let ee=To(d,Z.field,le);return Fr([new Ln(()=>{let de=d.getSignalName(ee);return`[${de}.start, ${de}.stop]`})])}return Fr([{data:d.requestDataName(nn.Main),field:d.vgField(h,{})}])}}if(Z.timeUnit&&Q(["time","utc"],s)){let le=y[Ci(h)];if(pf(Z,le,w,A)){let ee=d.requestDataName(nn.Main),de=Fi({fieldDef:Z,fieldDef2:le,markDef:w,config:A}),ge=cc(S)&&de!==.5;return Fr([{data:ee,field:d.vgField(h,ge?{suffix:Xf}:{})},{data:ee,field:d.vgField(h,{suffix:ge?$t:"end"})}])}}return Fr(X?[{data:Ye(X)?d.requestDataName(nn.Main):d.requestDataName(nn.Raw),field:d.vgField(h),sort:X}]:[{data:d.requestDataName(nn.Main),field:d.vgField(h)}])}function ed(s,l){let{op:d,field:h,order:y}=s;return{op:d??(l?"sum":dc),...h?{field:jt(h)}:{},...y?{order:y}:{}}}function ov(s,l){var A;let d=s.component.scales[l],h=s.specifiedScales[l].domain,y=(A=s.fieldDef(l))==null?void 0:A.bin,w=Y0(h)&&h,S=mo(y)&&Or(y.extent)&&y.extent;(w||S)&&d.set("selectionExtent",w??S,!0)}function Ia(s,l){let{aggregate:d,type:h}=s;return d?b.isString(d)&&!ho.has(d)?{valid:!1,reason:Rh(d)}:h==="quantitative"&&l==="log"?{valid:!1,reason:Nh(s)}:{valid:!0}:{valid:!1,reason:M0(s)}}function td(s,l,d,h){return s.explicit&&l.explicit&&Be(function(y,w,S,A){return`Conflicting ${w.toString()} property "${y.toString()}" (${Xe(S)} and ${Xe(A)}). Using the union of the two domains.`}(d,h,s.value,l.value)),{explicit:s.explicit,value:[...s.value,...l.value]}}function g1(s){let l=Se(s.map(S=>{if(Aa(S)){let{sort:A,...C}=S;return C}return S}),ae),d=Se(s.map(S=>{if(Aa(S)){let A=S.sort;return A===void 0||Ye(A)||("op"in A&&A.op==="count"&&delete A.field,A.order==="ascending"&&delete A.order),A}}).filter(S=>S!==void 0),ae);if(l.length===0)return;if(l.length===1){let S=s[0];if(Aa(S)&&d.length>0){let A=d[0];if(d.length>1){Be(Oh);let C=d.filter(L=>b.isObject(L)&&"op"in L&&L.op!=="min");A=!d.every(L=>b.isObject(L)&&"op"in L)||C.length!==1||C[0]}else if(b.isObject(A)&&"field"in A){let C=A.field;S.field===C&&(A=!A.order||{order:A.order})}return{...S,sort:A}}return S}let h=Se(d.map(S=>Ye(S)||!("op"in S)||b.isString(S.op)&&S.op in S0?S:(Be(function(A){return`Dropping sort property ${Xe(A)} as unioned domains only support boolean or op "count", "min", and "max".`}(S)),!0)),ae),y;h.length===1?y=h[0]:h.length>1&&(Be(Oh),y=!0);let w=Se(s.map(S=>Aa(S)?S.data:null),S=>S);return w.length===1&&w[0]!==null?{data:w[0],fields:l.map(S=>S.field),...y?{sort:y}:{}}:{fields:l,...y?{sort:y}:{}}}function Cg(s){if(Aa(s)&&b.isString(s.field))return s.field;if(function(l){return!b.isArray(l)&&"fields"in l&&!("data"in l)}(s)){let l;for(let d of s.fields)if(Aa(d)&&b.isString(d.field))if(l){if(l!==d.field)return Be("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),l}else l=d.field;return Be("Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect."),l}if(function(l){return!b.isArray(l)&&"fields"in l&&"data"in l}(s)){Be("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");let l=s.fields[0];return b.isString(l)?l:void 0}}function Es(s,l){let d=s.component.scales[l].get("domains").map(h=>(Aa(h)&&(h.data=s.lookupDataSource(h.data)),h));return g1(d)}function nd(s){return ws(s)||Ji(s)?s.children.reduce((l,d)=>l.concat(nd(d)),Rg(s)):Rg(s)}function Rg(s){return be(s.component.scales).reduce((l,d)=>{let h=s.component.scales[d];if(h.merged)return l;let y=h.combine(),{name:w,type:S,selectionExtent:A,domains:C,range:L,reverse:G,...H}=y,X=function(ee,de,ge,xe){if(un(ge)){if(go(ee))return{step:{signal:`${de}_step`}}}else if(b.isObject(ee)&&Aa(ee))return{...ee,data:xe.lookupDataSource(ee.data)};return ee}(y.range,w,d,s),Z=Es(s,d),le=A?function(ee,de,ge,xe){let me=xo(ee,de.param,de);return{signal:Ha(ge.get("type"))&&b.isArray(xe)&&xe[0]>xe[1]?`isValid(${me}) && reverse(${me})`:me}}(s,A,h,Z):null;return l.push({name:w,type:S,...Z?{domain:Z}:{},...le?{domainRaw:le}:{},range:X,...G!==void 0?{reverse:G}:{},...H}),l},[])}class Ng extends ji{constructor(l,d){super({},{name:l}),at(this,"merged",!1),this.setWithExplicit("type",d)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1||ie(this.get("domains"),l=>b.isArray(l)&&l.length===2&&b.isNumber(l[0])&&l[0]<=0&&b.isNumber(l[1])&&l[1]>=0)}}let pl=["range","scheme"];function Ig(s,l){let d=s.fieldDef(l);if(d!=null&&d.bin){let{bin:h,field:y}=d,w=Sa(l),S=s.getName(w);if(b.isObject(h)&&h.binned&&h.step!==void 0)return new Ln(()=>{let A=s.scaleName(l),C=`(domain("${A}")[1] - domain("${A}")[0]) / ${h.step}`;return`${s.getSignalName(S)} / (${C})`});if(Vt(h)){let A=To(s,y,h);return new Ln(()=>{let C=s.getSignalName(A),L=`(${C}.stop - ${C}.start) / ${C}.step`;return`${s.getSignalName(S)} / (${L})`})}}}function sv(s,l){let d=l.specifiedScales[s],{size:h}=l,y=l.getScaleComponent(s).get("type");for(let G of pl)if(d[G]!==void 0){let H=$h(y,G),X=K0(s,G);if(H)if(X)Be(X);else switch(G){case"range":{let Z=d.range;if(b.isArray(Z)){if(un(s))return Hi(Z.map(le=>{if(le==="width"||le==="height"){let ee=l.getName(le),de=l.getSignalName.bind(l);return Ln.fromName(de,ee)}return le}))}else if(b.isObject(Z))return Hi({data:l.requestDataName(nn.Main),field:Z.field,sort:{op:"min",field:l.vgField(s)}});return Hi(Z)}case"scheme":return Hi(lv(d[G]))}else Be(L0(y,G,s))}let w=s===Qt||s==="xOffset"?"width":"height",S=h[w];if(qa(S)){if(un(s))if(Hn(y)){let G=cv(S,l,s);if(G)return Hi({step:G})}else Be(Ih(w));else if(Qn(s)){let G=s===hn?"x":"y";if(l.getScaleComponent(G).get("type")==="band"){let H=dv(S,y);if(H)return Hi(H)}}}let{rangeMin:A,rangeMax:C}=d,L=function(G,H){let{size:X,config:Z,mark:le,encoding:ee}=H,{type:de}=yn(ee[G]),ge=H.getScaleComponent(G),xe=ge.get("type"),{domain:me,domainMid:Ae}=H.specifiedScales[G];switch(G){case Qt:case Bn:if(Q(["point","band"],xe)){let Ce=Og(G,X,Z.view);if(qa(Ce))return{step:cv(Ce,H,G)}}return uv(G,H,xe);case hn:case Zo:return function(Ce,Pe,We){let Je=Ce===hn?"x":"y",it=Pe.getScaleComponent(Je);if(!it)return uv(Je,Pe,We,{center:!0});let Qe=it.get("type"),lt=Pe.scaleName(Je),{markDef:kt,config:Fn}=Pe;if(Qe==="band"){let dn=Og(Je,Pe.size,Pe.config.view);if(qa(dn)){let sn=dv(dn,We);if(sn)return sn}return[0,{signal:`bandwidth('${lt}')`}]}{let dn=Pe.encoding[Je];if(ze(dn)&&dn.timeUnit){let sn=j0(dn.timeUnit,Nn=>`scale('${lt}', ${Nn})`),Ut=Pe.config.scale.bandWithNestedOffsetPaddingInner,Dt=Fi({fieldDef:dn,markDef:kt,config:Fn})-.5,vn=Dt!==0?` + ${Dt}`:"";return Ut?[{signal:`${Ze(Ut)?`${Ut.signal}/2`+vn:`${Ut/2+Dt}`} * (${sn})`},{signal:`${Ze(Ut)?`(1 - ${Ut.signal}/2)`+vn:`${1-Ut/2+Dt}`} * (${sn})`}]:[0,{signal:sn}]}return W(`Cannot use ${Ce} scale if ${Je} scale is not discrete.`)}}(G,H,xe);case xi:{let Ce=vp(le,H.component.scales[G].get("zero"),Z),Pe=function(We,Je,it,Qe){let lt={x:Ig(it,"x"),y:Ig(it,"y")};switch(We){case"bar":case"tick":{if(Qe.scale.maxBandSize!==void 0)return Qe.scale.maxBandSize;let kt=Mg(Je,lt,Qe.view);return b.isNumber(kt)?kt-1:new Ln(()=>`${kt.signal} - 1`)}case"line":case"trail":case"rule":return Qe.scale.maxStrokeWidth;case"text":return Qe.scale.maxFontSize;case"point":case"square":case"circle":{if(Qe.scale.maxSize)return Qe.scale.maxSize;let kt=Mg(Je,lt,Qe.view);return b.isNumber(kt)?Math.pow(Dg*kt,2):new Ln(()=>`pow(${Dg} * ${kt.signal}, 2)`)}}throw new Error(Mi("size",We))}(le,X,H,Z);return Zl(xe)?function(We,Je,it){let Qe=()=>{let lt=pa(Je),kt=pa(We),Fn=`(${lt} - ${kt}) / (${it} - 1)`;return`sequence(${kt}, ${lt} + ${Fn}, ${Fn})`};return Ze(Je)?new Ln(Qe):{signal:Qe()}}(Ce,Pe,function(We,Je,it,Qe){switch(We){case"quantile":return Je.scale.quantileCount;case"quantize":return Je.scale.quantizeCount;case"threshold":return it!==void 0&&b.isArray(it)?it.length+1:(Be(function(lt){return`Domain for ${lt} is required for threshold scale.`}(Qe)),3)}}(xe,Z,me,G)):[Ce,Pe]}case ar:return[0,2*Math.PI];case Ba:return[0,360];case mt:return[0,new Ln(()=>`min(${H.getSignalName("width")},${H.getSignalName("height")})/2`)];case fo:return[Z.scale.minStrokeWidth,Z.scale.maxStrokeWidth];case Jo:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case xn:return"symbol";case Le:case xa:case Zr:return xe==="ordinal"?de==="nominal"?"category":"ordinal":Ae!==void 0?"diverging":le==="rect"||le==="geoshape"?"heatmap":"ramp";case Si:case Ft:case Ai:return[Z.scale.minOpacity,Z.scale.maxOpacity]}}(s,l);return(A!==void 0||C!==void 0)&&$h(y,"rangeMin")&&b.isArray(L)&&L.length===2?Hi([A??L[0],C??L[1]]):Fr(L)}function lv(s){return function(l){return!b.isString(l)&&!!l.name}(s)?{scheme:s.name,...te(s,["name"])}:{scheme:s}}function uv(s,l,d){let{center:h}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},y=Sa(s),w=l.getName(y),S=l.getSignalName.bind(l);return s===Bn&&Ha(d)?h?[Ln.fromName(A=>`${S(A)}/2`,w),Ln.fromName(A=>`-${S(A)}/2`,w)]:[Ln.fromName(S,w),0]:h?[Ln.fromName(A=>`-${S(A)}/2`,w),Ln.fromName(A=>`${S(A)}/2`,w)]:[0,Ln.fromName(S,w)]}function cv(s,l,d){let{encoding:h}=l,y=l.getScaleComponent(d),w=Ul(d),S=h[w];if(Mf({step:s,offsetIsDiscrete:wt(S)&&Yl(S.type)})==="offset"&&vo(h,w)){let C=l.getScaleComponent(w),L=`domain('${l.scaleName(w)}').length`;C.get("type")==="band"&&(L=`bandspace(${L}, ${C.get("paddingInner")??C.get("padding")??0}, ${C.get("paddingOuter")??C.get("padding")??0})`);let G=y.get("paddingInner")??y.get("padding");return{signal:`${s.step} * ${L} / (1-${A=G,Ze(A)?A.signal:b.stringValue(A)})`}}return s.step;var A}function dv(s,l){if(Mf({step:s,offsetIsDiscrete:Hn(l)})==="offset")return{step:s.step}}function Og(s,l,d){let h=s===Qt?"width":"height";return l[h]||Ac(d,h)}function vp(s,l,d){if(l)return Ze(l)?{signal:`${l.signal} ? 0 : ${vp(s,!1,d)}`}:0;switch(s){case"bar":case"tick":return d.scale.minBandSize;case"line":case"trail":case"rule":return d.scale.minStrokeWidth;case"text":return d.scale.minFontSize;case"point":case"square":case"circle":return d.scale.minSize}throw new Error(Mi("size",s))}let Dg=.95;function Mg(s,l,d){let h=qa(s.width)?s.width.step:fu(d,"width"),y=qa(s.height)?s.height.step:fu(d,"height");return l.x||l.y?new Ln(()=>`min(${[l.x?l.x.signal:h,l.y?l.y.signal:y].join(", ")})`):Math.min(h,y)}function Ep(s,l){cn(s)?function(d,h){let y=d.component.scales,{config:w,encoding:S,markDef:A,specifiedScales:C}=d;for(let L of be(y)){let G=C[L],H=y[L],X=d.getScaleComponent(L),Z=yn(S[L]),le=G[h],ee=X.get("type"),de=X.get("padding"),ge=X.get("paddingInner"),xe=$h(ee,h),me=K0(L,h);if(le!==void 0&&(xe?me&&Be(me):Be(L0(ee,h,L))),xe&&me===void 0)if(le!==void 0){let Ae=Z.timeUnit,Ce=Z.type;switch(h){case"domainMax":case"domainMin":Gs(G[h])||Ce==="temporal"||Ae?H.set(h,{signal:iu(G[h],{type:Ce,timeUnit:Ae})},!0):H.set(h,G[h],!0);break;default:H.copyKeyFromObject(h,G)}}else{let Ae=h in Lg?Lg[h]({model:d,channel:L,fieldOrDatumDef:Z,scaleType:ee,scalePadding:de,scalePaddingInner:ge,domain:G.domain,domainMin:G.domainMin,domainMax:G.domainMax,markDef:A,config:w,hasNestedOffsetScale:uy(S,L),hasSecondaryRangeChannel:!!S[Ci(L)]}):w.scale[h];Ae!==void 0&&H.set(h,Ae,!1)}}}(s,l):pv(s,l)}let Lg={bins:s=>{let{model:l,fieldOrDatumDef:d}=s;return ze(d)?function(h,y){let w=y.bin;if(Vt(w)){let S=To(h,y.field,w);return new Ln(()=>h.getSignalName(S))}if(zn(w)&&mo(w)&&w.step!==void 0)return{step:w.step}}(l,d):void 0},interpolate:s=>{let{channel:l,fieldOrDatumDef:d}=s;return function(h,y){if(Q([Le,xa,Zr],h)&&y!=="nominal")return"hcl"}(l,d.type)},nice:s=>{let{scaleType:l,channel:d,domain:h,domainMin:y,domainMax:w,fieldOrDatumDef:S}=s;return function(A,C,L,G,H,X){var Z;if(!((Z=dr(X))!=null&&Z.bin||b.isArray(L)||H!=null||G!=null||Q([Gt.TIME,Gt.UTC],A)))return!!un(C)||void 0}(l,d,h,y,w,S)},padding:s=>{let{channel:l,scaleType:d,fieldOrDatumDef:h,markDef:y,config:w}=s;return function(S,A,C,L,G,H){if(un(S)){if(Lr(A)){if(C.continuousPadding!==void 0)return C.continuousPadding;let{type:X,orient:Z}=G;if(X==="bar"&&(!ze(L)||!L.bin&&!L.timeUnit)&&(Z==="vertical"&&S==="x"||Z==="horizontal"&&S==="y"))return H.continuousBandSize}if(A===Gt.POINT)return C.pointPadding}}(l,d,w.scale,h,y,w.bar)},paddingInner:s=>{let{scalePadding:l,channel:d,markDef:h,scaleType:y,config:w,hasNestedOffsetScale:S}=s;return function(A,C,L,G,H){let X=arguments.length>5&&arguments[5]!==void 0&&arguments[5];if(A===void 0){if(un(C)){let{bandPaddingInner:Z,barBandPaddingInner:le,rectBandPaddingInner:ee,bandWithNestedOffsetPaddingInner:de}=H;return X?de:Ke(Z,L==="bar"?le:ee)}if(Qn(C)&&G===Gt.BAND)return H.offsetBandPaddingInner}}(l,d,h.type,y,w.scale,S)},paddingOuter:s=>{let{scalePadding:l,channel:d,scaleType:h,scalePaddingInner:y,config:w,hasNestedOffsetScale:S}=s;return function(A,C,L,G,H){let X=arguments.length>5&&arguments[5]!==void 0&&arguments[5];if(A===void 0){if(un(C)){let{bandPaddingOuter:Z,bandWithNestedOffsetPaddingOuter:le}=H;if(X)return le;if(L===Gt.BAND)return Ke(Z,Ze(G)?{signal:`${G.signal}/2`}:G/2)}else if(Qn(C)){if(L===Gt.POINT)return .5;if(L===Gt.BAND)return H.offsetBandPaddingOuter}}}(l,d,h,y,w.scale,S)},reverse:s=>{let{fieldOrDatumDef:l,scaleType:d,channel:h,config:y}=s;return function(w,S,A,C){if(A==="x"&&C.xReverse!==void 0)return Ha(w)&&S==="descending"?Ze(C.xReverse)?{signal:`!${C.xReverse.signal}`}:!C.xReverse:C.xReverse;if(Ha(w)&&S==="descending")return!0}(d,ze(l)?l.sort:void 0,h,y.scale)},zero:s=>{let{channel:l,fieldOrDatumDef:d,domain:h,markDef:y,scaleType:w,config:S,hasSecondaryRangeChannel:A}=s;return function(C,L,G,H,X,Z,le){if(G&&G!=="unaggregated"&&Ha(X)){if(b.isArray(G)){let ee=G[0],de=G[G.length-1];if(b.isNumber(ee)&&ee<=0&&b.isNumber(de)&&de>=0)return!0}return!1}if(C==="size"&&L.type==="quantitative"&&!Zl(X))return!0;if((!ze(L)||!L.bin)&&Q([...Qr,...E0],C)){let{orient:ee,type:de}=H;return(!Q(["bar","area","line","trail"],de)||!(ee==="horizontal"&&C==="y"||ee==="vertical"&&C==="x"))&&(!(!Q(["bar","area"],de)||le)||(Z==null?void 0:Z.zero))}return!1}(l,d,h,y,w,S.scale,A)}};function fv(s){cn(s)?function(l){let d=l.component.scales;for(let h of Gl){let y=d[h];if(!y)continue;let w=sv(h,l);y.setWithExplicit("range",w)}}(s):pv(s,"range")}function pv(s,l){let d=s.component.scales;for(let h of s.children)l==="range"?fv(h):Ep(h,l);for(let h of be(d)){let y;for(let w of s.children){let S=w.component.scales[h];S&&(y=qi(y,S.getWithExplicit(l),l,"scale",Sy((A,C)=>l==="range"&&A.step&&C.step?A.step-C.step:0)))}d[h].setWithExplicit(l,y)}}function Fg(s,l,d,h){let y=function(C,L,G,H){var X;switch(L.type){case"nominal":case"ordinal":if(es(C)||$d(C)==="discrete")return C==="shape"&&L.type==="ordinal"&&Be(qd(C,"ordinal")),"ordinal";if(un(C)||Qn(C)){if(Q(["rect","bar","image","rule"],G.type)||H)return"band"}else if(G.type==="arc"&&C in Qu)return"band";return Ys(G[Sa(C)])||nu(L)&&((X=L.axis)!=null&&X.tickBand)?"band":"point";case"temporal":return es(C)?"time":$d(C)==="discrete"?(Be(qd(C,"temporal")),"ordinal"):ze(L)&&L.timeUnit&&jn(L.timeUnit).utc?"utc":"time";case"quantitative":return es(C)?ze(L)&&Vt(L.bin)?"bin-ordinal":"linear":$d(C)==="discrete"?(Be(qd(C,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(jd(L.type))}(l,d,h,arguments.length>4&&arguments[4]!==void 0&&arguments[4]),{type:w}=s;return Nr(l)?w!==void 0?function(C,L){let G=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!Nr(C))return!1;switch(C){case Qt:case Bn:case hn:case Zo:case ar:case mt:return!!Lr(L)||L==="band"||L==="point"&&!G;case xi:case fo:case Si:case Ft:case Ai:case Ba:return Lr(L)||Zl(L)||Q(["band","point","ordinal"],L);case Le:case xa:case Zr:return L!=="band";case Jo:case xn:return L==="ordinal"||Zl(L)}}(l,w)?ze(d)&&(S=w,A=d.type,!(Q([tf,nf],A)?S===void 0||Hn(S):A===rs?Q([Gt.TIME,Gt.UTC,void 0],S):A!==bo||W0(S)||Zl(S)||S===void 0))?(Be(function(C,L){return`FieldDef does not work with "${C}" scale. We are using "${L}" scale instead.`}(w,y)),y):w:(Be(function(C,L,G){return`Channel "${C}" does not work with "${L}" scale. We are using "${G}" scale instead.`}(l,w,y)),y):y:null;var S,A}function wp(s){cn(s)?s.component.scales=function(l){let{encoding:d,mark:h,markDef:y}=l,w={};for(let S of Gl){let A=yn(d[S]);if(A&&h===Z0&&S===xn&&A.type===Vs)continue;let C=A&&A.scale;if(A&&C!==null&&C!==!1){C??={};let L=Fg(C,S,A,y,uy(d,S));w[S]=new Ng(l.scaleName(`${S}`,!0),{value:L,explicit:C.type===L})}}return w}(s):s.component.scales=function(l){let d=l.component.scales={},h={},y=l.component.resolve;for(let w of l.children){wp(w);for(let S of be(w.component.scales))if(y.scale[S]??=cg(S,l),y.scale[S]==="shared"){let A=h[S],C=w.component.scales[S].getWithExplicit("type");A?O_(A.value,C.value)?h[S]=qi(A,C,"type","scale",b1):(y.scale[S]="independent",delete h[S]):h[S]=C}}for(let w of be(h)){let S=l.scaleName(w,!0),A=h[w];d[w]=new Ng(S,A);for(let C of l.children){let L=C.component.scales[w];L&&(C.renameScale(L.get("name"),S),L.merged=!0)}}return d}(s)}let b1=Sy((s,l)=>q0(s)-q0(l));class Pg{constructor(){at(this,"nameMap",void 0),this.nameMap={}}rename(l,d){this.nameMap[l]=d}has(l){return this.nameMap[l]!==void 0}get(l){for(;this.nameMap[l]&&l!==this.nameMap[l];)l=this.nameMap[l];return l}}function cn(s){return(s==null?void 0:s.type)==="unit"}function Ya(s){return(s==null?void 0:s.type)==="facet"}function Ji(s){return(s==null?void 0:s.type)==="concat"}function ws(s){return(s==null?void 0:s.type)==="layer"}class ad{constructor(l,d,h,y,w,S,A){this.type=d,this.parent=h,this.config=w,at(this,"name",void 0),at(this,"size",void 0),at(this,"title",void 0),at(this,"description",void 0),at(this,"data",void 0),at(this,"transforms",void 0),at(this,"layout",void 0),at(this,"scaleNameMap",void 0),at(this,"projectionNameMap",void 0),at(this,"signalNameMap",void 0),at(this,"component",void 0),at(this,"view",void 0),at(this,"children",void 0),at(this,"correctDataNames",C=>{var L,G,H;return(L=C.from)!=null&&L.data&&(C.from.data=this.lookupDataSource(C.from.data)),(H=(G=C.from)==null?void 0:G.facet)!=null&&H.data&&(C.from.facet.data=this.lookupDataSource(C.from.facet.data)),C}),this.parent=h,this.config=w,this.view=ea(A),this.name=l.name??y,this.title=fa(l.title)?{text:l.title}:l.title?ea(l.title):void 0,this.scaleNameMap=h?h.scaleNameMap:new Pg,this.projectionNameMap=h?h.projectionNameMap:new Pg,this.signalNameMap=h?h.signalNameMap:new Pg,this.data=l.data,this.description=l.description,this.transforms=(l.transform??[]).map(C=>Rm(C)?{filter:F(C.filter,lc)}:C),this.layout=d==="layer"||d==="unit"?{}:function(C,L,G){let H=G[L],X={},{spacing:Z,columns:le}=H;Z!==void 0&&(X.spacing=Z),le!==void 0&&(pc(C)&&!Ql(C.facet)||kc(C))&&(X.columns=le),du(C)&&(X.columns=1);for(let ee of Sc)if(C[ee]!==void 0)if(ee==="spacing"){let de=C[ee];X[ee]=b.isNumber(de)?de:{row:de.row??Z,column:de.column??Z}}else X[ee]=C[ee];return X}(l,d,w),this.component={data:{sources:h?h.component.data.sources:[],outputNodes:h?h.component.data.outputNodes:{},outputNodeRefCounts:h?h.component.data.outputNodeRefCounts:{},isFaceted:pc(l)||(h==null?void 0:h.component.data.isFaceted)&&l.data===void 0},layoutSize:new ji,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...S?j(S):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){(function(l){let{ignoreRange:d}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};wp(l),iv(l);for(let h of $_)Ep(l,h);d||fv(l)})(this)}parseProjection(){Eg(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){up(this)}assembleEncodeFromView(l){let{style:d,...h}=l,y={};for(let w of be(h)){let S=h[w];S!==void 0&&(y[w]=on(S))}return y}assembleGroupEncodeEntry(l){let d={};return this.view&&(d=this.assembleEncodeFromView(this.view)),l||(this.description&&(d.description=on(this.description)),this.type!=="unit"&&this.type!=="layer")?ye(d)?void 0:d:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...d??{}}}assembleLayout(){if(!this.layout)return;let{spacing:l,...d}=this.layout,{component:h,config:y}=this,w=function(S,A){let C={};for(let L of Ua){let G=S[L];if(G!=null&&G.facetFieldDef){let{titleAnchor:H,titleOrient:X}=Uc(["titleAnchor","titleOrient"],G.facetFieldDef.header,A,L),Z=Bc(L,X),le=Ky(H,Z);le!==void 0&&(C[Z]=le)}}return ye(C)?void 0:C}(h.layoutHeaders,y);return{padding:l,...this.assembleDefaultLayout(),...d,...w?{titleBand:w}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){let{layoutHeaders:l}=this.component,d=[];for(let h of Ua)l[h].title&&d.push(bs(this,h));for(let h of _u)d=d.concat(Vy(this,h));return d}assembleAxes(){return function(l,d){let{x:h=[],y=[]}=l;return[...h.map(w=>Xi(w,"grid",d)),...y.map(w=>Xi(w,"grid",d)),...h.map(w=>Xi(w,"main",d)),...y.map(w=>Xi(w,"main",d))].filter(w=>w)}(this.component.axes,this.config)}assembleLegends(){return dp(this)}assembleProjections(){return yg(this)}assembleTitle(){let{encoding:l,...d}=this.title??{},h={...ac(this.config.title).nonMarkTitleProperties,...d,...l?{encode:{update:l}}:{}};if(h.text)return Q(["unit","layer"],this.type)?Q(["middle",void 0],h.anchor)&&(h.frame??="group"):h.anchor??="start",ye(h)?void 0:h}assembleGroup(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],d={};l=l.concat(this.assembleSignals()),l.length>0&&(d.signals=l);let h=this.assembleLayout();h&&(d.layout=h),d.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());let y=!this.parent||Ya(this.parent)?nd(this):[];y.length>0&&(d.scales=y);let w=this.assembleAxes();w.length>0&&(d.axes=w);let S=this.assembleLegends();return S.length>0&&(d.legends=S),d}getName(l){return $e((this.name?`${this.name}_`:"")+l)}getDataName(l){return this.getName(nn[l].toLowerCase())}requestDataName(l){let d=this.getDataName(l),h=this.component.data.outputNodeRefCounts;return h[d]=(h[d]||0)+1,d}getSizeSignalRef(l){if(Ya(this.parent)){let d=ec(lg(l)),h=this.component.scales[d];if(h&&!h.merged){let y=h.get("type"),w=h.get("range");if(Hn(y)&&go(w)){let S=h.get("name"),A=Cg(Es(this,d));return A?{signal:op(S,h,je({aggregate:"distinct",field:A},{expr:"datum"}))}:(Be(ha(d)),null)}}}return{signal:this.signalNameMap.get(this.getName(l))}}lookupDataSource(l){let d=this.component.data.outputNodes[l];return d?d.getSource():l}getSignalName(l){return this.signalNameMap.get(l)}renameSignal(l,d){this.signalNameMap.rename(l,d)}renameScale(l,d){this.scaleNameMap.rename(l,d)}renameProjection(l,d){this.projectionNameMap.rename(l,d)}scaleName(l,d){return d?this.getName(l):g0(l)&&Nr(l)&&this.component.scales[l]||this.scaleNameMap.has(this.getName(l))?this.scaleNameMap.get(this.getName(l)):void 0}projectionName(l){return l?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(l){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");let d=this.component.scales[l];return d&&!d.merged?d:this.parent?this.parent.getScaleComponent(l):void 0}getSelectionComponent(l,d){let h=this.component.selection[l];if(!h&&this.parent&&(h=this.parent.getSelectionComponent(l,d)),!h)throw new Error(function(y){return`Cannot find a selection named "${y}".`}(d));return h}hasAxisOrientSignalRef(){var l,d;return((l=this.component.axes.x)==null?void 0:l.some(h=>h.hasOrientSignalRef()))||((d=this.component.axes.y)==null?void 0:d.some(h=>h.hasOrientSignalRef()))}}class rd extends ad{vgField(l){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},h=this.fieldDef(l);if(h)return je(h,d)}reduceFieldDef(l,d){return function(h,y,w,S){return h?be(h).reduce((A,C)=>{let L=h[C];return b.isArray(L)?L.reduce((G,H)=>y.call(S,G,H,C),A):y.call(S,A,L,C)},w):w}(this.getMapping(),(h,y,w)=>{let S=dr(y);return S?l(h,S,w):h},d)}forEachFieldDef(l,d){bc(this.getMapping(),(h,y)=>{let w=dr(h);w&&l(w,y)},d)}}class ku extends qt{clone(){return new ku(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let h=this.transform.as??[void 0,void 0];this.transform.as=[h[0]??"value",h[1]??"density"]}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${ae(this.transform)}`}assemble(){let{density:l,...d}=this.transform,h={type:"kde",field:l,...d};return this.transform.groupby&&(h.resolve="shared"),h}}class xu extends qt{clone(){return new xu(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${ae(this.transform)}`}assemble(){let{extent:l,param:d}=this.transform;return{type:"extent",field:l,signal:d}}}class Qi extends qt{clone(){return new Qi(null,{...this.filter})}constructor(l,d){super(l),this.filter=d}static make(l,d){let{config:h,mark:y,markDef:w}=d;if(Ht("invalid",w,h)!=="filter")return null;let S=d.reduceFieldDef((A,C,L)=>{let G=Nr(L)&&d.getScaleComponent(L);return G&&Ha(G.get("type"))&&C.aggregate!=="count"&&!is(y)&&(A[C.field]=C),A},{});return be(S).length?new Qi(l,S):null}dependentFields(){return new Set(be(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${ae(this.filter)}`}assemble(){let l=be(this.filter).reduce((d,h)=>{let y=this.filter[h],w=je(y,{expr:"datum"});return y!==null&&(y.type==="temporal"?d.push(`(isDate(${w}) || (isValid(${w}) && isFinite(+${w})))`):y.type==="quantitative"&&(d.push(`isValid(${w})`),d.push(`isFinite(+${w})`))),d},[]);return l.length>0?{type:"filter",expr:l.join(" && ")}:null}}class Pr extends qt{clone(){return new Pr(this.parent,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let{flatten:h,as:y=[]}=this.transform;this.transform.as=h.map((w,S)=>y[S]??w)}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${ae(this.transform)}`}assemble(){let{flatten:l,as:d}=this.transform;return{type:"flatten",fields:l,as:d}}}class _s extends qt{clone(){return new _s(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let h=this.transform.as??[void 0,void 0];this.transform.as=[h[0]??"key",h[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${ae(this.transform)}`}assemble(){let{fold:l,as:d}=this.transform;return{type:"fold",fields:l,as:d}}}class eo extends qt{clone(){return new eo(null,j(this.fields),this.geojson,this.signal)}static parseAll(l,d){if(d.component.projection&&!d.component.projection.isFit)return l;let h=0;for(let y of[[$a,nt],[rr,da]]){let w=y.map(S=>{let A=yn(d.encoding[S]);return ze(A)?A.field:Pi(A)?{expr:`${A.datum}`}:cr(A)?{expr:`${A.value}`}:void 0});(w[0]||w[1])&&(l=new eo(l,w,null,d.getName("geojson_"+h++)))}if(d.channelHasField(xn)){let y=d.typedFieldDef(xn);y.type===Vs&&(l=new eo(l,null,y.field,d.getName("geojson_"+h++)))}return l}constructor(l,d,h,y){super(l),this.fields=d,this.geojson=h,this.signal=y}dependentFields(){let l=(this.fields??[]).filter(b.isString);return new Set([...this.geojson?[this.geojson]:[],...l])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${ae(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class ks extends qt{clone(){return new ks(null,this.projection,j(this.fields),j(this.as))}constructor(l,d,h,y){super(l),this.projection=d,this.fields=h,this.as=y}static parseAll(l,d){if(!d.projectionName())return l;for(let h of[[$a,nt],[rr,da]]){let y=h.map(S=>{let A=yn(d.encoding[S]);return ze(A)?A.field:Pi(A)?{expr:`${A.datum}`}:cr(A)?{expr:`${A.value}`}:void 0}),w=h[0]===rr?"2":"";(y[0]||y[1])&&(l=new ks(l,d.projectionName(),y,[d.getName(`x${w}`),d.getName(`y${w}`)]))}return l}dependentFields(){return new Set(this.fields.filter(b.isString))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${ae(this.fields)} ${ae(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class hr extends qt{clone(){return new hr(null,j(this.transform))}constructor(l,d){super(l),this.transform=d}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(l){let{start:d=0,stop:h,step:y}=l;return{signal:`sequence(${[d,h,...y?[y]:[]].join(",")})`}}static makeFromTransform(l,d){return new hr(l,d)}static makeFromEncoding(l,d){let h=d.encoding,y=h.x,w=h.y;if(ze(y)&&ze(w)){let S=y.impute?y:w.impute?w:void 0;if(S===void 0)return;let A=y.impute?w:w.impute?y:void 0,{method:C,value:L,frame:G,keyvals:H}=S.impute,X=rm(d.mark,h);return new hr(l,{impute:S.field,key:A.field,...C?{method:C}:{},...L!==void 0?{value:L}:{},...G?{frame:G}:{},...H!==void 0?{keyvals:H}:{},...X.length?{groupby:X}:{}})}return null}hash(){return`Impute ${ae(this.transform)}`}assemble(){let{impute:l,key:d,keyvals:h,method:y,groupby:w,value:S,frame:A=[null,null]}=this.transform,C={type:"impute",field:l,key:d,...h?{keyvals:(L=h,(L==null?void 0:L.stop)!==void 0?this.processSequence(h):h)}:{},method:"value",...w?{groupby:w}:{},value:y&&y!=="value"?null:S};var L;return y&&y!=="value"?[C,{type:"window",as:[`imputed_${l}_value`],ops:[y],fields:[l],frame:A,ignorePeers:!1,...w?{groupby:w}:{}},{type:"formula",expr:`datum.${l} === null ? datum.imputed_${l}_value : datum.${l}`,as:l}]:[C]}}class to extends qt{clone(){return new to(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let h=this.transform.as??[void 0,void 0];this.transform.as=[h[0]??d.on,h[1]??d.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${ae(this.transform)}`}assemble(){let{loess:l,on:d,...h}=this.transform;return{type:"loess",x:d,y:l,...h}}}class Ka extends qt{clone(){return new Ka(null,j(this.transform),this.secondary)}constructor(l,d,h){super(l),this.transform=d,this.secondary=h}static make(l,d,h,y){let w=d.component.data.sources,{from:S}=h,A=null;if(function(C){return"data"in C}(S)){let C=Bg(S.data,w);C||(C=new Ro(S.data),w.push(C));let L=d.getName(`lookup_${y}`);A=new ia(C,L,nn.Lookup,d.component.data.outputNodeRefCounts),d.component.data.outputNodes[L]=A}else if(function(C){return"param"in C}(S)){let C=S.param,L;h={as:C,...h};try{L=d.getSelectionComponent($e(C),C)}catch{throw new Error(function(H){return`Lookups can only be performed on selection parameters. "${H}" is a variable parameter.`}(C))}if(A=L.materialized,!A)throw new Error(function(G){return`Cannot define and lookup the "${G}" selection in the same view. Try moving the lookup into a second, layered view?`}(C))}return new Ka(l,h,A.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?b.array(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${ae({transform:this.transform,secondary:this.secondary})}`}assemble(){let l;if(this.transform.from.fields)l={values:this.transform.from.fields,...this.transform.as?{as:b.array(this.transform.as)}:{}};else{let d=this.transform.as;b.isString(d)||(Be('If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.'),d="_lookup"),l={as:[d]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...l,...this.transform.default?{default:this.transform.default}:{}}}}class Io extends qt{clone(){return new Io(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let h=this.transform.as??[void 0,void 0];this.transform.as=[h[0]??"prob",h[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${ae(this.transform)}`}assemble(){let{quantile:l,...d}=this.transform;return{type:"quantile",field:l,...d}}}class Oo extends qt{clone(){return new Oo(null,j(this.transform))}constructor(l,d){super(l),this.transform=d,this.transform=j(d);let h=this.transform.as??[void 0,void 0];this.transform.as=[h[0]??d.on,h[1]??d.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${ae(this.transform)}`}assemble(){let{regression:l,on:d,...h}=this.transform;return{type:"regression",x:d,y:l,...h}}}class hl extends qt{clone(){return new hl(null,j(this.transform))}constructor(l,d){super(l),this.transform=d}addDimensions(l){this.transform.groupby=Se((this.transform.groupby??[]).concat(l),d=>d)}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${ae(this.transform)}`}assemble(){let{pivot:l,value:d,groupby:h,limit:y,op:w}=this.transform;return{type:"pivot",field:l,value:d,...y!==void 0?{limit:y}:{},...w!==void 0?{op:w}:{},...h!==void 0?{groupby:h}:{}}}}class ml extends qt{clone(){return new ml(null,j(this.transform))}constructor(l,d){super(l),this.transform=d}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${ae(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function _p(s){let l=0;return function d(h,y){if(h instanceof Ro&&!h.isGenerator&&!fs(h.data)&&(s.push(y),y={name:null,source:y.name,transform:[]}),h instanceof Kn&&(h.parent instanceof Ro&&!y.source?(y.format={...y.format??{},parse:h.assembleFormatParse()},y.transform.push(...h.assembleTransforms(!0))):y.transform.push(...h.assembleTransforms())),h instanceof cl)return y.name||(y.name="data_"+l++),!y.source||y.transform.length>0?(s.push(y),h.data=y.name):h.data=y.source,void s.push(...h.assemble());switch((h instanceof Kc||h instanceof Xc||h instanceof Qi||h instanceof ci||h instanceof ol||h instanceof ks||h instanceof Va||h instanceof Ka||h instanceof fl||h instanceof dl||h instanceof _s||h instanceof Pr||h instanceof ku||h instanceof to||h instanceof Io||h instanceof Oo||h instanceof Co||h instanceof ml||h instanceof hl||h instanceof xu)&&y.transform.push(h.assemble()),(h instanceof pi||h instanceof Wi||h instanceof hr||h instanceof No||h instanceof eo)&&y.transform.push(...h.assemble()),h instanceof ia&&(y.source&&y.transform.length===0?h.setSource(y.source):h.parent instanceof ia?h.setSource(y.name):(y.name||(y.name="data_"+l++),h.setSource(y.name),h.numChildren()===1&&(s.push(y),y={name:null,source:y.name,transform:[]}))),h.numChildren()){case 0:h instanceof ia&&(!y.source||y.transform.length>0)&&s.push(y);break;case 1:d(h.children[0],y);break;default:{y.name||(y.name="data_"+l++);let w=y.name;!y.source||y.transform.length>0?s.push(y):w=y.source;for(let S of h.children)d(S,{name:null,source:w,transform:[]});break}}}}function $g(s){return s==="top"||s==="left"||Ze(s)?"header":"footer"}function hv(s,l){var S;let{facet:d,config:h,child:y,component:w}=s;if(s.channelHasField(l)){let A=d[l],C=Zi("title",null,h,l),L=ss(A,h,{allowDisabling:!0,includeDefault:C===void 0||!!C});y.component.layoutHeaders[l].title&&(L=b.isArray(L)?L.join(", "):L,L+=` / ${y.component.layoutHeaders[l].title}`,y.component.layoutHeaders[l].title=null);let G=Zi("labelOrient",A.header,h,l),H=A.header!==null&&Ke((S=A.header)==null?void 0:S.labels,h.header.labels,!0),X=Q(["bottom","right"],G)?"footer":"header";w.layoutHeaders[l]={title:A.header!==null?L:null,facetFieldDef:A,[X]:l==="facet"?[]:[kp(s,l,H)]}}}function kp(s,l,d){let h=l==="row"?"height":"width";return{labels:d,sizeSignal:s.child.component.layoutSize.get(h)?s.child.getSizeSignalRef(h):void 0,axes:[]}}function Rn(s,l){let{child:d}=s;if(d.component.axes[l]){let{layoutHeaders:h,resolve:y}=s.component;if(y.axis[l]=sp(y,l),y.axis[l]==="shared"){let w=l==="x"?"column":"row",S=h[w];for(let A of d.component.axes[l]){let C=$g(A.get("orient"));S[C]??=[kp(s,w,!1)];let L=Xi(A,"main",s.config,{header:!0});L&&S[C][0].axes.push(L),A.mainExtracted=!0}}}}function gl(s){for(let l of s.children)l.parseLayoutSize()}function xs(s,l){let d=lg(l),h=ec(d),y=s.component.resolve,w=s.component.layoutSize,S;for(let A of s.children){let C=A.component.layoutSize.getWithExplicit(d),L=y.scale[h]??cg(h,s);if(L==="independent"&&C.value==="step"){S=void 0;break}if(S){if(L==="independent"&&S.value!==C.value){S=void 0;break}S=qi(S,C,d,"")}else S=C}if(S){for(let A of s.children)s.renameSignal(A.getName(d),s.getName(l)),A.component.layoutSize.set(d,"merged",!1);w.setWithExplicit(l,S)}else w.setWithExplicit(l,{explicit:!1,value:void 0})}function $r(s,l){let d=l==="width"?"x":"y",h=s.config,y=s.getScaleComponent(d);if(y){let w=y.get("type"),S=y.get("range");if(Hn(w)){let A=Ac(h.view,l);return go(S)||qa(A)?"step":A}return ds(h.view,l)}if(s.hasProjection||s.mark==="arc")return ds(h.view,l);{let w=Ac(h.view,l);return qa(w)?w.step:w}}function id(s,l,d){return je(l,{suffix:`by_${je(s)}`,...d??{}})}class bl extends rd{constructor(l,d,h,y){super(l,"facet",d,h,y,l.resolve),at(this,"facet",void 0),at(this,"child",void 0),at(this,"children",void 0),this.child=Wg(l.spec,this,this.getName("child"),void 0,y),this.children=[this.child],this.facet=this.initFacet(l.facet)}initFacet(l){if(!Ql(l))return{facet:this.initFacetFieldDef(l,"facet")};let d=be(l),h={};for(let y of d){if(![tt,Kr].includes(y)){Be(Mi(y,"facet"));break}let w=l[y];if(w.field===void 0){Be(Hd(w,y));break}h[y]=this.initFacetFieldDef(w,y)}return h}initFacetFieldDef(l,d){let h=ru(l,d);return h.header?h.header=ea(h.header):h.header===null&&(h.header=null),h}channelHasField(l){return!!this.facet[l]}fieldDef(l){return this.facet[l]}parseData(){this.component.data=xp(this),this.child.parseData()}parseLayoutSize(){gl(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(l){for(let d of Ua)hv(l,d);Rn(l,"x"),Rn(l,"y")}(this)}assembleSelectionTopLevelSignals(l){return this.child.assembleSelectionTopLevelSignals(l)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(l){return this.child.assembleSelectionData(l)}getHeaderLayoutMixins(){let l={};for(let d of Ua)for(let h of zc){let y=this.component.layoutHeaders[d],w=y[h],{facetFieldDef:S}=y;if(S){let A=Zi("titleOrient",S.header,this.config,d);if(["right","bottom"].includes(A)){let C=Bc(d,A);l.titleAnchor??={},l.titleAnchor[C]="end"}}if(w!=null&&w[0]){let A=d==="row"?"height":"width",C=h==="header"?"headerBand":"footerBand";d==="facet"||this.child.component.layoutSize.get(A)||(l[C]??={},l[C][d]=.5),y.title&&(l.offset??={},l.offset[d==="row"?"rowTitle":"columnTitle"]=10)}}return l}assembleDefaultLayout(){let{column:l,row:d}=this.facet,h=l?this.columnDistinctSignal():d?1:void 0,y="all";return(d||this.component.resolve.scale.x!=="independent")&&(l||this.component.resolve.scale.y!=="independent")||(y="none"),{...this.getHeaderLayoutMixins(),...h?{columns:h}:{},bounds:"full",align:y}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof bl))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(l){return this.parent&&this.parent instanceof bl?{...this.channelHasField("column")?{encode:{update:{columns:{field:je(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(l)}:super.assembleGroup(l)}getCardinalityAggregateForChild(){let l=[],d=[],h=[];if(this.child instanceof bl){if(this.child.channelHasField("column")){let y=je(this.child.facet.column);l.push(y),d.push("distinct"),h.push(`distinct_${y}`)}}else for(let y of Qr){let w=this.child.component.scales[y];if(w&&!w.merged){let S=w.get("type"),A=w.get("range");if(Hn(S)&&go(A)){let C=Cg(Es(this.child,y));C?(l.push(C),d.push("distinct"),h.push(`distinct_${C}`)):Be(ha(y))}}}return{fields:l,ops:d,as:h}}assembleFacet(){let{name:l,data:d}=this.component.data.facetRoot,{row:h,column:y}=this.facet,{fields:w,ops:S,as:A}=this.getCardinalityAggregateForChild(),C=[];for(let G of Ua){let H=this.facet[G];if(H){C.push(je(H));let{bin:X,sort:Z}=H;if(Vt(X)&&C.push(je(H,{binSuffix:"end"})),ii(Z)){let{field:le,op:ee=dc}=Z,de=id(H,Z);h&&y?(w.push(de),S.push("max"),A.push(de)):(w.push(le),S.push(ee),A.push(de))}else if(b.isArray(Z)){let le=sl(H,G);w.push(le),S.push("max"),A.push(le)}}}let L=!!h&&!!y;return{name:l,data:d,groupby:C,...L||w.length>0?{aggregate:{...L?{cross:L}:{},...w.length?{fields:w,ops:S,as:A}:{}}}:{}}}facetSortFields(l){let{facet:d}=this,h=d[l];return h?ii(h.sort)?[id(h,h.sort,{expr:"datum"})]:b.isArray(h.sort)?[sl(h,l,{expr:"datum"})]:[je(h,{expr:"datum"})]:[]}facetSortOrder(l){let{facet:d}=this,h=d[l];if(h){let{sort:y}=h;return[(ii(y)?y.order:!b.isArray(y)&&y)||"ascending"]}return[]}assembleLabelTitle(){var y;let{facet:l,config:d}=this;if(l.facet)return So(l.facet,"facet",d);let h={row:["top","bottom"],column:["left","right"]};for(let w of _u)if(l[w]){let S=Zi("labelOrient",(y=l[w])==null?void 0:y.header,d,w);if(h[w].includes(S))return So(l[w],w,d)}}assembleMarks(){let{child:l}=this,d=function(S){let A=[],C=_p(A);for(let L of S.children)C(L,{source:S.name,name:null,transform:[]});return A}(this.component.data.facetRoot),h=l.assembleGroupEncodeEntry(!1),y=this.assembleLabelTitle()||l.assembleTitle(),w=l.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...y?{title:y}:{},...w?{style:w}:{},from:{facet:this.assembleFacet()},sort:{field:Ua.map(S=>this.facetSortFields(S)).flat(),order:Ua.map(S=>this.facetSortOrder(S)).flat()},...d.length>0?{data:d}:{},...h?{encode:{update:h}}:{},...l.assembleGroup(Nc(this,[]))}]}getMapping(){return this.facet}}function Bg(s,l){var d,h,y,w;for(let S of l){let A=S.data;if(s.name&&S.hasName()&&s.name!==S.dataName)continue;let C=(d=s.format)==null?void 0:d.mesh,L=(h=A.format)==null?void 0:h.feature;if(C&&L)continue;let G=(y=s.format)==null?void 0:y.feature;if((G||L)&&G!==L)continue;let H=(w=A.format)==null?void 0:w.mesh;if(!C&&!H||C===H){if(mu(s)&&mu(A)){if(Ne(s.values,A.values))return S}else if(fs(s)&&fs(A)){if(s.url===A.url)return S}else if(qf(s)&&s.name===S.dataName)return S}}return null}function xp(s){var le;let l=function(ee,de){if(ee.data||!ee.parent){if(ee.data===null){let xe=new Ro({values:[]});return de.push(xe),xe}let ge=Bg(ee.data,de);if(ge)return Eo(ee.data)||(ge.data.format=fe({},ee.data.format,ge.data.format)),!ge.hasName()&&ee.data.name&&(ge.dataName=ee.data.name),ge;{let xe=new Ro(ee.data);return de.push(xe),xe}}return ee.parent.component.data.facetRoot?ee.parent.component.data.facetRoot:ee.parent.component.data.main}(s,s.component.data.sources),{outputNodes:d,outputNodeRefCounts:h}=s.component.data,y=s.data,w=!(y&&(Eo(y)||fs(y)||mu(y)))&&s.parent?s.parent.component.data.ancestorParse.clone():new Ay;Eo(y)?(Wf(y)?l=new Xc(l,y.sequence):Yf(y)&&(l=new Kc(l,y.graticule)),w.parseNothing=!0):((le=y==null?void 0:y.format)==null?void 0:le.parse)===null&&(w.parseNothing=!0),l=Kn.makeExplicit(l,s,w)??l,l=new Co(l);let S=s.parent&&ws(s.parent);(cn(s)||Ya(s))&&S&&(l=pi.makeFromEncoding(l,s)??l),s.transforms.length>0&&(l=function(ee,de,ge){let xe=0;for(let me of de.transforms){let Ae,Ce;if(r1(me))Ce=ee=new ol(ee,me),Ae="derived";else if(Rm(me)){let Pe=p1(me);Ce=ee=Kn.makeWithAncestors(ee,{},Pe,ge)??ee,ee=new ci(ee,de,me.filter)}else if(Bf(me))Ce=ee=pi.makeFromTransform(ee,me,de),Ae="number";else if(Uf(me))Ae="date",ge.getWithExplicit(me.field).value===void 0&&(ee=new Kn(ee,{[me.field]:Ae}),ge.set(me.field,Ae,!1)),Ce=ee=Wi.makeFromTransform(ee,me);else if(ky(me))Ce=ee=Va.makeFromTransform(ee,me),Ae="number",rg(de)&&(ee=new Co(ee));else if(Nm(me))Ce=ee=Ka.make(ee,de,me,xe++),Ae="derived";else if(Om(me))Ce=ee=new fl(ee,me),Ae="number";else if(Dm(me))Ce=ee=new dl(ee,me),Ae="number";else if(i1(me))Ce=ee=No.makeFromTransform(ee,me),Ae="derived";else if(Lm(me))Ce=ee=new _s(ee,me),Ae="derived";else if(Fm(me))Ce=ee=new xu(ee,me),Ae="derived";else if(_y(me))Ce=ee=new Pr(ee,me),Ae="derived";else if(n1(me))Ce=ee=new hl(ee,me),Ae="derived";else if(wy(me))ee=new ml(ee,me);else if(Mm(me))Ce=ee=hr.makeFromTransform(ee,me),Ae="derived";else if(vy(me))Ce=ee=new ku(ee,me),Ae="derived";else if(Im(me))Ce=ee=new Io(ee,me),Ae="derived";else if(Ey(me))Ce=ee=new Oo(ee,me),Ae="derived";else{if(!a1(me)){Be(`Ignoring an invalid transform: ${Xe(me)}.`);continue}Ce=ee=new to(ee,me),Ae="derived"}if(Ce&&Ae!==void 0)for(let Pe of Ce.producedFields()??[])ge.set(Pe,Ae,!1)}return ee}(l,s,w));let A=function(ee){let de={};if(cn(ee)&&ee.component.selection)for(let ge of be(ee.component.selection)){let xe=ee.component.selection[ge];for(let me of xe.project.items)!me.channel&&Xt(me.field)>1&&(de[me.field]="flatten")}return de}(s),C=Yn(s);l=Kn.makeWithAncestors(l,{},{...A,...C},w)??l,cn(s)&&(l=eo.parseAll(l,s),l=ks.parseAll(l,s)),(cn(s)||Ya(s))&&(S||(l=pi.makeFromEncoding(l,s)??l),l=Wi.makeFromEncoding(l,s)??l,l=ol.parseAllForSortIndex(l,s));let L=s.getDataName(nn.Raw),G=new ia(l,L,nn.Raw,h);if(d[L]=G,l=G,cn(s)){let ee=Va.makeFromEncoding(l,s);ee&&(l=ee,rg(s)&&(l=new Co(l))),l=hr.makeFromEncoding(l,s)??l,l=No.makeFromEncoding(l,s)??l}cn(s)&&(l=Qi.make(l,s)??l);let H=s.getDataName(nn.Main),X=new ia(l,H,nn.Main,h);d[H]=X,l=X,cn(s)&&function(ee,de){for(let[ge,xe]of _e(ee.component.selection??{})){let me=ee.getName(`lookup_${ge}`);ee.component.data.outputNodes[me]=xe.materialized=new ia(new ci(de,ee,{param:ge}),me,nn.Lookup,ee.component.data.outputNodeRefCounts)}}(s,X);let Z=null;if(Ya(s)){let ee=s.getName("facet");l=function(de,ge){let{row:xe,column:me}=ge;if(xe&&me){let Ae=null;for(let Ce of[xe,me])if(ii(Ce.sort)){let{field:Pe,op:We=dc}=Ce.sort;de=Ae=new dl(de,{joinaggregate:[{op:We,field:Pe,as:id(Ce,Ce.sort,{forAs:!0})}],groupby:[je(Ce)]})}return Ae}return null}(l,s.facet)??l,Z=new cl(l,s,ee,X.getSource()),d[ee]=Z}return{...s.component.data,outputNodes:d,outputNodeRefCounts:h,raw:G,main:X,facetRoot:Z,ancestorParse:w}}class y1 extends ad{constructor(l,d,h,y){var w,S,A,C;super(l,"concat",d,h,y,l.resolve),at(this,"children",void 0),((S=(w=l.resolve)==null?void 0:w.axis)==null?void 0:S.x)!=="shared"&&((C=(A=l.resolve)==null?void 0:A.axis)==null?void 0:C.y)!=="shared"||Be("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(l).map((L,G)=>Wg(L,this,this.getName(`concat_${G}`),void 0,y))}parseData(){this.component.data=xp(this);for(let l of this.children)l.parseData()}parseSelections(){this.component.selection={};for(let l of this.children){l.parseSelections();for(let d of be(l.component.selection))this.component.selection[d]=l.component.selection[d]}}parseMarkGroup(){for(let l of this.children)l.parseMarkGroup()}parseAxesAndHeaders(){for(let l of this.children)l.parseAxesAndHeaders()}getChildren(l){return du(l)?l.vconcat:Df(l)?l.hconcat:l.concat}parseLayoutSize(){(function(l){gl(l);let d=l.layout.columns===1?"width":"childWidth",h=l.layout.columns===void 0?"height":"childHeight";xs(l,d),xs(l,h)})(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(l){return this.children.reduce((d,h)=>h.assembleSelectionTopLevelSignals(d),l)}assembleSignals(){return this.children.forEach(l=>l.assembleSignals()),[]}assembleLayoutSignals(){let l=pr(this);for(let d of this.children)l.push(...d.assembleLayoutSignals());return l}assembleSelectionData(l){return this.children.reduce((d,h)=>h.assembleSelectionData(d),l)}assembleMarks(){return this.children.map(l=>{let d=l.assembleTitle(),h=l.assembleGroupStyle(),y=l.assembleGroupEncodeEntry(!1);return{type:"group",name:l.getName("group"),...d?{title:d}:{},...h?{style:h}:{},...y?{encode:{update:y}}:{},...l.assembleGroup()}})}assembleGroupStyle(){}assembleDefaultLayout(){let l=this.layout.columns;return{...l!=null?{columns:l}:{},bounds:"full",align:"each"}}}let Sp={disable:1,gridScale:1,scale:1,...gc,labelExpr:1,encode:1},Ug=be(Sp);class Ap extends ji{constructor(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},h=arguments.length>2&&arguments[2]!==void 0&&arguments[2];super(),this.explicit=l,this.implicit=d,this.mainExtracted=h}clone(){return new Ap(j(this.explicit),j(this.implicit),this.mainExtracted)}hasAxisPart(l){return l==="axis"||(l==="grid"||l==="title"?!!this.get(l):!((d=this.get(l))===!1||d===null));var d}hasOrientSignalRef(){return Ze(this.explicit.orient)}}let Bt={bottom:"top",top:"bottom",left:"right",right:"left"};function mv(s,l){if(!s)return l.map(d=>d.clone());{if(s.length!==l.length)return;let d=s.length;for(let h=0;h<d;h++){let y=s[h],w=l[h];if(!!y!=!!w)return;if(y&&w){let S=y.getWithExplicit("orient"),A=w.getWithExplicit("orient");if(S.explicit&&A.explicit&&S.value!==A.value)return;s[h]=yl(y,w)}}}return s}function yl(s,l){for(let d of Ug){let h=qi(s.getWithExplicit(d),l.getWithExplicit(d),d,"axis",(y,w)=>{switch(d){case"title":return ni(y,w);case"gridScale":return{explicit:y.explicit,value:Ke(y.value,w.value)}}return Rc(y,w,d,"axis")});s.setWithExplicit(d,h)}return s}function zg(s,l,d,h,y){if(l==="disable")return d!==void 0;switch(d=d||{},l){case"titleAngle":case"labelAngle":return s===(Ze(d.labelAngle)?d.labelAngle:Lt(d.labelAngle));case"values":return!!d.values;case"encode":return!!d.encoding||!!d.labelAngle;case"title":if(s===Wy(h,y))return!0}return s===d[l]}let Su=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Gg(s,l){var ge,xe;let d=l.axis(s),h=new Ap,y=yn(l.encoding[s]),{mark:w,config:S}=l,A=(d==null?void 0:d.orient)||((ge=S[s==="x"?"axisX":"axisY"])==null?void 0:ge.orient)||((xe=S.axis)==null?void 0:xe.orient)||function(me){return me==="x"?"bottom":"left"}(s),C=l.getScaleComponent(s).get("type"),L=function(me,Ae,Ce,Pe){let We=Ae==="band"?["axisDiscrete","axisBand"]:Ae==="point"?["axisDiscrete","axisPoint"]:W0(Ae)?["axisQuantitative"]:Ae==="time"||Ae==="utc"?["axisTemporal"]:[],Je=me==="x"?"axisX":"axisY",it=Ze(Ce)?"axisOrient":`axis${yt(Ce)}`,Qe=[...We,...We.map(kt=>Je+kt.substr(4))],lt=["axis",it,Je];return{vlOnlyAxisConfig:di(Qe,Pe,me,Ce),vgAxisConfig:di(lt,Pe,me,Ce),axisConfigStyle:f1([...lt,...Qe],Pe)}}(s,C,A,l.config),G=d!==void 0?!d:ig("disable",S.style,d==null?void 0:d.style,L).configValue;if(h.set("disable",G,d!==void 0),G)return h;d=d||{};let H=function(me,Ae,Ce,Pe,We){let Je=Ae==null?void 0:Ae.labelAngle;if(Je!==void 0)return Ze(Je)?Je:Lt(Je);{let{configValue:it}=ig("labelAngle",Pe,Ae==null?void 0:Ae.style,We);return it!==void 0?Lt(it):Ce!==Qt||!Q([nf,tf],me.type)||ze(me)&&me.timeUnit?void 0:270}}(y,d,s,S.style,L),X=ay(d.formatType,y,C),Z=ny(y,y.type,d.format,d.formatType,S,!0),le={fieldOrDatumDef:y,axis:d,channel:s,model:l,scaleType:C,orient:A,labelAngle:H,format:Z,formatType:X,mark:w,config:S};for(let me of Ug){let Ae=me in jy?jy[me](le):ly(me)?d[me]:void 0,Ce=Ae!==void 0,Pe=zg(Ae,me,d,l,s);if(Ce&&Pe)h.set(me,Ae,Pe);else{let{configValue:We,configFrom:Je}=ly(me)&&me!=="values"?ig(me,S.style,d.style,L):{},it=We!==void 0;Ce&&!it?h.set(me,Ae,Pe):(Je!=="vgAxisConfig"||Su.has(me)&&it||su(We)||Ze(We))&&h.set(me,We,!1)}}let ee=d.encoding??{},de=us.reduce((me,Ae)=>{if(!h.hasAxisPart(Ae))return me;let Ce=ug(ee[Ae]??{},l),Pe=Ae==="labels"?function(We,Je,it){let{encoding:Qe,config:lt}=We,kt=yn(Qe[Je])??yn(Qe[Ci(Je)]),Fn=We.axis(Je)||{},{format:dn,formatType:sn}=Fn;if(Xs(sn))return{text:ri({fieldOrDatumDef:kt,field:"datum.value",format:dn,formatType:sn,config:lt}),...it};if(dn===void 0&&sn===void 0&&lt.customFormatTypes){if(tu(kt)==="quantitative"){if(nu(kt)&&kt.stack==="normalize"&&lt.normalizedNumberFormatType)return{text:ri({fieldOrDatumDef:kt,field:"datum.value",format:lt.normalizedNumberFormat,formatType:lt.normalizedNumberFormatType,config:lt}),...it};if(lt.numberFormatType)return{text:ri({fieldOrDatumDef:kt,field:"datum.value",format:lt.numberFormat,formatType:lt.numberFormatType,config:lt}),...it}}if(tu(kt)==="temporal"&&lt.timeFormatType&&ze(kt)&&!kt.timeUnit)return{text:ri({fieldOrDatumDef:kt,field:"datum.value",format:lt.timeFormat,formatType:lt.timeFormatType,config:lt}),...it}}return it}(l,s,Ce):Ce;return Pe===void 0||ye(Pe)||(me[Ae]={update:Pe}),me},{});return ye(de)||h.set("encode",de,!!d.encoding||d.labelAngle!==void 0),h}function Tp(s,l){let{config:d}=s;return{...Na(s,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Vn("x",s,{defaultPos:"mid"}),...Vn("y",s,{defaultPos:"mid"}),...Wn("size",s),...Wn("angle",s),...gv(s,d,l)}}function gv(s,l,d){return d?{shape:{value:d}}:Wn("shape",s)}let bv={vgMark:"rule",encodeEntry:s=>{let{markDef:l}=s,d=l.orient;return s.encoding.x||s.encoding.y||s.encoding.latitude||s.encoding.longitude?{...Na(s,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...ep("x",s,{defaultPos:d==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:d!=="vertical"}),...ep("y",s,{defaultPos:d==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:d!=="horizontal"}),...Wn("size",s,{vgChannel:"strokeWidth"})}:{}}};function v1(s,l,d){if(Ht("align",s,d)===void 0)return"center"}function yv(s,l,d){if(Ht("baseline",s,d)===void 0)return"middle"}let Cp={vgMark:"rect",encodeEntry:s=>{let{config:l,markDef:d}=s,h=d.orient,y=h==="horizontal"?"width":"height",w=h==="horizontal"?"height":"width";return{...Na(s,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Vn("x",s,{defaultPos:"mid",vgChannel:"xc"}),...Vn("y",s,{defaultPos:"mid",vgChannel:"yc"}),...Wn("size",s,{defaultValue:vv(s),vgChannel:y}),[w]:on(Ht("thickness",d,l))}}};function vv(s){let{config:l,markDef:d}=s,{orient:h}=d,y=h==="horizontal"?"width":"height",w=s.getScaleComponent(h==="horizontal"?"x":"y"),S=Ht("size",d,l,{vgChannel:y})??l.tick.bandSize;if(S!==void 0)return S;{let A=w?w.get("range"):void 0;return A&&go(A)&&b.isNumber(A.step)?3*A.step/4:3*fu(l.view,y)/4}}let od={arc:{vgMark:"arc",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Vn("x",s,{defaultPos:"mid"}),...Vn("y",s,{defaultPos:"mid"}),...li(s,"radius"),...li(s,"theta")})},area:{vgMark:"area",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...ep("x",s,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:s.markDef.orient==="horizontal"}),...ep("y",s,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:s.markDef.orient==="vertical"}),...Lc(s)})},bar:{vgMark:"rect",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...li(s,"x"),...li(s,"y")})},circle:{vgMark:"symbol",encodeEntry:s=>Tp(s,"circle")},geoshape:{vgMark:"shape",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:s=>{let{encoding:l}=s,d=l.shape;return[{type:"geoshape",projection:s.projectionName(),...d&&ze(d)&&d.type===Vs?{field:je(d,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...li(s,"x"),...li(s,"y"),...Jf(s,"url")})},line:{vgMark:"line",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Vn("x",s,{defaultPos:"mid"}),...Vn("y",s,{defaultPos:"mid"}),...Wn("size",s,{vgChannel:"strokeWidth"}),...Lc(s)})},point:{vgMark:"symbol",encodeEntry:s=>Tp(s)},rect:{vgMark:"rect",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...li(s,"x"),...li(s,"y")})},rule:bv,square:{vgMark:"symbol",encodeEntry:s=>Tp(s,"square")},text:{vgMark:"text",encodeEntry:s=>{let{config:l,encoding:d}=s;return{...Na(s,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...Vn("x",s,{defaultPos:"mid"}),...Vn("y",s,{defaultPos:"mid"}),...Jf(s),...Wn("size",s,{vgChannel:"fontSize"}),...Wn("angle",s),...Ly("align",v1(s.markDef,d,l)),...Ly("baseline",yv(s.markDef,d,l)),...Vn("radius",s,{defaultPos:null}),...Vn("theta",s,{defaultPos:null})}}},tick:Cp,trail:{vgMark:"trail",encodeEntry:s=>({...Na(s,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Vn("x",s,{defaultPos:"mid"}),...Vn("y",s,{defaultPos:"mid"}),...Wn("size",s),...Lc(s)})}};function jg(s){if(Q([uc,af,z_],s.mark)){let l=rm(s.mark,s.encoding);if(l.length>0)return function(d,h){return[{name:d.getName("pathgroup"),type:"group",from:{facet:{name:Hg+d.requestDataName(nn.Main),data:d.requestDataName(nn.Main),groupby:h}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:Rp(d,{fromPrefix:Hg})}]}(s,l)}else if(s.mark===rf){let l=Sh.some(d=>Ht(d,s.markDef,s.config));if(s.stack&&!s.fieldDef("size")&&l)return function(d){var G;let[h]=Rp(d,{fromPrefix:qg}),y=d.scaleName(d.stack.fieldChannel),w=function(){let H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return d.vgField(d.stack.fieldChannel,H)},S=(H,X)=>`${H}(${[w({prefix:"min",suffix:"start",expr:X}),w({prefix:"max",suffix:"start",expr:X}),w({prefix:"min",suffix:"end",expr:X}),w({prefix:"max",suffix:"end",expr:X})].map(Z=>`scale('${y}',${Z})`).join(",")})`,A,C;d.stack.fieldChannel==="x"?(A={...V(h.encode.update,["y","yc","y2","height",...Sh]),x:{signal:S("min","datum")},x2:{signal:S("max","datum")},clip:{value:!0}},C={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},h.encode.update={...te(h.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(A={...V(h.encode.update,["x","xc","x2","width"]),y:{signal:S("min","datum")},y2:{signal:S("max","datum")},clip:{value:!0}},C={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},h.encode.update={...te(h.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(let H of Sh){let X=Ga(H,d.markDef,d.config);h.encode.update[H]?(A[H]=h.encode.update[H],delete h.encode.update[H]):X&&(A[H]=on(X)),X&&(h.encode.update[H]={value:0})}let L=[];if(((G=d.stack.groupbyChannels)==null?void 0:G.length)>0)for(let H of d.stack.groupbyChannels){let X=d.fieldDef(H),Z=je(X);Z&&L.push(Z),(X!=null&&X.bin||X!=null&&X.timeUnit)&&L.push(je(X,{binSuffix:"end"}))}return A=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((H,X)=>{if(h.encode.update[X])return{...H,[X]:h.encode.update[X]};{let Z=Ga(X,d.markDef,d.config);return Z!==void 0?{...H,[X]:on(Z)}:H}},A),A.stroke&&(A.strokeForeground={value:!0},A.strokeOffset={value:0}),[{type:"group",from:{facet:{data:d.requestDataName(nn.Main),name:qg+d.requestDataName(nn.Main),groupby:L,aggregate:{fields:[w({suffix:"start"}),w({suffix:"start"}),w({suffix:"end"}),w({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:A},marks:[{type:"group",encode:{update:C},marks:[h]}]}]}(s)}return Rp(s)}let Hg="faceted_path_",qg="stack_group_";function Rp(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{fromPrefix:""},{mark:d,markDef:h,encoding:y,config:w}=s,S=Ke(h.clip,function(Z){let le=Z.getScaleComponent("x"),ee=Z.getScaleComponent("y");return!(!(le!=null&&le.get("selectionExtent"))&&!(ee!=null&&ee.get("selectionExtent")))||void 0}(s),function(Z){let le=Z.component.projection;return!(!le||le.isFit)||void 0}(s)),A=C0(h),C=y.key,L=function(Z){var Ae;let{encoding:le,stack:ee,mark:de,markDef:ge,config:xe}=Z,me=le.order;if(!(!b.isArray(me)&&cr(me)&&he(me.value)||!me&&he(Ht("order",ge,xe)))){if((b.isArray(me)||ze(me))&&!ee)return ql(me,{expr:"datum"});if(is(de)){let Ce=ge.orient==="horizontal"?"y":"x",Pe=le[Ce];if(ze(Pe)){let We=Pe.sort;return b.isArray(We)?{field:je(Pe,{prefix:Ce,suffix:"sort_index",expr:"datum"})}:ii(We)?{field:je({aggregate:am(Z.encoding)?We.op:void 0,field:We.field},{expr:"datum"})}:Xh(We)?{field:je(Z.fieldDef(We.encoding),{expr:"datum"}),order:We.order}:We===null?void 0:{field:je(Pe,{binSuffix:(Ae=Z.stack)!=null&&Ae.impute?"mid":void 0,expr:"datum"})}}}}}(s),G=function(Z){if(!Z.component.selection)return null;let le=be(Z.component.selection).length,ee=le,de=Z.parent;for(;de&&ee===0;)ee=be(de.component.selection).length,de=de.parent;return ee?{interactive:le>0||Z.mark==="geoshape"||!!Z.encoding.tooltip}:null}(s),H=Ht("aria",h,w),X=od[d].postEncodingTransform?od[d].postEncodingTransform(s):null;return[{name:s.getName("marks"),type:od[d].vgMark,...S?{clip:!0}:{},...A?{style:A}:{},...C?{key:C.field}:{},...L?{sort:L}:{},...G||{},...H===!1?{aria:H}:{},from:{data:l.fromPrefix+s.requestDataName(nn.Main)},encode:{update:od[d].encodeEntry(s)},...X?{transform:X}:{}}]}class Np extends rd{constructor(l,d,h){let y=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},w=arguments.length>4?arguments[4]:void 0;super(l,"unit",d,h,w,void 0,xc(l)?l.view:void 0),at(this,"markDef",void 0),at(this,"encoding",void 0),at(this,"specifiedScales",{}),at(this,"stack",void 0),at(this,"specifiedAxes",{}),at(this,"specifiedLegends",{}),at(this,"specifiedProjection",{}),at(this,"selection",[]),at(this,"children",[]);let S=Li(l.mark)?{...l.mark}:{type:l.mark},A=S.type;S.filled===void 0&&(S.filled=function(L,G,H){let{graticule:X}=H;if(X)return!1;let Z=Ga("filled",L,G),le=L.type;return Ke(Z,le!==of&&le!==uc&&le!==sf)}(S,w,{graticule:l.data&&Yf(l.data)}));let C=this.encoding=function(L,G,H,X){let Z={};for(let ee of be(L))g0(ee)||Be(`${le=ee}-encoding is dropped as ${le} is not a valid encoding channel.`);var le;for(let ee of Zu){if(!L[ee])continue;let de=L[ee];if(Qn(ee)){let ge=v_(ee),xe=Z[ge];if(ze(xe)&&H0(xe.type)&&ze(de)&&!xe.timeUnit){Be(Th(ge));continue}}if(ee!=="angle"||G!=="arc"||L.theta||(Be("Arc marks uses theta channel rather than angle, replacing angle with theta."),ee=ar),_f(L,ee,G)){if(ee===xi&&G==="line"){let ge=dr(L[ee]);if(ge!=null&&ge.aggregate){Be("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}}if(ee===Le&&(H?"fill"in L:"stroke"in L))Be(O0("encoding",{fill:"fill"in L,stroke:"stroke"in L}));else if(ee===po||ee===Bs&&!b.isArray(de)&&!cr(de)||ee===Jr&&b.isArray(de)){if(de){if(ee===Bs){let ge=L[ee];if(ry(ge)){Z[ee]=ge;continue}}Z[ee]=b.array(de).reduce((ge,xe)=>(ze(xe)?ge.push(ru(xe,ee)):Be(Hd(xe,ee)),ge),[])}}else{if(ee===Jr&&de===null)Z[ee]=null;else if(!(ze(de)||Pi(de)||cr(de)||hf(de)||Ze(de))){Be(Hd(de,ee));continue}Z[ee]=nm(de,ee,X)}}else Be(Mi(ee,G))}return Z}(l.encoding||{},A,S.filled,w);this.markDef=by(S,C,w),this.size=function(L){let{encoding:G,size:H}=L;for(let X of Qr){let Z=Sa(X);qa(H[Z])&&os(G[X])&&(delete H[Z],Be(Ih(Z)))}return H}({encoding:C,size:xc(l)?{...y,...l.width?{width:l.width}:{},...l.height?{height:l.height}:{}}:y}),this.stack=wm(this.markDef,C),this.specifiedScales=this.initScales(A,C),this.specifiedAxes=this.initAxes(C),this.specifiedLegends=this.initLegends(C),this.specifiedProjection=l.projection,this.selection=(l.params??[]).filter(L=>_c(L))}get hasProjection(){let{encoding:l}=this,d=this.mark===Z0,h=l&&h0.some(y=>wt(l[y]));return d||h}scaleDomain(l){let d=this.specifiedScales[l];return d?d.domain:void 0}axis(l){return this.specifiedAxes[l]}legend(l){return this.specifiedLegends[l]}initScales(l,d){return Gl.reduce((h,y)=>{let w=yn(d[y]);return w&&(h[y]=this.initScale(w.scale??{})),h},{})}initScale(l){let{domain:d,range:h}=l,y=ea(l);return b.isArray(d)&&(y.domain=d.map(Gn)),b.isArray(h)&&(y.range=h.map(Gn)),y}initAxes(l){return Qr.reduce((d,h)=>{let y=l[h];if(wt(y)||h===Qt&&wt(l.x2)||h===Bn&&wt(l.y2)){let w=wt(y)?y.axis:void 0;d[h]=w&&this.initAxis({...w})}return d},{})}initAxis(l){let d=be(l),h={};for(let y of d){let w=l[y];h[y]=su(w)?A0(w):Gn(w)}return h}initLegends(l){return _0.reduce((d,h)=>{let y=yn(l[h]);if(y&&function(w){switch(w){case Le:case xa:case Zr:case xi:case xn:case Si:case fo:case Jo:return!0;case Ft:case Ai:case Ba:return!1}}(h)){let w=y.legend;d[h]=w&&ea(w)}return d},{})}parseData(){this.component.data=xp(this)}parseLayoutSize(){(function(l){let{size:d,component:h}=l;for(let y of Qr){let w=Sa(y);if(d[w]){let S=d[w];h.layoutSize.set(w,qa(S)?"step":S,!0)}else{let S=$r(l,w);h.layoutSize.set(w,S,!1)}}})(this)}parseSelections(){this.component.selection=function(l,d){let h={},y=l.config.selection;if(!d||!d.length)return h;for(let w of d){let S=$e(w.name),A=w.select,C=b.isString(A)?A:A.type,L=b.isObject(A)?j(A):{type:C},G=y[C];for(let Z in G)Z!=="fields"&&Z!=="encodings"&&(Z==="mark"&&(L[Z]={...G[Z],...L[Z]}),L[Z]!==void 0&&L[Z]!==!0||(L[Z]=j(G[Z]??L[Z])));let H=h[S]={...L,name:S,type:C,init:w.value,bind:w.bind,events:b.isString(L.on)?b.parseSelector(L.on,"scope"):b.array(j(L.on))},X=j(w);for(let Z of il)Z.defined(H)&&Z.parse&&Z.parse(l,H,X)}return h}(this,this.selection)}parseMarkGroup(){this.component.mark=jg(this)}parseAxesAndHeaders(){var l;this.component.axes=(l=this,Qr.reduce((d,h)=>(l.component.scales[h]&&(d[h]=[Gg(h,l)]),d),{}))}assembleSelectionTopLevelSignals(l){return function(d,h){let y=!1;for(let w of Te(d.component.selection??{})){let S=w.name,A=b.stringValue(S+ms);if(h.filter(C=>C.name===S).length===0){let C=w.resolve==="global"?"union":w.resolve,L=w.type==="point"?", true, true)":")";h.push({name:w.name,update:`${ag}(${A}, ${b.stringValue(C)}${L}`})}y=!0;for(let C of il)C.defined(w)&&C.topLevelSignals&&(h=C.topLevelSignals(d,w,h))}return y&&h.filter(w=>w.name==="unit").length===0&&h.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),Kf(h)}(this,l)}assembleSignals(){return[...wu(this),...Ty(this,[])]}assembleSelectionData(l){return function(d,h){let y=[...h],w=Wa(d,{escape:!1});for(let S of Te(d.component.selection??{})){let A={name:S.name+ms};if(S.project.hasSelectionId&&(A.transform=[{type:"collect",sort:{field:fr}}]),S.init){let C=S.project.items.map(jm);A.values=S.project.hasSelectionId?S.init.map(L=>({unit:w,[fr]:ps(L,!1)[0]})):S.init.map(L=>({unit:w,fields:C,values:ps(L,!1)}))}y.filter(C=>C.name===S.name+ms).length||y.push(A)}return y}(this,l)}assembleLayout(){return null}assembleLayoutSignals(){return pr(this)}assembleMarks(){let l=this.component.mark??[];return this.parent&&ws(this.parent)||(l=Cy(this,l)),l.map(this.correctDataNames)}assembleGroupStyle(){let{style:l}=this.view||{};return l!==void 0?l:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(l){return Ui(this.encoding,l)}fieldDef(l){return dr(this.encoding[l])}typedFieldDef(l){let d=this.fieldDef(l);return ma(d)?d:null}}class Au extends ad{constructor(l,d,h,y,w){super(l,"layer",d,h,w,l.resolve,l.view),at(this,"children",void 0);let S={...y,...l.width?{width:l.width}:{},...l.height?{height:l.height}:{}};this.children=l.layer.map((A,C)=>{if(pu(A))return new Au(A,this,this.getName(`layer_${C}`),S,w);if(Bi(A))return new Np(A,this,this.getName(`layer_${C}`),S,w);throw new Error(Ah(A))})}parseData(){this.component.data=xp(this);for(let l of this.children)l.parseData()}parseLayoutSize(){var l;gl(l=this),xs(l,"width"),xs(l,"height")}parseSelections(){this.component.selection={};for(let l of this.children){l.parseSelections();for(let d of be(l.component.selection))this.component.selection[d]=l.component.selection[d]}}parseMarkGroup(){for(let l of this.children)l.parseMarkGroup()}parseAxesAndHeaders(){(function(l){let{axes:d,resolve:h}=l.component,y={top:0,bottom:0,right:0,left:0};for(let w of l.children){w.parseAxesAndHeaders();for(let S of be(w.component.axes))h.axis[S]=sp(l.component.resolve,S),h.axis[S]==="shared"&&(d[S]=mv(d[S],w.component.axes[S]),d[S]||(h.axis[S]="independent",delete d[S]))}for(let w of Qr){for(let S of l.children)if(S.component.axes[w]){if(h.axis[w]==="independent"){d[w]=(d[w]??[]).concat(S.component.axes[w]);for(let A of S.component.axes[w]){let{value:C,explicit:L}=A.getWithExplicit("orient");if(!Ze(C)){if(y[C]>0&&!L){let G=Bt[C];y[C]>y[G]&&A.set("orient",G,!1)}y[C]++}}}delete S.component.axes[w]}if(h.axis[w]==="independent"&&d[w]&&d[w].length>1)for(let[S,A]of(d[w]||[]).entries())S>0&&A.get("grid")&&!A.explicit.grid&&(A.implicit.grid=!1)}})(this)}assembleSelectionTopLevelSignals(l){return this.children.reduce((d,h)=>h.assembleSelectionTopLevelSignals(d),l)}assembleSignals(){return this.children.reduce((l,d)=>l.concat(d.assembleSignals()),wu(this))}assembleLayoutSignals(){return this.children.reduce((l,d)=>l.concat(d.assembleLayoutSignals()),pr(this))}assembleSelectionData(l){return this.children.reduce((d,h)=>h.assembleSelectionData(d),l)}assembleGroupStyle(){let l=new Set;for(let h of this.children)for(let y of b.array(h.assembleGroupStyle()))l.add(y);let d=Array.from(l);return d.length>1?d:d.length===1?d[0]:void 0}assembleTitle(){let l=super.assembleTitle();if(l)return l;for(let d of this.children)if(l=d.assembleTitle(),l)return l}assembleLayout(){return null}assembleMarks(){return function(l,d){for(let h of l.children)cn(h)&&(d=Cy(h,d));return d}(this,this.children.flatMap(l=>l.assembleMarks()))}assembleLegends(){return this.children.reduce((l,d)=>l.concat(d.assembleLegends()),dp(this))}}function Wg(s,l,d,h,y){if(pc(s))return new bl(s,l,d,y);if(pu(s))return new Au(s,l,d,h,y);if(Bi(s))return new Np(s,l,d,h,y);if(function(w){return du(w)||Df(w)||kc(w)}(s))return new y1(s,l,d,y);throw new Error(Ah(s))}let E1=x;p.accessPathDepth=Xt,p.accessPathWithDatum=St,p.compile=function(s){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var d;l.logger&&(d=l.logger,ic=d),l.fieldTitle&&hc(l.fieldTitle);try{let h=ym(b.mergeConfig(l.config,s.config)),y=jf(s,h),w=Wg(y,null,"",void 0,h);return w.parse(),function(A,C){yp(A.sources);let L=0,G=0;for(let H=0;H<bp&&rv(A,C,!0);H++)L++;A.sources.map(Sg);for(let H=0;H<bp&&rv(A,C,!1);H++)G++;yp(A.sources),Math.max(L,G)===bp&&Be(`Maximum optimization runs(${bp}) reached.`)}(w.component.data,w),{spec:function(A,C){let L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},G=arguments.length>3?arguments[3]:void 0,H=A.config?Lf(A.config):void 0,X=[].concat(A.assembleSelectionData([]),function(Ae,Ce){let Pe=[],We=_p(Pe),Je=0;for(let Qe of Ae.sources){Qe.hasName()||(Qe.dataName="source_"+Je++);let lt=Qe.assemble();We(Qe,lt)}for(let Qe of Pe)Qe.transform.length===0&&delete Qe.transform;let it=0;for(let[Qe,lt]of Pe.entries())(lt.transform??[]).length!==0||lt.source||Pe.splice(it++,0,Pe.splice(Qe,1)[0]);for(let Qe of Pe)for(let lt of Qe.transform??[])lt.type==="lookup"&&(lt.from=Ae.outputNodes[lt.from].getSource());for(let Qe of Pe)Qe.name in Ce&&(Qe.values=Ce[Qe.name]);return Pe}(A.component.data,L)),Z=A.assembleProjections(),le=A.assembleTitle(),ee=A.assembleGroupStyle(),de=A.assembleGroupEncodeEntry(!0),ge=A.assembleLayoutSignals();ge=ge.filter(Ae=>Ae.name!=="width"&&Ae.name!=="height"||Ae.value===void 0||(C[Ae.name]=+Ae.value,!1));let{params:xe,...me}=C;return{$schema:"https://vega.github.io/schema/vega/v5.json",...A.description?{description:A.description}:{},...me,...le?{title:le}:{},...ee?{style:ee}:{},...de?{encode:{update:de}}:{},data:X,...Z.length>0?{projections:Z}:{},...A.assembleGroup([...ge,...A.assembleSelectionTopLevelSignals([]),...Of(xe)]),...H?{config:H}:{},...G?{usermeta:G}:{}}}(w,function(A,C,L,G){let H=G.component.layoutSize.get("width"),X=G.component.layoutSize.get("height");if(C===void 0?(C={type:"pad"},G.hasAxisOrientSignalRef()&&(C.resize=!0)):b.isString(C)&&(C={type:C}),H&&X&&(Z=C.type,Z==="fit"||Z==="fit-x"||Z==="fit-y")){if(H==="step"&&X==="step")Be(Cn()),C.type="pad";else if(H==="step"||X==="step"){let le=H==="step"?"width":"height";Be(Cn(ec(le)));let ee=le==="width"?"height":"width";C.type=function(de){return de?`fit-${ec(de)}`:"fit"}(ee)}}var Z;return{...be(C).length===1&&C.type?C.type==="pad"?{}:{autosize:C.type}:{autosize:C},...Hf(L,!1),...Hf(A,!0)}}(s,y.autosize,h,w),s.datasets,s.usermeta),normalized:y}}finally{l.logger&&(ic=F0),l.fieldTitle&&hc(sy)}},p.contains=Q,p.deepEqual=Ne,p.deleteNestedProperty=dt,p.duplicate=j,p.entries=_e,p.every=se,p.fieldIntersection=Ee,p.flatAccessWithDatum=rn,p.getFirstDefined=Ke,p.hasIntersection=Fe,p.hash=ae,p.internalField=Et,p.isBoolean=Ye,p.isEmpty=ye,p.isEqual=function(s,l){let d=be(s),h=be(l);if(d.length!==h.length)return!1;for(let y of d)if(s[y]!==l[y])return!1;return!0},p.isInternalField=Jt,p.isNullOrFalse=he,p.isNumeric=Ct,p.keys=be,p.logicalExpr=Me,p.mergeDeep=fe,p.never=W,p.normalize=jf,p.normalizeAngle=Lt,p.omit=te,p.pick=V,p.prefixGenerator=Ge,p.removePathFromField=Tt,p.replaceAll=xt,p.replacePathInField=jt,p.resetIdCounter=function(){et=42},p.setEqual=Ie,p.some=ie,p.stringify=Xe,p.titleCase=yt,p.unique=Se,p.uniqueId=Zt,p.vals=Te,p.varName=$e,p.version=E1})});var A2=rA((lG,c_)=>{var $z=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{},D=function(p){var b=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,x=0,T={},O={manual:p.Prism&&p.Prism.manual,disableWorkerMessageHandler:p.Prism&&p.Prism.disableWorkerMessageHandler,util:{encode:function Q(ie){return ie instanceof B?new B(ie.type,Q(ie.content),ie.alias):Array.isArray(ie)?ie.map(Q):ie.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(Q){return Object.prototype.toString.call(Q).slice(8,-1)},objId:function(Q){return Q.__id||Object.defineProperty(Q,"__id",{value:++x}),Q.__id},clone:function Q(ie,se){var fe,pe;switch(se=se||{},O.util.type(ie)){case"Object":if(pe=O.util.objId(ie),se[pe])return se[pe];for(var Se in fe={},se[pe]=fe,ie)ie.hasOwnProperty(Se)&&(fe[Se]=Q(ie[Se],se));return fe;case"Array":return pe=O.util.objId(ie),se[pe]?se[pe]:(fe=[],se[pe]=fe,ie.forEach(function(Ie,Fe){fe[Fe]=Q(Ie,se)}),fe);default:return ie}},getLanguage:function(Q){for(;Q;){var ie=b.exec(Q.className);if(ie)return ie[1].toLowerCase();Q=Q.parentElement}return"none"},setLanguage:function(Q,ie){Q.className=Q.className.replace(RegExp(b,"gi"),""),Q.classList.add("language-"+ie)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(fe){var Q=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(fe.stack)||[])[1];if(Q){var ie=document.getElementsByTagName("script");for(var se in ie)if(ie[se].src==Q)return ie[se]}return null}},isActive:function(Q,ie,se){for(var fe="no-"+ie;Q;){var pe=Q.classList;if(pe.contains(ie))return!0;if(pe.contains(fe))return!1;Q=Q.parentElement}return!!se}},languages:{plain:T,plaintext:T,text:T,txt:T,extend:function(Q,ie){var se=O.util.clone(O.languages[Q]);for(var fe in ie)se[fe]=ie[fe];return se},insertBefore:function(Q,ie,se,fe){var pe=(fe=fe||O.languages)[Q],Se={};for(var Ie in pe)if(pe.hasOwnProperty(Ie)){if(Ie==ie)for(var Fe in se)se.hasOwnProperty(Fe)&&(Se[Fe]=se[Fe]);se.hasOwnProperty(Ie)||(Se[Ie]=pe[Ie])}var Ge=fe[Q];return fe[Q]=Se,O.languages.DFS(O.languages,function(Ee,ye){ye===Ge&&Ee!=Q&&(this[Ee]=Se)}),Se},DFS:function Q(ie,se,fe,pe){pe=pe||{};var Se=O.util.objId;for(var Ie in ie)if(ie.hasOwnProperty(Ie)){se.call(ie,Ie,ie[Ie],fe||Ie);var Fe=ie[Ie],Ge=O.util.type(Fe);Ge!=="Object"||pe[Se(Fe)]?Ge!=="Array"||pe[Se(Fe)]||(pe[Se(Fe)]=!0,Q(Fe,se,Ie,pe)):(pe[Se(Fe)]=!0,Q(Fe,se,null,pe))}}},plugins:{},highlightAll:function(Q,ie){O.highlightAllUnder(document,Q,ie)},highlightAllUnder:function(Q,ie,se){var fe={callback:se,container:Q,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};O.hooks.run("before-highlightall",fe),fe.elements=Array.prototype.slice.apply(fe.container.querySelectorAll(fe.selector)),O.hooks.run("before-all-elements-highlight",fe);for(var pe,Se=0;pe=fe.elements[Se++];)O.highlightElement(pe,ie===!0,fe.callback)},highlightElement:function(Q,ie,se){var fe=O.util.getLanguage(Q),pe=O.languages[fe];O.util.setLanguage(Q,fe);var Se=Q.parentElement;Se&&Se.nodeName.toLowerCase()==="pre"&&O.util.setLanguage(Se,fe);var Ie={element:Q,language:fe,grammar:pe,code:Q.textContent};function Fe(Ee){Ie.highlightedCode=Ee,O.hooks.run("before-insert",Ie),Ie.element.innerHTML=Ie.highlightedCode,O.hooks.run("after-highlight",Ie),O.hooks.run("complete",Ie),se&&se.call(Ie.element)}if(O.hooks.run("before-sanity-check",Ie),(Se=Ie.element.parentElement)&&Se.nodeName.toLowerCase()==="pre"&&!Se.hasAttribute("tabindex")&&Se.setAttribute("tabindex","0"),!Ie.code)return O.hooks.run("complete",Ie),void(se&&se.call(Ie.element));if(O.hooks.run("before-highlight",Ie),Ie.grammar)if(ie&&p.Worker){var Ge=new Worker(O.filename);Ge.onmessage=function(Ee){Fe(Ee.data)},Ge.postMessage(JSON.stringify({language:Ie.language,code:Ie.code,immediateClose:!0}))}else Fe(O.highlight(Ie.code,Ie.grammar,Ie.language));else Fe(O.util.encode(Ie.code))},highlight:function(Q,ie,se){var fe={code:Q,grammar:ie,language:se};if(O.hooks.run("before-tokenize",fe),!fe.grammar)throw new Error('The language "'+fe.language+'" has no grammar.');return fe.tokens=O.tokenize(fe.code,fe.grammar),O.hooks.run("after-tokenize",fe),B.stringify(O.util.encode(fe.tokens),fe.language)},tokenize:function(Q,ie){var se=ie.rest;if(se){for(var fe in se)ie[fe]=se[fe];delete ie.rest}var pe=new j;return W(pe,pe.head,Q),F(Q,pe,ie,pe.head,0),function(Se){for(var Ie=[],Fe=Se.head.next;Fe!==Se.tail;)Ie.push(Fe.value),Fe=Fe.next;return Ie}(pe)},hooks:{all:{},add:function(Q,ie){var se=O.hooks.all;se[Q]=se[Q]||[],se[Q].push(ie)},run:function(Q,ie){var se=O.hooks.all[Q];if(se&&se.length)for(var fe,pe=0;fe=se[pe++];)fe(ie)}},Token:B};function B(Q,ie,se,fe){this.type=Q,this.content=ie,this.alias=se,this.length=0|(fe||"").length}function $(Q,ie,se,fe){Q.lastIndex=ie;var pe=Q.exec(se);if(pe&&fe&&pe[1]){var Se=pe[1].length;pe.index+=Se,pe[0]=pe[0].slice(Se)}return pe}function F(Q,ie,se,fe,pe,Se){for(var Ie in se)if(se.hasOwnProperty(Ie)&&se[Ie]){var Fe=se[Ie];Fe=Array.isArray(Fe)?Fe:[Fe];for(var Ge=0;Ge<Fe.length;++Ge){if(Se&&Se.cause==Ie+","+Ge)return;var Ee=Fe[Ge],ye=Ee.inside,be=!!Ee.lookbehind,Te=!!Ee.greedy,_e=Ee.alias;if(Te&&!Ee.pattern.global){var Ye=Ee.pattern.toString().match(/[imsuy]*$/)[0];Ee.pattern=RegExp(Ee.pattern.source,Ye+"g")}for(var $e=Ee.pattern||Ee,Me=fe.next,dt=pe;Me!==ie.tail&&!(Se&&dt>=Se.reach);dt+=Me.value.length,Me=Me.next){var yt=Me.value;if(ie.length>Q.length)return;if(!(yt instanceof B)){var St,rn=1;if(Te){if(!(St=$($e,dt,Q,be))||St.index>=Q.length)break;var pn=St.index,jt=St.index+St[0].length,xt=dt;for(xt+=Me.value.length;pn>=xt;)xt+=(Me=Me.next).value.length;if(dt=xt-=Me.value.length,Me.value instanceof B)continue;for(var Tt=Me;Tt!==ie.tail&&(xt<jt||typeof Tt.value=="string");Tt=Tt.next)rn++,xt+=Tt.value.length;rn--,yt=Q.slice(dt,xt),St.index-=dt}else if(!(St=$($e,0,yt,be)))continue;pn=St.index;var Xt=St[0],Ke=yt.slice(0,pn),et=yt.slice(pn+Xt.length),Zt=dt+yt.length;Se&&Zt>Se.reach&&(Se.reach=Zt);var Et=Me.prev;if(Ke&&(Et=W(ie,Et,Ke),dt+=Ke.length),V(ie,Et,rn),Me=W(ie,Et,new B(Ie,ye?O.tokenize(Xt,ye):Xt,_e,Xt)),et&&W(ie,Me,et),rn>1){var Jt={cause:Ie+","+Ge,reach:Zt};F(Q,ie,se,Me.prev,dt,Jt),Se&&Jt.reach>Se.reach&&(Se.reach=Jt.reach)}}}}}}function j(){var Q={value:null,prev:null,next:null},ie={value:null,prev:Q,next:null};Q.next=ie,this.head=Q,this.tail=ie,this.length=0}function W(Q,ie,se){var fe=ie.next,pe={value:se,prev:ie,next:fe};return ie.next=pe,fe.prev=pe,Q.length++,pe}function V(Q,ie,se){for(var fe=ie.next,pe=0;pe<se&&fe!==Q.tail;pe++)fe=fe.next;ie.next=fe,fe.prev=ie,Q.length-=pe}if(p.Prism=O,B.stringify=function Q(ie,se){if(typeof ie=="string")return ie;if(Array.isArray(ie)){var fe="";return ie.forEach(function(Ge){fe+=Q(Ge,se)}),fe}var pe={type:ie.type,content:Q(ie.content,se),tag:"span",classes:["token",ie.type],attributes:{},language:se},Se=ie.alias;Se&&(Array.isArray(Se)?Array.prototype.push.apply(pe.classes,Se):pe.classes.push(Se)),O.hooks.run("wrap",pe);var Ie="";for(var Fe in pe.attributes)Ie+=" "+Fe+'="'+(pe.attributes[Fe]||"").replace(/"/g,"&quot;")+'"';return"<"+pe.tag+' class="'+pe.classes.join(" ")+'"'+Ie+">"+pe.content+"</"+pe.tag+">"},!p.document)return p.addEventListener&&(O.disableWorkerMessageHandler||p.addEventListener("message",function(Q){var ie=JSON.parse(Q.data),se=ie.language,fe=ie.code,pe=ie.immediateClose;p.postMessage(O.highlight(fe,O.languages[se],se)),pe&&p.close()},!1)),O;var te=O.util.currentScript();function ae(){O.manual||O.highlightAll()}if(te&&(O.filename=te.src,te.hasAttribute("data-manual")&&(O.manual=!0)),!O.manual){var he=document.readyState;he==="loading"||he==="interactive"&&te&&te.defer?document.addEventListener("DOMContentLoaded",ae):window.requestAnimationFrame?window.requestAnimationFrame(ae):window.setTimeout(ae,16)}return O}($z);typeof c_<"u"&&c_.exports&&(c_.exports=D),typeof global<"u"&&(global.Prism=D);D.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},D.languages.markup.tag.inside["attr-value"].inside.entity=D.languages.markup.entity,D.languages.markup.doctype.inside["internal-subset"].inside=D.languages.markup,D.hooks.add("wrap",function(p){p.type==="entity"&&(p.attributes.title=p.content.replace(/&amp;/,"&"))}),Object.defineProperty(D.languages.markup.tag,"addInlined",{value:function(p,b){var x={};x["language-"+b]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:D.languages[b]},x.cdata=/^<!\[CDATA\[|\]\]>$/i;var T={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:x}};T["language-"+b]={pattern:/[\s\S]+/,inside:D.languages[b]};var O={};O[p]={pattern:RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)".replace(/__/g,function(){return p}),"i"),lookbehind:!0,greedy:!0,inside:T},D.languages.insertBefore("markup","cdata",O)}}),Object.defineProperty(D.languages.markup.tag,"addAttribute",{value:function(p,b){D.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(`(^|["'\\s])(?:`+p+`)\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s'">=]+(?=[\\s>]))`,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[b,"language-"+b],inside:D.languages[b]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),D.languages.html=D.languages.markup,D.languages.mathml=D.languages.markup,D.languages.svg=D.languages.markup,D.languages.xml=D.languages.extend("markup",{}),D.languages.ssml=D.languages.xml,D.languages.atom=D.languages.xml,D.languages.rss=D.languages.xml;(function(p){var b=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;p.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp(`@[\\w-](?:[^;{\\s"']|\\s+(?!\\s)|`+b.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+b.source+`|(?:[^\\\\\r
14
14
  ()"']|\\\\[^])*)\\)`,"i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+b.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+b.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:b,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},p.languages.css.atrule.inside.rest=p.languages.css;var x=p.languages.markup;x&&(x.tag.addInlined("style","css"),x.tag.addAttribute("style","css"))})(D);D.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};D.languages.javascript=D.languages.extend("clike",{"class-name":[D.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),D.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,D.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(`((?:^|[^$\\w\\xA0-\\uFFFF."'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r
15
15
  ]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r
16
16
  ])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r