@galaxyproject/galaxy-client 24.0.0 → 24.2.4

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.
Files changed (41) hide show
  1. package/dist/231.bundled.js +1 -0
  2. package/dist/315.bundled.js +1 -0
  3. package/dist/354.bundled.js +2 -0
  4. package/dist/435.bundled.js +1 -0
  5. package/dist/441.bundled.js +1 -0
  6. package/dist/448.bundled.js +1 -0
  7. package/dist/596.bundled.js +2 -0
  8. package/dist/616.bundled.js +1 -0
  9. package/dist/949.bundled.js +1 -0
  10. package/dist/954.bundled.js +1 -0
  11. package/dist/957.bundled.js +1 -0
  12. package/dist/988.bundled.js +2 -0
  13. package/dist/Screenshot.bundled.js +1 -1
  14. package/dist/ToolSourceDisplay.bundled.js +1 -1
  15. package/dist/analysis.bundled.js +1 -1
  16. package/dist/analysis.bundled.js.LICENSE.txt +0 -54
  17. package/dist/base.css +65 -48
  18. package/dist/cite.bundled.js +1 -1
  19. package/dist/generic.bundled.js +1 -1
  20. package/dist/libs.bundled.js +1 -1
  21. package/dist/libs.bundled.js.LICENSE.txt +27 -2
  22. package/dist/workflowLayout.bundled.js +1 -1
  23. package/package.json +22 -7
  24. package/dist/120.bundled.js +0 -2
  25. package/dist/128.bundled.js +0 -2
  26. package/dist/203d1199e7aef04c0a34.gif +0 -0
  27. package/dist/257.bundled.js +0 -1
  28. package/dist/295.bundled.js +0 -1
  29. package/dist/356.bundled.js +0 -1
  30. package/dist/383.bundled.js +0 -1
  31. package/dist/4a7b4107b62ef059ba65.png +0 -0
  32. package/dist/4dce7f71b08755f19759.png +0 -0
  33. package/dist/658.bundled.js +0 -1
  34. package/dist/668.bundled.js +0 -1
  35. package/dist/819.bundled.js +0 -2
  36. package/dist/985.bundled.js +0 -1
  37. package/dist/ListCollectionCreator.bundled.js +0 -1
  38. package/dist/PairCollectionCreator.bundled.js +0 -1
  39. /package/dist/{120.bundled.js.LICENSE.txt → 354.bundled.js.LICENSE.txt} +0 -0
  40. /package/dist/{819.bundled.js.LICENSE.txt → 596.bundled.js.LICENSE.txt} +0 -0
  41. /package/dist/{128.bundled.js.LICENSE.txt → 988.bundled.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_galaxyproject_galaxy_client=self.webpackChunk_galaxyproject_galaxy_client||[]).push([[949],{62949:(e,t,n)=>{n.d(t,{Ay:()=>Pg});var i={};n.r(i),n.d(i,{Bounds:()=>S.cz,CanvasHandler:()=>S.Vb,CanvasRenderer:()=>S.KB,DATE:()=>w.vH,DAY:()=>w.d_,DAYOFYEAR:()=>w.V6,Dataflow:()=>l.bn,Debug:()=>c.y,Error:()=>c.$D,EventStream:()=>l.vC,Gradient:()=>S.Hf,GroupItem:()=>S.NZ,HOURS:()=>w.Al,Handler:()=>S.hR,HybridHandler:()=>S.JA,HybridRenderer:()=>S.YR,Info:()=>c.R2,Item:()=>S.q7,MILLISECONDS:()=>w.R5,MINUTES:()=>w.eX,MONTH:()=>w.Lp,Marks:()=>S.Pl,MultiPulse:()=>l.Py,None:()=>c.NV,Operator:()=>l.XP,Parameters:()=>l.H$,Pulse:()=>l.S9,QUARTER:()=>w.pz,RenderType:()=>S.nJ,Renderer:()=>S.A4,ResourceLoader:()=>S.WH,SECONDS:()=>w.cs,SVGHandler:()=>S.Fb,SVGRenderer:()=>S.w4,SVGStringRenderer:()=>S.fI,Scenegraph:()=>S.hA,TIME_UNITS:()=>w.SY,Transform:()=>l.dL,View:()=>O.S,WEEK:()=>w.V8,Warn:()=>c.P$,YEAR:()=>w.UX,accessor:()=>c.sY,accessorFields:()=>c.nS,accessorName:()=>c.N6,array:()=>c.YO,ascending:()=>c.V_,bandwidthNRD:()=>$.ks,bin:()=>$.e5,bootstrapCI:()=>$.ds,boundClip:()=>S.Th,boundContext:()=>S.aj,boundItem:()=>S.kV,boundMark:()=>S.Od,boundStroke:()=>S.tj,changeset:()=>l.no,clampRange:()=>c.BS,codegenExpression:()=>P.Se,compare:()=>c.UD,constant:()=>c.dY,cumulativeLogNormal:()=>$.$g,cumulativeNormal:()=>$.r$,cumulativeUniform:()=>$.q7,dayofyear:()=>w.xo,debounce:()=>c.sg,defaultLocale:()=>N.q,definition:()=>l.mw,densityLogNormal:()=>$.UD,densityNormal:()=>$.gX,densityUniform:()=>$.fF,domChild:()=>S.tz,domClear:()=>S.AZ,domCreate:()=>S.ri,domFind:()=>S.wt,dotbin:()=>$.VY,error:()=>c.z3,expressionFunction:()=>F.T_,extend:()=>c.X$,extent:()=>c.Xx,extentIndex:()=>c.n,falsy:()=>c.me,fastmap:()=>c.nG,field:()=>c.ZZ,flush:()=>c.bX,font:()=>S.gx,fontFamily:()=>S.mw,fontSize:()=>S.J,format:()=>k.GP,formatLocale:()=>N._5,formats:()=>k.Fx,hasOwnProperty:()=>c.mQ,id:()=>c.id,identity:()=>c.D_,inferType:()=>k.nS,inferTypes:()=>k.WE,ingest:()=>l.NW,inherits:()=>c.B,inrange:()=>c.PK,interpolate:()=>E.GW,interpolateColors:()=>E.Y7,interpolateRange:()=>E.Td,intersect:()=>S.y$,intersectBoxLine:()=>S.Ng,intersectPath:()=>S.hW,intersectPoint:()=>S.C6,intersectRule:()=>S.u6,isArray:()=>c.cy,isBoolean:()=>c.Lm,isDate:()=>c.$P,isFunction:()=>c.Tn,isIterable:()=>c.xZ,isNumber:()=>c.Et,isObject:()=>c.Gv,isRegExp:()=>c.gd,isString:()=>c.Kg,isTuple:()=>l.l0,key:()=>c.Eb,lerp:()=>c.Cc,lineHeight:()=>S.K_,loader:()=>k.wG,locale:()=>N.Hg,logger:()=>c.vF,lruCache:()=>c.EV,markup:()=>S.PT,merge:()=>c.h1,mergeConfig:()=>c.io,multiLineOffset:()=>S.Jj,one:()=>c.xH,pad:()=>c.eV,panLinear:()=>c.VC,panLog:()=>c.KH,panPow:()=>c.co,panSymlog:()=>c.zy,parse:()=>C.qg,parseExpression:()=>P.YK,parseSelector:()=>R.P,path:()=>S.Ae,pathCurves:()=>S.aV,pathEqual:()=>S.qv,pathParse:()=>S.pI,pathRectangle:()=>S.ll,pathRender:()=>S.ge,pathSymbols:()=>S.b_,pathTrail:()=>S.uR,peek:()=>c.se,point:()=>S.zx,projection:()=>D.Qj,quantileLogNormal:()=>$.F4,quantileNormal:()=>$.Zt,quantileUniform:()=>$.Mv,quantiles:()=>$.tI,quantizeInterpolator:()=>E.Ho,quarter:()=>c.$G,quartiles:()=>$.pk,random:()=>$.yT,randomInteger:()=>$.Mn,randomKDE:()=>$.sX,randomLCG:()=>$.AJ,randomLogNormal:()=>$.Rb,randomMixture:()=>$.Ot,randomNormal:()=>$.FE,randomUniform:()=>$.Ye,read:()=>k.LF,regressionConstant:()=>$.sF,regressionExp:()=>$.dh,regressionLinear:()=>$.r3,regressionLoess:()=>$.y5,regressionLog:()=>$.g,regressionPoly:()=>$.eH,regressionPow:()=>$.yR,regressionQuad:()=>$.x1,renderModule:()=>S.Hn,repeat:()=>c.ux,resetDefaultLocale:()=>N.Xs,resetSVGClipId:()=>S.Fq,resetSVGDefIds:()=>S.b$,responseType:()=>k.e5,runtimeContext:()=>T._,sampleCurve:()=>$.mH,sampleLogNormal:()=>$.EJ,sampleNormal:()=>$.y8,sampleUniform:()=>$.dG,scale:()=>E.hs,sceneEqual:()=>S.fj,sceneFromJSON:()=>S.nx,scenePickVisit:()=>S.xS,sceneToJSON:()=>S.WK,sceneVisit:()=>S.mT,sceneZOrder:()=>S.bj,scheme:()=>E.KR,serializeXML:()=>S.YA,setHybridRendererOptions:()=>S.mq,setRandom:()=>$.OE,span:()=>c.Ln,splitAccessPath:()=>c.iv,stringValue:()=>c.r$,textMetrics:()=>S.dT,timeBin:()=>w.rz,timeFloor:()=>w.Qc,timeFormatLocale:()=>N.cA,timeInterval:()=>w.f$,timeOffset:()=>w.TO,timeSequence:()=>w.TD,timeUnitSpecifier:()=>w.Uo,timeUnits:()=>w.F7,toBoolean:()=>c.G4,toDate:()=>c.ay,toNumber:()=>c.Ro,toSet:()=>c.M1,toString:()=>c.dI,transform:()=>l.pd,transforms:()=>l.mY,truncate:()=>c.xv,truthy:()=>c.vN,tupleid:()=>l.uS,typeParsers:()=>k.tr,utcFloor:()=>w.tI,utcInterval:()=>w.Kc,utcOffset:()=>w.SN,utcSequence:()=>w.Yf,utcdayofyear:()=>w.VM,utcquarter:()=>c.vu,utcweek:()=>w.BU,version:()=>_,visitArray:()=>c.rt,week:()=>w.HH,writeConfig:()=>c.AU,zero:()=>c.v_,zoomLinear:()=>c.lL,zoomLog:()=>c.oV,zoomPow:()=>c.SW,zoomSymlog:()=>c.B2});var r={};n.r(r),n.d(r,{accessPathDepth:()=>be,accessPathWithDatum:()=>pe,compile:()=>$h,contains:()=>V,deepEqual:()=>Fe,deleteNestedProperty:()=>fe,duplicate:()=>U,entries:()=>se,every:()=>K,fieldIntersection:()=>ie,flatAccessWithDatum:()=>me,getFirstDefined:()=>xe,hasIntersection:()=>te,hasProperty:()=>Te,hash:()=>H,internalField:()=>Se,isBoolean:()=>ce,isEmpty:()=>re,isEqual:()=>Z,isInternalField:()=>Ee,isNullOrFalse:()=>B,isNumeric:()=>Oe,keys:()=>oe,logicalExpr:()=>ue,mergeDeep:()=>X,never:()=>q,normalize:()=>Pl,normalizeAngle:()=>De,omit:()=>G,pick:()=>W,prefixGenerator:()=>ne,removePathFromField:()=>ve,replaceAll:()=>ye,replacePathInField:()=>ge,resetIdCounter:()=>ke,setEqual:()=>ee,some:()=>Y,stringify:()=>Ce,titleCase:()=>de,unique:()=>J,uniqueId:()=>we,vals:()=>ae,varName:()=>le,version:()=>wh});var o=n(24221),a=n(48487),s=n.n(a),c=n(26372),l=n(24988),u=n(53473),f=n(64322),d=n(73784),p=n(66271),m=n(78232),h=n(54025),g=n(43308),y=n(62804),v=n(60377),b=n(36634),x=n(98897),$=n(48872),w=n(71652),k=n(67809),S=n(70959),E=n(20649),D=n(60374),O=n(45876),N=n(40300),F=n(53002),C=n(36808),T=n(96056),P=n(21720),R=n(45948),_="5.30.0";(0,c.X$)(l.mY,u,f,d,p,m,g,h,y,v,b,x);var A=n(48196);function L(e){return Te(e,"or")}function z(e){return Te(e,"and")}function I(e){return Te(e,"not")}function j(e,t){if(I(e))j(e.not,t);else if(z(e))for(const n of e.and)j(n,t);else if(L(e))for(const n of e.or)j(n,t);else t(e)}function M(e,t){return I(e)?{not:M(e.not,t)}:z(e)?{and:e.and.map((e=>M(e,t)))}:L(e)?{or:e.or.map((e=>M(e,t)))}:t(e)}const U=structuredClone;function q(e){throw new Error(e)}function W(e,t){const n={};for(const i of t)(0,c.mQ)(e,i)&&(n[i]=e[i]);return n}function G(e,t){const n={...e};for(const e of t)delete n[e];return n}function H(e){if((0,c.Et)(e))return e;const t=(0,c.Kg)(e)?e:Ce(e);if(t.length<250)return t;let n=0;for(let e=0;e<t.length;e++){n=(n<<5)-n+t.charCodeAt(e),n|=0}return n}function B(e){return!1===e||null===e}function V(e,t){return e.includes(t)}function Y(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function K(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function X(e,...t){for(const n of t)Q(e,n??{});return e}function Q(e,t){for(const n of oe(t))(0,c.AU)(e,n,t[n],!0)}function J(e,t){const n=[],i={};let r;for(const o of e)r=t(o),r in i||(i[r]=1,n.push(o));return n}function Z(e,t){const n=oe(e),i=oe(t);if(n.length!==i.length)return!1;for(const i of n)if(e[i]!==t[i])return!1;return!0}function ee(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function te(e,t){for(const n of e)if(t.has(n))return!0;return!1}function ne(e){const t=new Set;for(const n of e){const e=(0,c.iv)(n).map(((e,t)=>0===t?e:`[${e}]`)),i=e.map(((t,n)=>e.slice(0,n+1).join("")));for(const e of i)t.add(e)}return t}function ie(e,t){return void 0===e||void 0===t||te(ne(e),ne(t))}function re(e){return 0===oe(e).length}Set.prototype.toJSON=function(){return`Set(${[...this].map((e=>Ce(e))).join(",")})`};const oe=Object.keys,ae=Object.values,se=Object.entries;function ce(e){return!0===e||!1===e}function le(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function ue(e,t){return I(e)?`!(${ue(e.not,t)})`:z(e)?`(${e.and.map((e=>ue(e,t))).join(") && (")})`:L(e)?`(${e.or.map((e=>ue(e,t))).join(") || (")})`:t(e)}function fe(e,t){if(0===t.length)return!0;const n=t.shift();return n in e&&fe(e[n],t)&&delete e[n],re(e)}function de(e){return e.charAt(0).toUpperCase()+e.substr(1)}function pe(e,t="datum"){const n=(0,c.iv)(e),i=[];for(let e=1;e<=n.length;e++){const r=`[${n.slice(0,e).map(c.r$).join("][")}]`;i.push(`${t}${r}`)}return i.join(" && ")}function me(e,t="datum"){return`${t}[${(0,c.r$)((0,c.iv)(e).join("."))}]`}function he(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function ge(e){return`${(0,c.iv)(e).map(he).join("\\.")}`}function ye(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function ve(e){return`${(0,c.iv)(e).join(".")}`}function be(e){return e?(0,c.iv)(e).length:0}function xe(...e){return e.find((e=>void 0!==e))}let $e=42;function we(e){const t=++$e;return e?String(e)+t:t}function ke(){$e=42}function Se(e){return Ee(e)?e:`__${e}`}function Ee(e){return e.startsWith("__")}function De(e){if(void 0!==e)return(e%360+360)%360}function Oe(e){return!!(0,c.Et)(e)||!isNaN(e)&&!isNaN(parseFloat(e))}const Ne=Object.getPrototypeOf(structuredClone({}));function Fe(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor.name!==t.constructor.name)return!1;let n,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(i=n;0!=i--;)if(!Fe(e[i],t[i]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const n of e.entries())if(!t.has(n[0]))return!1;for(const n of e.entries())if(!Fe(n[1],t.get(n[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e.entries())if(!t.has(n[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(i=n;0!=i--;)if(e[i]!==t[i])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&e.valueOf!==Ne.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==Ne.toString)return e.toString()===t.toString();const r=Object.keys(e);if(n=r.length,n!==Object.keys(t).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;0!=i--;){const n=r[i];if(!Fe(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function Ce(e){const t=[];return function e(n){if(n&&n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===n)return;if("number"==typeof n)return isFinite(n)?""+n:"null";if("object"!=typeof n)return JSON.stringify(n);let i,r;if(Array.isArray(n)){for(r="[",i=0;i<n.length;i++)i&&(r+=","),r+=e(n[i])||"null";return r+"]"}if(null===n)return"null";if(t.includes(n))throw new TypeError("Converting circular structure to JSON");const o=t.push(n)-1,a=Object.keys(n).sort();for(r="",i=0;i<a.length;i++){const t=a[i],o=e(n[t]);o&&(r&&(r+=","),r+=JSON.stringify(t)+":"+o)}return t.splice(o,1),`{${r}}`}(e)}function Te(e,t){return(0,c.Gv)(e)&&(0,c.mQ)(e,t)&&void 0!==e[t]}const Pe="row",Re="column",_e="facet",Ae="x",Le="y",ze="x2",Ie="y2",je="xOffset",Me="yOffset",Ue="radius",qe="radius2",We="theta",Ge="theta2",He="latitude",Be="longitude",Ve="latitude2",Ye="longitude2",Ke="color",Xe="fill",Qe="stroke",Je="shape",Ze="size",et="angle",tt="opacity",nt="fillOpacity",it="strokeOpacity",rt="strokeWidth",ot="strokeDash",at="text",st="order",ct="detail",lt="key",ut="tooltip",ft="href",dt="url",pt="description",mt={theta:1,theta2:1,radius:1,radius2:1};function ht(e){return(0,c.mQ)(mt,e)}const gt={longitude:1,longitude2:1,latitude:1,latitude2:1};function yt(e){switch(e){case He:return"y";case Ve:return"y2";case Be:return"x";case Ye:return"x2"}}function vt(e){return(0,c.mQ)(gt,e)}const bt=oe(gt),xt={x:1,y:1,x2:1,y2:1,...mt,...gt,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 $t(e){return e===Ke||e===Xe||e===Qe}const wt={row:1,column:1,facet:1},kt=oe(wt),St={...xt,...wt},Et=oe(St),{order:Dt,detail:Ot,tooltip:Nt,...Ft}=St,{row:Ct,column:Tt,facet:Pt,...Rt}=Ft;oe(Ft),oe(Rt);function _t(e){return(0,c.mQ)(St,e)}const At=[ze,Ie,Ve,Ye,Ge,qe];function Lt(e){return zt(e)!==e}function zt(e){switch(e){case ze:return Ae;case Ie:return Le;case Ve:return He;case Ye:return Be;case Ge:return We;case qe:return Ue}return e}function It(e){if(ht(e))switch(e){case We:return"startAngle";case Ge:return"endAngle";case Ue:return"outerRadius";case qe:return"innerRadius"}return e}function jt(e){switch(e){case Ae:return ze;case Le:return Ie;case He:return Ve;case Be:return Ye;case We:return Ge;case Ue:return qe}}function Mt(e){switch(e){case Ae:case ze:return"width";case Le:case Ie:return"height"}}function Ut(e){switch(e){case Ae:return"xOffset";case Le:return"yOffset";case ze:return"x2Offset";case Ie:return"y2Offset";case We:return"thetaOffset";case Ue:return"radiusOffset";case Ge:return"theta2Offset";case qe:return"radius2Offset"}}function qt(e){switch(e){case Ae:return"xOffset";case Le:return"yOffset"}}function Wt(e){switch(e){case"xOffset":return"x";case"yOffset":return"y"}}const Gt=oe(xt),{x:Ht,y:Bt,x2:Vt,y2:Yt,xOffset:Kt,yOffset:Xt,latitude:Qt,longitude:Jt,latitude2:Zt,longitude2:en,theta:tn,theta2:nn,radius:rn,radius2:on,...an}=xt,sn=oe(an),cn={x:1,y:1},ln=oe(cn);function un(e){return(0,c.mQ)(cn,e)}const fn={theta:1,radius:1},dn=oe(fn);function pn(e){return"width"===e?Ae:Le}const mn={xOffset:1,yOffset:1};oe(mn);function hn(e){return(0,c.mQ)(mn,e)}const{text:gn,tooltip:yn,href:vn,url:bn,description:xn,detail:$n,key:wn,order:kn,...Sn}=an,En=oe(Sn);const Dn={...cn,...fn,...mn,...Sn},On=oe(Dn);function Nn(e){return(0,c.mQ)(Dn,e)}function Fn(e,t){return function(e){switch(e){case Ke:case Xe:case Qe:case pt:case ct:case lt:case ut:case ft:case st:case tt:case nt:case it:case rt:case _e:case Pe:case Re:return Cn;case Ae:case Le:case je:case Me:case He:case Be:return Pn;case ze:case Ie:case Ve:case Ye:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case Ze:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case ot:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case Je:return{point:"always",geoshape:"always"};case at:return{text:"always"};case et:return{point:"always",square:"always",text:"always"};case dt:return{image:"always"};case We:case Ue:return{text:"always",arc:"always"};case Ge:case qe:return{arc:"always"}}}(e)[t]}const Cn={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:Tn,...Pn}=Cn;function Rn(e){switch(e){case Ae:case Le:case We:case Ue:case je:case Me:case Ze:case et:case rt:case tt:case nt:case it:case ze:case Ie:case Ge:case qe:return;case _e:case Pe:case Re:case Je:case ot:case at:case ut:case ft:case dt:case pt:return"discrete";case Ke:case Xe:case Qe:return"flexible";case He:case Be:case Ve:case Ye:case ct:case lt:case st:return}}const _n={argmax:1,argmin:1,average:1,count:1,distinct:1,exponential:1,exponentialb: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},An={count:1,min:1,max:1};function Ln(e){return Te(e,"argmin")}function zn(e){return Te(e,"argmax")}function In(e){return(0,c.Kg)(e)&&(0,c.mQ)(_n,e)}const jn=new Set(["count","valid","missing","distinct"]);function Mn(e){return(0,c.Kg)(e)&&jn.has(e)}const Un=new Set(["count","sum","distinct","valid","missing"]),qn=new Set(["mean","average","median","q1","q3","min","max"]);function Wn(e){return(0,c.Lm)(e)&&(e=os(e,void 0)),"bin"+oe(e).map((t=>Vn(e[t])?le(`_${t}_${se(e[t])}`):le(`_${t}_${e[t]}`))).join("")}function Gn(e){return!0===e||Bn(e)&&!e.binned}function Hn(e){return"binned"===e||Bn(e)&&!0===e.binned}function Bn(e){return(0,c.Gv)(e)}function Vn(e){return Te(e,"param")}function Yn(e){switch(e){case Pe:case Re:case Ze:case Ke:case Xe:case Qe:case rt:case tt:case nt:case it:case Je:return 6;case ot:return 4;default:return 10}}function Kn(e){return Te(e,"expr")}function Xn(e,{level:t}={level:0}){const n=oe(e||{}),i={};for(const r of n)i[r]=0===t?ai(e[r]):Xn(e[r],{level:t-1});return i}function Qn(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:a,color:s,subtitleColor:c,subtitleFont:l,subtitleFontSize:u,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:p,subtitlePadding:m,...h}=e,g={...t?{anchor:t}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...void 0!==o?{angle:o}:{},...void 0!==a?{limit:a}:{}},y={...c?{subtitleColor:c}:{},...l?{subtitleFont:l}:{},...u?{subtitleFontSize:u}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...p?{subtitleLineHeight:p}:{},...m?{subtitlePadding:m}:{}};return{titleMarkConfig:{...h,...s?{fill:s}:{}},subtitleMarkConfig:W(e,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:g,subtitle:y}}function Jn(e){return(0,c.Kg)(e)||(0,c.cy)(e)&&(0,c.Kg)(e[0])}function Zn(e){return Te(e,"signal")}function ei(e){return Te(e,"step")}function ti(e){return!(0,c.cy)(e)&&(Te(e,"field")&&Te(e,"data"))}const ni=oe({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}),ii={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},ri=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function oi(e){const t=(0,c.cy)(e.condition)?e.condition.map(si):si(e.condition);return{...ai(e),condition:t}}function ai(e){if(Kn(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function si(e){if(Kn(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function ci(e){if(Kn(e)){const{expr:t,...n}=e;return{signal:t,...n}}return Zn(e)?e:void 0!==e?{value:e}:void 0}function li(e){return Zn(e)?e.signal:(0,c.r$)(e.value)}function ui(e){return Zn(e)?e.signal:null==e?null:(0,c.r$)(e)}function fi(e,t,n){for(const i of n){const n=mi(i,t.markDef,t.config);void 0!==n&&(e[i]=ci(n))}return e}function di(e){return[].concat(e.type,e.style??[])}function pi(e,t,n,i={}){const{vgChannel:r,ignoreVgConfig:o}=i;return r&&Te(t,r)?t[r]:void 0!==t[e]?t[e]:!o||r&&r!==e?mi(e,t,n,i):void 0}function mi(e,t,n,{vgChannel:i}={}){const r=hi(e,t,n.style);return xe(i?r:void 0,r,i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function hi(e,t,n){return gi(e,di(t),n)}function gi(e,t,n){let i;t=(0,c.YO)(t);for(const r of t){const t=n[r];Te(t,e)&&(i=t[e])}return i}function yi(e,t){return(0,c.YO)(e).reduce(((e,n)=>(e.field.push(Ha(n,t)),e.order.push(n.sort??"ascending"),e)),{field:[],order:[]})}function vi(e,t){const n=[...e];return t.forEach((e=>{for(const t of n)if(Fe(t,e))return;n.push(e)})),n}function bi(e,t){return Fe(e,t)||!t?e:e?[...(0,c.YO)(e),...(0,c.YO)(t)].join(", "):t}function xi(e,t){const n=e.value,i=t.value;if(null==n||null===i)return{explicit:e.explicit,value:null};if((Jn(n)||Zn(n))&&(Jn(i)||Zn(i)))return{explicit:e.explicit,value:bi(n,i)};if(Jn(n)||Zn(n))return{explicit:e.explicit,value:n};if(Jn(i)||Zn(i))return{explicit:e.explicit,value:i};if(!(Jn(n)||Zn(n)||Jn(i)||Zn(i)))return{explicit:e.explicit,value:vi(n,i)};throw new Error("It should never reach here")}function $i(e){return`Invalid specification ${Ce(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const wi='Autosize "fit" only works for single views and layered views.';function ki(e){return`${"width"==e?"Width":"Height"} "container" only works for single views and layered views.`}function Si(e){return`${"width"==e?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${"width"==e?"x":"y"}".`}function Ei(e){return e?`Dropping "fit-${e}" because spec has discrete ${Mt(e)}.`:'Dropping "fit" because spec has discrete size.'}function Di(e){return`Unknown field for ${e}. Cannot calculate view size.`}function Oi(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Ni(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function Fi(e){return`Selection not supported for ${e} yet.`}const Ci="The same selection must be used to override scale domains in a layered view.";function Ti(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}function Pi(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function Ri(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function _i(e){return`${e}Offset dropped because ${e} is continuous`}function Ai(e){return`Invalid field type "${e}".`}function Li(e,t){const{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has ${n&&i?"fill and stroke":n?"fill":"stroke"}.`}function zi(e,t){return`Dropping ${Ce(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}function Ii(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`}function ji(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function Mi(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function Ui(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${"ordinal"===t?"order":"magnitude"}.`}function qi(e){return`Using unaggregated domain with raw field has no effect (${Ce(e)}).`}function Wi(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function Gi(e){return`Unaggregated domain is currently unsupported for log scale (${Ce(e)}).`}function Hi(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function Bi(e){return`The step for "${e}" is dropped because the ${"width"===e?"x":"y"} is continuous.`}const Vi="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function Yi(e,t){return`Invalid ${e}: ${Ce(t)}.`}function Ki(e){return`1D error band does not support ${e}.`}function Xi(e){return`Channel ${e} is required for "binned" bin.`}const Qi=(0,c.vF)(c.P$);let Ji=Qi;function Zi(){return Ji=Qi,Ji}function er(...e){Ji.warn(...e)}function tr(e){if(e&&(0,c.Gv)(e))for(const t of lr)if(Te(e,t))return!0;return!1}new WeakMap;const nr=["january","february","march","april","may","june","july","august","september","october","november","december"],ir=nr.map((e=>e.substr(0,3))),rr=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],or=rr.map((e=>e.substr(0,3)));function ar(e,t){const n=[];if(t&&void 0!==e.day&&oe(e).length>1&&(er(function(e){return`Dropping day from datetime ${Ce(e)} as day cannot be combined with other units.`}(e)),delete(e=U(e)).day),void 0!==e.year?n.push(e.year):n.push(2012),void 0!==e.month){const i=t?function(e){if(Oe(e)&&(e=+e),(0,c.Et)(e))return e-1;{const t=e.toLowerCase(),n=nr.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=ir.indexOf(i);if(-1!==r)return r;throw new Error(Yi("month",e))}}(e.month):e.month;n.push(i)}else if(void 0!==e.quarter){const i=t?function(e){if(Oe(e)&&(e=+e),(0,c.Et)(e))return e>4&&er(Yi("quarter",e)),e-1;throw new Error(Yi("quarter",e))}(e.quarter):e.quarter;n.push((0,c.Et)(i)?3*i:`${i}*3`)}else n.push(0);if(void 0!==e.date)n.push(e.date);else if(void 0!==e.day){const i=t?function(e){if(Oe(e)&&(e=+e),(0,c.Et)(e))return e%7;{const t=e.toLowerCase(),n=rr.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=or.indexOf(i);if(-1!==r)return r;throw new Error(Yi("day",e))}}(e.day):e.day;n.push((0,c.Et)(i)?i+1:`${i}+1`)}else n.push(1);for(const t of["hours","minutes","seconds","milliseconds"]){const i=e[t];n.push(void 0===i?0:i)}return n}function sr(e){const t=ar(e,!0).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}const cr={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},lr=oe(cr);function ur(e){return(0,c.Gv)(e)?e.binned:fr(e)}function fr(e){return e&&e.startsWith("binned")}function dr(e){return e.startsWith("utc")}const pr={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function mr(e){return lr.filter((t=>gr(e,t)))}function hr(e){const t=mr(e);return t[t.length-1]}function gr(e,t){const n=e.indexOf(t);return!(n<0)&&(!(n>0&&"seconds"===t&&"i"===e.charAt(n-1))&&(!(e.length>n+3&&"day"===t&&"o"===e.charAt(n+3))&&!(n>0&&"year"===t&&"f"===e.charAt(n-1))))}function yr(e,t,{end:n}={end:!1}){const i=pe(t),r=dr(e)?"utc":"";let o;const a={};for(const t of lr)gr(e,t)&&(a[t]="quarter"===(s=t)?`(${r}quarter(${i})-1)`:`${r}${s}(${i})`,o=t);var s;return n&&(a[o]+="+1"),function(e){const t=ar(e,!1).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}(a)}function vr(e){if(!e)return;return`timeUnitSpecifier(${Ce(mr(e))}, ${Ce(pr)})`}function br(e){if(!e)return;let t;return(0,c.Kg)(e)?t=fr(e)?{unit:e.substring(6),binned:!0}:{unit:e}:(0,c.Gv)(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),dr(t.unit)&&(t.utc=!0,t.unit=function(e){return e.substring(3)}(t.unit)),t}function xr(e,t=e=>e){const n=br(e),i=hr(n.unit);if(i&&"day"!==i){const e={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:r,part:o}=wr(i,n.step);return`${t(sr({...e,[o]:+e[o]+r}))} - ${t(sr(e))}`}}const $r={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function wr(e,t=1){if(function(e){return(0,c.mQ)($r,e)}(e))return{part:e,step:t};switch(e){case"day":case"dayofyear":return{part:"date",step:t};case"quarter":return{part:"month",step:3*t};case"week":return{part:"date",step:7*t}}}function kr(e){return!!e?.field&&void 0!==e.equal}function Sr(e){return!!e?.field&&void 0!==e.lt}function Er(e){return!!e?.field&&void 0!==e.lte}function Dr(e){return!!e?.field&&void 0!==e.gt}function Or(e){return!!e?.field&&void 0!==e.gte}function Nr(e){if(e?.field){if((0,c.cy)(e.range)&&2===e.range.length)return!0;if(Zn(e.range))return!0}return!1}function Fr(e){return!!e?.field&&((0,c.cy)(e.oneOf)||(0,c.cy)(e.in))}function Cr(e){return Fr(e)||kr(e)||Nr(e)||Sr(e)||Dr(e)||Er(e)||Or(e)}function Tr(e,t){return cs(e,{timeUnit:t,wrapTime:!0})}function Pr(e,t=!0){const{field:n}=e,i=br(e.timeUnit),{unit:r,binned:o}=i||{},a=Ha(e,{expr:"datum"}),s=r?`time(${o?a:yr(r,n)})`:a;if(kr(e))return`${s}===${Tr(e.equal,r)}`;if(Sr(e)){return`${s}<${Tr(e.lt,r)}`}if(Dr(e)){return`${s}>${Tr(e.gt,r)}`}if(Er(e)){return`${s}<=${Tr(e.lte,r)}`}if(Or(e)){return`${s}>=${Tr(e.gte,r)}`}if(Fr(e))return`indexof([${function(e,t){return e.map((e=>Tr(e,t)))}(e.oneOf,r).join(",")}], ${s}) !== -1`;if(function(e){return!!e?.field&&void 0!==e.valid}(e))return Rr(s,e.valid);if(Nr(e)){const{range:n}=Xn(e),i=Zn(n)?{signal:`${n.signal}[0]`}:n[0],o=Zn(n)?{signal:`${n.signal}[1]`}:n[1];if(null!==i&&null!==o&&t)return"inrange("+s+", ["+Tr(i,r)+", "+Tr(o,r)+"])";const a=[];return null!==i&&a.push(`${s} >= ${Tr(i,r)}`),null!==o&&a.push(`${s} <= ${Tr(o,r)}`),a.length>0?a.join(" && "):"true"}throw new Error(`Invalid field predicate: ${Ce(e)}`)}function Rr(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function _r(e){return Cr(e)&&e.timeUnit?{...e,timeUnit:br(e.timeUnit)}:e}const Ar={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Lr(e){return"quantitative"===e||"temporal"===e}function zr(e){return"ordinal"===e||"nominal"===e}const Ir=Ar.quantitative,jr=Ar.ordinal,Mr=Ar.temporal,Ur=Ar.nominal,qr=Ar.geojson;oe(Ar);const Wr={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"},Gr={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"};oe(Gr);function Hr(e,t){const n=Gr[e],i=Gr[t];return n===i||"ordinal-position"===n&&"time"===i||"ordinal-position"===i&&"time"===n}const Br={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 Vr(e){return Br[e]}const Yr=new Set(["linear","log","pow","sqrt","symlog"]),Kr=new Set([...Yr,"time","utc"]);function Xr(e){return Yr.has(e)}const Qr=new Set(["quantile","quantize","threshold"]),Jr=new Set([...Kr,...Qr,"sequential","identity"]),Zr=new Set(["ordinal","bin-ordinal","point","band"]);new Set(["time","utc"]);function eo(e){return Zr.has(e)}function to(e){return Jr.has(e)}function no(e){return Kr.has(e)}function io(e){return Qr.has(e)}function ro(e){return Te(e,"param")}const oo={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},{type:ao,domain:so,range:co,rangeMax:lo,rangeMin:uo,scheme:fo,...po}=(oe(oo),oo),mo=oe(po);function ho(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(e);case"bins":return!["point","band","identity","ordinal"].includes(e);case"round":return no(e)||"band"===e||"point"===e;case"padding":case"rangeMin":case"rangeMax":return no(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return"band"===e;case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return no(e);case"nice":return no(e)||"quantize"===e||"threshold"===e;case"exponent":return"pow"===e;case"base":return"log"===e;case"constant":return"symlog"===e;case"zero":return to(e)&&!V(["log","time","utc","threshold","quantile"],e)}}function go(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return $t(e)?void 0:`Cannot use the scale property "${t}" 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}}const yo={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"},vo=yo.arc,bo=yo.area,xo=yo.bar,$o=yo.image,wo=yo.line,ko=yo.point,So=yo.rect,Eo=yo.rule,Do=yo.text,Oo=yo.tick,No=yo.trail,Fo=yo.circle,Co=yo.square,To=yo.geoshape;function Po(e){return["line","area","trail"].includes(e)}function Ro(e){return["rect","bar","image","arc","tick"].includes(e)}const _o=new Set(oe(yo));function Ao(e){return Te(e,"type")}const Lo=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],zo=oe({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),Io=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],jo={area:["line","point"],bar:Io,rect:Io,line:["point"],tick:["bandSize","thickness",...Io]},Mo=oe({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 Uo(e){return Te(e,"band")}const qo={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Wo={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},Go={...Wo,binSpacing:1},Ho={...Wo,thickness:1};function Bo(e,{isPath:t}){return void 0===e||"break-paths-show-path-domains"===e?t?"break-paths-show-domains":"filter":null===e?"show":e}function Vo({markDef:e,config:t,scaleChannel:n,scaleType:i,isCountAggregate:r}){if(!i||!to(i)||r)return"always-valid";const o=Bo(pi("invalid",e,t),{isPath:Po(e.type)}),a=t.scale?.invalid?.[n];return void 0!==a?"show":o}function Yo({scaleName:e,scale:t,mode:n}){const i=`domain('${e}')`;if(!t||!e)return;const r=`${i}[0]`,o=`peek(${i})`,a=t.domainHasZero();if("definitely"===a)return{scale:e,value:0};if("maybe"===a){return{signal:`scale('${e}', inrange(0, ${i}) ? 0 : ${"zeroOrMin"===n?r:o})`}}return{signal:`scale('${e}', ${"zeroOrMin"===n?r:o})`}}function Ko({scaleChannel:e,channelDef:t,scale:n,scaleName:i,markDef:r,config:o}){const a=n?.get("type"),s=es(t),c=Vo({scaleChannel:e,markDef:r,config:o,scaleType:a,isCountAggregate:Mn(s?.aggregate)});if(s&&"show"===c){const t=o.scale.invalid?.[e]??"zero-or-min";return{test:Rr(Ha(s,{expr:"datum"}),!1),...Xo(t,n,i)}}}function Xo(e,t,n){if(i=e,(0,c.Gv)(i)&&"value"in i){const{value:t}=e;return Zn(t)?{signal:t.signal}:{value:t}}var i;return Yo({scale:t,scaleName:n,mode:"zeroOrMin"})}function Qo(e){const{channel:t,channelDef:n,markDef:i,scale:r,scaleName:o,config:a}=e,s=zt(t),c=ea(e),l=Ko({scaleChannel:s,channelDef:n,scale:r,scaleName:o,markDef:i,config:a});return void 0!==l?[l,c]:c}function Jo(e,t,n,i){const r={};if(t&&(r.scale=t),Ra(e)){const{datum:t}=e;tr(t)?r.signal=sr(t):Zn(t)?r.signal=t.signal:Kn(t)?r.signal=t.expr:r.value=t}else r.field=Ha(e,n);if(i){const{offset:e,band:t}=i;e&&(r.offset=e),t&&(r.band=t)}return r}function Zo({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:i,startSuffix:r,endSuffix:o="end",bandPosition:a=.5}){const s=!Zn(a)&&0<a&&a<1?"datum":void 0,c=Ha(t,{expr:s,suffix:r}),l=void 0!==n?Ha(n,{expr:s}):Ha(t,{suffix:o,expr:s}),u={};if(0===a||1===a){u.scale=e;const t=0===a?c:l;u.field=t}else{const t=Zn(a)?`(1-${a.signal}) * ${c} + ${a.signal} * ${l}`:`${1-a} * ${c} + ${a} * ${l}`;u.signal=`scale("${e}", ${t})`}return i&&(u.offset=i),u}function ea({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:l,defaultRef:u,bandPosition:f}){if(t){if(za(t)){const c=a?.get("type");if(Ia(t)){f??(f=Sa({fieldDef:t,fieldDef2:n,markDef:i,config:r}));const{bin:a,timeUnit:u,type:d}=t;if(Gn(a)||f&&u&&d===Mr)return s?.impute?Jo(t,o,{binSuffix:"mid"},{offset:l}):f&&!eo(c)?Zo({scaleName:o,fieldOrDatumDef:t,bandPosition:f,offset:l}):Jo(t,o,us(t,e)?{binSuffix:"range"}:{},{offset:l});if(Hn(a)){if(Ta(n))return Zo({scaleName:o,fieldOrDatumDef:t,fieldOrDatumDef2:n,bandPosition:f,offset:l});er(Xi(e===Ae?ze:Ie))}}return Jo(t,o,eo(c)?{binSuffix:"range"}:{},{offset:l,band:"band"===c?f??t.bandPosition??.5:void 0})}if(ja(t)){const n=l?{offset:l}:{};return{...ta(e,t.value),...n}}}return(0,c.Tn)(u)&&(u=u()),u?{...u,...l?{offset:l}:{}}:u}function ta(e,t){return V(["x","x2"],e)&&"width"===t?{field:{group:"width"}}:V(["y","y2"],e)&&"height"===t?{field:{group:"height"}}:ci(t)}function na(e){return e&&"number"!==e&&"time"!==e}function ia(e,t,n){return`${e}(${t}${n?`, ${Ce(n)}`:""})`}const ra=" – ";function oa({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o}){if(na(n))return sa({fieldOrDatumDef:e,format:t,formatType:n,expr:i,config:o});const a=aa(e,i,r),s=Pa(e);if(void 0===t&&void 0===n&&o.customFormatTypes){if("quantitative"===s){if(r&&o.normalizedNumberFormatType)return sa({fieldOrDatumDef:e,format:o.normalizedNumberFormat,formatType:o.normalizedNumberFormatType,expr:i,config:o});if(o.numberFormatType)return sa({fieldOrDatumDef:e,format:o.numberFormat,formatType:o.numberFormatType,expr:i,config:o})}if("temporal"===s&&o.timeFormatType&&Ta(e)&&void 0===e.timeUnit)return sa({fieldOrDatumDef:e,format:o.timeFormat,formatType:o.timeFormatType,expr:i,config:o})}if(ss(e)){const n=function({field:e,timeUnit:t,format:n,formatType:i,rawTimeFormat:r,isUTCScale:o}){return!t||n?!t&&i?`${i}(${e}, '${n}')`:`${o?"utc":"time"}Format(${e}, '${n=(0,c.Kg)(n)?n:r}')`:function(e,t,n){if(!e)return;const i=vr(e);return`${n||dr(e)?"utc":"time"}Format(${t}, ${i})`}(t,e,o)}({field:a,timeUnit:Ta(e)?br(e.timeUnit)?.unit:void 0,format:t,formatType:o.timeFormatType,rawTimeFormat:o.timeFormat,isUTCScale:Ma(e)&&e.scale?.type===Wr.UTC});return n?{signal:n}:void 0}if(t=ua({type:s,specifiedFormat:t,config:o,normalizeStack:r}),Ta(e)&&Gn(e.bin)){return{signal:pa(a,Ha(e,{expr:i,binSuffix:"end"}),t,n,o)}}return t||"quantitative"===Pa(e)?{signal:`${fa(a,t)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function aa(e,t,n){return Ta(e)?n?`${Ha(e,{expr:t,suffix:"end"})}-${Ha(e,{expr:t,suffix:"start"})}`:Ha(e,{expr:t}):function(e){const{datum:t}=e;return tr(t)?sr(t):`${Ce(t)}`}(e)}function sa({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o,field:a}){if(a??(a=aa(e,i,r)),"datum.value"!==a&&Ta(e)&&Gn(e.bin)){return{signal:pa(a,Ha(e,{expr:i,binSuffix:"end"}),t,n,o)}}return{signal:ia(n,a,t)}}function ca(e,t,n,i,r,o){if(!(0,c.Kg)(i)||!na(i)){if(void 0===n&&void 0===i&&r.customFormatTypes&&"quantitative"===Pa(e)){if(r.normalizedNumberFormatType&&Ua(e)&&"normalize"===e.stack)return;if(r.numberFormatType)return}if(Ua(e)&&"normalize"===e.stack&&r.normalizedNumberFormat)return ua({type:"quantitative",config:r,normalizeStack:!0});if(ss(e)){const t=Ta(e)?br(e.timeUnit)?.unit:void 0;if(void 0===t&&r.customFormatTypes&&r.timeFormatType)return;return function({specifiedFormat:e,timeUnit:t,config:n,omitTimeFormatConfig:i}){if(e)return e;if(t)return{signal:vr(t)};return i?void 0:n.timeFormat}({specifiedFormat:n,timeUnit:t,config:r,omitTimeFormatConfig:o})}return ua({type:t,specifiedFormat:n,config:r})}}function la(e,t,n){return e&&(Zn(e)||"number"===e||"time"===e)?e:ss(t)&&"time"!==n&&"utc"!==n?Ta(t)&&br(t?.timeUnit)?.utc?"utc":"time":void 0}function ua({type:e,specifiedFormat:t,config:n,normalizeStack:i}){return(0,c.Kg)(t)?t:e===Ir?i?n.normalizedNumberFormat:n.numberFormat:void 0}function fa(e,t){return`format(${e}, "${t||""}")`}function da(e,t,n,i){return na(n)?ia(n,e,t):fa(e,((0,c.Kg)(t)?t:void 0)??i.numberFormat)}function pa(e,t,n,i,r){if(void 0===n&&void 0===i&&r.customFormatTypes&&r.numberFormatType)return pa(e,t,r.numberFormat,r.numberFormatType,r);const o=da(e,n,i,r),a=da(t,n,i,r);return`${Rr(e,!1)} ? "null" : ${o} + "${ra}" + ${a}`}const ma="min",ha={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 ga(e){return(0,c.mQ)(ha,e)}function ya(e){return e&&("count"===e.op||Te(e,"field"))}function va(e){return e&&(0,c.cy)(e)}function ba(e){return Te(e,"row")||Te(e,"column")}function xa(e){return Te(e,"header")}function $a(e){return Te(e,"facet")}function wa(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return{...n?{timeUnit:n}:{},...i?{bin:i}:{},...r?{aggregate:r}:{},field:t}}function ka(e){return Te(e,"sort")}function Sa({fieldDef:e,fieldDef2:t,markDef:n,config:i}){if(za(e)&&void 0!==e.bandPosition)return e.bandPosition;if(Ta(e)){const{timeUnit:r,bin:o}=e;if(r&&!t)return mi("timeUnitBandPosition",n,i);if(Gn(o))return.5}}function Ea({channel:e,fieldDef:t,fieldDef2:n,markDef:i,config:r,scaleType:o,useVlSizeChannel:a}){const s=Mt(e),c=pi(a?"size":s,i,r,{vgChannel:s});if(void 0!==c)return c;if(Ta(t)){const{timeUnit:e,bin:a}=t;if(e&&!n)return{band:mi("timeUnitBandSize",i,r)};if(Gn(a)&&!eo(o))return{band:1}}return Ro(i.type)?o?eo(o)?r[i.type]?.discreteBandSize||{band:1}:r[i.type]?.continuousBandSize:r[i.type]?.discreteBandSize:void 0}function Da(e,t,n,i){return!!(Gn(e.bin)||e.timeUnit&&Ia(e)&&"temporal"===e.type)&&void 0!==Sa({fieldDef:e,fieldDef2:t,markDef:n,config:i})}function Oa(e){return Te(e,"sort")&&!Te(e,"field")}function Na(e){return Te(e,"condition")}function Fa(e){const t=e?.condition;return!!t&&!(0,c.cy)(t)&&Ta(t)}function Ca(e){const t=e?.condition;return!!t&&!(0,c.cy)(t)&&za(t)}function Ta(e){return Te(e,"field")||"count"===e?.aggregate}function Pa(e){return e?.type}function Ra(e){return Te(e,"datum")}function _a(e){return Ia(e)&&!Ba(e)||La(e)}function Aa(e){return Ia(e)&&"quantitative"===e.type&&!e.bin||La(e)}function La(e){return Ra(e)&&(0,c.Et)(e.datum)}function za(e){return Ta(e)||Ra(e)}function Ia(e){return e&&(Te(e,"field")||"count"===e.aggregate)&&Te(e,"type")}function ja(e){return Te(e,"value")}function Ma(e){return Te(e,"scale")||Te(e,"sort")}function Ua(e){return Te(e,"axis")||Te(e,"stack")||Te(e,"impute")}function qa(e){return Te(e,"legend")}function Wa(e){return Te(e,"format")||Te(e,"formatType")}function Ga(e){return G(e,["legend","axis","header","scale"])}function Ha(e,t={}){let n=e.field;const i=t.prefix;let r=t.suffix,o="";if(function(e){return"count"===e.aggregate}(e))n=Se("count");else{let i;if(!t.nofn)if(function(e){return Te(e,"op")}(e))i=e.op;else{const{bin:a,aggregate:s,timeUnit:c}=e;Gn(a)?(i=Wn(a),r=(t.binSuffix??"")+(t.suffix??"")):s?zn(s)?(o=`["${n}"]`,n=`argmax_${s.argmax}`):Ln(s)?(o=`["${n}"]`,n=`argmin_${s.argmin}`):i=String(s):c&&!ur(c)&&(i=function(e){const{utc:t,...n}=br(e);return n.unit?(t?"utc":"")+oe(n).map((e=>le(`${"unit"===e?"":`_${e}_`}${n[e]}`))).join(""):(t?"utc":"")+"timeunit"+oe(n).map((e=>le(`_${e}_${n[e]}`))).join("")}(c),r=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(t.suffix??""))}i&&(n=n?`${i}_${n}`:i)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?ve(n):t.expr?me(n,t.expr)+o:ge(n)+o}function Ba(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return Ta(e)&&!!e.bin;case"temporal":return!1}throw new Error(Ai(e.type))}const Va=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return function(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(zn(t))return`${r} for argmax(${t.argmax})`;if(Ln(t))return`${r} for argmin(${t.argmin})`;const o=i&&!ur(i)?br(i):void 0,a=t||o?.unit||o?.maxbins&&"timeunit"||Gn(n)&&"bin";return a?`${a.toUpperCase()}(${r})`:r}(e);default:return function(e,t){const{field:n,bin:i,timeUnit:r,aggregate:o}=e;if("count"===o)return t.countTitle;if(Gn(i))return`${n} (binned)`;if(r&&!ur(r)){const e=br(r)?.unit;if(e)return`${n} (${mr(e).join("-")})`}else if(o)return zn(o)?`${n} for max ${o.argmax}`:Ln(o)?`${n} for min ${o.argmin}`:`${de(o)} of ${n}`;return n}(e,t)}};let Ya=Va;function Ka(e){Ya=e}function Xa(e,t,{allowDisabling:n,includeDefault:i=!0}){const r=Qa(e)?.title;if(!Ta(e))return r??e.title;const o=e,a=i?Ja(o,t):void 0;return n?xe(r,o.title,a):r??o.title??a}function Qa(e){return Ua(e)&&e.axis?e.axis:qa(e)&&e.legend?e.legend:xa(e)&&e.header?e.header:void 0}function Ja(e,t){return Ya(e,t)}function Za(e){if(Wa(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}{const t=Qa(e)??{},{format:n,formatType:i}=t;return{format:n,formatType:i}}}function es(e){return Ta(e)?e:Fa(e)?e.condition:void 0}function ts(e){return za(e)?e:Ca(e)?e.condition:void 0}function ns(e,t,n,i={}){if((0,c.Kg)(e)||(0,c.Et)(e)||(0,c.Lm)(e)){return er(function(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${Ce(n)}}.`}(t,(0,c.Kg)(e)?"string":(0,c.Et)(e)?"number":"boolean",e)),{value:e}}return za(e)?is(e,t,n,i):Ca(e)?{...e,condition:is(e.condition,t,n,i)}:e}function is(e,t,n,i){if(Wa(e)){const{format:r,formatType:o,...a}=e;if(na(o)&&!n.customFormatTypes)return er(Ri(t)),is(a,t,n,i)}else{const r=Ua(e)?"axis":qa(e)?"legend":xa(e)?"header":null;if(r&&e[r]){const{format:o,formatType:a,...s}=e[r];if(na(a)&&!n.customFormatTypes)return er(Ri(t)),is({...e,[r]:s},t,n,i)}}return Ta(e)?rs(e,t,i):function(e){let t=e.type;if(t)return e;const{datum:n}=e;return t=(0,c.Et)(n)?"quantitative":(0,c.Kg)(n)?"nominal":tr(n)?"temporal":void 0,{...e,type:t}}(e)}function rs(e,t,{compositeMark:n=!1}={}){const{aggregate:i,timeUnit:r,bin:o,field:a}=e,s={...e};if(n||!i||In(i)||zn(i)||Ln(i)||(er(function(e){return`Invalid aggregation operator "${e}".`}(i)),delete s.aggregate),r&&(s.timeUnit=br(r)),a&&(s.field=`${a}`),Gn(o)&&(s.bin=os(o,t)),Hn(o)&&!un(t)&&er(function(e){return`Channel ${e} should not be used with "binned" bin.`}(t)),Ia(s)){const{type:e}=s,t=function(e){if(e)switch(e=e.toLowerCase()){case"q":case Ir:return"quantitative";case"t":case Mr:return"temporal";case"o":case jr:return"ordinal";case"n":case Ur:return"nominal";case qr:return"geojson"}}(e);e!==t&&(s.type=t),"quantitative"!==e&&Mn(i)&&(er(function(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}(e,i)),s.type="quantitative")}else if(!Lt(t)){const e=function(e,t){switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(ka(e)&&(0,c.cy)(e.sort))return"ordinal";const{aggregate:n,bin:i,timeUnit:r}=e;if(r)return"temporal";if(i||n&&!zn(n)&&!Ln(n))return"quantitative";if(Ma(e)&&e.scale?.type)switch(Gr[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(s,t);s.type=e}if(Ia(s)){const{compatible:e,warning:n}=function(e,t){const n=e.type;if("geojson"===n&&"shape"!==t)return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case Pe:case Re:case _e:return Ba(e)?as:{compatible:!1,warning:ji(t)};case Ae:case Le:case je:case Me:case Ke:case Xe:case Qe:case at:case ct:case lt:case ut:case ft:case dt:case et:case We:case Ue:case pt:return as;case Be:case Ye:case He:case Ve:return n!==Ir?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:as;case tt:case nt:case it:case rt:case Ze:case Ge:case qe:case ze:case Ie:return"nominal"!==n||e.sort?as:{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`};case Je:case ot:return Ba(e)||Ma(i=e)&&io(i.scale?.type)?as:{compatible:!1,warning:Mi(t)};case st:return"nominal"!==e.type||"sort"in e?as:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var i}(s,t)||{};!1===e&&er(n)}if(ka(s)&&(0,c.Kg)(s.sort)){const{sort:e}=s;if(ga(e))return{...s,sort:{encoding:e}};const t=e.substring(1);if("-"===e.charAt(0)&&ga(t))return{...s,sort:{encoding:t,order:"descending"}}}if(xa(s)){const{header:e}=s;if(e){const{orient:t,...n}=e;if(t)return{...s,header:{...n,labelOrient:e.labelOrient||t,titleOrient:e.titleOrient||t}}}}return s}function os(e,t){return(0,c.Lm)(e)?{maxbins:Yn(t)}:"binned"===e?{binned:!0}:e.maxbins||e.step?e:{...e,maxbins:Yn(t)}}const as={compatible:!0};function ss(e){const{formatType:t}=Za(e);return"time"===t||!t&&((n=e)&&("temporal"===n.type||Ta(n)&&!!n.timeUnit));var n}function cs(e,{timeUnit:t,type:n,wrapTime:i,undefinedIfExprNotRequired:r}){const o=t&&br(t)?.unit;let a,s=o||"temporal"===n;return Kn(e)?a=e.expr:Zn(e)?a=e.signal:tr(e)?(s=!0,a=sr(e)):((0,c.Kg)(e)||(0,c.Et)(e))&&s&&(a=`datetime(${Ce(e)})`,function(e){return(0,c.mQ)(cr,e)}(o)&&((0,c.Et)(e)&&e<1e4||(0,c.Kg)(e)&&isNaN(Date.parse(e)))&&(a=sr({[o]:e}))),a?i&&s?`time(${a})`:a:r?void 0:Ce(e)}function ls(e,t){const{type:n}=e;return t.map((t=>{const i=cs(t,{timeUnit:Ta(e)&&!ur(e.timeUnit)?e.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return void 0!==i?{signal:i}:t}))}function us(e,t){return Gn(e.bin)?Nn(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const fs={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 ds(e){return e?.condition}const ps=["domain","grid","labels","ticks","title"],ms={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"},hs={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},gs={...hs,style:1,labelExpr:1,encoding:1};function ys(e){return(0,c.mQ)(gs,e)}oe(gs);const vs=oe({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 bs(e){return Te(e,"mark")}class xs{constructor(e,t){this.name=e,this.run=t}hasMatchingType(e){return!!bs(e)&&(Ao(t=e.mark)?t.type:t)===this.name;var t}}function $s(e,t){const n=e&&e[t];return!!n&&((0,c.cy)(n)?Y(n,(e=>!!e.field)):Ta(n)||Fa(n))}function ws(e,t){const n=e&&e[t];return!!n&&((0,c.cy)(n)?Y(n,(e=>!!e.field)):Ta(n)||Ra(n)||Ca(n))}function ks(e,t){if(un(t)){const n=e[t];if((Ta(n)||Ra(n))&&(zr(n.type)||Ta(n)&&n.timeUnit)){return ws(e,qt(t))}}return!1}function Ss(e){return Y(Et,(t=>{if($s(e,t)){const n=e[t];if((0,c.cy)(n))return Y(n,(e=>!!e.aggregate));{const e=es(n);return e&&!!e.aggregate}}return!1}))}function Es(e,t){const n=[],i=[],r=[],o=[],a={};return Ns(e,((s,l)=>{if(Ta(s)){const{field:u,aggregate:f,bin:d,timeUnit:p,...m}=s;if(f||p||d){const e=Qa(s),h=e?.title;let g=Ha(s,{forAs:!0});const y={...h?[]:{title:Xa(s,t,{allowDisabling:!0})},...m,field:g};if(f){let e;if(zn(f)?(e="argmax",g=Ha({op:"argmax",field:f.argmax},{forAs:!0}),y.field=`${g}.${u}`):Ln(f)?(e="argmin",g=Ha({op:"argmin",field:f.argmin},{forAs:!0}),y.field=`${g}.${u}`):"boxplot"!==f&&"errorbar"!==f&&"errorband"!==f&&(e=f),e){const t={op:e,as:g};u&&(t.field=u),o.push(t)}}else if(n.push(g),Ia(s)&&Gn(d)){if(i.push({bin:d,field:u,as:g}),n.push(Ha(s,{binSuffix:"end"})),us(s,l)&&n.push(Ha(s,{binSuffix:"range"})),un(l)){const e={field:`${g}_end`};a[`${l}2`]=e}y.bin="binned",Lt(l)||(y.type=Ir)}else if(p&&!ur(p)){r.push({timeUnit:p,field:u,as:g});const e=Ia(s)&&s.type!==Mr&&"time";e&&(l===at||l===ut?y.formatType=e:!function(e){return(0,c.mQ)(an,e)}(l)?un(l)&&(y.axis={formatType:e,...y.axis}):y.legend={formatType:e,...y.legend})}a[l]=y}else n.push(u),a[l]=e[l]}else a[l]=e[l]})),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:a}}function Ds(e,t,n){const i=Fn(t,n);if(!i)return!1;if("binned"===i){const n=e[t===ze?Ae:Le];return!!(Ta(n)&&Ta(e[t])&&Hn(n.bin))}return!0}function Os(e,t){const n={};for(const i of oe(e)){const r=ns(e[i],i,t,{compositeMark:!0});n[i]=r}return n}function Ns(e,t,n){if(e)for(const i of oe(e)){const r=e[i];if((0,c.cy)(r))for(const e of r)t.call(n,e,i);else t.call(n,r,i)}}function Fs(e,t){return oe(t).reduce(((n,i)=>{switch(i){case Ae:case Le:case ft:case pt:case dt:case ze:case Ie:case je:case Me:case We:case Ge:case Ue:case qe:case He:case Be:case Ve:case Ye:case at:case Je:case et:case ut:return n;case st:if("line"===e||"trail"===e)return n;case ct:case lt:{const e=t[i];if((0,c.cy)(e)||Ta(e))for(const t of(0,c.YO)(e))t.aggregate||n.push(Ha(t,{}));return n}case Ze:if("trail"===e)return n;case Ke:case Xe:case Qe:case tt:case nt:case it:case ot:case rt:{const e=es(t[i]);return e&&!e.aggregate&&n.push(Ha(e,{})),n}}}),[])}function Cs(e,t,n,i=!0){if("tooltip"in n)return{tooltip:n.tooltip};return{tooltip:[...e.map((({fieldPrefix:e,titlePrefix:n})=>{const r=i?` of ${Ts(t)}`:"";return{field:e+t.field,type:t.type,title:Zn(n)?{signal:`${n}"${escape(r)}"`}:n+r}})),...J(function(e){const t=[];for(const n of oe(e))if($s(e,n)){const i=e[n],r=(0,c.YO)(i);for(const e of r)Ta(e)?t.push(e):Fa(e)&&t.push(e.condition)}return t}(n).map(Ga),H)]}}function Ts(e){const{title:t,field:n}=e;return xe(t,n)}function Ps(e,t,n,i,r){const{scale:o,axis:a}=n;return({partName:s,mark:l,positionPrefix:u,endPositionPrefix:f,extraEncoding:d={}})=>{const p=Ts(n);return Rs(e,s,r,{mark:l,encoding:{[t]:{field:`${u}_${n.field}`,type:n.type,...void 0!==p?{title:p}:{},...void 0!==o?{scale:o}:{},...void 0!==a?{axis:a}:{}},...(0,c.Kg)(f)?{[`${t}2`]:{field:`${f}_${n.field}`}}:{},...i,...d}})}}function Rs(e,t,n,i){const{clip:r,color:o,opacity:a}=e,s=e.type;return e[t]||void 0===e[t]&&n[t]?[{...i,mark:{...n[t],...r?{clip:r}:{},...o?{color:o}:{},...a?{opacity:a}:{},...Ao(i.mark)?i.mark:{type:i.mark},style:`${s}-${String(t)}`,...(0,c.Lm)(e[t])?{}:e[t]}}]:[]}function _s(e,t,n){const{encoding:i}=e,r="vertical"===t?"y":"x",o=i[r],a=i[`${r}2`],s=i[`${r}Error`],c=i[`${r}Error2`];return{continuousAxisChannelDef:As(o,n),continuousAxisChannelDef2:As(a,n),continuousAxisChannelDefError:As(s,n),continuousAxisChannelDefError2:As(c,n),continuousAxis:r}}function As(e,t){if(e?.aggregate){const{aggregate:n,...i}=e;return n!==t&&er(function(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}(n,t)),i}return e}function Ls(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(Ao(n)&&n.orient)return n.orient;if(_a(r)){if(_a(o)){const e=Ta(r)&&r.aggregate,n=Ta(o)&&o.aggregate;if(e||n!==t){if(n||e!==t){if(e===t&&n===t)throw new Error("Both x and y cannot have aggregate");return ss(o)&&!ss(r)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(_a(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}const zs="boxplot",Is=new xs(zs,Ms);function js(e){return(0,c.Et)(e)?"tukey":e}function Ms(e,{config:t}){e={...e,encoding:Os(e.encoding,t)};const{mark:n,encoding:i,params:r,projection:o,...a}=e,s=Ao(n)?n:{type:n};r&&er(Fi("boxplot"));const l=s.extent??t.boxplot.extent,u=pi("size",s,t),f=s.invalid,d=js(l),{bins:p,timeUnits:m,transform:h,continuousAxisChannelDef:g,continuousAxis:y,groupby:v,aggregate:b,encodingWithoutContinuousAxis:x,ticksOrient:$,boxOrient:w,customTooltipWithoutAggregatedField:k}=function(e,t,n){const i=Ls(e,zs),{continuousAxisChannelDef:r,continuousAxis:o}=_s(e,i,zs),a=r.field,s=ve(a),l=js(t),u=[...Us(a),{op:"median",field:a,as:`mid_box_${s}`},{op:"min",field:a,as:("min-max"===l?"lower_whisker_":"min_")+s},{op:"max",field:a,as:("min-max"===l?"upper_whisker_":"max_")+s}],f="min-max"===l||"tukey"===l?[]:[{calculate:`datum["upper_box_${s}"] - datum["lower_box_${s}"]`,as:`iqr_${s}`},{calculate:`min(datum["upper_box_${s}"] + datum["iqr_${s}"] * ${t}, datum["max_${s}"])`,as:`upper_whisker_${s}`},{calculate:`max(datum["lower_box_${s}"] - datum["iqr_${s}"] * ${t}, datum["min_${s}"])`,as:`lower_whisker_${s}`}],{[o]:d,...p}=e.encoding,{customTooltipWithoutAggregatedField:m,filteredEncoding:h}=function(e){const{tooltip:t,...n}=e;if(!t)return{filteredEncoding:n};let i,r;if((0,c.cy)(t)){for(const e of t)e.aggregate?(i||(i=[]),i.push(e)):(r||(r=[]),r.push(e));i&&(n.tooltip=i)}else t.aggregate?n.tooltip=t:r=t;return(0,c.cy)(r)&&1===r.length&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}(p),{bins:g,timeUnits:y,aggregate:v,groupby:b,encoding:x}=Es(h,n),$="vertical"===i?"horizontal":"vertical",w=i,k=[...g,...y,{aggregate:[...v,...u],groupby:b},...f];return{bins:g,timeUnits:y,transform:k,groupby:b,aggregate:v,continuousAxisChannelDef:r,continuousAxis:o,encodingWithoutContinuousAxis:x,ticksOrient:$,boxOrient:w,customTooltipWithoutAggregatedField:m}}(e,l,t),S=ve(g.field),{color:E,size:D,...O}=x,N=e=>Ps(s,y,g,e,t.boxplot),F=N(O),C=N(x),T=((0,c.Gv)(t.boxplot.box)?t.boxplot.box.color:t.mark.color)||"#4c78a8",P=N({...O,...D?{size:D}:{},color:{condition:{test:`datum['lower_box_${g.field}'] >= datum['upper_box_${g.field}']`,...E||{value:T}}}}),R=Cs([{fieldPrefix:"min-max"===d?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:"min-max"===d?"lower_whisker_":"min_",titlePrefix:"Min"}],g,x),_={type:"tick",color:"black",opacity:1,orient:$,invalid:f,aria:!1},A="min-max"===d?R:Cs([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,x),L=[...F({partName:"rule",mark:{type:"rule",invalid:f,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:A}),...F({partName:"rule",mark:{type:"rule",invalid:f,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:A}),...F({partName:"ticks",mark:_,positionPrefix:"lower_whisker",extraEncoding:A}),...F({partName:"ticks",mark:_,positionPrefix:"upper_whisker",extraEncoding:A})],z=[..."tukey"!==d?L:[],...C({partName:"box",mark:{type:"bar",...u?{size:u}:{},orient:w,invalid:f,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:R}),...P({partName:"median",mark:{type:"tick",invalid:f,...(0,c.Gv)(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...u?{size:u}:{},orient:$,aria:!1},positionPrefix:"mid_box",extraEncoding:R})];if("min-max"===d)return{...a,transform:(a.transform??[]).concat(h),layer:z};const I=`datum["lower_box_${g.field}"]`,j=`datum["upper_box_${g.field}"]`,M=`(${j} - ${I})`,U=`${I} - ${l} * ${M}`,q=`${j} + ${l} * ${M}`,W=`datum["${g.field}"]`,H={joinaggregate:Us(g.field),groupby:v},B={transform:[{filter:`(${U} <= ${W}) && (${W} <= ${q})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${S}`},{op:"max",field:g.field,as:`upper_whisker_${S}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${S}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${S}`},...b],groupby:v}],layer:L},{tooltip:V,...Y}=O,{scale:K,axis:X}=g,Q=Ts(g),J=G(X,["title"]),Z=Rs(s,"outliers",t.boxplot,{transform:[{filter:`(${W} < ${U}) || (${W} > ${q})`}],mark:"point",encoding:{[y]:{field:g.field,type:g.type,...void 0!==Q?{title:Q}:{},...void 0!==K?{scale:K}:{},...re(J)?{}:{axis:J}},...Y,...E?{color:E}:{},...k?{tooltip:k}:{}}})[0];let ee;const te=[...p,...m,H];return Z?ee={transform:te,layer:[Z,B]}:(ee=B,ee.transform.unshift(...te)),{...a,layer:[ee,{transform:h,layer:z}]}}function Us(e){const t=ve(e);return[{op:"q1",field:e,as:`lower_box_${t}`},{op:"q3",field:e,as:`upper_box_${t}`}]}const qs="errorbar",Ws=new xs(qs,Gs);function Gs(e,{config:t}){e={...e,encoding:Os(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:a,markDef:s,outerSpec:c,tooltipEncoding:l}=Bs(e,qs,t);delete o.size;const u=Ps(s,r,i,o,t.errorbar),f=s.thickness,d=s.size,p={type:"tick",orient:a,aria:!1,...void 0!==f?{thickness:f}:{},...void 0!==d?{size:d}:{}},m=[...u({partName:"ticks",mark:p,positionPrefix:"lower",extraEncoding:l}),...u({partName:"ticks",mark:p,positionPrefix:"upper",extraEncoding:l}),...u({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...void 0!==f?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return{...c,transform:n,...m.length>1?{layer:m}:{...m[0]}}}function Hs(e,t){const{encoding:n}=e;if(function(e){return(za(e.x)||za(e.y))&&!za(e.x2)&&!za(e.y2)&&!za(e.xError)&&!za(e.xError2)&&!za(e.yError)&&!za(e.yError2)}(n))return{orient:Ls(e,t),inputType:"raw"};const i=function(e){return za(e.x2)||za(e.y2)}(n),r=function(e){return za(e.xError)||za(e.xError2)||za(e.yError)||za(e.yError2)}(n),o=n.x,a=n.y;if(i){if(r)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const e=n.x2,i=n.y2;if(za(e)&&za(i))throw new Error(`${t} cannot have both x2 and y2`);if(za(e)){if(_a(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}if(za(i)){if(_a(a))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${t}`)}throw new Error("No ranged axis")}{const e=n.xError,i=n.xError2,r=n.yError,s=n.yError2;if(za(i)&&!za(e))throw new Error(`${t} cannot have xError2 without xError`);if(za(s)&&!za(r))throw new Error(`${t} cannot have yError2 without yError`);if(za(e)&&za(r))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(za(e)){if(_a(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(za(r)){if(_a(a))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function Bs(e,t,n){const{mark:i,encoding:r,params:o,projection:a,...s}=e,c=Ao(i)?i:{type:i};o&&er(Fi(t));const{orient:l,inputType:u}=Hs(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:m,continuousAxis:h}=_s(e,l,t),{errorBarSpecificAggregate:g,postAggregateCalculates:y,tooltipSummary:v,tooltipTitleWithFieldName:b}=function(e,t,n,i,r,o,a,s){let c=[],l=[];const u=t.field;let f,d=!1;if("raw"===o){const t=e.center?e.center:e.extent?"iqr"===e.extent?"median":"mean":s.errorbar.center,n=e.extent?e.extent:"mean"===t?"stderr":"iqr";if("median"===t!=("iqr"===n)&&er(function(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}(t,n,a)),"stderr"===n||"stdev"===n)c=[{op:n,field:u,as:`extent_${u}`},{op:t,field:u,as:`center_${u}`}],l=[{calculate:`datum["center_${u}"] + datum["extent_${u}"]`,as:`upper_${u}`},{calculate:`datum["center_${u}"] - datum["extent_${u}"]`,as:`lower_${u}`}],f=[{fieldPrefix:"center_",titlePrefix:de(t)},{fieldPrefix:"upper_",titlePrefix:Vs(t,n,"+")},{fieldPrefix:"lower_",titlePrefix:Vs(t,n,"-")}],d=!0;else{let e,t,i;"ci"===n?(e="mean",t="ci0",i="ci1"):(e="median",t="q1",i="q3"),c=[{op:t,field:u,as:`lower_${u}`},{op:i,field:u,as:`upper_${u}`},{op:e,field:u,as:`center_${u}`}],f=[{fieldPrefix:"upper_",titlePrefix:Xa({field:u,aggregate:i,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:Xa({field:u,aggregate:t,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:Xa({field:u,aggregate:e,type:"quantitative"},s,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&er((p=e.center,`${(m=e.extent)?"extent ":""}${m&&p?"and ":""}${p?"center ":""}${m&&p?"are ":"is "}not needed when data are aggregated.`)),"aggregated-upper-lower"===o?(f=[],l=[{calculate:`datum["${n.field}"]`,as:`upper_${u}`},{calculate:`datum["${u}"]`,as:`lower_${u}`}]):"aggregated-error"===o&&(f=[{fieldPrefix:"",titlePrefix:u}],l=[{calculate:`datum["${u}"] + datum["${i.field}"]`,as:`upper_${u}`}],r?l.push({calculate:`datum["${u}"] + datum["${r.field}"]`,as:`lower_${u}`}):l.push({calculate:`datum["${u}"] - datum["${i.field}"]`,as:`lower_${u}`}));for(const e of l)f.push({fieldPrefix:e.as.substring(0,6),titlePrefix:ye(ye(e.calculate,'datum["',""),'"]',"")})}var p,m;return{postAggregateCalculates:l,errorBarSpecificAggregate:c,tooltipSummary:f,tooltipTitleWithFieldName:d}}(c,f,d,p,m,u,t,n),{[h]:x,["x"===h?"x2":"y2"]:$,["x"===h?"xError":"yError"]:w,["x"===h?"xError2":"yError2"]:k,...S}=r,{bins:E,timeUnits:D,aggregate:O,groupby:N,encoding:F}=Es(S,n),C=[...O,...g],T="raw"!==u?[]:N,P=Cs(v,f,F,b);return{transform:[...s.transform??[],...E,...D,...0===C.length?[]:[{aggregate:C,groupby:T}],...y],groupby:T,continuousAxisChannelDef:f,continuousAxis:h,encodingWithoutContinuousAxis:F,ticksOrient:"vertical"===l?"horizontal":"vertical",markDef:c,outerSpec:s,tooltipEncoding:P}}function Vs(e,t,n){return`${de(e)} ${n} ${t}`}const Ys="errorband",Ks=new xs(Ys,Xs);function Xs(e,{config:t}){e={...e,encoding:Os(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:a,outerSpec:s,tooltipEncoding:c}=Bs(e,Ys,t),l=a,u=Ps(l,r,i,o,t.errorband),f=void 0!==e.encoding.x&&void 0!==e.encoding.y;let d={type:f?"area":"rect"},p={type:f?"line":"rule"};const m={...l.interpolate?{interpolate:l.interpolate}:{},...l.tension&&l.interpolate?{tension:l.tension}:{}};return f?(d={...d,...m,ariaRoleDescription:"errorband"},p={...p,...m,aria:!1}):l.interpolate?er(Ki("interpolate")):l.tension&&er(Ki("tension")),{...s,transform:n,layer:[...u({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c}),...u({partName:"borders",mark:p,positionPrefix:"lower",extraEncoding:c}),...u({partName:"borders",mark:p,positionPrefix:"upper",extraEncoding:c})]}}const Qs={};function Js(e,t,n){const i=new xs(e,t);Qs[e]={normalizer:i,parts:n}}Js(zs,Ms,["box","median","outliers","rule","ticks"]),Js(qs,Gs,["ticks","rule"]),Js(Ys,Xs,["band","borders"]);const Zs=["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"},tc={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"},nc=oe(ec),ic=oe(tc),rc=oe({header:1,headerRow:1,headerColumn:1,headerFacet:1}),oc=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],ac={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},sc=(oe(ac),"_vgsid_"),cc={point:{on:"click",fields:[sc],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 lc(e){return"legend"===e||!!e?.legend}function uc(e){return lc(e)&&(0,c.Gv)(e)}function fc(e){return!!e?.select}function dc(e){const t=[];for(const n of e||[]){if(fc(n))continue;const{expr:e,bind:i,...r}=n;if(i&&e){const n={...r,bind:i,init:e};t.push(n)}else{const n={...r,...e?{update:e}:{},...i?{bind:i}:{}};t.push(n)}}return t}function pc(e){return Te(e,"concat")}function mc(e){return Te(e,"vconcat")}function hc(e){return Te(e,"hconcat")}function gc({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function yc(e){return Te(e,"step")}function vc(e){return Te(e,"view")||Te(e,"width")||Te(e,"height")}const bc=oe({align:1,bounds:1,center:1,columns:1,spacing:1});function xc(e,t){return e[t]??e["width"===t?"continuousWidth":"continuousHeight"]}function $c(e,t){const n=wc(e,t);return yc(n)?n.step:kc}function wc(e,t){return xe(e[t]??e["width"===t?"discreteWidth":"discreteHeight"],{step:e.step})}const kc=20;const Sc={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:kc},mark:{color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},arc:{},area:{},bar:Go,circle:{},geoshape:{},image:{},line:{},point:{},rect:Wo,rule:{color:"black"},square:{},text:{color:"black"},tick:Ho,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,tickBandPaddingInner:.25,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:4,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:cc,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},Ec=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Dc={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},Oc={blue:Ec[0],orange:Ec[1],red:Ec[2],teal:Ec[3],green:Ec[4],yellow:Ec[5],purple:Ec[6],pink:Ec[7],brown:Ec[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 Nc(e){const t=oe(e||{}),n={};for(const i of t){const t=e[i];n[i]=ds(t)?oi(t):ai(t)}return n}const Fc=[...Mo,...vs,...rc,"background","padding","legend","lineBreak","scale","style","title","view"];function Cc(e={}){const{color:t,font:n,fontSize:i,selection:r,...o}=e,a=(0,c.io)({},U(Sc),n?function(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}(n):{},t?function(e={}){return{signals:[{name:"color",value:(0,c.Gv)(e)?{...Oc,...e}:Oc}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}(t):{},i?function(e){return{signals:[{name:"fontSize",value:(0,c.Gv)(e)?{...Dc,...e}:Dc}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}(i):{},o||{});r&&(0,c.AU)(a,"selection",r,!0);const s=G(a,Fc);for(const e of["background","lineBreak","padding"])a[e]&&(s[e]=ai(a[e]));for(const e of Mo)a[e]&&(s[e]=Xn(a[e]));for(const e of vs)a[e]&&(s[e]=Nc(a[e]));for(const e of rc)a[e]&&(s[e]=Xn(a[e]));if(a.legend&&(s.legend=Xn(a.legend)),a.scale){const{invalid:e,...t}=a.scale,n=Xn(e,{level:1});s.scale={...Xn(t),...oe(n).length>0?{invalid:n}:{}}}return a.style&&(s.style=function(e){const t=oe(e),n={};for(const i of t)n[i]=Nc(e[i]);return n}(a.style)),a.title&&(s.title=Xn(a.title)),a.view&&(s.view=Xn(a.view)),s}const Tc=new Set(["view",..._o]),Pc=["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"],Rc={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...jo};function _c(e){e=U(e);for(const t of Pc)delete e[t];if(e.axis)for(const t in e.axis)ds(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of Zs)delete e.legend[t];if(e.mark){for(const t of zo)delete e.mark[t];e.mark.tooltip&&(0,c.Gv)(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(dc(e.params)),delete e.params);for(const t of Tc){for(const n of zo)delete e[t][n];const n=Rc[t];if(n)for(const i of n)delete e[t][i];Ac(e,t)}for(const t of oe(Qs))delete e[t];!function(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:i}=Qn(e.title);re(t)||(e.style["group-title"]={...e.style["group-title"],...t});re(n)||(e.style["group-subtitle"]={...e.style["group-subtitle"],...n});re(i)?delete e.title:e.title=i}(e);for(const t in e)(0,c.Gv)(e[t])&&re(e[t])&&delete e[t];return re(e)?void 0:e}function Ac(e,t,n,i){"view"===t&&(n="cell");const r={...i?e[t][i]:e[t],...e.style[n??t]};re(r)||(e.style[n??t]=r),i||delete e[t]}function Lc(e){return Te(e,"layer")}class zc{map(e,t){return $a(e)?this.mapFacet(e,t):function(e){return Te(e,"repeat")}(e)?this.mapRepeat(e,t):hc(e)?this.mapHConcat(e,t):mc(e)?this.mapVConcat(e,t):pc(e)?this.mapConcat(e,t):this.mapLayerOrUnit(e,t)}mapLayerOrUnit(e,t){if(Lc(e))return this.mapLayer(e,t);if(bs(e))return this.mapUnit(e,t);throw new Error($i(e))}mapLayer(e,t){return{...e,layer:e.layer.map((e=>this.mapLayerOrUnit(e,t)))}}mapHConcat(e,t){return{...e,hconcat:e.hconcat.map((e=>this.map(e,t)))}}mapVConcat(e,t){return{...e,vconcat:e.vconcat.map((e=>this.map(e,t)))}}mapConcat(e,t){const{concat:n,...i}=e;return{...i,concat:n.map((e=>this.map(e,t)))}}mapFacet(e,t){return{...e,spec:this.map(e.spec,t)}}mapRepeat(e,t){return{...e,spec:this.map(e.spec,t)}}}const Ic={zero:1,center:1,normalize:1};const jc=new Set([vo,xo,bo,Eo,ko,Fo,Co,wo,Do,Oo]),Mc=new Set([xo,bo,vo]);function Uc(e){return Ta(e)&&"quantitative"===Pa(e)&&!e.bin}function qc(e,t,{orient:n,type:i}){const r="x"===t?"y":"radius",o="x"===t&&["bar","area"].includes(i),a=e[t],s=e[r];if(Ta(a)&&Ta(s))if(Uc(a)&&Uc(s)){if(a.stack)return t;if(s.stack)return r;const e=Ta(a)&&!!a.aggregate;if(e!==(Ta(s)&&!!s.aggregate))return e?t:r;if(o){if("vertical"===n)return r;if("horizontal"===n)return t}}else{if(Uc(a))return t;if(Uc(s))return r}else{if(Uc(a)){if(o&&"vertical"===n)return;return t}if(Uc(s)){if(o&&"horizontal"===n)return;return r}}}function Wc(e,t){const n=Ao(e)?e:{type:e},i=n.type;if(!jc.has(i))return null;const r=qc(t,"x",n)||qc(t,"theta",n);if(!r)return null;const o=t[r],a=Ta(o)?Ha(o,{}):void 0,s=function(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(r),l=[],u=new Set;if(t[s]){const e=t[s],n=Ta(e)?Ha(e,{}):void 0;n&&n!==a&&(l.push(s),u.add(n))}const f="x"===s?"xOffset":"yOffset",d=t[f],p=Ta(d)?Ha(d,{}):void 0;p&&p!==a&&(l.push(f),u.add(p));const m=sn.reduce(((e,n)=>{if("tooltip"!==n&&$s(t,n)){const i=t[n];for(const t of(0,c.YO)(i)){const i=es(t);if(i.aggregate)continue;const r=Ha(i,{});r&&u.has(r)||e.push({channel:n,fieldDef:i})}}return e}),[]);let h;return void 0!==o.stack?h=(0,c.Lm)(o.stack)?o.stack?"zero":null:o.stack:Mc.has(i)&&(h="zero"),h&&(g=h,(0,c.mQ)(Ic,g))?Ss(t)&&0===m.length?null:(o?.scale?.type&&o?.scale?.type!==Wr.LINEAR&&o?.stack&&er(function(e){return`Stack is applied to a non-linear scale (${e}).`}(o.scale.type)),za(t[jt(r)])?(void 0!==o.stack&&er(`Cannot stack "${y=r}" if there is already "${y}2".`),null):(Ta(o)&&o.aggregate&&!Un.has(o.aggregate)&&er(`Stacking is applied even though the aggregate function is non-summative ("${o.aggregate}").`),{groupbyChannels:l,groupbyFields:u,fieldChannel:r,impute:null!==o.impute&&Po(i),stackBy:m,offset:h})):null;var g,y}function Gc(e,t,n){const i=Xn(e),r=pi("orient",i,n);if(i.orient=function(e,t,n){switch(e){case ko:case Fo:case Co:case Do:case So:case $o:return}const{x:i,y:r,x2:o,y2:a}=t;switch(e){case xo:if(Ta(i)&&(Hn(i.bin)||Ta(r)&&r.aggregate&&!i.aggregate))return"vertical";if(Ta(r)&&(Hn(r.bin)||Ta(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(a||o){if(n)return n;if(!o)return(Ta(i)&&i.type===Ir&&!Gn(i.bin)||La(i))&&Ta(r)&&Hn(r.bin)?"horizontal":"vertical";if(!a)return(Ta(r)&&r.type===Ir&&!Gn(r.bin)||La(r))&&Ta(i)&&Hn(i.bin)?"vertical":"horizontal"}case Eo:if(o&&(!Ta(i)||!Hn(i.bin))&&a&&(!Ta(r)||!Hn(r.bin)))return;case bo:if(a)return Ta(r)&&Hn(r.bin)?"horizontal":"vertical";if(o)return Ta(i)&&Hn(i.bin)?"vertical":"horizontal";if(e===Eo){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case wo:case Oo:{const t=Aa(i),o=Aa(r);if(n)return n;if(t&&!o)return"tick"!==e?"horizontal":"vertical";if(!t&&o)return"tick"!==e?"vertical":"horizontal";if(t&&o)return"vertical";{const e=Ia(i)&&i.type===Mr,t=Ia(r)&&r.type===Mr;if(e&&!t)return"vertical";if(!e&&t)return"horizontal"}return}}return"vertical"}(i.type,t,r),void 0!==r&&r!==i.orient&&er(`Specified orient "${i.orient}" overridden with "${r}".`),"bar"===i.type&&i.orient){const e=pi("cornerRadiusEnd",i,n);if(void 0!==e){const n="horizontal"===i.orient&&t.x2||"vertical"===i.orient&&t.y2?["cornerRadius"]:qo[i.orient];for(const t of n)i[t]=e;void 0!==i.cornerRadiusEnd&&delete i.cornerRadiusEnd}}const o=pi("opacity",i,n),a=pi("fillOpacity",i,n);void 0===o&&void 0===a&&(i.opacity=function(e,t){if(V([ko,Oo,Fo,Co],e)&&!Ss(t))return.7;return}(i.type,t));return void 0===pi("cursor",i,n)&&(i.cursor=function(e,t,n){if(t.href||e.href||pi("href",e,n))return"pointer";return e.cursor}(i,t,n)),i}function Hc(e){const{point:t,line:n,...i}=e;return oe(i).length>1?i:i.type}function Bc(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:G(e[t],["point","line"])});return e}function Vc(e,t={},n){return"transparent"===e.point?{opacity:0}:e.point?(0,c.Gv)(e.point)?e.point:{}:void 0!==e.point?null:t.point||n.shape?(0,c.Gv)(t.point)?t.point:{}:void 0}function Yc(e,t={}){return e.line?!0===e.line?{}:e.line:void 0!==e.line?null:t.line?!0===t.line?{}:t.line:void 0}class Kc{constructor(){this.name="path-overlay"}hasMatchingType(e,t){if(bs(e)){const{mark:n,encoding:i}=e,r=Ao(n)?n:{type:n};switch(r.type){case"line":case"rule":case"trail":return!!Vc(r,t[r.type],i);case"area":return!!Vc(r,t[r.type],i)||!!Yc(r,t[r.type])}}return!1}run(e,t,n){const{config:i}=t,{params:r,projection:o,mark:a,name:s,encoding:c,...l}=e,u=Os(c,i),f=Ao(a)?a:{type:a},d=Vc(f,i[f.type],u),p="area"===f.type&&Yc(f,i[f.type]),m=[{name:s,...r?{params:r}:{},mark:Hc({..."area"===f.type&&void 0===f.opacity&&void 0===f.fillOpacity?{opacity:.7}:{},...f}),encoding:G(u,["shape"])}],h=Wc(Gc(f,u,i),u);let g=u;if(h){const{fieldChannel:e,offset:t}=h;g={...u,[e]:{...u[e],...t?{stack:t}:{}}}}return g=G(g,["y2","x2"]),p&&m.push({...o?{projection:o}:{},mark:{type:"line",...W(f,["clip","interpolate","tension","tooltip"]),...p},encoding:g}),d&&m.push({...o?{projection:o}:{},mark:{type:"point",opacity:1,filled:!0,...W(f,["clip","tooltip"]),...d},encoding:g}),n({...l,layer:m},{...t,config:Bc(i)})}}function Xc(e,t){return t?ba(e)?nl(e,t):Zc(e,t):e}function Qc(e,t){return t?nl(e,t):e}function Jc(e,t,n){const i=t[e];return r=i,!(0,c.Kg)(r)&&Te(r,"repeat")?i.repeat in n?{...t,[e]:n[i.repeat]}:void er(function(e){return`Unknown repeated value "${e}".`}(i.repeat)):t;var r}function Zc(e,t){if(void 0!==(e=Jc("field",e,t))){if(null===e)return null;if(ka(e)&&ya(e.sort)){const n=Jc("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function el(e,t){if(Ta(e))return Zc(e,t);{const n=Jc("datum",e,t);return n===e||n.type||(n.type="nominal"),n}}function tl(e,t){if(!za(e)){if(Ca(e)){const n=el(e.condition,t);if(n)return{...e,condition:n};{const{condition:t,...n}=e;return n}}return e}{const n=el(e,t);if(n)return n;if(Na(e))return{condition:e.condition}}}function nl(e,t){const n={};for(const i in e)if(Te(e,i)){const r=e[i];if((0,c.cy)(r))n[i]=r.map((e=>tl(e,t))).filter((e=>e));else{const e=tl(r,t);void 0!==e&&(n[i]=e)}}return n}class il{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(bs(e)){const{encoding:t,mark:n}=e;if("line"===n||Ao(n)&&"line"===n.type)for(const e of At){const n=t[zt(e)];if(t[e]&&(Ta(n)&&!Hn(n.bin)||Ra(n)))return!0}}return!1}run(e,t,n){const{encoding:i,mark:r}=e;var o,a;return er((o=!!i.x2,a=!!i.y2,`Line mark is for continuous lines and thus cannot be used with ${o&&a?"x2 and y2":o?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),n({...e,mark:(0,c.Gv)(r)?{...r,type:"rule"}:"rule"},t)}}function rl({parentEncoding:e,encoding:t={},layer:n}){let i={};if(e){const r=new Set([...oe(e),...oe(t)]);for(const o of r){const r=t[o],a=e[o];if(za(r)){const e={...a,...r};i[o]=e}else Ca(r)?i[o]={...r,condition:{...a,...r.condition}}:r||null===r?i[o]=r:(n||ja(a)||Zn(a)||za(a)||(0,c.cy)(a))&&(i[o]=a)}}else i=t;return!i||re(i)?void 0:i}function ol(e){const{parentProjection:t,projection:n}=e;return t&&n&&er(function(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${Ce(t)} is overridden by a child projection ${Ce(n)}.`}({parentProjection:t,projection:n})),n??t}function al(e){return Te(e,"filter")}function sl(e){return Te(e,"stop")}function cl(e){return Te(e,"lookup")}function ll(e){return Te(e,"pivot")}function ul(e){return Te(e,"density")}function fl(e){return Te(e,"quantile")}function dl(e){return Te(e,"regression")}function pl(e){return Te(e,"loess")}function ml(e){return Te(e,"sample")}function hl(e){return Te(e,"window")}function gl(e){return Te(e,"joinaggregate")}function yl(e){return Te(e,"flatten")}function vl(e){return Te(e,"calculate")}function bl(e){return Te(e,"bin")}function xl(e){return Te(e,"impute")}function $l(e){return Te(e,"timeUnit")}function wl(e){return Te(e,"aggregate")}function kl(e){return Te(e,"stack")}function Sl(e){return Te(e,"fold")}function El(e){return Te(e,"extent")&&!Te(e,"density")&&!Te(e,"regression")}function Dl(e,t){const{transform:n,...i}=e;if(n){const e=n.map((e=>{if(al(e))return{filter:Fl(e,t)};if(bl(e)&&Bn(e.bin))return{...e,bin:Nl(e.bin)};if(cl(e)){const{selection:t,...n}=e.from;return t?{...e,from:{param:t,...n}}:e}return e}));return{...i,transform:e}}return e}function Ol(e,t){const n=U(e);if(Ta(n)&&Bn(n.bin)&&(n.bin=Nl(n.bin)),Ma(n)&&n.scale?.domain?.selection){const{selection:e,...t}=n.scale.domain;n.scale.domain={...t,...e?{param:e}:{}}}if(Na(n))if((0,c.cy)(n.condition))n.condition=n.condition.map((e=>{const{selection:n,param:i,test:r,...o}=e;return i?e:{...o,test:Fl(e,t)}}));else{const{selection:e,param:i,test:r,...o}=Ol(n.condition,t);n.condition=i?n.condition:{...o,test:Fl(n.condition,t)}}return n}function Nl(e){const t=e.extent;if(t?.selection){const{selection:n,...i}=t;return{...e,extent:{...i,param:n}}}return e}function Fl(e,t){const n=e=>M(e,(e=>{var n;const i={param:e,empty:t.emptySelections[e]??!0};return(n=t.selectionPredicates)[e]??(n[e]=[]),t.selectionPredicates[e].push(i),i}));return e.selection?n(e.selection):M(e.test||e.filter,(e=>e.selection?n(e.selection):e))}class Cl extends zc{map(e,t){const n=t.selections??[];if(e.params&&!bs(e)){const t=[];for(const i of e.params)fc(i)?n.push(i):t.push(i);e.params=t}return t.selections=n,super.map(e,t)}mapUnit(e,t){const n=t.selections;if(!n||!n.length)return e;const i=(t.path??[]).concat(e.name),r=[];for(const t of n)if(t.views&&t.views.length)for(const n of t.views)((0,c.Kg)(n)&&(n===e.name||i.includes(n))||(0,c.cy)(n)&&n.map((e=>i.indexOf(e))).every(((e,t,n)=>-1!==e&&(0===t||e>n[t-1]))))&&r.push(t);else r.push(t);return r.length&&(e.params=r),e}}for(const e of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const t=Cl.prototype[e];Cl.prototype[e]=function(e,n){return t.call(this,e,Tl(e,n))}}function Tl(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function Pl(e,t){void 0===t&&(t=Cc(e.config));const n=function(e,t={}){const n={config:t};return Al.map(Rl.map(_l.map(e,n),n),n)}(e,t),{width:i,height:r}=e,o=function(e,t,n){let{width:i,height:r}=t;const o=bs(e)||Lc(e),a={};o?"container"==i&&"container"==r?(a.type="fit",a.contains="padding"):"container"==i?(a.type="fit-x",a.contains="padding"):"container"==r&&(a.type="fit-y",a.contains="padding"):("container"==i&&(er(ki("width")),i=void 0),"container"==r&&(er(ki("height")),r=void 0));const s={type:"pad",...a,...n?Ll(n.autosize):{},...Ll(e.autosize)};"fit"!==s.type||o||(er(wi),s.type="pad");"container"==i&&"fit"!=s.type&&"fit-x"!=s.type&&er(Si("width"));"container"==r&&"fit"!=s.type&&"fit-y"!=s.type&&er(Si("height"));if(Fe(s,{type:"pad"}))return;return s}(n,{width:i,height:r,autosize:e.autosize},t);return{...n,...o?{autosize:o}:{}}}const Rl=new class extends zc{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[Is,Ws,Ks,new Kc,new il]}map(e,t){if(bs(e)){const n=$s(e.encoding,Pe),i=$s(e.encoding,Re),r=$s(e.encoding,_e);if(n||i||r)return this.mapFacetedUnit(e,t)}return super.map(e,t)}mapUnit(e,t){const{parentEncoding:n,parentProjection:i}=t,r=Qc(e.encoding,t.repeater),o={...e,...e.name?{name:[t.repeaterPrefix,e.name].filter((e=>e)).join("_")}:{},...r?{encoding:r}:{}};if(n||i)return this.mapUnitWithParentEncodingOrProjection(o,t);const a=this.mapLayerOrUnit.bind(this);for(const e of this.nonFacetUnitNormalizers)if(e.hasMatchingType(o,t.config))return e.run(o,t,a);return o}mapRepeat(e,t){return function(e){return!(0,c.cy)(e.repeat)&&Te(e.repeat,"layer")}(e)?this.mapLayerRepeat(e,t):this.mapNonLayerRepeat(e,t)}mapLayerRepeat(e,t){const{repeat:n,spec:i,...r}=e,{row:o,column:a,layer:s}=n,{repeater:c={},repeaterPrefix:l=""}=t;return o||a?this.mapRepeat({...e,repeat:{...o?{row:o}:{},...a?{column:a}:{}},spec:{repeat:{layer:s},spec:i}},t):{...r,layer:s.map((e=>{const n={...c,layer:e},r=`${(i.name?`${i.name}_`:"")+l}child__layer_${le(e)}`,o=this.mapLayerOrUnit(i,{...t,repeater:n,repeaterPrefix:r});return o.name=r,o}))}}mapNonLayerRepeat(e,t){const{repeat:n,spec:i,data:r,...o}=e;!(0,c.cy)(n)&&e.columns&&(e=G(e,["columns"]),er(Ti("repeat")));const a=[],{repeater:s={},repeaterPrefix:l=""}=t,u=!(0,c.cy)(n)&&n.row||[s?s.row:null],f=!(0,c.cy)(n)&&n.column||[s?s.column:null],d=(0,c.cy)(n)&&n||[s?s.repeat:null];for(const e of d)for(const r of u)for(const o of f){const u={repeat:e,row:r,column:o,layer:s.layer},f=(i.name?`${i.name}_`:"")+l+"child__"+((0,c.cy)(n)?`${le(e)}`:(n.row?`row_${le(r)}`:"")+(n.column?`column_${le(o)}`:"")),d=this.map(i,{...t,repeater:u,repeaterPrefix:f});d.name=f,a.push(G(d,["data"]))}const p=(0,c.cy)(n)?e.columns:n.column?n.column.length:1;return{data:i.data??r,align:"all",...o,columns:p,concat:a}}mapFacet(e,t){const{facet:n}=e;return ba(n)&&e.columns&&(e=G(e,["columns"]),er(Ti("facet"))),super.mapFacet(e,t)}mapUnitWithParentEncodingOrProjection(e,t){const{encoding:n,projection:i}=e,{parentEncoding:r,parentProjection:o,config:a}=t,s=ol({parentProjection:o,projection:i}),c=rl({parentEncoding:r,encoding:Qc(n,t.repeater)});return this.mapUnit({...e,...s?{projection:s}:{},...c?{encoding:c}:{}},{config:a})}mapFacetedUnit(e,t){const{row:n,column:i,facet:r,...o}=e.encoding,{mark:a,width:s,projection:c,height:l,view:u,params:f,encoding:d,...p}=e,{facetMapping:m,layout:h}=this.getFacetMappingAndLayout({row:n,column:i,facet:r},t),g=Qc(o,t.repeater);return this.mapFacet({...p,...h,facet:m,spec:{...s?{width:s}:{},...l?{height:l}:{},...u?{view:u}:{},...c?{projection:c}:{},mark:a,encoding:g,...f?{params:f}:{}}},t)}getFacetMappingAndLayout(e,t){const{row:n,column:i,facet:r}=e;if(n||i){r&&er(`Facet encoding dropped as ${(o=[...n?[Pe]:[],...i?[Re]:[]]).join(" and ")} ${o.length>1?"are":"is"} also specified.`);const t={},a={};for(const n of[Pe,Re]){const i=e[n];if(i){const{align:e,center:r,spacing:o,columns:s,...c}=i;t[n]=c;for(const e of["align","center","spacing"])void 0!==i[e]&&(a[e]??(a[e]={}),a[e][n]=i[e])}}return{facetMapping:t,layout:a}}{const{align:e,center:n,spacing:i,columns:o,...a}=r;return{facetMapping:Xc(a,t.repeater),layout:{...e?{align:e}:{},...n?{center:n}:{},...i?{spacing:i}:{},...o?{columns:o}:{}}}}var o}mapLayer(e,{parentEncoding:t,parentProjection:n,...i}){const{encoding:r,projection:o,...a}=e,s={...i,parentEncoding:rl({parentEncoding:t,encoding:r,layer:!0}),parentProjection:ol({parentProjection:n,projection:o})};return super.mapLayer({...a,...e.name?{name:[s.repeaterPrefix,e.name].filter((e=>e)).join("_")}:{}},s)}},_l=new class extends zc{map(e,t){return t.emptySelections??(t.emptySelections={}),t.selectionPredicates??(t.selectionPredicates={}),e=Dl(e,t),super.map(e,t)}mapLayerOrUnit(e,t){if((e=Dl(e,t)).encoding){const n={};for(const[i,r]of se(e.encoding))n[i]=Ol(r,t);e={...e,encoding:n}}return super.mapLayerOrUnit(e,t)}mapUnit(e,t){const{selection:n,...i}=e;return n?{...i,params:se(n).map((([e,n])=>{const{init:i,bind:r,empty:o,...a}=n;"single"===a.type?(a.type="point",a.toggle=!1):"multi"===a.type&&(a.type="point"),t.emptySelections[e]="none"!==o;for(const n of ae(t.selectionPredicates[e]??{}))n.empty="none"!==o;return{name:e,value:i,select:a,bind:r}}))}:e}},Al=new Cl;function Ll(e){return(0,c.Kg)(e)?{type:e}:e??{}}const zl=["background","padding"];function Il(e,t){const n={};for(const t of zl)e&&void 0!==e[t]&&(n[t]=ai(e[t]));return t&&(n.params=e.params),n}class jl{constructor(e={},t={}){this.explicit=e,this.implicit=t}clone(){return new jl(U(this.explicit),U(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(e){return xe(this.explicit[e],this.implicit[e])}getWithExplicit(e){return void 0!==this.explicit[e]?{explicit:!0,value:this.explicit[e]}:void 0!==this.implicit[e]?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,{value:t,explicit:n}){void 0!==t&&this.set(e,t,n)}set(e,t,n){return delete this[n?"implicit":"explicit"][e],this[n?"explicit":"implicit"][e]=t,this}copyKeyFromSplit(e,{explicit:t,implicit:n}){void 0!==t[e]?this.set(e,t[e],!0):void 0!==n[e]&&this.set(e,n[e],!1)}copyKeyFromObject(e,t){void 0!==t[e]&&this.set(e,t[e],!0)}copyAll(e){for(const t of oe(e.combine())){const n=e.getWithExplicit(t);this.setWithExplicit(t,n)}}}function Ml(e){return{explicit:!0,value:e}}function Ul(e){return{explicit:!1,value:e}}function ql(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:Wl(t,n,i,r)}}function Wl(e,t,n,i){return e.explicit&&t.explicit&&er(function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${Ce(n)} and ${Ce(i)}). Using ${Ce(n)}.`}(n,i,e.value,t.value)),e}function Gl(e,t,n,i,r=Wl){return void 0===e||void 0===e.value?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:Fe(e.value,t.value)?e:r(e,t,n,i)}class Hl extends jl{constructor(e={},t={},n=!1){super(e,t),this.explicit=e,this.implicit=t,this.parseNothing=n}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}function Bl(e){return Te(e,"url")}function Vl(e){return Te(e,"values")}function Yl(e){return Te(e,"name")&&!Bl(e)&&!Vl(e)&&!Kl(e)}function Kl(e){return e&&(Xl(e)||Ql(e)||Jl(e))}function Xl(e){return Te(e,"sequence")}function Ql(e){return Te(e,"sphere")}function Jl(e){return Te(e,"graticule")}var Zl;function eu({invalid:e,isPath:t}){switch(Bo(e,{isPath:t})){case"filter":return{marks:"exclude-invalid-values",scales:"exclude-invalid-values"};case"break-paths-show-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"include-invalid-values"};case"break-paths-filter-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"exclude-invalid-values"};case"show":return{marks:"include-invalid-values",scales:"include-invalid-values"}}}function tu(e){const{signals:t,hasLegend:n,index:i,...r}=e;return r.field=ge(r.field),r}function nu(e,t=!0,n=c.D_){if((0,c.cy)(e)){const i=e.map((e=>nu(e,t,n)));return t?`[${i.join(", ")}]`:i}return tr(e)?n(t?sr(e):function(e){const t=ar(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}(e)):t?n(Ce(e)):e}function iu(e,t){for(const n of ae(e.component.selection??{})){const i=n.name;let r=`${i}${Ff}, ${"global"===n.resolve?"true":`{unit: ${Rf(e)}}`}`;for(const i of Pf)i.defined(n)&&(i.signals&&(t=i.signals(e,n,t)),i.modifyExpr&&(r=i.modifyExpr(e,n,r)));t.push({name:i+Cf,on:[{events:{signal:n.name+Ff},update:`modify(${(0,c.r$)(n.name+Nf)}, ${r})`}]})}return au(t)}function ru(e,t){if(e.component.selection&&oe(e.component.selection).length){const n=(0,c.r$)(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:(0,R.P)("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return au(t)}function ou(e,t){for(const n of ae(e.component.selection??{}))for(const i of Pf)i.defined(n)&&i.marks&&(t=i.marks(e,n,t));return t}function au(e){return e.map((e=>(e.on&&!e.on.length&&delete e.on,e)))}!function(e){e[e.Raw=0]="Raw",e[e.Main=1]="Main",e[e.Row=2]="Row",e[e.Column=3]="Column",e[e.Lookup=4]="Lookup",e[e.PreFilterInvalid=5]="PreFilterInvalid",e[e.PostFilterInvalid=6]="PostFilterInvalid"}(Zl||(Zl={}));class su{constructor(e,t){this.debugName=t,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,t){this._children.includes(e)?er("Attempt to add the same child twice."):void 0!==t?this._children.splice(t,0,e):this._children.push(e)}removeChild(e){const t=this._children.indexOf(e);return this._children.splice(t,1),t}remove(){let e=this._parent.removeChild(this);for(const t of this._children)t._parent=this._parent,this._parent.addChild(t,e++)}insertAsParentOf(e){const t=e.parent;t.removeChild(this),this.parent=t,e.parent=this}swapWithParent(){const e=this._parent,t=e.parent;for(const t of this._children)t.parent=e;this._children=[],e.removeChild(this);const n=e.parent.removeChild(e);this._parent=t,t.addChild(this,n),e.parent=this}}class cu extends su{clone(){const e=new this.constructor;return e.debugName=`clone_${this.debugName}`,e._source=this._source,e._name=`clone_${this._name}`,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}constructor(e,t,n,i){super(e,t),this.type=n,this.refCounts=i,this._source=this._name=t,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return void 0===this._hash&&(this._hash=`Output ${we()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}function lu(e){return void 0!==e.as}function uu(e){return`${e}_end`}class fu extends su{clone(){return new fu(null,U(this.timeUnits))}constructor(e,t){super(e),this.timeUnits=t}static makeFromEncoding(e,t){const n=t.reduceFieldDef(((e,n,i)=>{const{field:r,timeUnit:o}=n;if(o){let a;if(ur(o)){if(bm(t)){const{mark:e,markDef:i,config:s}=t,c=Sa({fieldDef:n,markDef:i,config:s});(Ro(e)||c)&&(a={timeUnit:br(o),field:r})}}else a={as:Ha(n,{forAs:!0}),field:r,timeUnit:o};if(bm(t)){const{mark:e,markDef:r,config:o}=t,s=Sa({fieldDef:n,markDef:r,config:o});Ro(e)&&un(i)&&.5!==s&&(a.rectBandPosition=s)}a&&(e[H(a)]=a)}return e}),{});return re(n)?null:new fu(e,n)}static makeFromTransform(e,t){const{timeUnit:n,...i}={...t},r={...i,timeUnit:br(n)};return new fu(e,{[H(r)]:r})}merge(e){this.timeUnits={...this.timeUnits};for(const t in e.timeUnits)this.timeUnits[t]||(this.timeUnits[t]=e.timeUnits[t]);for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}removeFormulas(e){const t={};for(const[n,i]of se(this.timeUnits)){const r=lu(i)?i.as:`${i.field}_end`;e.has(r)||(t[n]=i)}this.timeUnits=t}producedFields(){return new Set(ae(this.timeUnits).map((e=>lu(e)?e.as:uu(e.field))))}dependentFields(){return new Set(ae(this.timeUnits).map((e=>e.field)))}hash(){return`TimeUnit ${H(this.timeUnits)}`}assemble(){const e=[];for(const t of ae(this.timeUnits)){const{rectBandPosition:n}=t,i=br(t.timeUnit);if(lu(t)){const{field:r,as:o}=t,{unit:a,utc:s,...c}=i,l=[o,`${o}_end`];e.push({field:ge(r),type:"timeunit",...a?{units:mr(a)}:{},...s?{timezone:"utc"}:{},...c,as:l}),e.push(...hu(l,n,i))}else if(t){const{field:r}=t,o=r.replaceAll("\\.","."),a=mu({timeUnit:i,field:o}),s=uu(o);e.push({type:"formula",expr:a,as:s}),e.push(...hu([o,s],n,i))}}return e}}const du="offsetted_rect_start",pu="offsetted_rect_end";function mu({timeUnit:e,field:t,reverse:n}){const{unit:i,utc:r}=e,o=hr(i),{part:a,step:s}=wr(o,e.step);return`${r?"utcOffset":"timeOffset"}('${a}', datum['${t}'], ${n?-s:s})`}function hu([e,t],n,i){if(void 0!==n&&.5!==n){const r=`datum['${e}']`,o=`datum['${t}']`;return[{type:"formula",expr:gu([mu({timeUnit:i,field:e,reverse:!0}),r],n+.5),as:`${e}_${du}`},{type:"formula",expr:gu([r,o],n+.5),as:`${e}_${pu}`}]}return[]}function gu([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const yu="_tuple_fields";class vu{constructor(...e){this.items=e,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const bu={defined:()=>!0,parse:(e,t,n)=>{const i=t.name,r=t.project??(t.project=new vu),o={},a={},s=new Set,l=(e,t)=>{const n="visual"===t?e.channel:e.field;let r=le(`${i}_${n}`);for(let e=1;s.has(r);e++)r=le(`${i}_${n}_${e}`);return s.add(r),{[t]:r}},u=t.type,f=e.config.selection[u],d=void 0!==n.value?(0,c.YO)(n.value):null;let{fields:p,encodings:m}=(0,c.Gv)(n.select)?n.select:{};if(!p&&!m&&d)for(const e of d)if((0,c.Gv)(e))for(const t of oe(e))h=t,(0,c.mQ)(Rt,h)?(m||(m=[])).push(t):"interval"===u?(er('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),m=f.encodings):(p??(p=[])).push(t);var h;p||m||(m=f.encodings,"fields"in f&&(p=f.fields));for(const t of m??[]){const n=e.fieldDef(t);if(n){let i=n.field;if(n.aggregate){er(Ni(t,n.aggregate));continue}if(!i){er(Oi(t));continue}if(n.timeUnit&&!ur(n.timeUnit)){i=e.vgField(t);const r={timeUnit:n.timeUnit,as:i,field:n.field};a[H(r)]=r}if(!o[i]){const a={field:i,channel:t,type:"interval"===u&&Nn(t)&&to(e.getScaleComponent(t).get("type"))?"R":n.bin?"R-RE":"E",index:r.items.length};a.signals={...l(a,"data"),...l(a,"visual")},r.items.push(o[i]=a),r.hasField[i]=o[i],r.hasSelectionId=r.hasSelectionId||i===sc,vt(t)?(a.geoChannel=t,a.channel=yt(t),r.hasChannel[a.channel]=o[i]):r.hasChannel[t]=o[i]}}else er(Oi(t))}for(const e of p??[]){if(r.hasField[e])continue;const t={type:"E",field:e,index:r.items.length};t.signals={...l(t,"data")},r.items.push(t),r.hasField[e]=t,r.hasSelectionId=r.hasSelectionId||e===sc}d&&(t.init=d.map((e=>r.items.map((t=>(0,c.Gv)(e)?void 0!==e[t.geoChannel||t.channel]?e[t.geoChannel||t.channel]:e[t.field]:e))))),re(a)||(r.timeUnit=new fu(null,a))},signals:(e,t,n)=>{const i=t.name+yu;return n.filter((e=>e.name===i)).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map(tu)})}},xu=bu,$u={defined:e=>"interval"===e.type&&"global"===e.resolve&&e.bind&&"scales"===e.bind,parse:(e,t)=>{const n=t.scales=[];for(const i of t.project.items){const r=i.channel;if(!Nn(r))continue;const o=e.getScaleComponent(r),a=o?o.get("type"):void 0;"sequential"==a&&er("Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc"),o&&to(a)?(o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)):er("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter((e=>0===n.filter((t=>t.name===e.signals.data)).length));if(!e.parent||Su(e)||0===i.length)return n;const r=n.find((e=>e.name===t.name));let o=r.update;if(o.includes(Tf))r.update=`{${i.map((e=>`${(0,c.r$)(ge(e.field))}: ${e.signals.data}`)).join(", ")}}`;else{for(const e of i){const t=`${(0,c.r$)(ge(e.field))}: ${e.signals.data}`;o.includes(t)||(o=`${o.substring(0,o.length-1)}, ${t}}`)}r.update=o}return n.concat(i.map((e=>({name:e.signals.data}))))},signals:(e,t,n)=>{if(e.parent&&!Su(e))for(const e of t.scales){const t=n.find((t=>t.name===e.signals.data));t.push="outer",delete t.value,delete t.update}return n}},wu=$u;function ku(e,t){return`domain(${(0,c.r$)(e.scaleName(t))})`}function Su(e){return e.parent&&wm(e.parent)&&(!e.parent.parent??Su(e.parent.parent))}const Eu="_brush",Du="_scale_trigger",Ou="geo_interval_init_tick",Nu="_init",Fu={defined:e=>"interval"===e.type,parse:(e,t,n)=>{var i;if(e.hasProjection){const e={...(0,c.Gv)(n.select)?n.select:{}};e.fields=[sc],e.encodings||(e.encodings=n.value?oe(n.value):[Be,He]),n.select={type:"interval",...e}}if(t.translate&&!wu.defined(t)){const e=`!event.item || event.item.mark.name !== ${(0,c.r$)(t.name+Eu)}`;for(const n of t.events){if(!n.between){er(`${n} is not an ordered event stream for interval selections.`);continue}const t=(0,c.YO)((i=n.between[0]).filter??(i.filter=[]));t.includes(e)||t.push(e)}}},signals:(e,t,n)=>{const i=t.name,r=i+Ff,o=ae(t.project.hasChannel).filter((e=>e.channel===Ae||e.channel===Le)),a=t.init?t.init[0]:null;if(n.push(...o.reduce(((n,i)=>n.concat(function(e,t,n,i){const r=!e.hasProjection,o=n.channel,a=n.signals.visual,s=(0,c.r$)(r?e.scaleName(o):e.projectionName()),l=e=>`scale(${s}, ${e})`,u=e.getSizeSignalRef(o===Ae?"width":"height").signal,f=`${o}(unit)`,d=t.events.reduce(((e,t)=>[...e,{events:t.between[0],update:`[${f}, ${f}]`},{events:t,update:`[${a}[0], clamp(${f}, 0, ${u})]`}]),[]);if(r){const r=n.signals.data,c=wu.defined(t),u=e.getScaleComponent(o),f=u?u.get("type"):void 0,p=i?{init:nu(i,!0,l)}:{value:[]};return d.push({events:{signal:t.name+Du},update:to(f)?`[${l(`${r}[0]`)}, ${l(`${r}[1]`)}]`:"[0, 0]"}),c?[{name:r,on:[]}]:[{name:a,...p,on:d},{name:r,...i?{init:nu(i)}:{},on:[{events:{signal:a},update:`${a}[0] === ${a}[1] ? null : invert(${s}, ${a})`}]}]}{const e=o===Ae?0:1,n=t.name+Nu;return[{name:a,...i?{init:`[${n}[0][${e}], ${n}[1][${e}]]`}:{value:[]},on:d}]}}(e,t,i,a&&a[i.index]))),[])),e.hasProjection){const s=(0,c.r$)(e.projectionName()),l=e.projectionName()+"_center",{x:u,y:f}=t.project.hasChannel,d=u&&u.signals.visual,p=f&&f.signals.visual,m=u?a&&a[u.index]:`${l}[0]`,h=f?a&&a[f.index]:`${l}[1]`,g=t=>e.getSizeSignalRef(t).signal,y=`[[${d?d+"[0]":"0"}, ${p?p+"[0]":"0"}],[${d?d+"[1]":g("width")}, ${p?p+"[1]":g("height")}]]`;if(a&&(n.unshift({name:i+Nu,init:`[scale(${s}, [${u?m[0]:m}, ${f?h[0]:h}]), scale(${s}, [${u?m[1]:m}, ${f?h[1]:h}])]`}),!u||!f)){n.find((e=>e.name===l))||n.unshift({name:l,update:`invert(${s}, [${g("width")}/2, ${g("height")}/2])`})}const v=`vlSelectionTuples(${`intersect(${y}, {markname: ${(0,c.r$)(e.getName("marks"))}}, unit.mark)`}, ${`{unit: ${Rf(e)}}`})`,b=o.map((e=>e.signals.visual));return n.concat({name:r,on:[{events:[...b.length?[{signal:b.join(" || ")}]:[],...a?[{signal:Ou}]:[]],update:v}]})}{if(!wu.defined(t)){const t=i+Du,r=o.map((t=>{const n=t.channel,{data:i,visual:r}=t.signals,o=(0,c.r$)(e.scaleName(n)),a=to(e.getScaleComponent(n).get("type"))?"+":"";return`(!isArray(${i}) || (${a}invert(${o}, ${r})[0] === ${a}${i}[0] && ${a}invert(${o}, ${r})[1] === ${a}${i}[1]))`}));r.length&&n.push({name:t,value:{},on:[{events:o.map((t=>({scale:e.scaleName(t.channel)}))),update:r.join(" && ")+` ? ${t} : {}`}]})}const s=o.map((e=>e.signals.data)),l=`unit: ${Rf(e)}, fields: ${i+yu}, values`;return n.concat({name:r,...a?{init:`{${l}: ${nu(a)}}`}:{},...s.length?{on:[{events:[{signal:s.join(" || ")}],update:`${s.join(" && ")} ? {${l}: [${s}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>{if(bm(e)&&e.hasProjection&&t.init){n.filter((e=>e.name===Ou)).length||n.unshift({name:Ou,value:null,on:[{events:"timer{1}",update:`${Ou} === null ? {} : ${Ou}`}]})}return n},marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,a=r?.signals.visual,s=o?.signals.visual,l=`data(${(0,c.r$)(t.name+Nf)})`;if(wu.defined(t)||!r&&!o)return n;const u={x:void 0!==r?{signal:`${a}[0]`}:{value:0},y:void 0!==o?{signal:`${s}[0]`}:{value:0},x2:void 0!==r?{signal:`${a}[1]`}:{field:{group:"width"}},y2:void 0!==o?{signal:`${s}[1]`}:{field:{group:"height"}}};if("global"===t.resolve)for(const t of oe(u))u[t]=[{test:`${l}.length && ${l}[0].unit === ${Rf(e)}`,...u[t]},{value:0}];const{fill:f,fillOpacity:d,cursor:p,...m}=t.mark,h=oe(m).reduce(((e,t)=>(e[t]=[{test:[void 0!==r&&`${a}[0] !== ${a}[1]`,void 0!==o&&`${s}[0] !== ${s}[1]`].filter((e=>e)).join(" && "),value:m[t]},{value:null}],e)),{}),g=p??(t.translate?"move":null);return[{name:`${i+Eu}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:d}},update:u}},...n,{name:i+Eu,type:"rect",clip:!0,encode:{enter:{...g?{cursor:{value:g}}:{},fill:{value:"transparent"}},update:{...u,...h}}}]}},Cu=Fu;const Tu={defined:e=>"point"===e.type,signals:(e,t,n)=>{const i=t.name,r=i+yu,o=t.project,a="(item().isVoronoi ? datum.datum : datum)",s=ae(e.component.selection??{}).reduce(((e,t)=>"interval"===t.type?e.concat(t.name+Eu):e),[]).map((e=>`indexof(item().mark.name, '${e}') < 0`)).join(" && "),l="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(s?` && ${s}`:"");let u=`unit: ${Rf(e)}, `;if(t.project.hasSelectionId)u+=`${sc}: ${a}[${(0,c.r$)(sc)}]`;else{u+=`fields: ${r}, values: [${o.items.map((t=>{const n=e.fieldDef(t.channel);return n?.bin?`[${a}[${(0,c.r$)(e.vgField(t.channel,{}))}], ${a}[${(0,c.r$)(e.vgField(t.channel,{binSuffix:"end"}))}]]`:`${a}[${(0,c.r$)(t.field)}]`})).join(", ")}]`}const f=t.events;return n.concat([{name:i+Ff,on:f?[{events:f,update:`${l} ? {${u}} : null`,force:!0}]:[]}])}},Pu=Tu;function Ru({model:e,channelDef:t,vgChannel:n,invalidValueRef:i,mainRefFn:r}){const o=Na(t)&&t.condition;let a=[];if(o){a=(0,c.YO)(o).map((t=>{const n=r(t);if(function(e){return Te(e,"param")}(t)){const{param:i,empty:r}=t;return{test:Mf(e,{param:i,empty:r}),...n}}return{test:qf(e,t.test),...n}}))}void 0!==i&&a.push(i);const s=r(t);return void 0!==s&&a.push(s),a.length>1||1===a.length&&Boolean(a[0].test)?{[n]:a}:1===a.length?{[n]:a[0]}:{}}function _u(e,t="text"){const n=e.encoding[t];return Ru({model:e,channelDef:n,vgChannel:t,mainRefFn:t=>Au(t,e.config),invalidValueRef:void 0})}function Au(e,t,n="datum"){if(e){if(ja(e))return ci(e.value);if(za(e)){const{format:i,formatType:r}=Za(e);return oa({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function Lu(e,t={}){const{encoding:n,markDef:i,config:r,stack:o}=e,a=n.tooltip;if((0,c.cy)(a))return{tooltip:Iu({tooltip:a},o,r,t)};{const s=t.reactiveGeom?"datum.datum":"datum";return Ru({model:e,channelDef:a,vgChannel:"tooltip",mainRefFn:e=>{const a=Au(e,r,s);if(a)return a;if(null===e)return;let l=pi("tooltip",i,r);return!0===l&&(l={content:"encoding"}),(0,c.Kg)(l)?{value:l}:(0,c.Gv)(l)?Zn(l)?l:"encoding"===l.content?Iu(n,o,r,t):{signal:s}:void 0},invalidValueRef:void 0})}}function zu(e,t,n,{reactiveGeom:i}={}){const r={...n,...n.tooltipFormat},o=new Set,a=i?"datum.datum":"datum",s=[];function l(n,i){const l=zt(i),u=Ia(n)?n:{...n,type:e[l].type},f=u.title||Ja(u,r),d=(0,c.YO)(f).join(", ").replaceAll(/"/g,'\\"');let p;if(un(i)){const t="x"===i?"x2":"y2",n=es(e[t]);if(Hn(u.bin)&&n){const e=Ha(u,{expr:a}),i=Ha(n,{expr:a}),{format:s,formatType:c}=Za(u);p=pa(e,i,s,c,r),o.add(t)}}if((un(i)||i===We||i===Ue)&&t&&t.fieldChannel===i&&"normalize"===t.offset){const{format:e,formatType:t}=Za(u);p=oa({fieldOrDatumDef:u,format:e,formatType:t,expr:a,config:r,normalizeStack:!0}).signal}p??(p=Au(u,r,a).signal),s.push({channel:i,key:d,value:p})}Ns(e,((e,t)=>{Ta(e)?l(e,t):Fa(e)&&l(e.condition,t)}));const u={};for(const{channel:e,key:t,value:n}of s)o.has(e)||u[t]||(u[t]=n);return u}function Iu(e,t,n,{reactiveGeom:i}={}){const r=zu(e,t,n,{reactiveGeom:i}),o=se(r).map((([e,t])=>`"${e}": ${t}`));return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function ju(e){const{markDef:t,config:n}=e,i=pi("aria",t,n);return!1===i?{}:{...i?{aria:i}:{},...Mu(e),...Uu(e)}}function Mu(e){const{mark:t,markDef:n,config:i}=e;if(!1===i.aria)return{};const r=pi("ariaRoleDescription",n,i);return null!=r?{ariaRoleDescription:{value:r}}:(0,c.mQ)(ii,t)?{}:{ariaRoleDescription:{value:t}}}function Uu(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return Ru({model:e,channelDef:o,vgChannel:"description",mainRefFn:t=>Au(t,e.config),invalidValueRef:void 0});const a=pi("description",n,i);if(null!=a)return{description:ci(a)};if(!1===i.aria)return{};const s=zu(t,r,i);return re(s)?void 0:{description:{signal:se(s).map((([e,t],n)=>`"${n>0?"; ":""}${e}: " + (${t})`)).join(" + ")}}}function qu(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:a}=n;let{defaultRef:s,defaultValue:c}=n;const l=r[e];void 0===s&&(c??(c=pi(e,i,o,{vgChannel:a,ignoreVgConfig:!Na(l)})),void 0!==c&&(s=ci(c)));const u={markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e)},f=Ko({...u,scaleChannel:e,channelDef:l});return Ru({model:t,channelDef:l,vgChannel:a??e,invalidValueRef:f,mainRefFn:t=>ea({...u,channel:e,channelDef:t,stack:null,defaultRef:s})})}function Wu(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,a=t.filled??pi("filled",n,r),s=V(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,c=pi(!0===a?"color":void 0,n,r,{vgChannel:"fill"})??r.mark[!0===a&&"color"]??s,l=pi(!1===a?"color":void 0,n,r,{vgChannel:"stroke"})??r.mark[!1===a&&"color"],u=a?"fill":"stroke",f={...c?{fill:ci(c)}:{},...l?{stroke:ci(l)}:{}};return n.color&&(a?n.fill:n.stroke)&&er(Li("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...qu("color",e,{vgChannel:u,defaultValue:a?c:l}),...qu("fill",e,{defaultValue:i.fill?c:void 0}),...qu("stroke",e,{defaultValue:i.stroke?l:void 0})}}function Gu(e){const{encoding:t,mark:n}=e,i=t.order;return!Po(n)&&ja(i)?Ru({model:e,channelDef:i,vgChannel:"zindex",mainRefFn:e=>ci(e.value),invalidValueRef:void 0}):{}}function Hu({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,a=t[o],s=n[o];if(("xOffset"===o||"yOffset"===o)&&s){return{offsetType:"encoding",offset:ea({channel:o,channelDef:s,markDef:t,config:i?.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:ci(a),bandPosition:r})}}const c=t[o];return c?{offsetType:"visual",offset:c}:{}}function Bu(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:a,stack:s}=t,c=r[e],l=r[jt(e)],u=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:p}=Hu({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),m=Vu({model:t,defaultPos:n,channel:e,scaleName:u,scale:f}),h=!c&&un(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:function(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o,markDef:a}=e;if(za(n)&&r&&t===r.fieldChannel){if(Ta(n)){let e=n.bandPosition;if(void 0!==e||"text"!==a.type||"radius"!==t&&"theta"!==t||(e=.5),void 0!==e)return Zo({scaleName:i,fieldOrDatumDef:n,startSuffix:"start",bandPosition:e,offset:o})}return Jo(n,i,{suffix:"end"},{offset:o})}return Qo(e)}({channel:e,channelDef:c,channel2Def:l,markDef:o,config:a,scaleName:u,scale:f,stack:s,offset:d,defaultRef:m,bandPosition:"encoding"===p?0:void 0});return h?{[i||e]:h}:void 0}function Vu({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:a}=e;return()=>{const s=zt(n),c=It(n),l=pi(n,o,a,{vgChannel:c});if(void 0!==l)return ta(n,l);switch(t){case"zeroOrMin":return Yu({scaleName:i,scale:r,mode:"zeroOrMin",mainChannel:s,config:a});case"zeroOrMax":return Yu({scaleName:i,scale:r,mode:{zeroOrMax:{widthSignal:e.width.signal,heightSignal:e.height.signal}},mainChannel:s,config:a});case"mid":return{...e[Mt(n)],mult:.5}}}}function Yu({mainChannel:e,config:t,...n}){const i=Yo(n),{mode:r}=n;if(i)return i;switch(e){case"radius":{if("zeroOrMin"===r)return{value:0};const{widthSignal:e,heightSignal:t}=r.zeroOrMax;return{signal:`min(${e},${t})/2`}}case"theta":return"zeroOrMin"===r?{value:0}:{signal:"2*PI"};case"x":return"zeroOrMin"===r?{value:0}:{field:{group:"width"}};case"y":return"zeroOrMin"===r?{field:{group:"height"}}:{value:0}}}const Ku={left:"x",center:"xc",right:"x2"},Xu={top:"y",middle:"yc",bottom:"y2"};function Qu(e,t,n,i="middle"){if("radius"===e||"theta"===e)return It(e);const r="x"===e?"align":"baseline",o=pi(r,t,n);let a;return Zn(o)?(er(function(e){return`The ${e} for range marks cannot be an expression`}(r)),a=void 0):a=o,"x"===e?Ku[a||("top"===i?"left":"center")]:Xu[a||i]}function Ju(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?Zu(e,t,{defaultPos:n,defaultPos2:i}):Bu(e,t,{defaultPos:n})}function Zu(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,a=jt(e),s=Mt(e),c=function(e,t,n){const{encoding:i,mark:r,markDef:o,stack:a,config:s}=e,c=zt(n),l=Mt(n),u=It(n),f=i[c],d=e.scaleName(c),p=e.getScaleComponent(c),{offset:m}=Hu(n in i||n in o?{channel:n,markDef:o,encoding:i,model:e}:{channel:c,markDef:o,encoding:i,model:e});if(!f&&("x2"===n||"y2"===n)&&(i.latitude||i.longitude)){const t=Mt(n),i=e.markDef[t];return null!=i?{[t]:{value:i}}:{[u]:{field:e.getName(n)}}}const h=function({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:c,defaultRef:l}){if(za(t)&&s&&e.charAt(0)===s.fieldChannel.charAt(0))return Jo(t,o,{suffix:"start"},{offset:c});return Qo({channel:e,channelDef:n,scaleName:o,scale:a,stack:s,markDef:i,config:r,offset:c,defaultRef:l})}({channel:n,channelDef:f,channel2Def:i[n],markDef:o,config:s,scaleName:d,scale:p,stack:a,offset:m,defaultRef:void 0});if(void 0!==h)return{[u]:h};return ef(n,o)||ef(n,{[n]:hi(n,o,s.style),[l]:hi(l,o,s.style)})||ef(n,s[r])||ef(n,s.mark)||{[u]:Vu({model:e,defaultPos:t,channel:n,scaleName:d,scale:p})()}}(t,i,a);return{...Bu(e,t,{defaultPos:n,vgChannel:c[s]?Qu(e,r,o):It(e)}),...c}}function ef(e,t){const n=Mt(e),i=It(e);if(void 0!==t[i])return{[i]:ta(e,t[i])};if(void 0!==t[e])return{[i]:ta(e,t[e])};if(t[n]){const i=t[n];if(!Uo(i))return{[n]:ta(e,i)};er(function(e){return`Position range does not support relative band size for ${e}.`}(n))}}function tf(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.type,a=jt(t),s=Mt(t),l=i[t],u=i[a],f=e.getScaleComponent(t),d=f?f.get("type"):void 0,p=r.orient,m=i[s]??i.size??pi("size",r,n,{vgChannel:s}),h=Ut(t),g="bar"===o&&("x"===t?"vertical"===p:"horizontal"===p)||"tick"===o&&("y"===t?"vertical"===p:"horizontal"===p);return!Ta(l)||!(Gn(l.bin)||Hn(l.bin)||l.timeUnit&&!u)||m&&!Uo(m)||i[h]||eo(d)?(za(l)&&eo(d)||g)&&!u?function(e,t,n){const{markDef:i,encoding:r,config:o,stack:a}=n,s=i.orient,l=n.scaleName(t),u=n.getScaleComponent(t),f=Mt(t),d=jt(t),p=Ut(t),m=n.scaleName(p),h=n.getScaleComponent(qt(t)),g="tick"===i.type||"horizontal"===s&&"y"===t||"vertical"===s&&"x"===t;let y;(r.size||i.size)&&(g?y=qu("size",n,{vgChannel:f,defaultRef:ci(i.size)}):er(function(e){return`Cannot apply size to non-oriented mark "${e}".`}(i.type)));const v=!!y,b=Ea({channel:t,fieldDef:e,markDef:i,config:o,scaleType:(u||h)?.get("type"),useVlSizeChannel:g});y=y||{[f]:nf(f,m||l,h||u,o,b,!!e,i.type)};const x="band"===(u||h)?.get("type")&&Uo(b)&&!v?"top":"middle",$=Qu(t,i,o,x),w="xc"===$||"yc"===$,{offset:k,offsetType:S}=Hu({channel:t,markDef:i,encoding:r,model:n,bandPosition:w?.5:0}),E=Qo({channel:t,channelDef:e,markDef:i,config:o,scaleName:l,scale:u,stack:a,offset:k,defaultRef:Vu({model:n,defaultPos:"mid",channel:t,scaleName:l,scale:u}),bandPosition:w?"encoding"===S?0:.5:Zn(b)?{signal:`(1-${b})/2`}:Uo(b)?(1-b.band)/2:0});if(f)return{[$]:E,...y};{const e=It(d),t=y[f],n=k?{...t,offset:k}:t;return{[$]:E,[e]:(0,c.cy)(E)?[E[0],{...E[1],offset:n}]:{...E,offset:n}}}}(l,t,e):Zu(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function({fieldDef:e,fieldDef2:t,channel:n,model:i}){const{config:r,markDef:o,encoding:a}=i,s=i.getScaleComponent(n),c=i.scaleName(n),l=s?s.get("type"):void 0,u=s.get("reverse"),f=Ea({channel:n,fieldDef:e,markDef:o,config:r,scaleType:l}),d=i.component.axes[n]?.[0],p=d?.get("translate")??.5,m=un(n)?pi("binSpacing",o,r)??0:0,h=jt(n),g=It(n),y=It(h),v=mi("minBandSize",o,r),{offset:b}=Hu({channel:n,markDef:o,encoding:a,model:i,bandPosition:0}),{offset:x}=Hu({channel:h,markDef:o,encoding:a,model:i,bandPosition:0}),$=function({scaleName:e,fieldDef:t}){const n=Ha(t,{expr:"datum"});return`abs(scale("${e}", ${Ha(t,{expr:"datum",suffix:"end"})}) - scale("${e}", ${n}))`}({fieldDef:e,scaleName:c}),w=rf(n,m,u,p,b,v,$),k=rf(h,m,u,p,x??b,v,$),S=Zn(f)?{signal:`(1-${f.signal})/2`}:Uo(f)?(1-f.band)/2:.5,E=Sa({fieldDef:e,fieldDef2:t,markDef:o,config:r});if(Gn(e.bin)||e.timeUnit){const t=e.timeUnit&&.5!==E;return{[y]:of({fieldDef:e,scaleName:c,bandPosition:S,offset:k,useRectOffsetField:t}),[g]:of({fieldDef:e,scaleName:c,bandPosition:Zn(S)?{signal:`1-${S.signal}`}:1-S,offset:w,useRectOffsetField:t})}}if(Hn(e.bin)){const n=Jo(e,c,{},{offset:k});if(Ta(t))return{[y]:n,[g]:Jo(t,c,{},{offset:w})};if(Bn(e.bin)&&e.bin.step)return{[y]:n,[g]:{signal:`scale("${c}", ${Ha(e,{expr:"datum"})} + ${e.bin.step})`,offset:w}}}return void er(Xi(h))}({fieldDef:l,fieldDef2:u,channel:t,model:e})}function nf(e,t,n,i,r,o,a){if(Uo(r)){if(!n)return{mult:r.band,field:{group:e}};{const e=n.get("type");if("band"===e){let e=`bandwidth('${t}')`;1!==r.band&&(e=`${r.band} * ${e}`);const n=mi("minBandSize",{type:a},i);return{signal:n?`max(${ui(n)}, ${e})`:e}}1!==r.band&&(er(function(e){return`Cannot use the relative band size with ${e} scale.`}(e)),r=void 0)}}else{if(Zn(r))return r;if(r)return{value:r}}if(n){const e=n.get("range");if(ei(e)&&(0,c.Et)(e.step))return{value:e.step-2}}if(!o){const{bandPaddingInner:t,barBandPaddingInner:n,rectBandPaddingInner:r,tickBandPaddingInner:o}=i.scale,s=xe(t,"tick"===a?o:"bar"===a?n:r);if(Zn(s))return{signal:`(1 - (${s.signal})) * ${e}`};if((0,c.Et)(s))return{signal:`${1-s} * ${e}`}}return{value:$c(i.view,e)-2}}function rf(e,t,n,i,r,o,a){if(ht(e))return 0;const s="x"===e||"y2"===e,c=s?-t/2:t/2;if(Zn(n)||Zn(r)||Zn(i)||o){const e=ui(n),t=ui(r),l=ui(i),u=ui(o),f=o?`(${a} < ${u} ? ${s?"":"-"}0.5 * (${u} - (${a})) : ${c})`:c;return{signal:(l?`${l} + `:"")+(e?`(${e} ? -1 : 1) * `:"")+(t?`(${t} + ${f})`:f)}}return r=r||0,i+(n?-r-c:+r+c)}function of({fieldDef:e,scaleName:t,bandPosition:n,offset:i,useRectOffsetField:r}){return Zo({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i,...r?{startSuffix:du,endSuffix:pu}:{}})}const af=new Set(["aria","width","height"]);function sf(e,t){const{fill:n,stroke:i}="include"===t.color?Wu(e):{};return{...lf(e.markDef,t),...cf("fill",n),...cf("stroke",i),...qu("opacity",e),...qu("fillOpacity",e),...qu("strokeOpacity",e),...qu("strokeWidth",e),...qu("strokeDash",e),...Gu(e),...Lu(e),..._u(e,"href"),...ju(e)}}function cf(e,t){return t?{[e]:t}:{}}function lf(e,t){return ni.reduce(((n,i)=>(!af.has(i)&&Te(e,i)&&"ignore"!==t[i]&&(n[i]=ci(e[i])),n)),{})}function uf(e){const{config:t,markDef:n}=e,i=new Set;if(e.forEachFieldDef(((r,o)=>{let a;if(!Nn(o)||!(a=e.getScaleType(o)))return;const s=Mn(r.aggregate),c=Vo({scaleChannel:o,markDef:n,config:t,scaleType:a,isCountAggregate:s});if("break-paths-filter-domains"===(l=c)||"break-paths-show-domains"===l){const t=e.vgField(o,{expr:"datum",binSuffix:e.stack?.impute?"mid":void 0});t&&i.add(t)}var l})),i.size>0){return{defined:{signal:[...i].map((e=>Rr(e,!0))).join(" && ")}}}}function ff(e,t){if(void 0!==t)return{[e]:ci(t)}}const df="voronoi",pf={defined:e=>"point"===e.type&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(df)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(Po(o))return er(`The "nearest" transform is not supported for ${o} marks.`),n;const a={name:e.getName(df),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...Lu(e,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:i||!r?"datum.datum.x || 0":"0"},y:{expr:r||!i?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let s=0,c=!1;return n.forEach(((t,n)=>{const i=t.name??"";i===e.component.mark[0].name?s=n:i.includes(df)&&(c=!0)})),c||n.splice(s+1,0,a),n}},mf={defined:e=>"point"===e.type&&"global"===e.resolve&&e.bind&&"scales"!==e.bind&&!lc(e.bind),parse:(e,t,n)=>Af(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,a=t.init&&t.init[0],s=pf.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach(((e,r)=>{const l=le(`${i}_${e.field}`);n.filter((e=>e.name===l)).length||n.unshift({name:l,...a?{init:nu(a[r])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${s}[${(0,c.r$)(e.field)}] : null`}]:[],bind:o[e.field]??o[e.channel]??o})})),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find((e=>e.name===i+Ff)),a=i+yu,s=r.items.map((e=>le(`${i}_${e.field}`))),c=s.map((e=>`${e} !== null`)).join(" && ");return s.length&&(o.update=`${c} ? {fields: ${a}, values: [${s.join(", ")}]} : null`),delete o.value,delete o.on,n}},hf=mf,gf="_toggle",yf={defined:e=>"point"===e.type&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+gf,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+Ff,i=t.name+gf;return`${i} ? null : ${n}, `+("global"===t.resolve?`${i} ? null : true, `:`${i} ? null : {unit: ${Rf(e)}}, `)+`${i} ? ${n} : null`}},vf={defined:e=>void 0!==e.clear&&!1!==e.clear,parse:(e,t)=>{t.clear&&(t.clear=(0,c.Kg)(t.clear)?(0,R.P)(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(hf.defined(t))for(const e of t.project.items){const i=n.findIndex((n=>n.name===le(`${t.name}_${e.field}`)));-1!==i&&n[i].on.push({events:t.clear,update:"null"})}return n},signals:(e,t,n)=>{function i(e,i){-1!==e&&n[e].on&&n[e].on.push({events:t.clear,update:i})}if("interval"===t.type)for(const e of t.project.items){const t=n.findIndex((t=>t.name===e.signals.visual));if(i(t,"[0, 0]"),-1===t){i(n.findIndex((t=>t.name===e.signals.data)),"null")}}else{let e=n.findIndex((e=>e.name===t.name+Ff));i(e,"null"),yf.defined(t)&&(e=n.findIndex((e=>e.name===t.name+gf)),i(e,"false"))}return n}},bf={defined:e=>{const t="global"===e.resolve&&e.bind&&lc(e.bind),n=1===e.project.items.length&&e.project.items[0].field!==sc;return t&&!n&&er("Legend bindings are only supported for selections over an individual field or encoding channel."),t&&n},parse:(e,t,n)=>{const i=U(n);if(i.select=(0,c.Kg)(i.select)?{type:i.select,toggle:t.toggle}:{...i.select,toggle:t.toggle},Af(t,i),(0,c.Gv)(n.select)&&(n.select.on||n.select.clear)){const e='event.item && indexof(event.item.mark.role, "legend") < 0';for(const n of t.events)n.filter=(0,c.YO)(n.filter??[]),n.filter.includes(e)||n.filter.push(e)}const r=uc(t.bind)?t.bind.legend:"click",o=(0,c.Kg)(r)?(0,R.P)(r,"view"):(0,c.YO)(r);t.bind={legend:{merge:o}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=uc(t.bind)&&t.bind.legend,o=e=>t=>{const n=U(t);return n.markname=e,n};for(const e of t.project.items){if(!e.hasLegend)continue;const a=`${le(e.field)}_legend`,s=`${i}_${a}`;if(0===n.filter((e=>e.name===s)).length){const e=r.merge.map(o(`${a}_symbols`)).concat(r.merge.map(o(`${a}_labels`))).concat(r.merge.map(o(`${a}_entries`)));n.unshift({name:s,...t.init?{}:{value:null},on:[{events:e,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:`!event.item || !datum ? null : ${s}`,force:!0}]})}}return n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find((e=>e.name===i+Ff)),a=i+yu,s=r.items.filter((e=>e.hasLegend)).map((e=>le(`${i}_${le(e.field)}_legend`))),c=`${s.map((e=>`${e} !== null`)).join(" && ")} ? {fields: ${a}, values: [${s.join(", ")}]} : null`;t.events&&s.length>0?o.on.push({events:s.map((e=>({signal:e}))),update:c}):s.length>0&&(o.update=c,delete o.value,delete o.on);const l=n.find((e=>e.name===i+gf)),u=uc(t.bind)&&t.bind.legend;return l&&(t.events?l.on.push({...l.on[0],events:u}):l.on[0].events=u),n}};const xf="_translate_anchor",$f="_translate_delta",wf={defined:e=>"interval"===e.type&&e.translate,signals:(e,t,n)=>{const i=t.name,r=wu.defined(t),o=i+xf,{x:a,y:s}=t.project.hasChannel;let c=(0,R.P)(t.translate,"scope");return r||(c=c.map((e=>(e.between[0].markname=i+Eu,e)))),n.push({name:o,value:{},on:[{events:c.map((e=>e.between[0])),update:"{x: x(unit), y: y(unit)"+(void 0!==a?`, extent_x: ${r?ku(e,Ae):`slice(${a.signals.visual})`}`:"")+(void 0!==s?`, extent_y: ${r?ku(e,Le):`slice(${s.signals.visual})`}`:"")+"}"}]},{name:i+$f,value:{},on:[{events:c,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),void 0!==a&&kf(e,t,a,"width",n),void 0!==s&&kf(e,t,s,"height",n),n}};function kf(e,t,n,i,r){const o=t.name,a=o+xf,s=o+$f,c=n.channel,l=wu.defined(t),u=r.find((e=>e.name===n.signals[l?"data":"visual"])),f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(c),p=d&&d.get("type"),m=d&&d.get("reverse"),h=`${a}.extent_${c}`,g=`${l&&d?"log"===p?"panLog":"symlog"===p?"panSymlog":"pow"===p?"panPow":"panLinear":"panLinear"}(${h}, ${`${l?c===Ae?m?"":"-":m?"-":"":""}${s}.${c} / ${l?`${f}`:`span(${h})`}`}${l?"pow"===p?`, ${d.get("exponent")??1}`:"symlog"===p?`, ${d.get("constant")??1}`:"":""})`;u.on.push({events:{signal:s},update:l?g:`clampRange(${g}, 0, ${f})`})}const Sf="_zoom_anchor",Ef="_zoom_delta",Df={defined:e=>"interval"===e.type&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=wu.defined(t),o=i+Ef,{x:a,y:s}=t.project.hasChannel,l=(0,c.r$)(e.scaleName(Ae)),u=(0,c.r$)(e.scaleName(Le));let f=(0,R.P)(t.zoom,"scope");return r||(f=f.map((e=>(e.markname=i+Eu,e)))),n.push({name:i+Sf,on:[{events:f,update:r?"{"+[l?`x: invert(${l}, x(unit))`:"",u?`y: invert(${u}, y(unit))`:""].filter((e=>e)).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:f,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),void 0!==a&&Of(e,t,a,"width",n),void 0!==s&&Of(e,t,s,"height",n),n}};function Of(e,t,n,i,r){const o=t.name,a=n.channel,s=wu.defined(t),c=r.find((e=>e.name===n.signals[s?"data":"visual"])),l=e.getSizeSignalRef(i).signal,u=e.getScaleComponent(a),f=u&&u.get("type"),d=s?ku(e,a):c.name,p=o+Ef,m=`${s&&u?"log"===f?"zoomLog":"symlog"===f?"zoomSymlog":"pow"===f?"zoomPow":"zoomLinear":"zoomLinear"}(${d}, ${`${o}${Sf}.${a}`}, ${p}${s?"pow"===f?`, ${u.get("exponent")??1}`:"symlog"===f?`, ${u.get("constant")??1}`:"":""})`;c.on.push({events:{signal:p},update:s?m:`clampRange(${m}, 0, ${l})`})}const Nf="_store",Ff="_tuple",Cf="_modify",Tf="vlSelectionResolve",Pf=[Pu,Cu,xu,yf,hf,wu,bf,vf,wf,Df,pf];function Rf(e,{escape:t}={escape:!0}){let n=t?(0,c.r$)(e.name):e.name;const i=function(e){let t=e.parent;for(;t&&!xm(t);)t=t.parent;return t}(e);if(i){const{facet:e}=i;for(const t of kt)e[t]&&(n+=` + '__facet_${t}_' + (facet[${(0,c.r$)(i.vgField(t))}])`)}return n}function _f(e){return ae(e.component.selection??{}).reduce(((e,t)=>e||t.project.hasSelectionId),!1)}function Af(e,t){!(0,c.Kg)(t.select)&&t.select.on||delete e.events,!(0,c.Kg)(t.select)&&t.select.clear||delete e.clear,!(0,c.Kg)(t.select)&&t.select.toggle||delete e.toggle}function Lf(e){const t=[];return"Identifier"===e.type?[e.name]:"Literal"===e.type?[e.value]:("MemberExpression"===e.type&&(t.push(...Lf(e.object)),t.push(...Lf(e.property))),t)}function zf(e){return"MemberExpression"===e.object.type?zf(e.object):"datum"===e.object.name}function If(e){const t=(0,P.YK)(e),n=new Set;return t.visit((e=>{"MemberExpression"===e.type&&zf(e)&&n.add(Lf(e).slice(1).join("."))})),n}class jf extends su{clone(){return new jf(null,this.model,U(this.filter))}constructor(e,t,n){super(e),this.model=t,this.filter=n,this.expr=qf(this.model,this.filter,this),this._dependentFields=If(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Mf(e,t,n,i="datum"){const r=(0,c.Kg)(t)?t:t.param,o=le(r),a=(0,c.r$)(o+Nf);let s;try{s=e.getSelectionComponent(o,r)}catch(e){return`!!${o}`}if(s.project.timeUnit){const t=n??e.component.data.raw,i=s.project.timeUnit.clone();t.parent?i.insertAsParentOf(t):t.parent=i}const l=`${s.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${a}, ${i}${"global"===s.resolve?")":`, ${(0,c.r$)(s.resolve)})`}`,u=`length(data(${a}))`;return!1===t.empty?`${u} && ${l}`:`!${u} || ${l}`}function Uf(e,t,n){const i=le(t),r=n.encoding;let o,a=n.field;try{o=e.getSelectionComponent(i,t)}catch(e){return i}if(r||a){if(r&&!a){const e=o.project.items.filter((e=>e.channel===r));!e.length||e.length>1?(a=o.project.items[0].field,er((e.length?"Multiple ":"No ")+`matching ${(0,c.r$)(r)} encoding found for selection ${(0,c.r$)(n.param)}. `+`Using "field": ${(0,c.r$)(a)}.`)):a=e[0].field}}else a=o.project.items[0].field,o.project.items.length>1&&er(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${(0,c.r$)(a)}.`);return`${o.name}[${(0,c.r$)(ge(a))}]`}function qf(e,t,n){return ue(t,(t=>(0,c.Kg)(t)?t:function(e){return Te(e,"param")}(t)?Mf(e,t,n):Pr(t)))}function Wf(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}function Gf(e,t,n,i={header:!1}){const{disable:r,orient:o,scale:a,labelExpr:s,title:l,zindex:u,...f}=e.combine();if(!r){for(const e in f){const n=e,i=ms[n],r=f[n];if(i&&i!==t&&"both"!==i)delete f[n];else if(ds(r)){const{condition:e,...t}=r,i=(0,c.YO)(e),o=fs[n];if(o){const{vgProp:e,part:r}=o;Wf(f,r,e,[...i.map((e=>{const{test:t,...n}=e;return{test:qf(null,t),...n}})),t]),delete f[n]}else if(null===o){const e={signal:i.map((e=>{const{test:t,...n}=e;return`${qf(null,t)} ? ${li(n)} : `})).join("")+li(t)};f[n]=e}}else if(Zn(r)){const e=fs[n];if(e){const{vgProp:t,part:i}=e;Wf(f,i,t,r),delete f[n]}}V(["labelAlign","labelBaseline"],n)&&null===f[n]&&delete f[n]}if("grid"===t){if(!f.grid)return;if(f.encode){const{grid:e}=f.encode;f.encode={...e?{grid:e}:{}},re(f.encode)&&delete f.encode}return{scale:a,orient:o,...f,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:xe(u,0)}}{if(!i.header&&e.mainExtracted)return;if(void 0!==s){let e=s;f.encode?.labels?.update&&Zn(f.encode.labels.update.text)&&(e=ye(s,"datum.label",f.encode.labels.update.text.signal)),Wf(f,"labels","text",{signal:e})}if(null===f.labelAlign&&delete f.labelAlign,f.encode){for(const t of ps)e.hasAxisPart(t)||delete f.encode[t];re(f.encode)&&delete f.encode}const t=function(e,t){if(e)return(0,c.cy)(e)&&!Jn(e)?e.map((e=>Ja(e,t))).join(", "):e}(l,n);return{scale:a,orient:o,grid:!1,...t?{title:t}:{},...f,...!1===n.aria?{aria:!1}:{},zindex:xe(u,0)}}}}function Hf(e){const{axes:t}=e.component,n=[];for(const i of ln)if(t[i])for(const r of t[i])if(!r.get("disable")&&!r.get("gridScale")){const t="x"===i?"height":"width",r=e.getSizeSignalRef(t).signal;t!==r&&n.push({name:t,update:r})}return n}function Bf(e,t,n,i){return Object.assign.apply(null,[{},...e.map((e=>{if("axisOrient"===e){const e="x"===n?"bottom":"left",r=t["x"===n?"axisBottom":"axisLeft"]||{},o=t["x"===n?"axisTop":"axisRight"]||{},a=new Set([...oe(r),...oe(o)]),s={};for(const t of a.values())s[t]={signal:`${i.signal} === "${e}" ? ${ui(r[t])} : ${ui(o[t])}`};return s}return t[e]}))])}function Vf(e,t){const n=[{}];for(const i of e){let e=t[i]?.style;if(e){e=(0,c.YO)(e);for(const i of e)n.push(t.style[i])}}return Object.assign.apply(null,n)}function Yf(e,t,n,i={}){const r=gi(e,n,t);if(void 0!==r)return{configFrom:"style",configValue:r};for(const t of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(void 0!==i[t]?.[e])return{configFrom:t,configValue:i[t][e]};return{}}const Kf={scale:({model:e,channel:t})=>e.scaleName(t),format:({format:e})=>e,formatType:({formatType:e})=>e,grid:({fieldOrDatumDef:e,axis:t,scaleType:n})=>t.grid??function(e,t){return!eo(e)&&Ta(t)&&!Gn(t?.bin)&&!Hn(t?.bin)}(n,e),gridScale:({model:e,channel:t})=>function(e,t){const n="x"===t?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n);return}(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelAlign||Jf(t,n,i),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelBaseline||Qf(t,n,i),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>e.labelFlush??function(e,t){if("x"===t&&V(["quantitative","temporal"],e))return!0;return}(t.type,n),labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>e.labelOverlap??function(e,t,n,i){if(n&&!(0,c.Gv)(i)||"nominal"!==e&&"ordinal"!==e)return"log"!==t&&"symlog"!==t||"greedy";return}(t.type,n,Ta(t)&&!!t.timeUnit,Ta(t)?t.sort:void 0),orient:({orient:e})=>e,tickCount:({channel:e,model:t,axis:n,fieldOrDatumDef:i,scaleType:r})=>{const o="x"===e?"width":"y"===e?"height":void 0,a=o?t.getSizeSignalRef(o):void 0;return n.tickCount??function({fieldOrDatumDef:e,scaleType:t,size:n,values:i}){if(!i&&!eo(t)&&"log"!==t){if(Ta(e)){if(Gn(e.bin))return{signal:`ceil(${n.signal}/10)`};if(e.timeUnit&&V(["month","hours","day","quarter"],br(e.timeUnit)?.unit))return}return{signal:`ceil(${n.signal}/40)`}}return}({fieldOrDatumDef:i,scaleType:r,size:a,values:n.values})},tickMinStep:function({format:e,fieldOrDatumDef:t}){if("d"===e)return 1;if(Ta(t)){const{timeUnit:e}=t;if(e){const t=xr(e);if(t)return{signal:t}}}return},title:({axis:e,model:t,channel:n})=>{if(void 0!==e.title)return e.title;const i=Zf(t,n);if(void 0!==i)return i;const r=t.typedFieldDef(n),o="x"===n?"x2":"y2",a=t.fieldDef(o);return vi(r?[wa(r)]:[],Ta(a)?[wa(a)]:[])},values:({axis:e,fieldOrDatumDef:t})=>function(e,t){const n=e.values;if((0,c.cy)(n))return ls(t,n);if(Zn(n))return n;return}(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>e.zindex??function(e,t){if("rect"===e&&Ba(t))return 1;return 0}(n,t)};function Xf(e){return`(((${e.signal} % 360) + 360) % 360)`}function Qf(e,t,n,i){if(void 0!==e){if("x"===n){if(Zn(e)){const n=Xf(e);return{signal:`(45 < ${n} && ${n} < 135) || (225 < ${n} && ${n} < 315) ? "middle" :(${n} <= 45 || 315 <= ${n}) === ${Zn(t)?`(${t.signal} === "top")`:"top"===t} ? "bottom" : "top"`}}if(45<e&&e<135||225<e&&e<315)return"middle";if(Zn(t)){const n=e<=45||315<=e?"===":"!==";return{signal:`${t.signal} ${n} "top" ? "bottom" : "top"`}}return(e<=45||315<=e)==("top"===t)?"bottom":"top"}if(Zn(e)){const n=Xf(e);return{signal:`${n} <= 45 || 315 <= ${n} || (135 <= ${n} && ${n} <= 225) ? ${i?'"middle"':"null"} : (45 <= ${n} && ${n} <= 135) === ${Zn(t)?`(${t.signal} === "left")`:"left"===t} ? "top" : "bottom"`}}if(e<=45||315<=e||135<=e&&e<=225)return i?"middle":null;if(Zn(t)){const n=45<=e&&e<=135?"===":"!==";return{signal:`${t.signal} ${n} "left" ? "top" : "bottom"`}}return(45<=e&&e<=135)==("left"===t)?"top":"bottom"}}function Jf(e,t,n){if(void 0===e)return;const i="x"===n,r=i?0:90,o=i?"bottom":"left";if(Zn(e)){const n=Xf(e);return{signal:`(${r?`(${n} + 90)`:n} % 180 === 0) ? ${i?null:'"center"'} :(${r} < ${n} && ${n} < ${180+r}) === ${Zn(t)?`(${t.signal} === "${o}")`:t===o} ? "left" : "right"`}}if((e+r)%180==0)return i?null:"center";if(Zn(t)){const n=r<e&&e<180+r?"===":"!==";return{signal:`${`${t.signal} ${n} "${o}"`} ? "left" : "right"`}}return(r<e&&e<180+r)==(t===o)?"left":"right"}function Zf(e,t){const n="x"===t?"x2":"y2",i=e.fieldDef(t),r=e.fieldDef(n),o=i?i.title:void 0,a=r?r.title:void 0;return o&&a?bi(o,a):o||(a||(void 0!==o?o:void 0!==a?a:void 0))}class ed extends su{clone(){return new ed(null,U(this.transform))}constructor(e,t){super(e),this.transform=t,this._dependentFields=If(this.transform.calculate)}static parseAllForSortIndex(e,t){return t.forEachFieldDef(((t,n)=>{if(Ma(t)&&va(t.sort)){const{field:i,timeUnit:r}=t,o=t.sort,a=o.map(((e,t)=>`${Pr({field:i,timeUnit:r,equal:e})} ? ${t} : `)).join("")+o.length;e=new ed(e,{calculate:a,as:td(t,n,{forAs:!0})})}})),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${H(this.transform)}`}}function td(e,t,n){return Ha(e,{prefix:t,suffix:"sort_index",...n})}function nd(e,t){return V(["top","bottom"],t)?"column":V(["left","right"],t)||"row"===e?"row":"column"}function id(e,t,n,i){const r="row"===i?n.headerRow:"column"===i?n.headerColumn:n.headerFacet;return xe((t||{})[e],r[e],n.header[e])}function rd(e,t,n,i){const r={};for(const o of e){const e=id(o,t||{},n,i);void 0!==e&&(r[o]=e)}return r}const od=["row","column"],ad=["header","footer"];function sd(e,t){const n=e.component.layoutHeaders[t].title,i=e.config?e.config:void 0,r=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:o,titleAngle:a,titleOrient:s}=rd(["titleAnchor","titleAngle","titleOrient"],r.header,i,t),c=nd(t,s),l=De(a);return{name:`${t}-title`,type:"group",role:`${c}-title`,title:{text:n,..."row"===t?{orient:"left"}:{},style:"guide-title",...ld(l,c),...cd(c,l,o),...gd(i,r,t,nc,ec)}}}function cd(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=Jf(t,"row"===e?"left":"top","row"===e?"y":"x");return i?{align:i}:{}}function ld(e,t){const n=Qf(e,"row"===t?"left":"top","row"===t?"y":"x",!0);return n?{baseline:n}:{}}function ud(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of ad)if(n[r])for(const o of n[r]){const a=pd(e,t,r,n,o);null!=a&&i.push(a)}return i}function fd(e,t){const{sort:n}=e;return ya(n)?{field:Ha(n,{expr:"datum"}),order:n.order??"ascending"}:(0,c.cy)(n)?{field:td(e,t,{expr:"datum"}),order:"ascending"}:{field:Ha(e,{expr:"datum"}),order:n??"ascending"}}function dd(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:a,labelOrient:s,labelExpr:c}=rd(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),l=oa({fieldOrDatumDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,u=nd(t,s);return{text:{signal:c?ye(ye(c,"datum.label",l),"datum.value",Ha(e,{expr:"parent"})):l},..."row"===t?{orient:"left"}:{},style:"guide-label",frame:"group",...ld(o,u),...cd(u,o,a),...gd(n,e,t,ic,tc)}}function pd(e,t,n,i,r){if(r){let o=null;const{facetFieldDef:a}=i,s=e.config?e.config:void 0;if(a&&r.labels){const{labelOrient:e}=rd(["labelOrient"],a.header,s,t);("row"===t&&!V(["top","bottom"],e)||"column"===t&&!V(["left","right"],e))&&(o=dd(a,t,s))}const c=xm(e)&&!ba(e.facet),l=r.axes,u=l?.length>0;if(o||u){const s="row"===t?"height":"width";return{name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`,...i.facetFieldDef?{from:{data:e.getName(`${t}_domain`)},sort:fd(a,t)}:{},...u&&c?{from:{data:e.getName(`facet_domain_${t}`)}}:{},...o?{title:o}:{},...r.sizeSignal?{encode:{update:{[s]:r.sizeSignal}}}:{},...u?{axes:l}:{}}}}return null}const md={column:{start:0,end:1},row:{start:1,end:0}};function hd(e,t){return md[t][e]}function gd(e,t,n,i,r){const o={};for(const a of i){if(!r[a])continue;const i=id(a,t?.header,e,n);void 0!==i&&(o[r[a]]=i)}return o}function yd(e){return[...vd(e,"width"),...vd(e,"height"),...vd(e,"childWidth"),...vd(e,"childHeight")]}function vd(e,t){const n="width"===t?"x":"y",i=e.component.layoutSize.get(t);if(!i||"merged"===i)return[];const r=e.getSizeSignalRef(t).signal;if("step"===i){const t=e.getScaleComponent(n);if(t){const i=t.get("type"),o=t.get("range");if(eo(i)&&ei(o)){const i=e.scaleName(n);if(xm(e.parent)){if("independent"===e.parent.component.resolve.scale[n])return[bd(i,o)]}return[bd(i,o),{name:r,update:xd(i,t,`domain('${i}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if("container"==i){const t=r.endsWith("width"),n=t?"containerSize()[0]":"containerSize()[1]",i=`isFinite(${n}) ? ${n} : ${xc(e.config.view,t?"width":"height")}`;return[{name:r,init:i,on:[{update:i,events:"window:resize"}]}]}return[{name:r,value:i}]}function bd(e,t){const n=`${e}_step`;return Zn(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function xd(e,t,n){const i=t.get("type"),r=t.get("padding"),o=xe(t.get("paddingOuter"),r);let a=t.get("paddingInner");return a="band"===i?void 0!==a?a:r:1,`bandspace(${n}, ${ui(a)}, ${ui(o)}) * ${e}_step`}function $d(e){return"childWidth"===e?"width":"childHeight"===e?"height":e}function wd(e,t){return oe(e).reduce(((n,i)=>({...n,...Ru({model:t,channelDef:e[i],vgChannel:i,mainRefFn:e=>ci(e.value),invalidValueRef:void 0})})),{})}function kd(e,t){if(xm(t))return"theta"===e?"independent":"shared";if(wm(t))return"shared";if($m(t))return un(e)||"theta"===e||"radius"===e?"independent":"shared";throw new Error("invalid model type for resolve")}function Sd(e,t){const n=e.scale[t],i=un(t)?"axis":"legend";return"independent"===n?("shared"===e[i][t]&&er(function(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}(t)),"independent"):e[i][t]||"shared"}const Ed={...ac,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1},Dd=oe(Ed);class Od extends jl{}const Nd={symbols:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r,legendType:o}){if("symbol"!==o)return;const{markDef:a,encoding:s,config:l,mark:u}=n,f=a.filled&&"trail"!==u;let d={...fi({},n,Lo),...Wu(n,{filled:f})};const p=r.get("symbolOpacity")??l.legend.symbolOpacity,m=r.get("symbolFillColor")??l.legend.symbolFillColor,h=r.get("symbolStrokeColor")??l.legend.symbolStrokeColor,g=void 0===p?Fd(s.opacity)??a.opacity:void 0;if(d.fill)if("fill"===i||f&&i===Ke)delete d.fill;else if(Te(d.fill,"field"))m?delete d.fill:(d.fill=ci(l.legend.symbolBaseFillColor??"black"),d.fillOpacity=ci(g??1));else if((0,c.cy)(d.fill)){const e=Cd(s.fill??s.color)??a.fill??(f&&a.color);e&&(d.fill=ci(e))}if(d.stroke)if("stroke"===i||!f&&i===Ke)delete d.stroke;else if(Te(d.stroke,"field")||h)delete d.stroke;else if((0,c.cy)(d.stroke)){const e=xe(Cd(s.stroke||s.color),a.stroke,f?a.color:void 0);e&&(d.stroke={value:e})}if(i!==tt){const e=Ta(t)&&Pd(n,r,t);e?d.opacity=[{test:e,...ci(g??1)},ci(l.legend.unselectedOpacity)]:g&&(d.opacity=ci(g))}return d={...d,...e},re(d)?void 0:d},gradient:function(e,{model:t,legendType:n,legendCmpt:i}){if("gradient"!==n)return;const{config:r,markDef:o,encoding:a}=t;let s={};const c=void 0===(i.get("gradientOpacity")??r.legend.gradientOpacity)?Fd(a.opacity)||o.opacity:void 0;c&&(s.opacity=ci(c));return s={...s,...e},re(s)?void 0:s},labels:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r}){const o=n.legend(i)||{},a=n.config,s=Ta(t)?Pd(n,r,t):void 0,c=s?[{test:s,value:1},{value:a.legend.unselectedOpacity}]:void 0,{format:l,formatType:u}=o;let f;na(u)?f=sa({fieldOrDatumDef:t,field:"datum.value",format:l,formatType:u,config:a}):void 0===l&&void 0===u&&a.customFormatTypes&&("quantitative"===t.type&&a.numberFormatType?f=sa({fieldOrDatumDef:t,field:"datum.value",format:a.numberFormat,formatType:a.numberFormatType,config:a}):"temporal"===t.type&&a.timeFormatType&&Ta(t)&&void 0===t.timeUnit&&(f=sa({fieldOrDatumDef:t,field:"datum.value",format:a.timeFormat,formatType:a.timeFormatType,config:a})));const d={...c?{opacity:c}:{},...f?{text:f}:{},...e};return re(d)?void 0:d},entries:function(e,{legendCmpt:t}){const n=t.get("selections");return n?.length?{...e,fill:{value:"transparent"}}:e}};function Fd(e){return Td(e,((e,t)=>Math.max(e,t.value)))}function Cd(e){return Td(e,((e,t)=>xe(e,t.value)))}function Td(e,t){return function(e){const t=e?.condition;return!!t&&((0,c.cy)(t)||ja(t))}(e)?(0,c.YO)(e.condition).reduce(t,e.value):ja(e)?e.value:void 0}function Pd(e,t,n){const i=t.get("selections");if(!i?.length)return;const r=(0,c.r$)(n.field);return i.map((e=>`(!length(data(${(0,c.r$)(le(e)+Nf)})) || (${e}[${r}] && indexof(${e}[${r}], datum.value) >= 0))`)).join(" || ")}const Rd={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:i,formatType:r}=t;return ca(e,e.type,i,r,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:i}=e;return la(i,t,n)},gradientLength:e=>{const{legend:t,legendConfig:n}=e;return t.gradientLength??n.gradientLength??function({legendConfig:e,model:t,direction:n,orient:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:a,gradientVerticalMaxLength:s,gradientVerticalMinLength:c}=e;if(no(r))return"horizontal"===n?"top"===i||"bottom"===i?Ld(t,"width",a,o):a:Ld(t,"height",c,s);return}(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>e.labelOverlap??t.labelOverlap??function(e){if(V(["quantile","threshold","log","symlog"],e))return"greedy";return}(n),symbolType:({legend:e,markDef:t,channel:n,encoding:i})=>e.symbolType??function(e,t,n,i){if("shape"!==t){const e=Cd(n)??i;if(e)return e}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}(t.type,n,i.shape,t.shape),title:({fieldOrDatumDef:e,config:t})=>Xa(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if($t(n)&&no(t)){if("gradient"===e)return}else if("symbol"===e)return;return e},values:({fieldOrDatumDef:e,legend:t})=>function(e,t){const n=e.values;if((0,c.cy)(n))return ls(t,n);if(Zn(n))return n;return}(t,e)};function _d(e){const{legend:t}=e;return xe(t.type,function({channel:e,timeUnit:t,scaleType:n}){if($t(e)){if(V(["quarter","month","day"],t))return"symbol";if(no(n))return"gradient"}return"symbol"}(e))}function Ad({legendConfig:e,legendType:t,orient:n,legend:i}){return i.direction??e[t?"gradientDirection":"symbolDirection"]??function(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return"gradient"===t?"horizontal":void 0}}(n,t)}function Ld(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function zd(e){const t=bm(e)?function(e){const{encoding:t}=e,n={};for(const i of[Ke,...oc]){const r=ts(t[i]);r&&e.getScaleComponent(i)&&(i===Je&&Ta(r)&&r.type===qr||(n[i]=jd(e,i)))}return n}(e):function(e){const{legends:t,resolve:n}=e.component;for(const i of e.children){zd(i);for(const r of oe(i.component.legends))n.legend[r]=Sd(e.component.resolve,r),"shared"===n.legend[r]&&(t[r]=Md(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))}for(const i of oe(t))for(const t of e.children)t.component.legends[i]&&"shared"===n.legend[i]&&delete t.component.legends[i];return t}(e);return e.component.legends=t,t}function Id(e,t,n,i){switch(t){case"disable":return void 0!==n;case"values":return!!n?.values;case"title":if("title"===t&&e===i?.title)return!0}return e===(n||{})[t]}function jd(e,t){let n=e.legend(t);const{markDef:i,encoding:r,config:o}=e,a=o.legend,s=new Od({},function(e,t){const n=e.scaleName(t);if("trail"===e.mark){if("color"===t)return{stroke:n};if("size"===t)return{strokeWidth:n}}return"color"===t?e.markDef.filled?{fill:n}:{stroke:n}:{[t]:n}}(e,t));!function(e,t,n){const i=e.fieldDef(t)?.field;for(const r of ae(e.component.selection??{})){const e=r.project.hasField[i]??r.project.hasChannel[t];if(e&&bf.defined(r)){const t=n.get("selections")??[];t.push(r.name),n.set("selections",t,!1),e.hasLegend=!0}}}(e,t,s);const c=void 0!==n?!n:a.disable;if(s.set("disable",c,void 0!==n),c)return s;n=n||{};const l=e.getScaleComponent(t).get("type"),u=ts(r[t]),f=Ta(u)?br(u.timeUnit)?.unit:void 0,d=n.orient||o.legend.orient||"right",p=_d({legend:n,channel:t,timeUnit:f,scaleType:l}),m={legend:n,channel:t,model:e,markDef:i,encoding:r,fieldOrDatumDef:u,legendConfig:a,config:o,scaleType:l,orient:d,legendType:p,direction:Ad({legend:n,legendType:p,orient:d,legendConfig:a})};for(const i of Dd){if("gradient"===p&&i.startsWith("symbol")||"symbol"===p&&i.startsWith("gradient"))continue;const r=i in Rd?Rd[i](m):n[i];if(void 0!==r){const a=Id(r,i,n,e.fieldDef(t));(a||void 0===o.legend[i])&&s.set(i,r,a)}}const h=n?.encoding??{},g=s.get("selections"),y={},v={fieldOrDatumDef:u,model:e,channel:t,legendCmpt:s,legendType:p};for(const t of["labels","legend","title","symbols","gradient","entries"]){const n=wd(h[t]??{},e),i=t in Nd?Nd[t](n,v):n;void 0===i||re(i)||(y[t]={...g?.length&&Ta(u)?{name:`${le(u.field)}_legend_${t}`}:{},...g?.length?{interactive:!!g}:{},update:i})}return re(y)||s.set("encode",y,!!n?.encoding),s}function Md(e,t){if(!e)return t.clone();const n=e.getWithExplicit("orient"),i=t.getWithExplicit("orient");if(n.explicit&&i.explicit&&n.value!==i.value)return;let r=!1;for(const n of Dd){const i=Gl(e.getWithExplicit(n),t.getWithExplicit(n),n,"legend",((e,t)=>{switch(n){case"symbolType":return Ud(e,t);case"title":return xi(e,t);case"type":return r=!0,Ul("symbol")}return Wl(e,t,n,"legend")}));e.setWithExplicit(n,i)}return r&&(e.implicit?.encode?.gradient&&fe(e.implicit,["encode","gradient"]),e.explicit?.encode?.gradient&&fe(e.explicit,["encode","gradient"])),e}function Ud(e,t){return"circle"===t.value?t:e}function qd(e){const t=e.component.legends,n={};for(const i of oe(t)){const r=Ce(e.getScaleComponent(i).get("domains"));if(n[r])for(const e of n[r]){Md(e,t[i])||n[r].push(t[i])}else n[r]=[t[i].clone()]}return ae(n).flat().map((t=>function(e,t){const{disable:n,labelExpr:i,selections:r,...o}=e.combine();if(n)return;!1===t.aria&&null==o.aria&&(o.aria=!1);if(o.encode?.symbols){const e=o.encode.symbols.update;!e.fill||"transparent"===e.fill.value||e.stroke||o.stroke||(e.stroke={value:"transparent"});for(const t of oc)o[t]&&delete e[t]}o.title||delete o.title;if(void 0!==i){let e=i;o.encode?.labels?.update&&Zn(o.encode.labels.update.text)&&(e=ye(i,"datum.label",o.encode.labels.update.text.signal)),function(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}(o,"labels","text",{signal:e})}return o}(t,e.config))).filter((e=>void 0!==e))}function Wd(e){return wm(e)||$m(e)?function(e){return e.children.reduce(((e,t)=>e.concat(t.assembleProjections())),Gd(e))}(e):Gd(e)}function Gd(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:i}=n;if(t.data){const r={signal:`[${t.size.map((e=>e.signal)).join(", ")}]`},o=t.data.reduce(((t,n)=>{const i=Zn(n)?n.signal:`data('${e.lookupDataSource(n)}')`;return V(t,i)||t.push(i),t}),[]);if(o.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:i,size:r,fit:{signal:o.length>1?`[${o.join(", ")}]`:o[0]},...n}]}return[{name:i,translate:{signal:"[width / 2, height / 2]"},...n}]}const Hd=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class Bd extends jl{constructor(e,t,n,i){super({...t},{name:e}),this.specifiedProjection=t,this.size=n,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function Vd(e){e.component.projection=bm(e)?function(e){if(e.hasProjection){const t=Xn(e.specifiedProjection),n=!(t&&(null!=t.scale||null!=t.translate)),i=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,r=n?function(e){const t=[],{encoding:n}=e;for(const i of[[Be,He],[Ye,Ve]])(ts(n[i[0]])||ts(n[i[1]]))&&t.push({signal:e.getName(`geojson_${t.length}`)});e.channelHasField(Je)&&e.typedFieldDef(Je).type===qr&&t.push({signal:e.getName(`geojson_${t.length}`)});0===t.length&&t.push(e.requestDataName(Zl.Main));return t}(e):void 0,o=new Bd(e.projectionName(!0),{...Xn(e.config.projection),...t},i,r);return o.get("type")||o.set("type","equalEarth",!1),o}return}(e):function(e){if(0===e.children.length)return;let t;for(const t of e.children)Vd(t);const n=K(e.children,(e=>{const n=e.component.projection;if(n){if(t){const e=function(e,t){const n=K(Hd,(n=>!(0,c.mQ)(e.explicit,n)&&!(0,c.mQ)(t.explicit,n)||!!((0,c.mQ)(e.explicit,n)&&(0,c.mQ)(t.explicit,n)&&Fe(e.get(n),t.get(n)))));if(Fe(e.size,t.size)){if(n)return e;if(Fe(e.explicit,{}))return t;if(Fe(t.explicit,{}))return e}return null}(t,n);return e&&(t=e),!!e}return t=n,!0}return!0}));if(t&&n){const n=e.projectionName(!0),i=new Bd(n,t.specifiedProjection,t.size,U(t.data));for(const t of e.children){const e=t.component.projection;e&&(e.isFit&&i.data.push(...t.component.projection.data),t.renameProjection(e.get("name"),n),e.merged=!0)}return i}return}(e)}function Yd(e,t,n,i){if(us(t,n)){const r=bm(e)?e.axis(n)??e.legend(n)??{}:{},o=Ha(t,{expr:"datum"}),a=Ha(t,{expr:"datum",binSuffix:"end"});return{formulaAs:Ha(t,{binSuffix:"range",forAs:!0}),formula:pa(o,a,r.format,r.formatType,i)}}return{}}function Kd(e,t){return`${Wn(e)}_${t}`}function Xd(e,t,n){const i=Kd(os(n,void 0)??{},t);return e.getName(`${i}_bins`)}function Qd(e,t,n){let i,r;i=function(e){return"as"in e}(e)?(0,c.Kg)(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:[Ha(e,{forAs:!0}),Ha(e,{binSuffix:"end",forAs:!0})];const o={...os(t,void 0)},a=Kd(o,e.field),{signal:s,extentSignal:l}=function(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}(n,a);if(Vn(o.extent)){const e=o.extent;r=Uf(n,e.param,e),delete o.extent}return{key:a,binComponent:{bin:o,field:e.field,as:[i],...s?{signal:s}:{},...l?{extentSignal:l}:{},...r?{span:r}:{}}}}class Jd extends su{clone(){return new Jd(null,U(this.bins))}constructor(e,t){super(e),this.bins=t}static makeFromEncoding(e,t){const n=t.reduceFieldDef(((e,n,i)=>{if(Ia(n)&&Gn(n.bin)){const{key:r,binComponent:o}=Qd(n,n.bin,t);e[r]={...o,...e[r],...Yd(t,n,i,t.config)}}return e}),{});return re(n)?null:new Jd(e,n)}static makeFromTransform(e,t,n){const{key:i,binComponent:r}=Qd(t,t.bin,n);return new Jd(e,{[i]:r})}merge(e,t){for(const n of oe(e.bins))n in this.bins?(t(e.bins[n].signal,this.bins[n].signal),this.bins[n].as=J([...this.bins[n].as,...e.bins[n].as],H)):this.bins[n]=e.bins[n];for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}producedFields(){return new Set(ae(this.bins).map((e=>e.as)).flat(2))}dependentFields(){return new Set(ae(this.bins).map((e=>e.field)))}hash(){return`Bin ${H(this.bins)}`}assemble(){return ae(this.bins).flatMap((e=>{const t=[],[n,...i]=e.as,{extent:r,...o}=e.bin,a={type:"bin",field:ge(e.field),as:n,signal:e.signal,...Vn(r)?{extent:null}:{extent:r},...e.span?{span:{signal:`span(${e.span})`}}:{},...o};!r&&e.extentSignal&&(t.push({type:"extent",field:ge(e.field),signal:e.extentSignal}),a.extent={signal:e.extentSignal}),t.push(a);for(const e of i)for(let i=0;i<2;i++)t.push({type:"formula",expr:Ha({field:n[i]},{expr:"datum"}),as:e[i]});return e.formula&&t.push({type:"formula",expr:e.formula,as:e.formulaAs}),t}))}}function Zd(e,t,n,i){const r=bm(i)?i.encoding[jt(t)]:void 0;if(Ia(n)&&bm(i)&&Da(n,r,i.markDef,i.config)){e.add(Ha(n,{})),e.add(Ha(n,{suffix:"end"}));const{mark:r,markDef:o,config:a}=i,s=Sa({fieldDef:n,markDef:o,config:a});Ro(r)&&.5!==s&&un(t)&&(e.add(Ha(n,{suffix:du})),e.add(Ha(n,{suffix:pu}))),n.bin&&us(n,t)&&e.add(Ha(n,{binSuffix:"range"}))}else if(vt(t)){const n=yt(t);e.add(i.getName(n))}else e.add(Ha(n));return Ma(n)&&function(e){return(0,c.Gv)(e)&&"field"in e}(n.scale?.range)&&e.add(n.scale.range.field),e}class ep extends su{clone(){return new ep(null,new Set(this.dimensions),U(this.measures))}constructor(e,t,n){super(e),this.dimensions=t,this.measures=n}get groupBy(){return this.dimensions}static makeFromEncoding(e,t){let n=!1;t.forEachFieldDef((e=>{e.aggregate&&(n=!0)}));const i={},r=new Set;return n?(t.forEachFieldDef(((e,n)=>{const{aggregate:o,field:a}=e;if(o)if("count"===o)i["*"]??(i["*"]={}),i["*"].count=new Set([Ha(e,{forAs:!0})]);else{if(Ln(o)||zn(o)){const e=Ln(o)?"argmin":"argmax",t=o[e];i[t]??(i[t]={}),i[t][e]=new Set([Ha({op:e,field:t},{forAs:!0})])}else i[a]??(i[a]={}),i[a][o]=new Set([Ha(e,{forAs:!0})]);Nn(n)&&"unaggregated"===t.scaleDomain(n)&&(i[a]??(i[a]={}),i[a].min=new Set([Ha({field:a,aggregate:"min"},{forAs:!0})]),i[a].max=new Set([Ha({field:a,aggregate:"max"},{forAs:!0})]))}else Zd(r,n,e,t)})),r.size+oe(i).length===0?null:new ep(e,r,i)):null}static makeFromTransform(e,t){var n;const i=new Set,r={};for(const e of t.aggregate){const{op:t,field:i,as:o}=e;t&&("count"===t?(r["*"]??(r["*"]={}),r["*"].count=new Set([o||Ha(e,{forAs:!0})])):(r[i]??(r[i]={}),(n=r[i])[t]??(n[t]=new Set),r[i][t].add(o||Ha(e,{forAs:!0}))))}for(const e of t.groupby??[])i.add(e);return i.size+oe(r).length===0?null:new ep(e,i,r)}merge(e){return ee(this.dimensions,e.dimensions)?(function(e,t){for(const n of oe(t)){const i=t[n];for(const t of oe(i))n in e?e[n][t]=new Set([...e[n][t]??[],...i[t]]):e[n]={[t]:i[t]}}}(this.measures,e.measures),!0):(function(...e){Ji.debug(...e)}("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...oe(this.measures)])}producedFields(){const e=new Set;for(const t of oe(this.measures))for(const n of oe(this.measures[t])){const i=this.measures[t][n];0===i.size?e.add(`${n}_${t}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${H({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],t=[],n=[];for(const i of oe(this.measures))for(const r of oe(this.measures[i]))for(const o of this.measures[i][r])n.push(o),e.push(r),t.push("*"===i?null:ge(i));return{type:"aggregate",groupby:[...this.dimensions].map(ge),ops:e,fields:t,as:n}}}class tp extends su{constructor(e,t,n,i){super(e),this.model=t,this.name=n,this.data=i;for(const e of kt){const n=t.facet[e];if(n){const{bin:i,sort:r}=n;this[e]={name:t.getName(`${e}_domain`),fields:[Ha(n),...Gn(i)?[Ha(n,{binSuffix:"end"})]:[]],...ya(r)?{sortField:r}:(0,c.cy)(r)?{sortIndexField:td(n,e)}:{}}}}this.childModel=t.child}hash(){let e="Facet";for(const t of kt)this[t]&&(e+=` ${t.charAt(0)}:${H(this[t])}`);return e}get fields(){const e=[];for(const t of kt)this[t]?.fields&&e.push(...this[t].fields);return e}dependentFields(){const e=new Set(this.fields);for(const t of kt)this[t]&&(this[t].sortField&&e.add(this[t].sortField.field),this[t].sortIndexField&&e.add(this[t].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const t of ln){const n=this.childModel.component.scales[t];if(n&&!n.merged){const i=n.get("type"),r=n.get("range");if(eo(i)&&ei(r)){const n=Xp(Qp(this.childModel,t));n?e[t]=n:er(Di(t))}}}return e}assembleRowColumnHeaderData(e,t,n){const i={row:"y",column:"x",facet:void 0}[e],r=[],o=[],a=[];i&&n&&n[i]&&(t?(r.push(`distinct_${n[i]}`),o.push("max")):(r.push(n[i]),o.push("distinct")),a.push(`distinct_${n[i]}`));const{sortField:s,sortIndexField:c}=this[e];if(s){const{op:e=ma,field:t}=s;r.push(t),o.push(e),a.push(Ha(s,{forAs:!0}))}else c&&(r.push(c),o.push("max"),a.push(c));return{name:this[e].name,source:t??this.data,transform:[{type:"aggregate",groupby:this[e].fields,...r.length?{fields:r,ops:o,as:a}:{}}]}}assembleFacetHeaderData(e){const{columns:t}=this.model.layout,{layoutHeaders:n}=this.model.component,i=[],r={};for(const e of od){for(const t of ad){const i=(n[e]&&n[e][t])??[];for(const t of i)if(t.axes?.length>0){r[e]=!0;break}}if(r[e]){const n=`length(data("${this.facet.name}"))`,r="row"===e?t?{signal:`ceil(${n} / ${t})`}:1:t?{signal:`min(${n}, ${t})`}:{signal:n};i.push({name:`${this.facet.name}_${e}`,transform:[{type:"sequence",start:0,stop:r}]})}}const{row:o,column:a}=r;return(o||a)&&i.unshift(this.assembleRowColumnHeaderData("facet",null,e)),i}assemble(){const e=[];let t=null;const n=this.getChildIndependentFieldsWithStep(),{column:i,row:r,facet:o}=this;if(i&&r&&(n.x||n.y)){t=`cross_${this.column.name}_${this.row.name}`;const i=[].concat(n.x??[],n.y??[]),r=i.map((()=>"distinct"));e.push({name:t,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:i,ops:r}]})}for(const i of[Re,Pe])this[i]&&e.push(this.assembleRowColumnHeaderData(i,t,n));if(o){const t=this.assembleFacetHeaderData(n);t&&e.push(...t)}return e}}function np(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function ip(e){const t={};return j(e.filter,(e=>{if(Cr(e)){let n=null;kr(e)?n=ai(e.equal):Er(e)?n=ai(e.lte):Sr(e)?n=ai(e.lt):Dr(e)?n=ai(e.gt):Or(e)?n=ai(e.gte):Nr(e)?n=e.range[0]:Fr(e)&&(n=(e.oneOf??e.in)[0]),n&&(tr(n)?t[e.field]="date":(0,c.Et)(n)?t[e.field]="number":(0,c.Kg)(n)&&(t[e.field]="string")),e.timeUnit&&(t[e.field]="date")}})),t}function rp(e){const t={};function n(e){var n;ss(e)?t[e.field]="date":"quantitative"===e.type&&(n=e.aggregate,(0,c.Kg)(n)&&V(["min","max"],n))?t[e.field]="number":be(e.field)>1?e.field in t||(t[e.field]="flatten"):Ma(e)&&ya(e.sort)&&be(e.sort.field)>1&&(e.sort.field in t||(t[e.sort.field]="flatten"))}if((bm(e)||xm(e))&&e.forEachFieldDef(((t,i)=>{if(Ia(t))n(t);else{const r=zt(i),o=e.fieldDef(r);n({...t,type:o.type})}})),bm(e)){const{mark:n,markDef:i,encoding:r}=e;if(Po(n)&&!e.encoding.order){const e=r["horizontal"===i.orient?"y":"x"];Ta(e)&&"quantitative"===e.type&&!(e.field in t)&&(t[e.field]="number")}}return t}class op extends su{clone(){return new op(null,U(this._parse))}constructor(e,t){super(e),this._parse=t}hash(){return`Parse ${H(this._parse)}`}static makeExplicit(e,t,n){let i={};const r=t.data;return!Kl(r)&&r?.format?.parse&&(i=r.format.parse),this.makeWithAncestors(e,i,{},n)}static makeWithAncestors(e,t,n,i){for(const e of oe(n)){const t=i.getWithExplicit(e);void 0!==t.value&&(t.explicit||t.value===n[e]||"derived"===t.value||"flatten"===n[e]?delete n[e]:er(Pi(e,n[e],t.value)))}for(const e of oe(t)){const n=i.get(e);void 0!==n&&(n===t[e]?delete t[e]:er(Pi(e,t[e],n)))}const r=new jl(t,n);i.copyAll(r);const o={};for(const e of oe(r.combine())){const t=r.get(e);null!==t&&(o[e]=t)}return 0===oe(o).length||i.parseNothing?null:new op(e,o)}get parse(){return this._parse}merge(e){this._parse={...this._parse,...e.parse},e.remove()}assembleFormatParse(){const e={};for(const t of oe(this._parse)){const n=this._parse[t];1===be(t)&&(e[t]=n)}return e}producedFields(){return new Set(oe(this._parse))}dependentFields(){return new Set(oe(this._parse))}assembleTransforms(e=!1){return oe(this._parse).filter((t=>!e||be(t)>1)).map((e=>{const t=function(e,t){const n=pe(e);if("number"===t)return`toNumber(${n})`;if("boolean"===t)return`toBoolean(${n})`;if("string"===t)return`toString(${n})`;if("date"===t)return`toDate(${n})`;if("flatten"===t)return n;if(t.startsWith("date:"))return`timeParse(${n},'${np(t.slice(5,t.length))}')`;if(t.startsWith("utc:"))return`utcParse(${n},'${np(t.slice(4,t.length))}')`;return er(`Unrecognized parse "${t}".`),null}(e,this._parse[e]);if(!t)return null;return{type:"formula",expr:t,as:ve(e)}})).filter((e=>null!==e))}}class ap extends su{clone(){return new ap(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([sc])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:sc}}}class sp extends su{clone(){return new sp(null,this.params)}constructor(e,t){super(e),this.params=t}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${H(this.params)}`}assemble(){return{type:"graticule",...!0===this.params?{}:this.params}}}class cp extends su{clone(){return new cp(null,this.params)}constructor(e,t){super(e),this.params=t}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${H(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class lp extends su{constructor(e){let t;if(super(null),e??(e={name:"source"}),Kl(e)||(t=e.format?{...G(e.format,["parse"])}:{}),Vl(e))this._data={values:e.values};else if(Bl(e)){if(this._data={url:e.url},!t.type){let n=/(?:\.([^.]+))?$/.exec(e.url)[1];V(["json","csv","tsv","dsv","topojson"],n)||(n="json"),t.type=n}}else Ql(e)?this._data={values:[{type:"Sphere"}]}:(Yl(e)||Kl(e))&&(this._data={});this._generator=Kl(e),e.name&&(this._name=e.name),t&&!re(t)&&(this._data.format=t)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}var up,fp=function(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n},dp=function(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)};function pp(e){return e instanceof lp||e instanceof sp||e instanceof cp}class mp{constructor(){up.set(this,void 0),fp(this,up,!1,"f")}setModified(){fp(this,up,!0,"f")}get modifiedFlag(){return dp(this,up,"f")}}up=new WeakMap;class hp extends mp{getNodeDepths(e,t,n){n.set(e,t);for(const i of e.children)this.getNodeDepths(i,t+1,n);return n}optimize(e){const t=[...this.getNodeDepths(e,0,new Map).entries()].sort(((e,t)=>t[1]-e[1]));for(const e of t)this.run(e[0]);return this.modifiedFlag}}class gp extends mp{optimize(e){this.run(e);for(const t of e.children)this.optimize(t);return this.modifiedFlag}}class yp extends gp{mergeNodes(e,t){const n=t.shift();for(const i of t)e.removeChild(i),i.parent=n,i.remove()}run(e){const t=e.children.map((e=>e.hash())),n={};for(let i=0;i<t.length;i++)void 0===n[t[i]]?n[t[i]]=[e.children[i]]:n[t[i]].push(e.children[i]);for(const t of oe(n))n[t].length>1&&(this.setModified(),this.mergeNodes(e,n[t]))}}class vp extends gp{constructor(e){super(),this.requiresSelectionId=e&&_f(e)}run(e){e instanceof ap&&(this.requiresSelectionId&&(pp(e.parent)||e.parent instanceof ep||e.parent instanceof op)||(this.setModified(),e.remove()))}}class bp extends mp{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,t){let n=new Set;e instanceof fu&&(n=e.producedFields(),te(n,t)&&(this.setModified(),e.removeFormulas(t),0===e.producedFields.length&&e.remove()));for(const i of e.children)this.run(i,new Set([...t,...n]))}}class xp extends gp{constructor(){super()}run(e){e instanceof cu&&!e.isRequired()&&(this.setModified(),e.remove())}}class $p extends hp{run(e){if(!(pp(e)||e.numChildren()>1))for(const t of e.children)if(t instanceof op)if(e instanceof op)this.setModified(),e.merge(t);else{if(ie(e.producedFields(),t.dependentFields()))continue;this.setModified(),t.swapWithParent()}}}class wp extends hp{run(e){const t=[...e.children],n=e.children.filter((e=>e instanceof op));if(e.numChildren()>1&&n.length>=1){const i={},r=new Set;for(const e of n){const t=e.parse;for(const e of oe(t))e in i?i[e]!==t[e]&&r.add(e):i[e]=t[e]}for(const e of r)delete i[e];if(!re(i)){this.setModified();const n=new op(e,i);for(const r of t){if(r instanceof op)for(const e of oe(i))delete r.parse[e];e.removeChild(r),r.parent=n,r instanceof op&&0===oe(r.parse).length&&r.remove()}}}}}class kp extends hp{run(e){e instanceof cu||e.numChildren()>0||e instanceof tp||e instanceof lp||(this.setModified(),e.remove())}}class Sp extends hp{run(e){const t=e.children.filter((e=>e instanceof fu)),n=t.pop();for(const e of t)this.setModified(),n.merge(e)}}class Ep extends hp{run(e){const t=e.children.filter((e=>e instanceof ep)),n={};for(const e of t){const t=H(e.groupBy);t in n||(n[t]=[]),n[t].push(e)}for(const t of oe(n)){const i=n[t];if(i.length>1){const t=i.pop();for(const n of i)t.merge(n)&&(e.removeChild(n),n.parent=t,n.remove(),this.setModified())}}}}class Dp extends hp{constructor(e){super(),this.model=e}run(e){const t=!(pp(e)||e instanceof jf||e instanceof op||e instanceof ap),n=[],i=[];for(const r of e.children)r instanceof Jd&&(t&&!ie(e.producedFields(),r.dependentFields())?n.push(r):i.push(r));if(n.length>0){const t=n.pop();for(const e of n)t.merge(e,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof Jd?e.merge(t,this.model.renameSignal.bind(this.model)):t.swapWithParent()}if(i.length>1){const e=i.pop();for(const t of i)e.merge(t,this.model.renameSignal.bind(this.model));this.setModified()}}}class Op extends hp{run(e){const t=[...e.children];if(!Y(t,(e=>e instanceof cu))||e.numChildren()<=1)return;const n=[];let i;for(const r of t)if(r instanceof cu){let t=r;for(;1===t.numChildren();){const[e]=t.children;if(!(e instanceof cu))break;t=e}n.push(...t.children),i?(e.removeChild(r),r.parent=i.parent,i.parent.removeChild(i),i.parent=t,this.setModified()):i=t}else n.push(r);if(n.length){this.setModified();for(const e of n)e.parent.removeChild(e),e.parent=i}}}class Np extends su{clone(){return new Np(null,U(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=J(this.transform.groupby.concat(e),(e=>e))}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map((e=>e.field)).filter((e=>void 0!==e)).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){return e.as??Ha(e)}hash(){return`JoinAggregateTransform ${H(this.transform)}`}assemble(){const e=[],t=[],n=[];for(const i of this.transform.joinaggregate)t.push(i.op),n.push(this.getDefaultName(i)),e.push(void 0===i.field?null:i.field);const i=this.transform.groupby;return{type:"joinaggregate",as:n,ops:t,fields:e,...void 0!==i?{groupby:i}:{}}}}class Fp extends su{clone(){return new Fp(null,{...this.filter})}constructor(e,t){super(e),this.filter=t}static make(e,t,n){const{config:i,markDef:r}=t,{marks:o,scales:a}=n;if("include-invalid-values"===o&&"include-invalid-values"===a)return null;const s=t.reduceFieldDef(((e,n,o)=>{const a=Nn(o)&&t.getScaleComponent(o);if(a){const t=a.get("type"),{aggregate:s}=n,c=Vo({scaleChannel:o,markDef:r,config:i,scaleType:t,isCountAggregate:Mn(s)});"show"!==c&&"always-valid"!==c&&(e[n.field]=n)}return e}),{});return oe(s).length?new Fp(e,s):null}dependentFields(){return new Set(oe(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${H(this.filter)}`}assemble(){const e=oe(this.filter).reduce(((e,t)=>{const n=this.filter[t],i=Ha(n,{expr:"datum"});return null!==n&&("temporal"===n.type?e.push(`(isDate(${i}) || (${Cp(i)}))`):"quantitative"===n.type&&e.push(Cp(i))),e}),[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}function Cp(e){return`isValid(${e}) && isFinite(+${e})`}class Tp extends su{clone(){return new Tp(null,U(this._stack))}constructor(e,t){super(e),this._stack=t}static makeFromTransform(e,t){const{stack:n,groupby:i,as:r,offset:o="zero"}=t,a=[],s=[];if(void 0!==t.sort)for(const e of t.sort)a.push(e.field),s.push(xe(e.order,"ascending"));const l={field:a,order:s};let u;return u=function(e){return(0,c.cy)(e)&&e.every((e=>(0,c.Kg)(e)))&&e.length>1}(r)?r:(0,c.Kg)(r)?[r,`${r}_end`]:[`${t.stack}_start`,`${t.stack}_end`],new Tp(e,{dimensionFieldDefs:[],stackField:n,groupby:i,offset:o,sort:l,facetby:[],as:u})}static makeFromEncoding(e,t){const n=t.stack,{encoding:i}=t;if(!n)return null;const{groupbyChannels:r,fieldChannel:o,offset:a,impute:s}=n,l=r.map((e=>es(i[e]))).filter((e=>!!e)),u=function(e){return e.stack.stackBy.reduce(((e,t)=>{const n=Ha(t.fieldDef);return n&&e.push(n),e}),[])}(t),f=t.encoding.order;let d;if((0,c.cy)(f)||Ta(f))d=yi(f);else{const e=Oa(f)?f.sort:"y"===o?"descending":"ascending";d=u.reduce(((t,n)=>(t.field.includes(n)||(t.field.push(n),t.order.push(e)),t)),{field:[],order:[]})}return new Tp(e,{dimensionFieldDefs:l,stackField:t.vgField(o),facetby:[],stackby:u,sort:d,offset:a,impute:s,as:[t.vgField(o,{suffix:"start",forAs:!0}),t.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${H(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:t,groupby:n}=this._stack;return e.length>0?e.map((e=>e.bin?t?[Ha(e,{binSuffix:"mid"})]:[Ha(e,{}),Ha(e,{binSuffix:"end"})]:[Ha(e)])).flat():n??[]}assemble(){const e=[],{facetby:t,dimensionFieldDefs:n,stackField:i,stackby:r,sort:o,offset:a,impute:s,as:c}=this._stack;if(s)for(const o of n){const{bandPosition:n=.5,bin:a}=o;if(a){const t=Ha(o,{expr:"datum"}),i=Ha(o,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${Cp(t)} ? ${n}*${t}+${1-n}*${i} : ${t}`,as:Ha(o,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...r,...t],key:Ha(o,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...t],field:i,sort:o,as:c,offset:a}),e}}class Pp extends su{clone(){return new Pp(null,U(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=J(this.transform.groupby.concat(e),(e=>e))}dependentFields(){const e=new Set;return(this.transform.groupby??[]).forEach(e.add,e),(this.transform.sort??[]).forEach((t=>e.add(t.field))),this.transform.window.map((e=>e.field)).filter((e=>void 0!==e)).forEach(e.add,e),e}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){return e.as??Ha(e)}hash(){return`WindowTransform ${H(this.transform)}`}assemble(){const e=[],t=[],n=[],i=[];for(const r of this.transform.window)t.push(r.op),n.push(this.getDefaultName(r)),i.push(void 0===r.param?null:r.param),e.push(void 0===r.field?null:r.field);const r=this.transform.frame,o=this.transform.groupby;if(r&&null===r[0]&&null===r[1]&&t.every((e=>In(e))))return{type:"joinaggregate",as:n,ops:t,fields:e,...void 0!==o?{groupby:o}:{}};const a=[],s=[];if(void 0!==this.transform.sort)for(const e of this.transform.sort)a.push(e.field),s.push(e.order??"ascending");const c={field:a,order:s},l=this.transform.ignorePeers;return{type:"window",params:i,as:n,ops:t,fields:e,sort:c,...void 0!==l?{ignorePeers:l}:{},...void 0!==o?{groupby:o}:{},...void 0!==r?{frame:r}:{}}}}function Rp(e){if(e instanceof tp)if(1!==e.numChildren()||e.children[0]instanceof cu){const n=e.model.component.data.main;_p(n);const i=(t=e,function e(n){if(!(n instanceof tp)){const i=n.clone();if(i instanceof cu){const e=Ap+i.getSource();i.setSource(e),t.model.component.data.outputNodes[e]=i}else(i instanceof ep||i instanceof Tp||i instanceof Pp||i instanceof Np)&&i.addDimensions(t.fields);for(const t of n.children.flatMap(e))t.parent=i;return[i]}return n.children.flatMap(e)}),r=e.children.map(i).flat();for(const e of r)e.parent=n}else{const t=e.children[0];(t instanceof ep||t instanceof Tp||t instanceof Pp||t instanceof Np)&&t.addDimensions(e.fields),t.swapWithParent(),Rp(e)}else e.children.map(Rp);var t}function _p(e){if(e instanceof cu&&e.type===Zl.Main&&1===e.numChildren()){const t=e.children[0];t instanceof tp||(t.swapWithParent(),_p(e))}}const Ap="scale_",Lp=5;function zp(e){for(const t of e){for(const e of t.children)if(e.parent!==t)return!1;if(!zp(t.children))return!1}return!0}function Ip(e,t){let n=!1;for(const i of t)n=e.optimize(i)||n;return n}function jp(e,t,n){let i=e.sources,r=!1;return r=Ip(new xp,i)||r,r=Ip(new vp(t),i)||r,i=i.filter((e=>e.numChildren()>0)),r=Ip(new kp,i)||r,i=i.filter((e=>e.numChildren()>0)),n||(r=Ip(new $p,i)||r,r=Ip(new Dp(t),i)||r,r=Ip(new bp,i)||r,r=Ip(new wp,i)||r,r=Ip(new Ep,i)||r,r=Ip(new Sp,i)||r,r=Ip(new yp,i)||r,r=Ip(new Op,i)||r),e.sources=i,r}class Mp{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,t){return new Mp((()=>e(t)))}}function Up(e){bm(e)?function(e){const t=e.component.scales;for(const n of oe(t)){const i=qp(e,n);if(t[n].setWithExplicit("domains",i),Bp(e,n),e.component.data.isFaceted){let t=e;for(;!xm(t)&&t.parent;)t=t.parent;if("shared"===t.component.resolve.scale[n])for(const e of i.value)ti(e)&&(e.data=Ap+e.data.replace(Ap,""))}}}(e):function(e){for(const t of e.children)Up(t);const t=e.component.scales;for(const n of oe(t)){let i,r=null;for(const t of e.children){const e=t.component.scales[n];if(e){i=void 0===i?e.getWithExplicit("domains"):Gl(i,e.getWithExplicit("domains"),"domains","scale",Yp);const t=e.get("selectionExtent");r&&t&&r.param!==t.param&&er(Ci),r=t}}t[n].setWithExplicit("domains",i),r&&t[n].set("selectionExtent",r,!0)}}(e)}function qp(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:i}=e,r=function(e,t,n,i){if("unaggregated"===e){const{valid:e,reason:i}=Vp(t,n);if(!e)return void er(i)}else if(void 0===e&&i.useUnaggregatedDomain){const{valid:e}=Vp(t,n);if(e)return"unaggregated"}return e}(e.scaleDomain(t),e.typedFieldDef(t),n,e.config.scale);return r!==e.scaleDomain(t)&&(e.specifiedScales[t]={...e.specifiedScales[t],domain:r}),"x"===t&&ts(i.x2)?ts(i.x)?Gl(Gp(n,r,e,"x"),Gp(n,r,e,"x2"),"domain","scale",Yp):Gp(n,r,e,"x2"):"y"===t&&ts(i.y2)?ts(i.y)?Gl(Gp(n,r,e,"y"),Gp(n,r,e,"y2"),"domain","scale",Yp):Gp(n,r,e,"y2"):Gp(n,r,e,t)}function Wp(e,t,n){const i=br(n)?.unit;return"temporal"===t||i?function(e,t,n){return e.map((e=>({signal:`{data: ${cs(e,{timeUnit:n,type:t})}}`})))}(e,t,i):[e]}function Gp(e,t,n,i){const{encoding:r,markDef:o,mark:a,config:s,stack:l}=n,u=ts(r[i]),{type:f}=u,d=u.timeUnit,p=function(e){const{marks:t,scales:n}=eu(e);return t===n?Zl.Main:"include-invalid-values"===n?Zl.PreFilterInvalid:Zl.PostFilterInvalid}({invalid:mi("invalid",o,s),isPath:Po(a)});if(function(e){return Te(e,"unionWith")}(t)){const r=Gp(e,void 0,n,i);return Ml([...Wp(t.unionWith,f,d),...r.value])}if(Zn(t))return Ml([t]);if(t&&"unaggregated"!==t&&!ro(t))return Ml(Wp(t,f,d));if(l&&i===l.fieldChannel){if("normalize"===l.offset)return Ul([[0,1]]);const e=n.requestDataName(p);return Ul([{data:e,field:n.vgField(i,{suffix:"start"})},{data:e,field:n.vgField(i,{suffix:"end"})}])}const m=Nn(i)&&Ta(u)?function(e,t,n){if(!eo(n))return;const i=e.fieldDef(t),r=i.sort;if(va(r))return{op:"min",field:td(i,t),order:"ascending"};const{stack:o}=e,a=o?new Set([...o.groupbyFields,...o.stackBy.map((e=>e.fieldDef.field))]):void 0;if(ya(r)){return Hp(r,o&&!a.has(r.field))}if(function(e){return Te(e,"encoding")}(r)){const{encoding:t,order:n}=r,i=e.fieldDef(t),{aggregate:s,field:c}=i,l=o&&!a.has(c);if(Ln(s)||zn(s))return Hp({field:Ha(i),order:n},l);if(In(s)||!s)return Hp({op:s,field:c,order:n},l)}else{if("descending"===r)return{op:"min",field:e.vgField(t),order:"descending"};if(V(["ascending",void 0],r))return!0}return}(n,i,e):void 0;if(Ra(u)){return Ul(Wp([u.datum],f,d))}const h=u;if("unaggregated"===t){const{field:e}=u;return Ul([{data:n.requestDataName(p),field:Ha({field:e,aggregate:"min"})},{data:n.requestDataName(p),field:Ha({field:e,aggregate:"max"})}])}if(Gn(h.bin)){if(eo(e))return Ul("bin-ordinal"===e?[]:[{data:ce(m)?n.requestDataName(p):n.requestDataName(Zl.Raw),field:n.vgField(i,us(h,i)?{binSuffix:"range"}:{}),sort:!0!==m&&(0,c.Gv)(m)?m:{field:n.vgField(i,{}),op:"min"}}]);{const{bin:e}=h;if(Gn(e)){const t=Xd(n,h.field,e);return Ul([new Mp((()=>{const e=n.getSignalName(t);return`[${e}.start, ${e}.stop]`}))])}return Ul([{data:n.requestDataName(p),field:n.vgField(i,{})}])}}if(h.timeUnit&&V(["time","utc"],e)){const e=r[jt(i)];if(Da(h,e,o,s)){const t=n.requestDataName(p),r=Sa({fieldDef:h,fieldDef2:e,markDef:o,config:s}),c=Ro(a)&&.5!==r&&un(i);return Ul([{data:t,field:n.vgField(i,c?{suffix:du}:{})},{data:t,field:n.vgField(i,{suffix:c?pu:"end"})}])}}return Ul(m?[{data:ce(m)?n.requestDataName(p):n.requestDataName(Zl.Raw),field:n.vgField(i),sort:m}]:[{data:n.requestDataName(p),field:n.vgField(i)}])}function Hp(e,t){const{op:n,field:i,order:r}=e;return{op:n??(t?"sum":ma),...i?{field:ge(i)}:{},...r?{order:r}:{}}}function Bp(e,t){const n=e.component.scales[t],i=e.specifiedScales[t].domain,r=e.fieldDef(t)?.bin,o=ro(i)?i:void 0,a=Bn(r)&&Vn(r.extent)?r.extent:void 0;(o||a)&&n.set("selectionExtent",o??a,!0)}function Vp(e,t){const{aggregate:n,type:i}=e;return n?(0,c.Kg)(n)&&!qn.has(n)?{valid:!1,reason:Wi(n)}:"quantitative"===i&&"log"===t?{valid:!1,reason:Gi(e)}:{valid:!0}:{valid:!1,reason:qi(e)}}function Yp(e,t,n,i){return e.explicit&&t.explicit&&er(function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${Ce(n)} and ${Ce(i)}). Using the union of the two domains.`}(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function Kp(e){const t=J(e.map((e=>{if(ti(e)){const{sort:t,...n}=e;return n}return e})),H),n=J(e.map((e=>{if(ti(e)){const t=e.sort;return void 0===t||ce(t)||("op"in t&&"count"===t.op&&delete t.field,"ascending"===t.order&&delete t.order),t}})).filter((e=>void 0!==e)),H);if(0===t.length)return;if(1===t.length){const t=e[0];if(ti(t)&&n.length>0){let e=n[0];if(n.length>1){er(Vi);const t=n.filter((e=>(0,c.Gv)(e)&&"op"in e&&"min"!==e.op));e=!n.every((e=>(0,c.Gv)(e)&&"op"in e))||1!==t.length||t[0]}else if((0,c.Gv)(e)&&"field"in e){const n=e.field;t.field===n&&(e=!e.order||{order:e.order})}return{...t,sort:e}}return t}const i=J(n.map((e=>ce(e)||!("op"in e)||(0,c.Kg)(e.op)&&(0,c.mQ)(An,e.op)?e:(er(function(e){return`Dropping sort property ${Ce(e)} as unioned domains only support boolean or op "count", "min", and "max".`}(e)),!0))),H);let r;1===i.length?r=i[0]:i.length>1&&(er(Vi),r=!0);const o=J(e.map((e=>ti(e)?e.data:null)),(e=>e));if(1===o.length&&null!==o[0]){return{data:o[0],fields:t.map((e=>e.field)),...r?{sort:r}:{}}}return{fields:t,...r?{sort:r}:{}}}function Xp(e){if(ti(e)&&(0,c.Kg)(e.field))return e.field;if(function(e){return!(0,c.cy)(e)&&Te(e,"fields")&&!Te(e,"data")}(e)){let t;for(const n of e.fields)if(ti(n)&&(0,c.Kg)(n.field))if(t){if(t!==n.field)return er("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),t}else t=n.field;return er("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."),t}if(function(e){return!(0,c.cy)(e)&&Te(e,"fields")&&Te(e,"data")}(e)){er("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");const t=e.fields[0];return(0,c.Kg)(t)?t:void 0}}function Qp(e,t){const n=e.component.scales[t].get("domains").map((t=>(ti(t)&&(t.data=e.lookupDataSource(t.data)),t)));return Kp(n)}function Jp(e){return wm(e)||$m(e)?e.children.reduce(((e,t)=>e.concat(Jp(t))),Zp(e)):Zp(e)}function Zp(e){return oe(e.component.scales).reduce(((t,n)=>{const i=e.component.scales[n];if(i.merged)return t;const r=i.combine(),{name:o,type:a,selectionExtent:s,domains:l,range:u,reverse:f,...d}=r,p=function(e,t,n,i){if(un(n)){if(ei(e))return{step:{signal:`${t}_step`}}}else if((0,c.Gv)(e)&&ti(e))return{...e,data:i.lookupDataSource(e.data)};return e}(r.range,o,n,e),m=Qp(e,n),h=s?function(e,t,n,i){const r=Uf(e,t.param,t);return{signal:to(n.get("type"))&&(0,c.cy)(i)&&i[0]>i[1]?`isValid(${r}) && reverse(${r})`:r}}(e,s,i,m):null;return t.push({name:o,type:a,...m?{domain:m}:{},...h?{domainRaw:h}:{},range:p,...void 0!==f?{reverse:f}:{},...d}),t}),[])}class em extends jl{constructor(e,t){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",t)}domainHasZero(){const e=this.get("type");if(V([Wr.LOG,Wr.TIME,Wr.UTC],e))return"definitely-not";const t=this.get("zero");if(!0===t||void 0===t&&V([Wr.LINEAR,Wr.SQRT,Wr.POW],e))return"definitely";const n=this.get("domains");if(n.length>0){let e=!1,t=!1,i=!1;for(const r of n){if((0,c.cy)(r)){const n=r[0],i=r[r.length-1];if((0,c.Et)(n)&&(0,c.Et)(i)){if(n<=0&&i>=0){e=!0;continue}t=!0;continue}}i=!0}if(e)return"definitely";if(t&&!i)return"definitely-not"}return"maybe"}}const tm=["range","scheme"];function nm(e,t){const n=e.fieldDef(t);if(n?.bin){const{bin:i,field:r}=n,o=Mt(t),a=e.getName(o);if((0,c.Gv)(i)&&i.binned&&void 0!==i.step)return new Mp((()=>{const n=e.scaleName(t),r=`(domain("${n}")[1] - domain("${n}")[0]) / ${i.step}`;return`${e.getSignalName(a)} / (${r})`}));if(Gn(i)){const t=Xd(e,r,i);return new Mp((()=>{const n=e.getSignalName(t),i=`(${n}.stop - ${n}.start) / ${n}.step`;return`${e.getSignalName(a)} / (${i})`}))}}}function im(e,t){const n=t.specifiedScales[e],{size:i}=t,r=t.getScaleComponent(e).get("type");for(const i of tm)if(void 0!==n[i]){const o=ho(r,i),a=go(e,i);if(o)if(a)er(a);else switch(i){case"range":{const i=n.range;if((0,c.cy)(i)){if(un(e))return Ml(i.map((e=>{if("width"===e||"height"===e){const n=t.getName(e),i=t.getSignalName.bind(t);return Mp.fromName(i,n)}return e})))}else if((0,c.Gv)(i))return Ml({data:t.requestDataName(Zl.Main),field:i.field,sort:{op:"min",field:t.vgField(e)}});return Ml(i)}case"scheme":return Ml(rm(n[i]))}else er(Hi(r,i,e))}const o=e===Ae||"xOffset"===e?"width":"height",a=i[o];if(yc(a))if(un(e))if(eo(r)){const n=am(a,t,e);if(n)return Ml({step:n})}else er(Bi(o));else if(hn(e)){const n=e===je?"x":"y";if("band"===t.getScaleComponent(n).get("type")){const e=sm(a,r);if(e)return Ml(e)}}const{rangeMin:s,rangeMax:l}=n,u=function(e,t){const{size:n,config:i,mark:r,encoding:o}=t,{type:a}=ts(o[e]),s=t.getScaleComponent(e),l=s.get("type"),{domain:u,domainMid:f}=t.specifiedScales[e];switch(e){case Ae:case Le:if(V(["point","band"],l)){const r=cm(e,n,i.view);if(yc(r)){return{step:am(r,t,e)}}}return om(e,t,l);case je:case Me:return function(e,t,n){const i=e===je?"x":"y",r=t.getScaleComponent(i);if(!r)return om(i,t,n,{center:!0});const o=r.get("type"),a=t.scaleName(i),{markDef:s,config:c}=t;if("band"===o){const e=cm(i,t.size,t.config.view);if(yc(e)){const t=sm(e,n);if(t)return t}return[0,{signal:`bandwidth('${a}')`}]}{const n=t.encoding[i];if(Ta(n)&&n.timeUnit){const e=xr(n.timeUnit,(e=>`scale('${a}', ${e})`)),i=t.config.scale.bandWithNestedOffsetPaddingInner,r=Sa({fieldDef:n,markDef:s,config:c})-.5,o=0!==r?` + ${r}`:"";if(i){return[{signal:`${Zn(i)?`${i.signal}/2`+o:`${i/2+r}`} * (${e})`},{signal:`${Zn(i)?`(1 - ${i.signal}/2)`+o:`${1-i/2+r}`} * (${e})`}]}return[0,{signal:e}]}return q(`Cannot use ${e} scale if ${i} scale is not discrete.`)}}(e,t,l);case Ze:{const o=function(e,t){switch(e){case"bar":case"tick":return t.scale.minBandSize;case"line":case"trail":case"rule":return t.scale.minStrokeWidth;case"text":return t.scale.minFontSize;case"point":case"square":case"circle":return t.scale.minSize}throw new Error(Ii("size",e))}(r,i),a=function(e,t,n,i){const r={x:nm(n,"x"),y:nm(n,"y")};switch(e){case"bar":case"tick":{if(void 0!==i.scale.maxBandSize)return i.scale.maxBandSize;const e=um(t,r,i.view);return(0,c.Et)(e)?e-1:new Mp((()=>`${e.signal} - 1`))}case"line":case"trail":case"rule":return i.scale.maxStrokeWidth;case"text":return i.scale.maxFontSize;case"point":case"square":case"circle":{if(i.scale.maxSize)return i.scale.maxSize;const e=um(t,r,i.view);return(0,c.Et)(e)?Math.pow(lm*e,2):new Mp((()=>`pow(${lm} * ${e.signal}, 2)`))}}throw new Error(Ii("size",e))}(r,n,t,i);return io(l)?function(e,t,n){const i=()=>{const i=ui(t),r=ui(e),o=`(${i} - ${r}) / (${n} - 1)`;return`sequence(${r}, ${i} + ${o}, ${o})`};return Zn(t)?new Mp(i):{signal:i()}}(o,a,function(e,t,n,i){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return void 0!==n&&(0,c.cy)(n)?n.length+1:(er(function(e){return`Domain for ${e} is required for threshold scale.`}(i)),3)}}(l,i,u,e)):[o,a]}case We:return[0,2*Math.PI];case et:return[0,360];case Ue:return[0,new Mp((()=>`min(${t.getSignalName(xm(t.parent)?"child_width":"width")},${t.getSignalName(xm(t.parent)?"child_height":"height")})/2`))];case rt:return[i.scale.minStrokeWidth,i.scale.maxStrokeWidth];case ot:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case Je:return"symbol";case Ke:case Xe:case Qe:return"ordinal"===l?"nominal"===a?"category":"ordinal":void 0!==f?"diverging":"rect"===r||"geoshape"===r?"heatmap":"ramp";case tt:case nt:case it:return[i.scale.minOpacity,i.scale.maxOpacity]}}(e,t);return(void 0!==s||void 0!==l)&&ho(r,"rangeMin")&&(0,c.cy)(u)&&2===u.length?Ml([s??u[0],l??u[1]]):Ul(u)}function rm(e){return function(e){return!(0,c.Kg)(e)&&Te(e,"name")}(e)?{scheme:e.name,...G(e,["name"])}:{scheme:e}}function om(e,t,n,{center:i}={}){const r=Mt(e),o=t.getName(r),a=t.getSignalName.bind(t);return e===Le&&to(n)?i?[Mp.fromName((e=>`${a(e)}/2`),o),Mp.fromName((e=>`-${a(e)}/2`),o)]:[Mp.fromName(a,o),0]:i?[Mp.fromName((e=>`-${a(e)}/2`),o),Mp.fromName((e=>`${a(e)}/2`),o)]:[0,Mp.fromName(a,o)]}function am(e,t,n){const{encoding:i}=t,r=t.getScaleComponent(n),o=qt(n),a=i[o];if("offset"===gc({step:e,offsetIsDiscrete:za(a)&&zr(a.type)})&&ws(i,o)){const n=t.getScaleComponent(o);let i=`domain('${t.scaleName(o)}').length`;if("band"===n.get("type")){i=`bandspace(${i}, ${n.get("paddingInner")??n.get("padding")??0}, ${n.get("paddingOuter")??n.get("padding")??0})`}const a=r.get("paddingInner")??r.get("padding");return{signal:`${e.step} * ${i} / (1-${s=a,Zn(s)?s.signal:(0,c.r$)(s)})`}}return e.step;var s}function sm(e,t){if("offset"===gc({step:e,offsetIsDiscrete:eo(t)}))return{step:e.step}}function cm(e,t,n){const i=e===Ae?"width":"height",r=t[i];return r||wc(n,i)}const lm=.95;function um(e,t,n){const i=yc(e.width)?e.width.step:$c(n,"width"),r=yc(e.height)?e.height.step:$c(n,"height");return t.x||t.y?new Mp((()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`)):Math.min(i,r)}function fm(e,t){bm(e)?function(e,t){const n=e.component.scales,{config:i,encoding:r,markDef:o,specifiedScales:a}=e;for(const s of oe(n)){const c=a[s],l=n[s],u=e.getScaleComponent(s),f=ts(r[s]),d=c[t],p=u.get("type"),m=u.get("padding"),h=u.get("paddingInner"),g=ho(p,t),y=go(s,t);if(void 0!==d&&(g?y&&er(y):er(Hi(p,t,s))),g&&void 0===y)if(void 0!==d){const e=f.timeUnit,n=f.type;switch(t){case"domainMax":case"domainMin":tr(c[t])||"temporal"===n||e?l.set(t,{signal:cs(c[t],{type:n,timeUnit:e})},!0):l.set(t,c[t],!0);break;default:l.copyKeyFromObject(t,c)}}else{const n=Te(dm,t)?dm[t]({model:e,channel:s,fieldOrDatumDef:f,scaleType:p,scalePadding:m,scalePaddingInner:h,domain:c.domain,domainMin:c.domainMin,domainMax:c.domainMax,markDef:o,config:i,hasNestedOffsetScale:ks(r,s),hasSecondaryRangeChannel:!!r[jt(s)]}):i.scale[t];void 0!==n&&l.set(t,n,!1)}}}(e,t):mm(e,t)}const dm={bins:({model:e,fieldOrDatumDef:t})=>Ta(t)?function(e,t){const n=t.bin;if(Gn(n)){const i=Xd(e,t.field,n);return new Mp((()=>e.getSignalName(i)))}if(Hn(n)&&Bn(n)&&void 0!==n.step)return{step:n.step};return}(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>function(e,t){if(V([Ke,Xe,Qe],e)&&"nominal"!==t)return"hcl";return}(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:i,domainMax:r,fieldOrDatumDef:o})=>function(e,t,n,i,r,o){if(es(o)?.bin||(0,c.cy)(n)||null!=r||null!=i||V([Wr.TIME,Wr.UTC],e))return;return!!un(t)||void 0}(e,t,n,i,r,o),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:i,config:r})=>function(e,t,n,i,r,o){if(un(e)){if(no(t)){if(void 0!==n.continuousPadding)return n.continuousPadding;const{type:t,orient:a}=r;if("bar"===t&&(!Ta(i)||!i.bin&&!i.timeUnit)&&("vertical"===a&&"x"===e||"horizontal"===a&&"y"===e))return o.continuousBandSize}if(t===Wr.POINT)return n.pointPadding}return}(e,t,r.scale,n,i,r.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:i,config:r,hasNestedOffsetScale:o})=>function(e,t,n,i,r,o=!1){if(void 0!==e)return;if(un(t)){const{bandPaddingInner:e,barBandPaddingInner:t,rectBandPaddingInner:i,tickBandPaddingInner:a,bandWithNestedOffsetPaddingInner:s}=r;return o?s:xe(e,"bar"===n?t:"tick"===n?a:i)}if(hn(t)&&i===Wr.BAND)return r.offsetBandPaddingInner;return}(e,t,n.type,i,r.scale,o),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:i,config:r,hasNestedOffsetScale:o})=>function(e,t,n,i,r,o=!1){if(void 0!==e)return;if(un(t)){const{bandPaddingOuter:e,bandWithNestedOffsetPaddingOuter:t}=r;if(o)return t;if(n===Wr.BAND)return xe(e,Zn(i)?{signal:`${i.signal}/2`}:i/2)}else if(hn(t)){if(n===Wr.POINT)return.5;if(n===Wr.BAND)return r.offsetBandPaddingOuter}return}(e,t,n,i,r.scale,o),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:i})=>function(e,t,n,i){if("x"===n&&void 0!==i.xReverse)return to(e)&&"descending"===t?Zn(i.xReverse)?{signal:`!${i.xReverse.signal}`}:!i.xReverse:i.xReverse;if(to(e)&&"descending"===t)return!0;return}(t,Ta(e)?e.sort:void 0,n,i.scale),zero:({channel:e,fieldOrDatumDef:t,domain:n,markDef:i,scaleType:r,config:o,hasSecondaryRangeChannel:a})=>function(e,t,n,i,r,o,a){if(n&&"unaggregated"!==n&&to(r)){if((0,c.cy)(n)){const e=n[0],t=n[n.length-1];if((0,c.Et)(e)&&e<=0&&(0,c.Et)(t)&&t>=0)return!0}return!1}if("size"===e&&"quantitative"===t.type&&!io(r))return!0;if((!Ta(t)||!t.bin)&&V([...ln,...dn],e)){const{orient:t,type:n}=i;return(!V(["bar","area","line","trail"],n)||!("horizontal"===t&&"y"===e||"vertical"===t&&"x"===e))&&(!(!V(["bar","area"],n)||a)||o?.zero)}return!1}(e,t,n,i,r,o.scale,a)};function pm(e){bm(e)?function(e){const t=e.component.scales;for(const n of On){const i=t[n];if(!i)continue;const r=im(n,e);i.setWithExplicit("range",r)}}(e):mm(e,"range")}function mm(e,t){const n=e.component.scales;for(const n of e.children)"range"===t?pm(n):fm(n,t);for(const i of oe(n)){let r;for(const n of e.children){const e=n.component.scales[i];if(e){r=Gl(r,e.getWithExplicit(t),t,"scale",ql(((e,n)=>"range"===t&&e.step&&n.step?e.step-n.step:0)))}}n[i].setWithExplicit(t,r)}}function hm(e,t,n,i,r=!1){const o=function(e,t,n,i){switch(t.type){case"nominal":case"ordinal":if($t(e)||"discrete"===Rn(e))return"shape"===e&&"ordinal"===t.type&&er(Ui(e,"ordinal")),"ordinal";if(un(e)||hn(e)){if(V(["rect","bar","image","rule","tick"],n.type))return"band";if(i)return"band"}else if("arc"===n.type&&e in fn)return"band";return Uo(n[Mt(e)])||Ua(t)&&t.axis?.tickBand?"band":"point";case"temporal":return $t(e)?"time":"discrete"===Rn(e)?(er(Ui(e,"temporal")),"ordinal"):Ta(t)&&t.timeUnit&&br(t.timeUnit).utc?"utc":"time";case"quantitative":return $t(e)?Ta(t)&&Gn(t.bin)?"bin-ordinal":"linear":"discrete"===Rn(e)?(er(Ui(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(Ai(t.type))}(t,n,i,r),{type:a}=e;return Nn(t)?void 0!==a?function(e,t,n=!1){if(!Nn(e))return!1;switch(e){case Ae:case Le:case je:case Me:case We:case Ue:return!!no(t)||"band"===t||"point"===t&&!n;case Ze:case rt:case tt:case nt:case it:case et:return no(t)||io(t)||V(["band","point","ordinal"],t);case Ke:case Xe:case Qe:return"band"!==t;case ot:case Je:return"ordinal"===t||io(t)}}(t,a)?Ta(n)&&(s=a,c=n.type,!(V([jr,Ur],c)?void 0===s||eo(s):c===Mr?V([Wr.TIME,Wr.UTC,void 0],s):c!==Ir||Xr(s)||io(s)||void 0===s))?(er(function(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}(a,o)),o):a:(er(function(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}(t,a,o)),o):o:null;var s,c}function gm(e){bm(e)?e.component.scales=function(e){const{encoding:t,mark:n,markDef:i}=e,r={};for(const o of On){const a=ts(t[o]);if(a&&n===To&&o===Je&&a.type===qr)continue;let s=a&&a.scale;if(a&&null!==s&&!1!==s){s??(s={});const n=hm(s,o,a,i,ks(t,o));r[o]=new em(e.scaleName(`${o}`,!0),{value:n,explicit:s.type===n})}}return r}(e):e.component.scales=function(e){var t;const n=e.component.scales={},i={},r=e.component.resolve;for(const n of e.children){gm(n);for(const o of oe(n.component.scales))if((t=r.scale)[o]??(t[o]=kd(o,e)),"shared"===r.scale[o]){const e=i[o],t=n.component.scales[o].getWithExplicit("type");e?Hr(e.value,t.value)?i[o]=Gl(e,t,"type","scale",ym):(r.scale[o]="independent",delete i[o]):i[o]=t}}for(const t of oe(i)){const r=e.scaleName(t,!0),o=i[t];n[t]=new em(r,o);for(const n of e.children){const e=n.component.scales[t];e&&(n.renameScale(e.get("name"),r),e.merged=!0)}}return n}(e)}const ym=ql(((e,t)=>Vr(e)-Vr(t)));class vm{constructor(){this.nameMap={}}rename(e,t){this.nameMap[e]=t}has(e){return void 0!==this.nameMap[e]}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function bm(e){return"unit"===e?.type}function xm(e){return"facet"===e?.type}function $m(e){return"concat"===e?.type}function wm(e){return"layer"===e?.type}class km{constructor(e,t,n,i,r,o,a){this.type=t,this.parent=n,this.config=r,this.correctDataNames=e=>(e.from?.data&&(e.from.data=this.lookupDataSource(e.from.data)),e.from?.facet?.data&&(e.from.facet.data=this.lookupDataSource(e.from.facet.data)),e),this.parent=n,this.config=r,this.view=Xn(a),this.name=e.name??i,this.title=Jn(e.title)?{text:e.title}:e.title?Xn(e.title):void 0,this.scaleNameMap=n?n.scaleNameMap:new vm,this.projectionNameMap=n?n.projectionNameMap:new vm,this.signalNameMap=n?n.signalNameMap:new vm,this.data=e.data,this.description=e.description,this.transforms=(e.transform??[]).map((e=>al(e)?{filter:M(e.filter,_r)}:e)),this.layout="layer"===t||"unit"===t?{}:function(e,t,n){const i=n[t],r={},{spacing:o,columns:a}=i;void 0!==o&&(r.spacing=o),void 0!==a&&($a(e)&&!ba(e.facet)||pc(e))&&(r.columns=a),mc(e)&&(r.columns=1);for(const t of bc)if(void 0!==e[t])if("spacing"===t){const n=e[t];r[t]=(0,c.Et)(n)?n:{row:n.row??o,column:n.column??o}}else r[t]=e[t];return r}(e,t,r),this.component={data:{sources:n?n.component.data.sources:[],outputNodes:n?n.component.data.outputNodes:{},outputNodeRefCounts:n?n.component.data.outputNodeRefCounts:{},isFaceted:$a(e)||n?.component.data.isFaceted&&void 0===e.data},layoutSize:new jl,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...o?U(o):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){!function(e,{ignoreRange:t}={}){gm(e),Up(e);for(const t of mo)fm(e,t);t||pm(e)}(this)}parseProjection(){Vd(this)}renameTopLevelLayoutSizeSignal(){"width"!==this.getName("width")&&this.renameSignal(this.getName("width"),"width"),"height"!==this.getName("height")&&this.renameSignal(this.getName("height"),"height")}parseLegends(){zd(this)}assembleEncodeFromView(e){const{style:t,...n}=e,i={};for(const e of oe(n)){const t=n[e];void 0!==t&&(i[e]=ci(t))}return i}assembleGroupEncodeEntry(e){let t={};return this.view&&(t=this.assembleEncodeFromView(this.view)),e||(this.description&&(t.description=ci(this.description)),"unit"!==this.type&&"layer"!==this.type)?re(t)?void 0:t:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...t}}assembleLayout(){if(!this.layout)return;const{spacing:e,...t}=this.layout,{component:n,config:i}=this,r=function(e,t){const n={};for(const i of kt){const r=e[i];if(r?.facetFieldDef){const{titleAnchor:e,titleOrient:o}=rd(["titleAnchor","titleOrient"],r.facetFieldDef.header,t,i),a=nd(i,o),s=hd(e,a);void 0!==s&&(n[a]=s)}}return re(n)?void 0:n}(n.layoutHeaders,i);return{padding:e,...this.assembleDefaultLayout(),...t,...r?{titleBand:r}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let t=[];for(const n of kt)e[n].title&&t.push(sd(this,n));for(const e of od)t=t.concat(ud(this,e));return t}assembleAxes(){return function(e,t){const{x:n=[],y:i=[]}=e;return[...n.map((e=>Gf(e,"grid",t))),...i.map((e=>Gf(e,"grid",t))),...n.map((e=>Gf(e,"main",t))),...i.map((e=>Gf(e,"main",t)))].filter((e=>e))}(this.component.axes,this.config)}assembleLegends(){return qd(this)}assembleProjections(){return Wd(this)}assembleTitle(){const{encoding:e,...t}=this.title??{},n={...Qn(this.config.title).nonMarkTitleProperties,...t,...e?{encode:{update:e}}:{}};if(n.text)return V(["unit","layer"],this.type)?V(["middle",void 0],n.anchor)&&(n.frame??(n.frame="group")):n.anchor??(n.anchor="start"),re(n)?void 0:n}assembleGroup(e=[]){const t={};(e=e.concat(this.assembleSignals())).length>0&&(t.signals=e);const n=this.assembleLayout();n&&(t.layout=n),t.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||xm(this.parent)?Jp(this):[];i.length>0&&(t.scales=i);const r=this.assembleAxes();r.length>0&&(t.axes=r);const o=this.assembleLegends();return o.length>0&&(t.legends=o),t}getName(e){return le((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(Zl[e].toLowerCase())}requestDataName(e){const t=this.getDataName(e),n=this.component.data.outputNodeRefCounts;return n[t]=(n[t]||0)+1,t}getSizeSignalRef(e){if(xm(this.parent)){const t=pn($d(e)),n=this.component.scales[t];if(n&&!n.merged){const e=n.get("type"),i=n.get("range");if(eo(e)&&ei(i)){const e=n.get("name"),i=Xp(Qp(this,t));if(i){return{signal:xd(e,n,Ha({aggregate:"distinct",field:i},{expr:"datum"}))}}return er(Di(t)),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const t=this.component.data.outputNodes[e];return t?t.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,t){this.signalNameMap.rename(e,t)}renameScale(e,t){this.scaleNameMap.rename(e,t)}renameProjection(e,t){this.projectionNameMap.rename(e,t)}scaleName(e,t){return t?this.getName(e):_t(e)&&Nn(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e))?this.scaleNameMap.get(this.getName(e)):void 0}projectionName(e){return e?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const t=this.component.scales[e];return t&&!t.merged?t:this.parent?this.parent.getScaleComponent(e):void 0}getScaleType(e){const t=this.getScaleComponent(e);return t?t.get("type"):void 0}getSelectionComponent(e,t){let n=this.component.selection[e];if(!n&&this.parent&&(n=this.parent.getSelectionComponent(e,t)),!n)throw new Error(`Cannot find a selection named "${t}".`);return n}hasAxisOrientSignalRef(){return this.component.axes.x?.some((e=>e.hasOrientSignalRef()))||this.component.axes.y?.some((e=>e.hasOrientSignalRef()))}}class Sm extends km{vgField(e,t={}){const n=this.fieldDef(e);if(n)return Ha(n,t)}reduceFieldDef(e,t){return function(e,t,n,i){return e?oe(e).reduce(((n,r)=>{const o=e[r];return(0,c.cy)(o)?o.reduce(((e,n)=>t.call(i,e,n,r)),n):t.call(i,n,o,r)}),n):n}(this.getMapping(),((t,n,i)=>{const r=es(n);return r?e(t,r,i):t}),t)}forEachFieldDef(e,t){Ns(this.getMapping(),((t,n)=>{const i=es(t);i&&e(i,n)}),t)}}class Em extends su{clone(){return new Em(null,U(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=U(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"value",n[1]??"density"];const i=this.transform.resolve??"shared";this.transform.resolve=i}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${H(this.transform)}`}assemble(){const{density:e,...t}=this.transform,n={type:"kde",field:e,...t};return n.resolve=this.transform.resolve,n}}class Dm extends su{clone(){return new Dm(null,U(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=U(t)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${H(this.transform)}`}assemble(){const{extent:e,param:t}=this.transform;return{type:"extent",field:e,signal:t}}}class Om extends su{clone(){return new Om(this.parent,U(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=U(t);const{flatten:n,as:i=[]}=this.transform;this.transform.as=n.map(((e,t)=>i[t]??e))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${H(this.transform)}`}assemble(){const{flatten:e,as:t}=this.transform;return{type:"flatten",fields:e,as:t}}}class Nm extends su{clone(){return new Nm(null,U(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=U(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"key",n[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${H(this.transform)}`}assemble(){const{fold:e,as:t}=this.transform;return{type:"fold",fields:e,as:t}}}class Fm extends su{clone(){return new Fm(null,U(this.fields),this.geojson,this.signal)}static parseAll(e,t){if(t.component.projection&&!t.component.projection.isFit)return e;let n=0;for(const i of[[Be,He],[Ye,Ve]]){const r=i.map((e=>{const n=ts(t.encoding[e]);return Ta(n)?n.field:Ra(n)?{expr:`${n.datum}`}:ja(n)?{expr:`${n.value}`}:void 0}));(r[0]||r[1])&&(e=new Fm(e,r,null,t.getName("geojson_"+n++)))}if(t.channelHasField(Je)){const i=t.typedFieldDef(Je);i.type===qr&&(e=new Fm(e,null,i.field,t.getName("geojson_"+n++)))}return e}constructor(e,t,n,i){super(e),this.fields=t,this.geojson=n,this.signal=i}dependentFields(){const e=(this.fields??[]).filter(c.Kg);return new Set([...this.geojson?[this.geojson]:[],...e])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${H(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 Cm extends su{clone(){return new Cm(null,this.projection,U(this.fields),U(this.as))}constructor(e,t,n,i){super(e),this.projection=t,this.fields=n,this.as=i}static parseAll(e,t){if(!t.projectionName())return e;for(const n of[[Be,He],[Ye,Ve]]){const i=n.map((e=>{const n=ts(t.encoding[e]);return Ta(n)?n.field:Ra(n)?{expr:`${n.datum}`}:ja(n)?{expr:`${n.value}`}:void 0})),r=n[0]===Ye?"2":"";(i[0]||i[1])&&(e=new Cm(e,t.projectionName(),i,[t.getName(`x${r}`),t.getName(`y${r}`)]))}return e}dependentFields(){return new Set(this.fields.filter(c.Kg))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${H(this.fields)} ${H(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Tm extends su{clone(){return new Tm(null,U(this.transform))}constructor(e,t){super(e),this.transform=t}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:t=0,stop:n,step:i}=e;return{signal:`sequence(${[t,n,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,t){return new Tm(e,t)}static makeFromEncoding(e,t){const n=t.encoding,i=n.x,r=n.y;if(Ta(i)&&Ta(r)){const o=i.impute?i:r.impute?r:void 0;if(void 0===o)return;const a=i.impute?r:r.impute?i:void 0,{method:s,value:c,frame:l,keyvals:u}=o.impute,f=Fs(t.mark,n);return new Tm(e,{impute:o.field,key:a.field,...s?{method:s}:{},...void 0!==c?{value:c}:{},...l?{frame:l}:{},...void 0!==u?{keyvals:u}:{},...f.length?{groupby:f}:{}})}return null}hash(){return`Impute ${H(this.transform)}`}assemble(){const{impute:e,key:t,keyvals:n,method:i,groupby:r,value:o,frame:a=[null,null]}=this.transform,s={type:"impute",field:e,key:t,...n?{keyvals:sl(n)?this.processSequence(n):n}:{},method:"value",...r?{groupby:r}:{},value:i&&"value"!==i?null:o};if(i&&"value"!==i){return[s,{type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:a,ignorePeers:!1,...r?{groupby:r}:{}},{type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e}]}return[s]}}class Pm extends su{clone(){return new Pm(null,U(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=U(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??t.on,n[1]??t.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${H(this.transform)}`}assemble(){const{loess:e,on:t,...n}=this.transform;return{type:"loess",x:t,y:e,...n}}}class Rm extends su{clone(){return new Rm(null,U(this.transform),this.secondary)}constructor(e,t,n){super(e),this.transform=t,this.secondary=n}static make(e,t,n,i){const r=t.component.data.sources,{from:o}=n;let a=null;if(function(e){return Te(e,"data")}(o)){let e=Ym(o.data,r);e||(e=new lp(o.data),r.push(e));const n=t.getName(`lookup_${i}`);a=new cu(e,n,Zl.Lookup,t.component.data.outputNodeRefCounts),t.component.data.outputNodes[n]=a}else if(function(e){return Te(e,"param")}(o)){const e=o.param;let i;n={as:e,...n};try{i=t.getSelectionComponent(le(e),e)}catch(t){throw new Error(`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`)}if(a=i.materialized,!a)throw new Error(function(e){return`Cannot define and lookup the "${e}" selection in the same view. Try moving the lookup into a second, layered view?`}(e))}return new Rm(e,n,a.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?(0,c.YO)(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${H({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e={values:this.transform.from.fields,...this.transform.as?{as:(0,c.YO)(this.transform.as)}:{}};else{let t=this.transform.as;(0,c.Kg)(t)||(er('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.'),t="_lookup"),e={as:[t]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...e,...this.transform.default?{default:this.transform.default}:{}}}}class _m extends su{clone(){return new _m(null,U(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=U(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"prob",n[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${H(this.transform)}`}assemble(){const{quantile:e,...t}=this.transform;return{type:"quantile",field:e,...t}}}class Am extends su{clone(){return new Am(null,U(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=U(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??t.on,n[1]??t.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${H(this.transform)}`}assemble(){const{regression:e,on:t,...n}=this.transform;return{type:"regression",x:t,y:e,...n}}}class Lm extends su{clone(){return new Lm(null,U(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=J((this.transform.groupby??[]).concat(e),(e=>e))}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${H(this.transform)}`}assemble(){const{pivot:e,value:t,groupby:n,limit:i,op:r}=this.transform;return{type:"pivot",field:e,value:t,...void 0!==i?{limit:i}:{},...void 0!==r?{op:r}:{},...void 0!==n?{groupby:n}:{}}}}class zm extends su{clone(){return new zm(null,U(this.transform))}constructor(e,t){super(e),this.transform=t}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${H(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function Im(e){let t=0;return function n(i,r){if(i instanceof lp&&!i.isGenerator&&!Bl(i.data)){e.push(r);r={name:null,source:r.name,transform:[]}}if(i instanceof op&&(i.parent instanceof lp&&!r.source?(r.format={...r.format,parse:i.assembleFormatParse()},r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof tp)return r.name||(r.name="data_"+t++),!r.source||r.transform.length>0?(e.push(r),i.data=r.name):i.data=r.source,void e.push(...i.assemble());if((i instanceof sp||i instanceof cp||i instanceof Fp||i instanceof jf||i instanceof ed||i instanceof Cm||i instanceof ep||i instanceof Rm||i instanceof Pp||i instanceof Np||i instanceof Nm||i instanceof Om||i instanceof Em||i instanceof Pm||i instanceof _m||i instanceof Am||i instanceof ap||i instanceof zm||i instanceof Lm||i instanceof Dm)&&r.transform.push(i.assemble()),(i instanceof Jd||i instanceof fu||i instanceof Tm||i instanceof Tp||i instanceof Fm)&&r.transform.push(...i.assemble()),i instanceof cu)if(r.source&&0===r.transform.length)i.setSource(r.source);else if(i.parent instanceof cu)i.setSource(r.name);else if(r.name||(r.name="data_"+t++),i.setSource(r.name),1===i.numChildren()){e.push(r);r={name:null,source:r.name,transform:[]}}switch(i.numChildren()){case 0:i instanceof cu&&(!r.source||r.transform.length>0)&&e.push(r);break;case 1:n(i.children[0],r);break;default:{r.name||(r.name="data_"+t++);let o=r.name;!r.source||r.transform.length>0?e.push(r):o=r.source;for(const e of i.children){n(e,{name:null,source:o,transform:[]})}break}}}}function jm(e){return"top"===e||"left"===e||Zn(e)?"header":"footer"}function Mm(e,t){const{facet:n,config:i,child:r,component:o}=e;if(e.channelHasField(t)){const a=n[t],s=id("title",null,i,t);let l=Xa(a,i,{allowDisabling:!0,includeDefault:void 0===s||!!s});r.component.layoutHeaders[t].title&&(l=(0,c.cy)(l)?l.join(", "):l,l+=` / ${r.component.layoutHeaders[t].title}`,r.component.layoutHeaders[t].title=null);const u=id("labelOrient",a.header,i,t),f=null!==a.header&&xe(a.header?.labels,i.header.labels,!0),d=V(["bottom","right"],u)?"footer":"header";o.layoutHeaders[t]={title:null!==a.header?l:null,facetFieldDef:a,[d]:"facet"===t?[]:[Um(e,t,f)]}}}function Um(e,t,n){const i="row"===t?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):void 0,axes:[]}}function qm(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:i,resolve:r}=e.component;if(r.axis[t]=Sd(r,t),"shared"===r.axis[t]){const r="x"===t?"column":"row",o=i[r];for(const i of n.component.axes[t]){const t=jm(i.get("orient"));o[t]??(o[t]=[Um(e,r,!1)]);const n=Gf(i,"main",e.config,{header:!0});n&&o[t][0].axes.push(n),i.mainExtracted=!0}}}}function Wm(e){for(const t of e.children)t.parseLayoutSize()}function Gm(e,t){const n=$d(t),i=pn(n),r=e.component.resolve,o=e.component.layoutSize;let a;for(const t of e.children){const o=t.component.layoutSize.getWithExplicit(n),s=r.scale[i]??kd(i,e);if("independent"===s&&"step"===o.value){a=void 0;break}if(a){if("independent"===s&&a.value!==o.value){a=void 0;break}a=Gl(a,o,n,"")}else a=o}if(a){for(const i of e.children)e.renameSignal(i.getName(n),e.getName(t)),i.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(t,a)}else o.setWithExplicit(t,{explicit:!1,value:void 0})}function Hm(e,t){const n="width"===t?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const e=r.get("type"),n=r.get("range");if(eo(e)){const e=wc(i.view,t);return ei(n)||yc(e)?"step":e}return xc(i.view,t)}if(e.hasProjection||"arc"===e.mark)return xc(i.view,t);{const e=wc(i.view,t);return yc(e)?e.step:e}}function Bm(e,t,n){return Ha(t,{suffix:`by_${Ha(e)}`,...n})}class Vm extends Sm{constructor(e,t,n,i){super(e,"facet",t,n,i,e.resolve),this.child=xh(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!ba(e))return{facet:this.initFacetFieldDef(e,"facet")};const t=oe(e),n={};for(const i of t){if(![Pe,Re].includes(i)){er(Ii(i,"facet"));break}const t=e[i];if(void 0===t.field){er(zi(t,i));break}n[i]=this.initFacetFieldDef(t,i)}return n}initFacetFieldDef(e,t){const n=rs(e,t);return n.header?n.header=Xn(n.header):null===n.header&&(n.header=null),n}channelHasField(e){return Te(this.facet,e)}fieldDef(e){return this.facet[e]}parseData(){this.component.data=Km(this),this.child.parseData()}parseLayoutSize(){Wm(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(e){for(const t of kt)Mm(e,t);qm(e,"x"),qm(e,"y")}(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){const e={};for(const t of kt)for(const n of ad){const i=this.component.layoutHeaders[t],r=i[n],{facetFieldDef:o}=i;if(o){const n=id("titleOrient",o.header,this.config,t);if(["right","bottom"].includes(n)){const i=nd(t,n);e.titleAnchor??(e.titleAnchor={}),e.titleAnchor[i]="end"}}if(r?.[0]){const r="row"===t?"height":"width",o="header"===n?"headerBand":"footerBand";"facet"===t||this.child.component.layoutSize.get(r)||(e[o]??(e[o]={}),e[o][t]=.5),i.title&&(e.offset??(e.offset={}),e.offset["row"===t?"rowTitle":"columnTitle"]=10)}}return e}assembleDefaultLayout(){const{column:e,row:t}=this.facet,n=e?this.columnDistinctSignal():t?1:void 0;let i="all";return(t||"independent"!==this.component.resolve.scale.x)&&(e||"independent"!==this.component.resolve.scale.y)||(i="none"),{...this.getHeaderLayoutMixins(),...n?{columns:n}:{},bounds:"full",align:i}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof Vm)){return{signal:`length(data('${this.getName("column_domain")}'))`}}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof Vm?{...this.channelHasField("column")?{encode:{update:{columns:{field:Ha(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(e)}:super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],t=[],n=[];if(this.child instanceof Vm){if(this.child.channelHasField("column")){const i=Ha(this.child.facet.column);e.push(i),t.push("distinct"),n.push(`distinct_${i}`)}}else for(const i of ln){const r=this.child.component.scales[i];if(r&&!r.merged){const o=r.get("type"),a=r.get("range");if(eo(o)&&ei(a)){const r=Xp(Qp(this.child,i));r?(e.push(r),t.push("distinct"),n.push(`distinct_${r}`)):er(Di(i))}}}return{fields:e,ops:t,as:n}}assembleFacet(){const{name:e,data:t}=this.component.data.facetRoot,{row:n,column:i}=this.facet,{fields:r,ops:o,as:a}=this.getCardinalityAggregateForChild(),s=[];for(const e of kt){const t=this.facet[e];if(t){s.push(Ha(t));const{bin:l,sort:u}=t;if(Gn(l)&&s.push(Ha(t,{binSuffix:"end"})),ya(u)){const{field:e,op:s=ma}=u,c=Bm(t,u);n&&i?(r.push(c),o.push("max"),a.push(c)):(r.push(e),o.push(s),a.push(c))}else if((0,c.cy)(u)){const n=td(t,e);r.push(n),o.push("max"),a.push(n)}}}const l=!!n&&!!i;return{name:e,data:t,groupby:s,...l||r.length>0?{aggregate:{...l?{cross:l}:{},...r.length?{fields:r,ops:o,as:a}:{}}}:{}}}facetSortFields(e){const{facet:t}=this,n=t[e];return n?ya(n.sort)?[Bm(n,n.sort,{expr:"datum"})]:(0,c.cy)(n.sort)?[td(n,e,{expr:"datum"})]:[Ha(n,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:t}=this,n=t[e];if(n){const{sort:e}=n;return[(ya(e)?e.order:!(0,c.cy)(e)&&e)||"ascending"]}return[]}assembleLabelTitle(){const{facet:e,config:t}=this;if(e.facet)return dd(e.facet,"facet",t);const n={row:["top","bottom"],column:["left","right"]};for(const i of od)if(e[i]){const r=id("labelOrient",e[i]?.header,t,i);if(n[i].includes(r))return dd(e[i],i,t)}}assembleMarks(){const{child:e}=this,t=function(e){const t=[],n=Im(t);for(const t of e.children)n(t,{source:e.name,name:null,transform:[]});return t}(this.component.data.facetRoot),n=e.assembleGroupEncodeEntry(!1),i=this.assembleLabelTitle()||e.assembleTitle(),r=e.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...i?{title:i}:{},...r?{style:r}:{},from:{facet:this.assembleFacet()},sort:{field:kt.map((e=>this.facetSortFields(e))).flat(),order:kt.map((e=>this.facetSortOrder(e))).flat()},...t.length>0?{data:t}:{},...n?{encode:{update:n}}:{},...e.assembleGroup(ru(this,[]))}]}getMapping(){return this.facet}}function Ym(e,t){for(const n of t){const t=n.data;if(e.name&&n.hasName()&&e.name!==n.dataName)continue;const i=e.format?.mesh,r=t.format?.feature;if(i&&r)continue;const o=e.format?.feature;if((o||r)&&o!==r)continue;const a=t.format?.mesh;if(!i&&!a||i===a)if(Vl(e)&&Vl(t)){if(Fe(e.values,t.values))return n}else if(Bl(e)&&Bl(t)){if(e.url===t.url)return n}else if(Yl(e)&&e.name===n.dataName)return n}return null}function Km(e){let t=function(e,t){if(e.data||!e.parent){if(null===e.data){const e=new lp({values:[]});return t.push(e),e}const n=Ym(e.data,t);if(n)return Kl(e.data)||(n.data.format=X({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const n=new lp(e.data);return t.push(n),n}}return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}(e,e.component.data.sources);const{outputNodes:n,outputNodeRefCounts:i}=e.component.data,r=e.data,o=!(r&&(Kl(r)||Bl(r)||Vl(r)))&&e.parent?e.parent.component.data.ancestorParse.clone():new Hl;Kl(r)?(Xl(r)?t=new cp(t,r.sequence):Jl(r)&&(t=new sp(t,r.graticule)),o.parseNothing=!0):null===r?.format?.parse&&(o.parseNothing=!0),t=op.makeExplicit(t,e,o)??t,t=new ap(t);const a=e.parent&&wm(e.parent);(bm(e)||xm(e))&&a&&(t=Jd.makeFromEncoding(t,e)??t),e.transforms.length>0&&(t=function(e,t,n){let i=0;for(const r of t.transforms){let o,a;if(vl(r))a=e=new ed(e,r),o="derived";else if(al(r)){const i=ip(r);a=e=op.makeWithAncestors(e,{},i,n)??e,e=new jf(e,t,r.filter)}else if(bl(r))a=e=Jd.makeFromTransform(e,r,t),o="number";else if($l(r))o="date",void 0===n.getWithExplicit(r.field).value&&(e=new op(e,{[r.field]:o}),n.set(r.field,o,!1)),a=e=fu.makeFromTransform(e,r);else if(wl(r))a=e=ep.makeFromTransform(e,r),o="number",_f(t)&&(e=new ap(e));else if(cl(r))a=e=Rm.make(e,t,r,i++),o="derived";else if(hl(r))a=e=new Pp(e,r),o="number";else if(gl(r))a=e=new Np(e,r),o="number";else if(kl(r))a=e=Tp.makeFromTransform(e,r),o="derived";else if(Sl(r))a=e=new Nm(e,r),o="derived";else if(El(r))a=e=new Dm(e,r),o="derived";else if(yl(r))a=e=new Om(e,r),o="derived";else if(ll(r))a=e=new Lm(e,r),o="derived";else if(ml(r))e=new zm(e,r);else if(xl(r))a=e=Tm.makeFromTransform(e,r),o="derived";else if(ul(r))a=e=new Em(e,r),o="derived";else if(fl(r))a=e=new _m(e,r),o="derived";else if(dl(r))a=e=new Am(e,r),o="derived";else{if(!pl(r)){er(`Ignoring an invalid transform: ${Ce(r)}.`);continue}a=e=new Pm(e,r),o="derived"}if(a&&void 0!==o)for(const e of a.producedFields()??[])n.set(e,o,!1)}return e}(t,e,o));const s=function(e){const t={};if(bm(e)&&e.component.selection)for(const n of oe(e.component.selection)){const i=e.component.selection[n];for(const e of i.project.items)!e.channel&&be(e.field)>1&&(t[e.field]="flatten")}return t}(e),c=rp(e);t=op.makeWithAncestors(t,{},{...s,...c},o)??t,bm(e)&&(t=Fm.parseAll(t,e),t=Cm.parseAll(t,e)),(bm(e)||xm(e))&&(a||(t=Jd.makeFromEncoding(t,e)??t),t=fu.makeFromEncoding(t,e)??t,t=ed.parseAllForSortIndex(t,e));const l=t=Xm(Zl.Raw,e,t);if(bm(e)){const n=ep.makeFromEncoding(t,e);n&&(t=n,_f(e)&&(t=new ap(t))),t=Tm.makeFromEncoding(t,e)??t,t=Tp.makeFromEncoding(t,e)??t}let u,f;if(bm(e)){const{markDef:n,mark:i,config:r}=e,o=pi("invalid",n,r),{marks:a,scales:s}=f=eu({invalid:o,isPath:Po(i)});a!==s&&"include-invalid-values"===s&&(u=t=Xm(Zl.PreFilterInvalid,e,t)),"exclude-invalid-values"===a&&(t=Fp.make(t,e,f)??t)}const d=t=Xm(Zl.Main,e,t);let p;if(bm(e)&&f){const{marks:n,scales:i}=f;"include-invalid-values"===n&&"exclude-invalid-values"===i&&(t=Fp.make(t,e,f)??t,p=t=Xm(Zl.PostFilterInvalid,e,t))}bm(e)&&function(e,t){for(const[n,i]of se(e.component.selection??{})){const r=e.getName(`lookup_${n}`);e.component.data.outputNodes[r]=i.materialized=new cu(new jf(t,e,{param:n}),r,Zl.Lookup,e.component.data.outputNodeRefCounts)}}(e,d);let m=null;if(xm(e)){const i=e.getName("facet");t=function(e,t){const{row:n,column:i}=t;if(n&&i){let t=null;for(const r of[n,i])if(ya(r.sort)){const{field:n,op:i=ma}=r.sort;e=t=new Np(e,{joinaggregate:[{op:i,field:n,as:Bm(r,r.sort,{forAs:!0})}],groupby:[Ha(r)]})}return t}return null}(t,e.facet)??t,m=new tp(t,e,i,d.getSource()),n[i]=m}return{...e.component.data,outputNodes:n,outputNodeRefCounts:i,raw:l,main:d,facetRoot:m,ancestorParse:o,preFilterInvalid:u,postFilterInvalid:p}}function Xm(e,t,n){const{outputNodes:i,outputNodeRefCounts:r}=t.component.data,o=t.getDataName(e),a=new cu(n,o,e,r);return i[o]=a,a}class Qm extends km{constructor(e,t,n,i){super(e,"concat",t,n,i,e.resolve),"shared"!==e.resolve?.axis?.x&&"shared"!==e.resolve?.axis?.y||er("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(e).map(((e,t)=>xh(e,this,this.getName(`concat_${t}`),void 0,i)))}parseData(){this.component.data=Km(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const t of oe(e.component.selection))this.component.selection[t]=e.component.selection[t]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}getChildren(e){return mc(e)?e.vconcat:hc(e)?e.hconcat:e.concat}parseLayoutSize(){!function(e){Wm(e);const t=1===e.layout.columns?"width":"childWidth",n=void 0===e.layout.columns?"height":"childHeight";Gm(e,t),Gm(e,n)}(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,t)=>t.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){return this.children.forEach((e=>e.assembleSignals())),[]}assembleLayoutSignals(){const e=yd(this);for(const t of this.children)e.push(...t.assembleLayoutSignals());return e}assembleSelectionData(e){return this.children.reduce(((e,t)=>t.assembleSelectionData(e)),e)}assembleMarks(){return this.children.map((e=>{const t=e.assembleTitle(),n=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return{type:"group",name:e.getName("group"),...t?{title:t}:{},...n?{style:n}:{},...i?{encode:{update:i}}:{},...e.assembleGroup()}}))}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return{...null!=e?{columns:e}:{},bounds:"full",align:"each"}}}const Jm={disable:1,gridScale:1,scale:1,...hs,labelExpr:1,encode:1},Zm=oe(Jm);class eh extends jl{constructor(e={},t={},n=!1){super(),this.explicit=e,this.implicit=t,this.mainExtracted=n}clone(){return new eh(U(this.explicit),U(this.implicit),this.mainExtracted)}hasAxisPart(e){return"axis"===e||("grid"===e||"title"===e?!!this.get(e):!(!1===(t=this.get(e))||null===t));var t}hasOrientSignalRef(){return Zn(this.explicit.orient)}}const th={bottom:"top",top:"bottom",left:"right",right:"left"};function nh(e,t){if(!e)return t.map((e=>e.clone()));{if(e.length!==t.length)return;const n=e.length;for(let i=0;i<n;i++){const n=e[i],r=t[i];if(!!n!=!!r)return;if(n&&r){const t=n.getWithExplicit("orient"),o=r.getWithExplicit("orient");if(t.explicit&&o.explicit&&t.value!==o.value)return;e[i]=ih(n,r)}}}return e}function ih(e,t){for(const n of Zm){const i=Gl(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",((e,t)=>{switch(n){case"title":return xi(e,t);case"gridScale":return{explicit:e.explicit,value:xe(e.value,t.value)}}return Wl(e,t,n,"axis")}));e.setWithExplicit(n,i)}return e}function rh(e,t,n,i,r){if("disable"===t)return void 0!==n;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(Zn(n.labelAngle)?n.labelAngle:De(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===Zf(i,r))return!0}return e===n[t]}const oh=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function ah(e,t){let n=t.axis(e);const i=new eh,r=ts(t.encoding[e]),{mark:o,config:a}=t,s=n?.orient||a["x"===e?"axisX":"axisY"]?.orient||a.axis?.orient||function(e){return"x"===e?"bottom":"left"}(e),c=t.getScaleComponent(e).get("type"),l=function(e,t,n,i){const r="band"===t?["axisDiscrete","axisBand"]:"point"===t?["axisDiscrete","axisPoint"]:Xr(t)?["axisQuantitative"]:"time"===t||"utc"===t?["axisTemporal"]:[],o="x"===e?"axisX":"axisY",a=Zn(n)?"axisOrient":`axis${de(n)}`,s=[...r,...r.map((e=>o+e.substr(4)))],c=["axis",a,o];return{vlOnlyAxisConfig:Bf(s,i,e,n),vgAxisConfig:Bf(c,i,e,n),axisConfigStyle:Vf([...c,...s],i)}}(e,c,s,t.config),u=void 0!==n?!n:Yf("disable",a.style,n?.style,l).configValue;if(i.set("disable",u,void 0!==n),u)return i;n=n||{};const f=function(e,t,n,i,r){const o=t?.labelAngle;if(void 0!==o)return Zn(o)?o:De(o);{const{configValue:o}=Yf("labelAngle",i,t?.style,r);return void 0!==o?De(o):n!==Ae||!V([Ur,jr],e.type)||Ta(e)&&e.timeUnit?void 0:270}}(r,n,e,a.style,l),d=la(n.formatType,r,c),p=ca(r,r.type,n.format,n.formatType,a,!0),m={fieldOrDatumDef:r,axis:n,channel:e,model:t,scaleType:c,orient:s,labelAngle:f,format:p,formatType:d,mark:o,config:a};for(const r of Zm){const o=r in Kf?Kf[r](m):ys(r)?n[r]:void 0,s=void 0!==o,c=rh(o,r,n,t,e);if(s&&c)i.set(r,o,c);else{const{configValue:e,configFrom:t}=ys(r)&&"values"!==r?Yf(r,a.style,n.style,l):{},u=void 0!==e;s&&!u?i.set(r,o,c):("vgAxisConfig"!==t||oh.has(r)&&u||ds(e)||Zn(e))&&i.set(r,e,!1)}}const h=n.encoding??{},g=ps.reduce(((n,r)=>{if(!i.hasAxisPart(r))return n;const o=wd(h[r]??{},t),a="labels"===r?function(e,t,n){const{encoding:i,config:r}=e,o=ts(i[t])??ts(i[jt(t)]),a=e.axis(t)||{},{format:s,formatType:c}=a;if(na(c))return{text:sa({fieldOrDatumDef:o,field:"datum.value",format:s,formatType:c,config:r}),...n};if(void 0===s&&void 0===c&&r.customFormatTypes){if("quantitative"===Pa(o)){if(Ua(o)&&"normalize"===o.stack&&r.normalizedNumberFormatType)return{text:sa({fieldOrDatumDef:o,field:"datum.value",format:r.normalizedNumberFormat,formatType:r.normalizedNumberFormatType,config:r}),...n};if(r.numberFormatType)return{text:sa({fieldOrDatumDef:o,field:"datum.value",format:r.numberFormat,formatType:r.numberFormatType,config:r}),...n}}if("temporal"===Pa(o)&&r.timeFormatType&&Ta(o)&&!o.timeUnit)return{text:sa({fieldOrDatumDef:o,field:"datum.value",format:r.timeFormat,formatType:r.timeFormatType,config:r}),...n}}return n}(t,e,o):o;return void 0===a||re(a)||(n[r]={update:a}),n}),{});return re(g)||i.set("encode",g,!!n.encoding||void 0!==n.labelAngle),i}function sh(e,t){const{config:n}=e;return{...sf(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Bu("x",e,{defaultPos:"mid"}),...Bu("y",e,{defaultPos:"mid"}),...qu("size",e),...qu("angle",e),...ch(e,n,t)}}function ch(e,t,n){return n?{shape:{value:n}}:qu("shape",e)}const lh={vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return e.encoding.x||e.encoding.y||e.encoding.latitude||e.encoding.longitude?{...sf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ju("x",e,{defaultPos:"horizontal"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"vertical"!==n}),...Ju("y",e,{defaultPos:"vertical"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"horizontal"!==n}),...qu("size",e,{vgChannel:"strokeWidth"})}:{}}};function uh(e,t,n){if(void 0===pi("align",e,n))return"center"}function fh(e,t,n){if(void 0===pi("baseline",e,n))return"middle"}const dh={vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,i=n.orient,r="horizontal"===i?"x":"y",o="horizontal"===i?"y":"x",a="horizontal"===i?"height":"width";return{...sf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...tf(e,r),...Bu(o,e,{defaultPos:"mid",vgChannel:"y"===o?"yc":"xc"}),[a]:ci(pi("thickness",n,t))}}},ph={arc:{vgMark:"arc",encodeEntry:e=>({...sf(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Bu("x",e,{defaultPos:"mid"}),...Bu("y",e,{defaultPos:"mid"}),...tf(e,"radius"),...tf(e,"theta")})},area:{vgMark:"area",encodeEntry:e=>({...sf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...Ju("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"horizontal"===e.markDef.orient}),...Ju("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"vertical"===e.markDef.orient}),...uf(e)})},bar:{vgMark:"rect",encodeEntry:e=>({...sf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...tf(e,"x"),...tf(e,"y")})},circle:{vgMark:"symbol",encodeEntry:e=>sh(e,"circle")},geoshape:{vgMark:"shape",encodeEntry:e=>({...sf(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[{type:"geoshape",projection:e.projectionName(),...n&&Ta(n)&&n.type===qr?{field:Ha(n,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:e=>({...sf(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...tf(e,"x"),...tf(e,"y"),..._u(e,"url")})},line:{vgMark:"line",encodeEntry:e=>({...sf(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Bu("x",e,{defaultPos:"mid"}),...Bu("y",e,{defaultPos:"mid"}),...qu("size",e,{vgChannel:"strokeWidth"}),...uf(e)})},point:{vgMark:"symbol",encodeEntry:e=>sh(e)},rect:{vgMark:"rect",encodeEntry:e=>({...sf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...tf(e,"x"),...tf(e,"y")})},rule:lh,square:{vgMark:"symbol",encodeEntry:e=>sh(e,"square")},text:{vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return{...sf(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...Bu("x",e,{defaultPos:"mid"}),...Bu("y",e,{defaultPos:"mid"}),..._u(e),...qu("size",e,{vgChannel:"fontSize"}),...qu("angle",e),...ff("align",uh(e.markDef,n,t)),...ff("baseline",fh(e.markDef,n,t)),...Bu("radius",e,{defaultPos:null}),...Bu("theta",e,{defaultPos:null})}}},tick:dh,trail:{vgMark:"trail",encodeEntry:e=>({...sf(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Bu("x",e,{defaultPos:"mid"}),...Bu("y",e,{defaultPos:"mid"}),...qu("size",e),...uf(e)})}};function mh(e){if(V([wo,bo,No],e.mark)){const t=Fs(e.mark,e.encoding);if(t.length>0)return function(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:hh+e.requestDataName(Zl.Main),data:e.requestDataName(Zl.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:yh(e,{fromPrefix:hh})}]}(e,t)}else if(e.mark===xo){const t=ri.some((t=>pi(t,e.markDef,e.config)));if(e.stack&&!e.fieldDef("size")&&t)return function(e){const[t]=yh(e,{fromPrefix:gh}),n=e.scaleName(e.stack.fieldChannel),i=(t={})=>e.vgField(e.stack.fieldChannel,t),r=(e,t)=>`${e}(${[i({prefix:"min",suffix:"start",expr:t}),i({prefix:"max",suffix:"start",expr:t}),i({prefix:"min",suffix:"end",expr:t}),i({prefix:"max",suffix:"end",expr:t})].map((e=>`scale('${n}',${e})`)).join(",")})`;let o,a;"x"===e.stack.fieldChannel?(o={...W(t.encode.update,["y","yc","y2","height",...ri]),x:{signal:r("min","datum")},x2:{signal:r("max","datum")},clip:{value:!0}},a={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},t.encode.update={...G(t.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(o={...W(t.encode.update,["x","xc","x2","width"]),y:{signal:r("min","datum")},y2:{signal:r("max","datum")},clip:{value:!0}},a={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},t.encode.update={...G(t.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const n of ri){const i=mi(n,e.markDef,e.config);t.encode.update[n]?(o[n]=t.encode.update[n],delete t.encode.update[n]):i&&(o[n]=ci(i)),i&&(t.encode.update[n]={value:0})}const s=[];if(e.stack.groupbyChannels?.length>0)for(const t of e.stack.groupbyChannels){const n=e.fieldDef(t),i=Ha(n);i&&s.push(i),(n?.bin||n?.timeUnit)&&s.push(Ha(n,{binSuffix:"end"}))}o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce(((n,i)=>{if(t.encode.update[i])return{...n,[i]:t.encode.update[i]};{const t=mi(i,e.markDef,e.config);return void 0!==t?{...n,[i]:ci(t)}:n}}),o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0});return[{type:"group",from:{facet:{data:e.requestDataName(Zl.Main),name:gh+e.requestDataName(Zl.Main),groupby:s,aggregate:{fields:[i({suffix:"start"}),i({suffix:"start"}),i({suffix:"end"}),i({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:a},marks:[t]}]}]}(e)}return yh(e)}const hh="faceted_path_";const gh="stack_group_";function yh(e,t={fromPrefix:""}){const{mark:n,markDef:i,encoding:r,config:o}=e,a=xe(i.clip,function(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return!(!t?.get("selectionExtent")&&!n?.get("selectionExtent"))||void 0}(e),function(e){const t=e.component.projection;return!(!t||t.isFit)||void 0}(e)),s=di(i),l=r.key,u=function(e){const{encoding:t,stack:n,mark:i,markDef:r,config:o}=e,a=t.order;if(!(!(0,c.cy)(a)&&ja(a)&&B(a.value)||!a&&B(pi("order",r,o)))){if(((0,c.cy)(a)||Ta(a))&&!n)return yi(a,{expr:"datum"});if(Po(i)){const e="horizontal"===r.orient?"y":"x";if(Ta(t[e]))return{field:e}}}}(e),f=function(e){if(!e.component.selection)return null;const t=oe(e.component.selection).length;let n=t,i=e.parent;for(;i&&0===n;)n=oe(i.component.selection).length,i=i.parent;return n?{interactive:t>0||"geoshape"===e.mark||!!e.encoding.tooltip||!!e.markDef.tooltip}:null}(e),d=pi("aria",i,o),p=ph[n].postEncodingTransform?ph[n].postEncodingTransform(e):null;return[{name:e.getName("marks"),type:ph[n].vgMark,...a?{clip:a}:{},...s?{style:s}:{},...l?{key:l.field}:{},...u?{sort:u}:{},...f||{},...!1===d?{aria:d}:{},from:{data:t.fromPrefix+e.requestDataName(Zl.Main)},encode:{update:ph[n].encodeEntry(e)},...p?{transform:p}:{}}]}class vh extends Sm{constructor(e,t,n,i={},r){super(e,"unit",t,n,r,void 0,vc(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const o=Ao(e.mark)?{...e.mark}:{type:e.mark},a=o.type;void 0===o.filled&&(o.filled=function(e,t,{graticule:n}){if(n)return!1;const i=mi("filled",e,t),r=e.type;return xe(i,r!==ko&&r!==wo&&r!==Eo)}(o,r,{graticule:e.data&&Jl(e.data)}));const s=this.encoding=function(e,t,n,i){const r={};for(const t of oe(e))_t(t)||er(`${o=t}-encoding is dropped as ${o} is not a valid encoding channel.`);var o;for(let o of Gt){if(!e[o])continue;const a=e[o];if(hn(o)){const e=Wt(o),t=r[e];if(Ta(t)&&Lr(t.type)&&Ta(a)&&!t.timeUnit){er(_i(e));continue}}if("angle"!==o||"arc"!==t||e.theta||(er("Arc marks uses theta channel rather than angle, replacing angle with theta."),o=We),Ds(e,o,t)){if(o===Ze&&"line"===t){const t=es(e[o]);if(t?.aggregate){er("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}}if(o===Ke&&(n?"fill"in e:"stroke"in e))er(Li("encoding",{fill:"fill"in e,stroke:"stroke"in e}));else if(o===ct||o===st&&!(0,c.cy)(a)&&!ja(a)||o===ut&&(0,c.cy)(a)){if(a){if(o===st){const t=e[o];if(Oa(t)){r[o]=t;continue}}r[o]=(0,c.YO)(a).reduce(((e,t)=>(Ta(t)?e.push(rs(t,o)):er(zi(t,o)),e)),[])}}else{if(o===ut&&null===a)r[o]=null;else if(!(Ta(a)||Ra(a)||ja(a)||Na(a)||Zn(a))){er(zi(a,o));continue}r[o]=ns(a,o,i)}}else er(Ii(o,t))}return r}(e.encoding||{},a,o.filled,r);this.markDef=Gc(o,s,r),this.size=function({encoding:e,size:t}){for(const n of ln){const i=Mt(n);yc(t[i])&&_a(e[n])&&(delete t[i],er(Bi(i)))}return t}({encoding:s,size:vc(e)?{...i,...e.width?{width:e.width}:{},...e.height?{height:e.height}:{}}:i}),this.stack=Wc(this.markDef,s),this.specifiedScales=this.initScales(a,s),this.specifiedAxes=this.initAxes(s),this.specifiedLegends=this.initLegends(s),this.specifiedProjection=e.projection,this.selection=(e.params??[]).filter((e=>fc(e)))}get hasProjection(){const{encoding:e}=this,t=this.mark===To,n=e&&bt.some((t=>za(e[t])));return t||n}scaleDomain(e){const t=this.specifiedScales[e];return t?t.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,t){return On.reduce(((e,n)=>{const i=ts(t[n]);return i&&(e[n]=this.initScale(i.scale??{})),e}),{})}initScale(e){const{domain:t,range:n}=e,i=Xn(e);return(0,c.cy)(t)&&(i.domain=t.map(ai)),(0,c.cy)(n)&&(i.range=n.map(ai)),i}initAxes(e){return ln.reduce(((t,n)=>{const i=e[n];if(za(i)||n===Ae&&za(e.x2)||n===Le&&za(e.y2)){const e=za(i)?i.axis:void 0;t[n]=e?this.initAxis({...e}):e}return t}),{})}initAxis(e){const t=oe(e),n={};for(const i of t){const t=e[i];n[i]=ds(t)?oi(t):ai(t)}return n}initLegends(e){return En.reduce(((t,n)=>{const i=ts(e[n]);if(i&&function(e){switch(e){case Ke:case Xe:case Qe:case Ze:case Je:case tt:case rt:case ot:return!0;case nt:case it:case et:return!1}}(n)){const e=i.legend;t[n]=e?Xn(e):e}return t}),{})}parseData(){this.component.data=Km(this)}parseLayoutSize(){!function(e){const{size:t,component:n}=e;for(const i of ln){const r=Mt(i);if(t[r]){const e=t[r];n.layoutSize.set(r,yc(e)?"step":e,!0)}else{const t=Hm(e,r);n.layoutSize.set(r,t,!1)}}}(this)}parseSelections(){this.component.selection=function(e,t){const n={},i=e.config.selection;if(!t||!t.length)return n;for(const r of t){const t=le(r.name),o=r.select,a=(0,c.Kg)(o)?o:o.type,s=(0,c.Gv)(o)?U(o):{type:a},l=i[a];for(const e in l)"fields"!==e&&"encodings"!==e&&("mark"===e&&(s.mark={...l.mark,...s.mark}),void 0!==s[e]&&!0!==s[e]||(s[e]=U(l[e]??s[e])));const u=n[t]={...s,name:t,type:a,init:r.value,bind:r.bind,events:(0,c.Kg)(s.on)?(0,R.P)(s.on,"scope"):(0,c.YO)(U(s.on))},f=U(r);for(const t of Pf)t.defined(u)&&t.parse&&t.parse(e,u,f)}return n}(this,this.selection)}parseMarkGroup(){this.component.mark=mh(this)}parseAxesAndHeaders(){var e;this.component.axes=(e=this,ln.reduce(((t,n)=>(e.component.scales[n]&&(t[n]=[ah(n,e)]),t)),{}))}assembleSelectionTopLevelSignals(e){return function(e,t){let n=!1;for(const i of ae(e.component.selection??{})){const r=i.name,o=(0,c.r$)(r+Nf);if(0===t.filter((e=>e.name===r)).length){const e="global"===i.resolve?"union":i.resolve,n="point"===i.type?", true, true)":")";t.push({name:i.name,update:`${Tf}(${o}, ${(0,c.r$)(e)}${n}`})}n=!0;for(const n of Pf)n.defined(i)&&n.topLevelSignals&&(t=n.topLevelSignals(e,i,t))}n&&0===t.filter((e=>"unit"===e.name)).length&&t.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]});return au(t)}(this,e)}assembleSignals(){return[...Hf(this),...iu(this,[])]}assembleSelectionData(e){return function(e,t){const n=[...t],i=Rf(e,{escape:!1});for(const t of ae(e.component.selection??{})){const e={name:t.name+Nf};if(t.project.hasSelectionId&&(e.transform=[{type:"collect",sort:{field:sc}}]),t.init){const n=t.project.items.map(tu);e.values=t.project.hasSelectionId?t.init.map((e=>({unit:i,[sc]:nu(e,!1)[0]}))):t.init.map((e=>({unit:i,fields:n,values:nu(e,!1)})))}n.filter((e=>e.name===t.name+Nf)).length||n.push(e)}return n}(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return yd(this)}assembleMarks(){let e=this.component.mark??[];return this.parent&&wm(this.parent)||(e=ou(this,e)),e.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};return void 0!==e?e:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return $s(this.encoding,e)}fieldDef(e){return es(this.encoding[e])}typedFieldDef(e){const t=this.fieldDef(e);return Ia(t)?t:null}}class bh extends km{constructor(e,t,n,i,r){super(e,"layer",t,n,r,e.resolve,e.view);const o={...i,...e.width?{width:e.width}:{},...e.height?{height:e.height}:{}};this.children=e.layer.map(((e,t)=>{if(Lc(e))return new bh(e,this,this.getName(`layer_${t}`),o,r);if(bs(e))return new vh(e,this,this.getName(`layer_${t}`),o,r);throw new Error($i(e))}))}parseData(){this.component.data=Km(this);for(const e of this.children)e.parseData()}parseLayoutSize(){var e;Wm(e=this),Gm(e,"width"),Gm(e,"height")}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const t of oe(e.component.selection))this.component.selection[t]=e.component.selection[t]}}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){!function(e){const{axes:t,resolve:n}=e.component,i={top:0,bottom:0,right:0,left:0};for(const i of e.children){i.parseAxesAndHeaders();for(const r of oe(i.component.axes))n.axis[r]=Sd(e.component.resolve,r),"shared"===n.axis[r]&&(t[r]=nh(t[r],i.component.axes[r]),t[r]||(n.axis[r]="independent",delete t[r]))}for(const r of ln){for(const o of e.children)if(o.component.axes[r]){if("independent"===n.axis[r]){t[r]=(t[r]??[]).concat(o.component.axes[r]);for(const e of o.component.axes[r]){const{value:t,explicit:n}=e.getWithExplicit("orient");if(!Zn(t)){if(i[t]>0&&!n){const n=th[t];i[t]>i[n]&&e.set("orient",n,!1)}i[t]++}}}delete o.component.axes[r]}if("independent"===n.axis[r]&&t[r]&&t[r].length>1)for(const[e,n]of(t[r]||[]).entries())e>0&&n.get("grid")&&!n.explicit.grid&&(n.implicit.grid=!1)}}(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,t)=>t.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){return this.children.reduce(((e,t)=>e.concat(t.assembleSignals())),Hf(this))}assembleLayoutSignals(){return this.children.reduce(((e,t)=>e.concat(t.assembleLayoutSignals())),yd(this))}assembleSelectionData(e){return this.children.reduce(((e,t)=>t.assembleSelectionData(e)),e)}assembleGroupStyle(){const e=new Set;for(const t of this.children)for(const n of(0,c.YO)(t.assembleGroupStyle()))e.add(n);const t=Array.from(e);return t.length>1?t:1===t.length?t[0]:void 0}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const t of this.children)if(e=t.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return function(e,t){for(const n of e.children)bm(n)&&(t=ou(n,t));return t}(this,this.children.flatMap((e=>e.assembleMarks())))}assembleLegends(){return this.children.reduce(((e,t)=>e.concat(t.assembleLegends())),qd(this))}}function xh(e,t,n,i,r){if($a(e))return new Vm(e,t,n,r);if(Lc(e))return new bh(e,t,n,i,r);if(bs(e))return new vh(e,t,n,i,r);if(function(e){return mc(e)||hc(e)||pc(e)}(e))return new Qm(e,t,n,r);throw new Error($i(e))}function $h(e,t={}){var n;t.logger&&(n=t.logger,Ji=n),t.fieldTitle&&Ka(t.fieldTitle);try{const n=Cc((0,c.io)(t.config,e.config)),i=Pl(e,n),r=xh(i,null,"",void 0,n);r.parse(),function(e,t){zp(e.sources);let n=0,i=0;for(let i=0;i<Lp&&jp(e,t,!0);i++)n++;e.sources.map(Rp);for(let n=0;n<Lp&&jp(e,t,!1);n++)i++;zp(e.sources),Math.max(n,i)===Lp&&er(`Maximum optimization runs(${Lp}) reached.`)}(r.component.data,r);const o=function(e,t,n={},i){const r=e.config?_c(e.config):void 0,o=[].concat(e.assembleSelectionData([]),function(e,t){const n=[],i=Im(n);let r=0;for(const t of e.sources){t.hasName()||(t.dataName="source_"+r++);const e=t.assemble();i(t,e)}for(const e of n)0===e.transform.length&&delete e.transform;let o=0;for(const[e,t]of n.entries())0!==(t.transform??[]).length||t.source||n.splice(o++,0,n.splice(e,1)[0]);for(const t of n)for(const n of t.transform??[])"lookup"===n.type&&(n.from=e.outputNodes[n.from].getSource());for(const e of n)e.name in t&&(e.values=t[e.name]);return n}(e.component.data,n)),a=e.assembleProjections(),s=e.assembleTitle(),c=e.assembleGroupStyle(),l=e.assembleGroupEncodeEntry(!0);let u=e.assembleLayoutSignals();u=u.filter((e=>"width"!==e.name&&"height"!==e.name||void 0===e.value||(t[e.name]=+e.value,!1)));const{params:f,...d}=t;return{$schema:"https://vega.github.io/schema/vega/v5.json",...e.description?{description:e.description}:{},...d,...s?{title:s}:{},...c?{style:c}:{},...l?{encode:{update:l}}:{},data:o,...a.length>0?{projections:a}:{},...e.assembleGroup([...u,...e.assembleSelectionTopLevelSignals([]),...dc(f)]),...r?{config:r}:{},...i?{usermeta:i}:{}}}(r,function(e,t,n,i){const r=i.component.layoutSize.get("width"),o=i.component.layoutSize.get("height");void 0===t?(t={type:"pad"},i.hasAxisOrientSignalRef()&&(t.resize=!0)):(0,c.Kg)(t)&&(t={type:t});if(r&&o&&(a=t.type,["fit","fit-x","fit-y"].includes(a)))if("step"===r&&"step"===o)er(Ei()),t.type="pad";else if("step"===r||"step"===o){const e="step"===r?"width":"height";er(Ei(pn(e)));const n="width"===e?"height":"width";t.type=function(e){return e?`fit-${pn(e)}`:"fit"}(n)}var a;return{...1===oe(t).length&&t.type?"pad"===t.type?{}:{autosize:t.type}:{autosize:t},...Il(n,!1),...Il(e,!0)}}(e,i.autosize,n,r),e.datasets,e.usermeta);return{spec:o,normalized:i}}finally{t.logger&&Zi(),t.fieldTitle&&Ka(Va)}}const wh="5.21.0";var kh=n(73706),Sh=n(80632),Eh=n(41570),Dh=n(65606);function Oh(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Nh=class{constructor(){this.max=1e3,this.map=new Map}get(e){const t=this.map.get(e);return void 0===t?void 0:(this.map.delete(e),this.map.set(e,t),t)}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&void 0!==t){if(this.map.size>=this.max){const e=this.map.keys().next().value;this.delete(e)}this.map.set(e,t)}return this}};const Fh=Object.freeze({loose:!0}),Ch=Object.freeze({});var Th=e=>e?"object"!=typeof e?Fh:e:Ch,Ph={exports:{}};var Rh={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};var _h="object"==typeof Dh&&Dh.env&&Dh.env.NODE_DEBUG&&/\bsemver\b/i.test(Dh.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};!function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:r}=Rh,o=_h,a=(t=e.exports={}).re=[],s=t.safeRe=[],c=t.src=[],l=t.t={};let u=0;const f="[a-zA-Z0-9-]",d=[["\\s",1],["\\d",r],[f,i]],p=(e,t,n)=>{const i=(e=>{for(const[t,n]of d)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e})(t),r=u++;o(e,r,t),l[e]=r,c[r]=t,a[r]=new RegExp(t,n?"g":void 0),s[r]=new RegExp(i,n?"g":void 0)};p("NUMERICIDENTIFIER","0|[1-9]\\d*"),p("NUMERICIDENTIFIERLOOSE","\\d+"),p("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${f}*`),p("MAINVERSION",`(${c[l.NUMERICIDENTIFIER]})\\.(${c[l.NUMERICIDENTIFIER]})\\.(${c[l.NUMERICIDENTIFIER]})`),p("MAINVERSIONLOOSE",`(${c[l.NUMERICIDENTIFIERLOOSE]})\\.(${c[l.NUMERICIDENTIFIERLOOSE]})\\.(${c[l.NUMERICIDENTIFIERLOOSE]})`),p("PRERELEASEIDENTIFIER",`(?:${c[l.NUMERICIDENTIFIER]}|${c[l.NONNUMERICIDENTIFIER]})`),p("PRERELEASEIDENTIFIERLOOSE",`(?:${c[l.NUMERICIDENTIFIERLOOSE]}|${c[l.NONNUMERICIDENTIFIER]})`),p("PRERELEASE",`(?:-(${c[l.PRERELEASEIDENTIFIER]}(?:\\.${c[l.PRERELEASEIDENTIFIER]})*))`),p("PRERELEASELOOSE",`(?:-?(${c[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[l.PRERELEASEIDENTIFIERLOOSE]})*))`),p("BUILDIDENTIFIER",`${f}+`),p("BUILD",`(?:\\+(${c[l.BUILDIDENTIFIER]}(?:\\.${c[l.BUILDIDENTIFIER]})*))`),p("FULLPLAIN",`v?${c[l.MAINVERSION]}${c[l.PRERELEASE]}?${c[l.BUILD]}?`),p("FULL",`^${c[l.FULLPLAIN]}$`),p("LOOSEPLAIN",`[v=\\s]*${c[l.MAINVERSIONLOOSE]}${c[l.PRERELEASELOOSE]}?${c[l.BUILD]}?`),p("LOOSE",`^${c[l.LOOSEPLAIN]}$`),p("GTLT","((?:<|>)?=?)"),p("XRANGEIDENTIFIERLOOSE",`${c[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),p("XRANGEIDENTIFIER",`${c[l.NUMERICIDENTIFIER]}|x|X|\\*`),p("XRANGEPLAIN",`[v=\\s]*(${c[l.XRANGEIDENTIFIER]})(?:\\.(${c[l.XRANGEIDENTIFIER]})(?:\\.(${c[l.XRANGEIDENTIFIER]})(?:${c[l.PRERELEASE]})?${c[l.BUILD]}?)?)?`),p("XRANGEPLAINLOOSE",`[v=\\s]*(${c[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[l.XRANGEIDENTIFIERLOOSE]})(?:${c[l.PRERELEASELOOSE]})?${c[l.BUILD]}?)?)?`),p("XRANGE",`^${c[l.GTLT]}\\s*${c[l.XRANGEPLAIN]}$`),p("XRANGELOOSE",`^${c[l.GTLT]}\\s*${c[l.XRANGEPLAINLOOSE]}$`),p("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),p("COERCE",`${c[l.COERCEPLAIN]}(?:$|[^\\d])`),p("COERCEFULL",c[l.COERCEPLAIN]+`(?:${c[l.PRERELEASE]})?`+`(?:${c[l.BUILD]})?(?:$|[^\\d])`),p("COERCERTL",c[l.COERCE],!0),p("COERCERTLFULL",c[l.COERCEFULL],!0),p("LONETILDE","(?:~>?)"),p("TILDETRIM",`(\\s*)${c[l.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",p("TILDE",`^${c[l.LONETILDE]}${c[l.XRANGEPLAIN]}$`),p("TILDELOOSE",`^${c[l.LONETILDE]}${c[l.XRANGEPLAINLOOSE]}$`),p("LONECARET","(?:\\^)"),p("CARETTRIM",`(\\s*)${c[l.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",p("CARET",`^${c[l.LONECARET]}${c[l.XRANGEPLAIN]}$`),p("CARETLOOSE",`^${c[l.LONECARET]}${c[l.XRANGEPLAINLOOSE]}$`),p("COMPARATORLOOSE",`^${c[l.GTLT]}\\s*(${c[l.LOOSEPLAIN]})$|^$`),p("COMPARATOR",`^${c[l.GTLT]}\\s*(${c[l.FULLPLAIN]})$|^$`),p("COMPARATORTRIM",`(\\s*)${c[l.GTLT]}\\s*(${c[l.LOOSEPLAIN]}|${c[l.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",p("HYPHENRANGE",`^\\s*(${c[l.XRANGEPLAIN]})\\s+-\\s+(${c[l.XRANGEPLAIN]})\\s*$`),p("HYPHENRANGELOOSE",`^\\s*(${c[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[l.XRANGEPLAINLOOSE]})\\s*$`),p("STAR","(<|>)?=?\\s*\\*"),p("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),p("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(Ph,Ph.exports);var Ah=Ph.exports;const Lh=/^[0-9]+$/,zh=(e,t)=>{const n=Lh.test(e),i=Lh.test(t);return n&&i&&(e=+e,t=+t),e===t?0:n&&!i?-1:i&&!n?1:e<t?-1:1};var Ih={compareIdentifiers:zh,rcompareIdentifiers:(e,t)=>zh(t,e)};const jh=_h,{MAX_LENGTH:Mh,MAX_SAFE_INTEGER:Uh}=Rh,{safeRe:qh,t:Wh}=Ah,Gh=Th,{compareIdentifiers:Hh}=Ih;var Bh=class e{constructor(t,n){if(n=Gh(n),t instanceof e){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if("string"!=typeof t)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Mh)throw new TypeError(`version is longer than ${Mh} characters`);jh("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;const i=t.trim().match(n.loose?qh[Wh.LOOSE]:qh[Wh.FULL]);if(!i)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>Uh||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Uh||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Uh||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<Uh)return t}return e})):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(jh("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if("string"==typeof t&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),Hh(this.major,t.major)||Hh(this.minor,t.minor)||Hh(this.patch,t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let n=0;do{const e=this.prerelease[n],i=t.prerelease[n];if(jh("prerelease compare",n,e,i),void 0===e&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===e)return-1;if(e!==i)return Hh(e,i)}while(++n)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let n=0;do{const e=this.build[n],i=t.build[n];if(jh("build compare",n,e,i),void 0===e&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===e)return-1;if(e!==i)return Hh(e,i)}while(++n)}inc(e,t,n){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,n),this.inc("pre",t,n);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t,n),this.inc("pre",t,n);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":{const e=Number(n)?1:0;if(!t&&!1===n)throw new Error("invalid increment argument: identifier is empty");if(0===this.prerelease.length)this.prerelease=[e];else{let i=this.prerelease.length;for(;--i>=0;)"number"==typeof this.prerelease[i]&&(this.prerelease[i]++,i=-2);if(-1===i){if(t===this.prerelease.join(".")&&!1===n)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let i=[t,e];!1===n&&(i=[t]),0===Hh(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};const Vh=Bh;var Yh=(e,t,n)=>new Vh(e,n).compare(new Vh(t,n));const Kh=Yh;const Xh=Yh;const Qh=Yh;const Jh=Yh;const Zh=Yh;const eg=Yh;const tg=(e,t,n)=>0===Kh(e,t,n),ng=(e,t,n)=>0!==Xh(e,t,n),ig=(e,t,n)=>Qh(e,t,n)>0,rg=(e,t,n)=>Jh(e,t,n)>=0,og=(e,t,n)=>Zh(e,t,n)<0,ag=(e,t,n)=>eg(e,t,n)<=0;var sg,cg,lg,ug,fg=(e,t,n,i)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return tg(e,n,i);case"!=":return ng(e,n,i);case">":return ig(e,n,i);case">=":return rg(e,n,i);case"<":return og(e,n,i);case"<=":return ag(e,n,i);default:throw new TypeError(`Invalid operator: ${t}`)}};function dg(){if(ug)return lg;ug=1;class e{constructor(t,r){if(r=n(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof i)return this.raw=t.value,this.set=[[t]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!p(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&m(e[0])){this.set=[e];break}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){const n=((this.options.includePrerelease&&f)|(this.options.loose&&d))+":"+e,o=t.get(n);if(o)return o;const m=this.options.loose,h=m?a[s.HYPHENRANGELOOSE]:a[s.HYPHENRANGE];e=e.replace(h,D(this.options.includePrerelease)),r("hyphen replace",e),e=e.replace(a[s.COMPARATORTRIM],c),r("comparator trim",e),e=e.replace(a[s.TILDETRIM],l),r("tilde trim",e),e=e.replace(a[s.CARETTRIM],u),r("caret trim",e);let y=e.split(" ").map((e=>g(e,this.options))).join(" ").split(/\s+/).map((e=>E(e,this.options)));m&&(y=y.filter((e=>(r("loose invalid filter",e,this.options),!!e.match(a[s.COMPARATORLOOSE]))))),r("range list",y);const v=new Map,b=y.map((e=>new i(e,this.options)));for(const e of b){if(p(e))return[e];v.set(e.value,e)}v.size>1&&v.has("")&&v.delete("");const x=[...v.values()];return t.set(n,x),x}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some((e=>h(e,n)&&t.set.some((t=>h(t,n)&&e.every((e=>t.every((t=>e.intersects(t,n)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new o(e,this.options)}catch(e){return!1}for(let t=0;t<this.set.length;t++)if(O(this.set[t],e,this.options))return!0;return!1}}lg=e;const t=new Nh,n=Th,i=function(){if(cg)return sg;cg=1;const e=Symbol("SemVer ANY");class t{static get ANY(){return e}constructor(i,r){if(r=n(r),i instanceof t){if(i.loose===!!r.loose)return i;i=i.value}i=i.trim().split(/\s+/).join(" "),a("comparator",i,r),this.options=r,this.loose=!!r.loose,this.parse(i),this.semver===e?this.value="":this.value=this.operator+this.semver.version,a("comp",this)}parse(t){const n=this.options.loose?i[r.COMPARATORLOOSE]:i[r.COMPARATOR],o=t.match(n);if(!o)throw new TypeError(`Invalid comparator: ${t}`);this.operator=void 0!==o[1]?o[1]:"","="===this.operator&&(this.operator=""),o[2]?this.semver=new s(o[2],this.options.loose):this.semver=e}toString(){return this.value}test(t){if(a("Comparator.test",t,this.options.loose),this.semver===e||t===e)return!0;if("string"==typeof t)try{t=new s(t,this.options)}catch(e){return!1}return o(t,this.operator,this.semver,this.options)}intersects(e,i){if(!(e instanceof t))throw new TypeError("a Comparator is required");return""===this.operator?""===this.value||new c(e.value,i).test(this.value):""===e.operator?""===e.value||new c(this.value,i).test(e.semver):!((i=n(i)).includePrerelease&&("<0.0.0-0"===this.value||"<0.0.0-0"===e.value)||!i.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))||(!this.operator.startsWith(">")||!e.operator.startsWith(">"))&&(!this.operator.startsWith("<")||!e.operator.startsWith("<"))&&(this.semver.version!==e.semver.version||!this.operator.includes("=")||!e.operator.includes("="))&&!(o(this.semver,"<",e.semver,i)&&this.operator.startsWith(">")&&e.operator.startsWith("<"))&&!(o(this.semver,">",e.semver,i)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}}sg=t;const n=Th,{safeRe:i,t:r}=Ah,o=fg,a=_h,s=Bh,c=dg();return sg}(),r=_h,o=Bh,{safeRe:a,t:s,comparatorTrimReplace:c,tildeTrimReplace:l,caretTrimReplace:u}=Ah,{FLAG_INCLUDE_PRERELEASE:f,FLAG_LOOSE:d}=Rh,p=e=>"<0.0.0-0"===e.value,m=e=>""===e.value,h=(e,t)=>{let n=!0;const i=e.slice();let r=i.pop();for(;n&&i.length;)n=i.every((e=>r.intersects(e,t))),r=i.pop();return n},g=(e,t)=>(r("comp",e,t),e=x(e,t),r("caret",e),e=v(e,t),r("tildes",e),e=w(e,t),r("xrange",e),e=S(e,t),r("stars",e),e),y=e=>!e||"x"===e.toLowerCase()||"*"===e,v=(e,t)=>e.trim().split(/\s+/).map((e=>b(e,t))).join(" "),b=(e,t)=>{const n=t.loose?a[s.TILDELOOSE]:a[s.TILDE];return e.replace(n,((t,n,i,o,a)=>{let s;return r("tilde",e,t,n,i,o,a),y(n)?s="":y(i)?s=`>=${n}.0.0 <${+n+1}.0.0-0`:y(o)?s=`>=${n}.${i}.0 <${n}.${+i+1}.0-0`:a?(r("replaceTilde pr",a),s=`>=${n}.${i}.${o}-${a} <${n}.${+i+1}.0-0`):s=`>=${n}.${i}.${o} <${n}.${+i+1}.0-0`,r("tilde return",s),s}))},x=(e,t)=>e.trim().split(/\s+/).map((e=>$(e,t))).join(" "),$=(e,t)=>{r("caret",e,t);const n=t.loose?a[s.CARETLOOSE]:a[s.CARET],i=t.includePrerelease?"-0":"";return e.replace(n,((t,n,o,a,s)=>{let c;return r("caret",e,t,n,o,a,s),y(n)?c="":y(o)?c=`>=${n}.0.0${i} <${+n+1}.0.0-0`:y(a)?c="0"===n?`>=${n}.${o}.0${i} <${n}.${+o+1}.0-0`:`>=${n}.${o}.0${i} <${+n+1}.0.0-0`:s?(r("replaceCaret pr",s),c="0"===n?"0"===o?`>=${n}.${o}.${a}-${s} <${n}.${o}.${+a+1}-0`:`>=${n}.${o}.${a}-${s} <${n}.${+o+1}.0-0`:`>=${n}.${o}.${a}-${s} <${+n+1}.0.0-0`):(r("no pr"),c="0"===n?"0"===o?`>=${n}.${o}.${a}${i} <${n}.${o}.${+a+1}-0`:`>=${n}.${o}.${a}${i} <${n}.${+o+1}.0-0`:`>=${n}.${o}.${a} <${+n+1}.0.0-0`),r("caret return",c),c}))},w=(e,t)=>(r("replaceXRanges",e,t),e.split(/\s+/).map((e=>k(e,t))).join(" ")),k=(e,t)=>{e=e.trim();const n=t.loose?a[s.XRANGELOOSE]:a[s.XRANGE];return e.replace(n,((n,i,o,a,s,c)=>{r("xRange",e,n,i,o,a,s,c);const l=y(o),u=l||y(a),f=u||y(s),d=f;return"="===i&&d&&(i=""),c=t.includePrerelease?"-0":"",l?n=">"===i||"<"===i?"<0.0.0-0":"*":i&&d?(u&&(a=0),s=0,">"===i?(i=">=",u?(o=+o+1,a=0,s=0):(a=+a+1,s=0)):"<="===i&&(i="<",u?o=+o+1:a=+a+1),"<"===i&&(c="-0"),n=`${i+o}.${a}.${s}${c}`):u?n=`>=${o}.0.0${c} <${+o+1}.0.0-0`:f&&(n=`>=${o}.${a}.0${c} <${o}.${+a+1}.0-0`),r("xRange return",n),n}))},S=(e,t)=>(r("replaceStars",e,t),e.trim().replace(a[s.STAR],"")),E=(e,t)=>(r("replaceGTE0",e,t),e.trim().replace(a[t.includePrerelease?s.GTE0PRE:s.GTE0],"")),D=e=>(t,n,i,r,o,a,s,c,l,u,f,d)=>`${n=y(i)?"":y(r)?`>=${i}.0.0${e?"-0":""}`:y(o)?`>=${i}.${r}.0${e?"-0":""}`:a?`>=${n}`:`>=${n}${e?"-0":""}`} ${c=y(l)?"":y(u)?`<${+l+1}.0.0-0`:y(f)?`<${l}.${+u+1}.0-0`:d?`<=${l}.${u}.${f}-${d}`:e?`<${l}.${u}.${+f+1}-0`:`<=${c}`}`.trim(),O=(e,t,n)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(r(e[n].semver),e[n].semver!==i.ANY&&e[n].semver.prerelease.length>0){const i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0};return lg}const pg=dg();var mg=(e,t,n)=>{try{t=new pg(t,n)}catch(e){return!1}return t.test(e)},hg=Oh(mg);var gg='.vega-embed {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n}\n.vega-embed.has-actions {\n padding-right: 38px;\n}\n.vega-embed details:not([open]) > :not(summary) {\n display: none !important;\n}\n.vega-embed summary {\n list-style: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 6px;\n z-index: 1000;\n background: white;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n color: #1b1e23;\n border: 1px solid #aaa;\n border-radius: 999px;\n opacity: 0.2;\n transition: opacity 0.4s ease-in;\n cursor: pointer;\n line-height: 0px;\n}\n.vega-embed summary::-webkit-details-marker {\n display: none;\n}\n.vega-embed summary:active {\n box-shadow: #aaa 0px 0px 0px 1px inset;\n}\n.vega-embed summary svg {\n width: 14px;\n height: 14px;\n}\n.vega-embed details[open] summary {\n opacity: 0.7;\n}\n.vega-embed:hover summary, .vega-embed:focus-within summary {\n opacity: 1 !important;\n transition: opacity 0.2s ease;\n}\n.vega-embed .vega-actions {\n position: absolute;\n z-index: 1001;\n top: 35px;\n right: -9px;\n display: flex;\n flex-direction: column;\n padding-bottom: 8px;\n padding-top: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n border: 1px solid #d9d9d9;\n background: white;\n animation-duration: 0.15s;\n animation-name: scale-in;\n animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n text-align: left;\n}\n.vega-embed .vega-actions a {\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n color: #434a56;\n text-decoration: none;\n}\n.vega-embed .vega-actions a:hover, .vega-embed .vega-actions a:focus {\n background-color: #f7f7f9;\n color: black;\n}\n.vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n content: "";\n display: inline-block;\n position: absolute;\n}\n.vega-embed .vega-actions::before {\n left: auto;\n right: 14px;\n top: -16px;\n border: 8px solid rgba(0, 0, 0, 0);\n border-bottom-color: #d9d9d9;\n}\n.vega-embed .vega-actions::after {\n left: auto;\n right: 15px;\n top: -14px;\n border: 7px solid rgba(0, 0, 0, 0);\n border-bottom-color: #fff;\n}\n.vega-embed .chart-wrapper.fit-x {\n width: 100%;\n}\n.vega-embed .chart-wrapper.fit-y {\n height: 100%;\n}\n\n.vega-embed-wrapper {\n max-width: 100%;\n overflow: auto;\n padding-right: 14px;\n}\n\n@keyframes scale-in {\n from {\n opacity: 0;\n transform: scale(0.6);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n';function yg(e,...t){for(const n of t)vg(e,n);return e}function vg(e,t){for(const n of Object.keys(t))(0,c.AU)(e,n,t[n],!0)}const bg=i;let xg=r;const $g="undefined"!=typeof window?window:void 0;void 0===xg&&$g?.vl?.compile&&(xg=$g.vl);const wg={export:{svg:!0,png:!0},source:!0,compiled:!0,editor:!0},kg={CLICK_TO_VIEW_ACTIONS:"Click to view actions",COMPILED_ACTION:"View Compiled Vega",EDITOR_ACTION:"Open in Vega Editor",PNG_ACTION:"Save as PNG",SOURCE_ACTION:"View Source",SVG_ACTION:"Save as SVG"},Sg={vega:"Vega","vega-lite":"Vega-Lite"},Eg={vega:bg.version,"vega-lite":xg?xg.version:"not available"},Dg={vega:e=>e,"vega-lite":(e,t)=>xg.compile(e,{config:t}).spec},Og='\n<svg viewBox="0 0 16 16" fill="currentColor" stroke="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round">\n <circle r="2" cy="8" cx="2"></circle>\n <circle r="2" cy="8" cx="8"></circle>\n <circle r="2" cy="8" cx="14"></circle>\n</svg>',Ng="chart-wrapper";function Fg(e,t,n,i){const r=`<html><head>${t}</head><body><pre><code class="json">`,o=`</code></pre>${n}</body></html>`,a=window.open("");a.document.write(r+e+o),a.document.title=`${Sg[i]} JSON Source`}function Cg(e){return!(!e||!("load"in e))}function Tg(e){return Cg(e)?e:bg.loader(e)}async function Pg(e,t,n={}){let i,r;(0,c.Kg)(t)?(r=Tg(n.loader),i=JSON.parse(await r.load(t))):i=t;const a=function(e){const t=e.usermeta?.embedOptions??{};return(0,c.Kg)(t.defaultStyle)&&(t.defaultStyle=!1),t}(i),l=a.loader;r&&!l||(r=Tg(n.loader??l));const u=await Rg(a,r),f=await Rg(n,r),d={...yg(f,u),config:(0,c.io)(f.config??{},u.config??{})};return await async function(e,t,n={},i){const r=n.theme?(0,c.io)(Sh[n.theme],n.config??{}):n.config,a=(0,c.Lm)(n.actions)?n.actions:yg({},wg,n.actions??{}),l={...kg,...n.i18n},u=n.renderer??"canvas",f=n.logLevel??bg.Warn,d=n.downloadFileName??"visualization",p="string"==typeof e?document.querySelector(e):e;if(!p)throw new Error(`${e} does not exist`);if(!1!==n.defaultStyle){const e="vega-embed-style",{root:t,rootContainer:i}=function(e){const t=e.getRootNode?e.getRootNode():document;return t instanceof ShadowRoot?{root:t,rootContainer:t}:{root:document,rootContainer:document.head??document.body}}(p);if(!t.getElementById(e)){const t=document.createElement("style");t.id=e,t.innerHTML=void 0===n.defaultStyle||!0===n.defaultStyle?gg.toString():n.defaultStyle,i.appendChild(t)}}const m=function(e,t){if(e.$schema){const n=(0,kh.A)(e.$schema);t&&t!==n.library&&console.warn(`The given visualization spec is written in ${Sg[n.library]}, but mode argument sets ${Sg[t]??t}.`);const i=n.library;return hg(Eg[i],`^${n.version.slice(1)}`)||console.warn(`The input spec uses ${Sg[i]} ${n.version}, but the current version of ${Sg[i]} is v${Eg[i]}.`),i}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":t??"vega"}(t,n.mode);let h=Dg[m](t,r);if("vega-lite"===m&&h.$schema){const e=(0,kh.A)(h.$schema);hg(Eg.vega,`^${e.version.slice(1)}`)||console.warn(`The compiled spec uses Vega ${e.version}, but current version is v${Eg.vega}.`)}p.classList.add("vega-embed"),a&&p.classList.add("has-actions");p.innerHTML="";let g=p;if(a){const e=document.createElement("div");e.classList.add(Ng),p.appendChild(e),g=e}const y=n.patch;y&&(h=y instanceof Function?y(h):(0,o.X6)(h,y,!0,!1).newDocument);n.formatLocale&&bg.formatLocale(n.formatLocale);n.timeFormatLocale&&bg.timeFormatLocale(n.timeFormatLocale);if(n.expressionFunctions)for(const e in n.expressionFunctions){const t=n.expressionFunctions[e];"fn"in t?bg.expressionFunction(e,t.fn,t.visitor):t instanceof Function&&bg.expressionFunction(e,t)}const{ast:v}=n,b=bg.parse(h,"vega-lite"===m?{}:r,{ast:v}),x=new(n.viewClass||bg.View)(b,{loader:i,logLevel:f,renderer:u,...v?{expr:bg.expressionInterpreter??n.expr??A.P}:{}});if(x.addSignalListener("autosize",((e,t)=>{const{type:n}=t;"fit-x"==n?(g.classList.add("fit-x"),g.classList.remove("fit-y")):"fit-y"==n?(g.classList.remove("fit-x"),g.classList.add("fit-y")):"fit"==n?g.classList.add("fit-x","fit-y"):g.classList.remove("fit-x","fit-y")})),!1!==n.tooltip){const{loader:e,tooltip:t}=n,i=e&&!Cg(e)?e?.baseURL:void 0,r="function"==typeof t?t:new Eh.hR({baseURL:i,...!0===t?{}:t}).call;x.tooltip(r)}let $,{hover:w}=n;void 0===w&&(w="vega"===m);if(w){const{hoverSet:e,updateSet:t}="boolean"==typeof w?{}:w;x.hover(e,t)}n&&(null!=n.width&&x.width(n.width),null!=n.height&&x.height(n.height),null!=n.padding&&x.padding(n.padding));if(await x.initialize(g,n.bind).runAsync(),!1!==a){let e=p;if(!1!==n.defaultStyle||n.forceActionsMenu){const t=document.createElement("details");t.title=l.CLICK_TO_VIEW_ACTIONS,p.append(t),e=t;const n=document.createElement("summary");n.innerHTML=Og,t.append(n),$=e=>{t.contains(e.target)||t.removeAttribute("open")},document.addEventListener("click",$)}const i=document.createElement("div");if(e.append(i),i.classList.add("vega-actions"),!0===a||!1!==a.export)for(const e of["svg","png"])if(!0===a||!0===a.export||a.export[e]){const t=l[`${e.toUpperCase()}_ACTION`],r=document.createElement("a"),o=(0,c.Gv)(n.scaleFactor)?n.scaleFactor[e]:n.scaleFactor;r.text=t,r.href="#",r.target="_blank",r.download=`${d}.${e}`,r.addEventListener("mousedown",(async function(t){t.preventDefault();const n=await x.toImageURL(e,o);this.href=n})),i.append(r)}if(!0===a||!1!==a.source){const e=document.createElement("a");e.text=l.SOURCE_ACTION,e.href="#",e.addEventListener("click",(function(e){Fg(s()(t),n.sourceHeader??"",n.sourceFooter??"",m),e.preventDefault()})),i.append(e)}if("vega-lite"===m&&(!0===a||!1!==a.compiled)){const e=document.createElement("a");e.text=l.COMPILED_ACTION,e.href="#",e.addEventListener("click",(function(e){Fg(s()(h),n.sourceHeader??"",n.sourceFooter??"","vega"),e.preventDefault()})),i.append(e)}if(!0===a||!1!==a.editor){const e=n.editorUrl??"https://vega.github.io/editor/",o=document.createElement("a");o.text=l.EDITOR_ACTION,o.href="#",o.addEventListener("click",(function(n){!function(e,t,n){const i=e.open(t),{origin:r}=new URL(t);let o=40;e.addEventListener("message",(function t(n){n.source===i&&(o=0,e.removeEventListener("message",t,!1))}),!1),setTimeout((function e(){o<=0||(i.postMessage(n,r),setTimeout(e,250),o-=1)}),250)}(window,e,{config:r,mode:y?"vega":m,renderer:u,spec:s()(y?h:t)}),n.preventDefault()})),i.append(o)}}function k(){$&&document.removeEventListener("click",$),x.finalize()}return{view:x,spec:t,vgSpec:h,finalize:k,embedOptions:n}}(e,i,d,r)}async function Rg(e,t){const n=(0,c.Kg)(e.config)?JSON.parse(await t.load(e.config)):e.config??{},i=(0,c.Kg)(e.patch)?JSON.parse(await t.load(e.patch)):e.patch;return{...e,...i?{patch:i}:{},...n?{config:n}:{}}}}}]);