@marimo-team/frontend 0.14.8-dev5 → 0.14.8-dev6

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 (88) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-DEfuvRlm.js → ConnectedDataExplorerComponent-CYmpnTn_.js} +1 -1
  2. package/dist/assets/{ImageComparisonComponent-CM5mcXb2.js → ImageComparisonComponent--5-lO_ES.js} +1 -1
  3. package/dist/assets/{VegaLite-f5rO5fju.js → VegaLite-DLW84dFp.js} +1 -1
  4. package/dist/assets/{_baseEach-DoSMVVEH.js → _baseEach-FnH5SKIB.js} +1 -1
  5. package/dist/assets/_baseMap-KGy9mFen.js +1 -0
  6. package/dist/assets/{_baseUniq-BVVpHwSp.js → _baseUniq-BzMvLNro.js} +1 -1
  7. package/dist/assets/{_createAggregator-BS668Eim.js → _createAggregator-Cvb8EMxO.js} +1 -1
  8. package/dist/assets/{any-language-editor-DDE_A41z.js → any-language-editor-DxHcCRUo.js} +1 -1
  9. package/dist/assets/{architectureDiagram-IEHRJDOE-60TZkOSo.js → architectureDiagram-IEHRJDOE-CO83sI0X.js} +1 -1
  10. package/dist/assets/{blockDiagram-JOT3LUYC-D_bfYQ1W.js → blockDiagram-JOT3LUYC-oxKIgJ23.js} +1 -1
  11. package/dist/assets/{c4Diagram-VJAJSXHY-2RnlK5MW.js → c4Diagram-VJAJSXHY-B1nBFpfO.js} +1 -1
  12. package/dist/assets/channel-BzmH5ale.js +1 -0
  13. package/dist/assets/{chunk-4BMEZGHF-DjDWkboJ.js → chunk-4BMEZGHF-BPuJg8QQ.js} +1 -1
  14. package/dist/assets/{chunk-A2AXSNBT-Bphhjp_9.js → chunk-A2AXSNBT-CFIg1rGY.js} +1 -1
  15. package/dist/assets/{chunk-AEK57VVT-EHtcMbuG.js → chunk-AEK57VVT-CuK-nwV4.js} +1 -1
  16. package/dist/assets/{chunk-D6G4REZN-CaiEek1J.js → chunk-D6G4REZN-BNb4759I.js} +1 -1
  17. package/dist/assets/{chunk-RZ5BOZE2-DtGrt2KV.js → chunk-RZ5BOZE2-BeZYs5Ig.js} +1 -1
  18. package/dist/assets/{chunk-XZIHB7SX-C3JxGRwm.js → chunk-XZIHB7SX-D72sGxGq.js} +1 -1
  19. package/dist/assets/{circle-play-BGaLsUGT.js → circle-play-Cvl-9kpT.js} +1 -1
  20. package/dist/assets/classDiagram-GIVACNV2-DHdsmdYC.js +1 -0
  21. package/dist/assets/classDiagram-v2-COTLJTTW-DHdsmdYC.js +1 -0
  22. package/dist/assets/clone-CLY66C3E.js +1 -0
  23. package/dist/assets/{compile-II-_FrhU.js → compile-BMCn2vE3.js} +1 -1
  24. package/dist/assets/{dagre-OKDRZEBW-CfwPCOPe.js → dagre-OKDRZEBW-BbWEbhHb.js} +1 -1
  25. package/dist/assets/{data-editor-Bo1cJUED.js → data-editor-DO8px2IC.js} +1 -1
  26. package/dist/assets/{diagram-SSKATNLV-DQ2HFnf1.js → diagram-SSKATNLV-CmcpVSp6.js} +1 -1
  27. package/dist/assets/{diagram-VNBRO52H-Bkfi9ixf.js → diagram-VNBRO52H-CjiRqp8W.js} +1 -1
  28. package/dist/assets/{edit-page-C_mv2M9Y.js → edit-page-DpIs4Jeh.js} +3 -3
  29. package/dist/assets/{erDiagram-Q7BY3M3F-XXo5vM2J.js → erDiagram-Q7BY3M3F-D23p5cbI.js} +1 -1
  30. package/dist/assets/{flowDiagram-4HSFHLVR-ClYS30J_.js → flowDiagram-4HSFHLVR-3ExDKEGl.js} +1 -1
  31. package/dist/assets/{ganttDiagram-APWFNJXF-PYCGdNTL.js → ganttDiagram-APWFNJXF-D9VTD9XD.js} +1 -1
  32. package/dist/assets/{gitGraphDiagram-7IBYFJ6S-BmrwYh6H.js → gitGraphDiagram-7IBYFJ6S-Bn_pINfE.js} +1 -1
  33. package/dist/assets/{graph-CWfI8ofr.js → graph-Cv0AtaRf.js} +1 -1
  34. package/dist/assets/{home-page-BtzHBDBc.js → home-page-CRP3IHpV.js} +1 -1
  35. package/dist/assets/{index-DxuMI5IZ.js → index-B2gQZNft.js} +1 -1
  36. package/dist/assets/{index-Bgn8C5u3.js → index-B6DH7WAG.js} +1 -1
  37. package/dist/assets/{index-BeAR3ttA.js → index-BKIw-nTk.js} +1 -1
  38. package/dist/assets/{index-DUTwfd2N.js → index-BTMKLO1n.js} +1 -1
  39. package/dist/assets/{index-CBxgNTzl.js → index-BoVrSPna.js} +1 -1
  40. package/dist/assets/{index-Bo_YimmO.js → index-C1GzY49R.js} +1 -1
  41. package/dist/assets/{index-B_zAOTnu.js → index-CH_vjHJs.js} +1 -1
  42. package/dist/assets/{index-BAKLY1vn.js → index-Cb2EzYJO.js} +1 -1
  43. package/dist/assets/{index-BXk22EGt.js → index-Cd9N2R3M.js} +1 -1
  44. package/dist/assets/{index-GkTVrWOP.js → index-CfCsWmku.js} +1 -1
  45. package/dist/assets/{index-C80lzoSZ.js → index-D-01nLUB.js} +1 -1
  46. package/dist/assets/{index-DyngPC-h.js → index-DJwntWVz.js} +1 -1
  47. package/dist/assets/{index-C97E4DPL.js → index-DW39dZX6.js} +1 -1
  48. package/dist/assets/{index-_5U3krjw.js → index-DdLVbr3B.js} +1 -1
  49. package/dist/assets/{index-BjEFPOfG.js → index-DlZmbF5y.js} +1 -1
  50. package/dist/assets/{index-C242JsH1.js → index-Dneegn3v.js} +1 -1
  51. package/dist/assets/{index-D3ETG5lC.js → index-G5_5OkDd.js} +1 -1
  52. package/dist/assets/{index-BogUqXsb.js → index-UohZ6mc7.js} +1 -1
  53. package/dist/assets/{index-BRG7BYdR.js → index-l_wokygA.js} +12 -12
  54. package/dist/assets/{infoDiagram-PH2N3AL5-uxYNd2te.js → infoDiagram-PH2N3AL5-Bf4uF_kd.js} +1 -1
  55. package/dist/assets/{journeyDiagram-U35MCT3I-BgHIlgOe.js → journeyDiagram-U35MCT3I-Dm-d6spo.js} +1 -1
  56. package/dist/assets/{kanban-definition-NDS4AKOZ-C8w2m7XV.js → kanban-definition-NDS4AKOZ-Dp7Lt7a7.js} +1 -1
  57. package/dist/assets/{layout-D4Hi2l3_.js → layout-DBIauRjl.js} +1 -1
  58. package/dist/assets/{mermaid-Dia-lIHk.js → mermaid-Cb2iP_U0.js} +4 -4
  59. package/dist/assets/{min-Cpvs9FX2.js → min-DWa_Ex5z.js} +1 -1
  60. package/dist/assets/{mindmap-definition-ALO5MXBD-Cl7WFdOL.js → mindmap-definition-ALO5MXBD-BK82nZEj.js} +1 -1
  61. package/dist/assets/{pieDiagram-IB7DONF6-BCkALcKk.js → pieDiagram-IB7DONF6-CrSKNHpL.js} +1 -1
  62. package/dist/assets/{quadrantDiagram-7GDLP6J5-Bm4DXZnX.js → quadrantDiagram-7GDLP6J5-DBYendvc.js} +1 -1
  63. package/dist/assets/{radar-MK3ICKWK-m1qGKX1l.js → radar-MK3ICKWK-D4iXNJyD.js} +1 -1
  64. package/dist/assets/{react-plotly-BLm9UAMh.js → react-plotly-jrAUcM2q.js} +1 -1
  65. package/dist/assets/{requirementDiagram-KVF5MWMF-DxiCXyRK.js → requirementDiagram-KVF5MWMF-Cvshvvk-.js} +1 -1
  66. package/dist/assets/{run-page-BRrMRpkE.js → run-page-Bep2eRDR.js} +1 -1
  67. package/dist/assets/{sankeyDiagram-QLVOVGJD-DsbFddGV.js → sankeyDiagram-QLVOVGJD-Dp3RYFKL.js} +1 -1
  68. package/dist/assets/{sequenceDiagram-X6HHIX6F-CKKF3iN6.js → sequenceDiagram-X6HHIX6F-DkbSZR7j.js} +1 -1
  69. package/dist/assets/{shutdown-button-BRqNY4x0.js → shutdown-button-D0N1es_c.js} +1 -1
  70. package/dist/assets/{slides-component-d0lnbGkP.js → slides-component-DN5s759D.js} +1 -1
  71. package/dist/assets/{sortBy-DKAw-tZa.js → sortBy-C53me3k8.js} +1 -1
  72. package/dist/assets/{stateDiagram-DGXRK772-DC5pw4fa.js → stateDiagram-DGXRK772-DL3Ta588.js} +1 -1
  73. package/dist/assets/stateDiagram-v2-YXO3MK2T-CzvyvBru.js +1 -0
  74. package/dist/assets/{storage-ouQPa_tr.js → storage-BhACHptC.js} +6 -6
  75. package/dist/assets/{terminal--YvoRK0r.js → terminal-GCVl-wqy.js} +1 -1
  76. package/dist/assets/{timeline-definition-BDJGKUSR-CupfhmvP.js → timeline-definition-BDJGKUSR-Dea-r6Ah.js} +1 -1
  77. package/dist/assets/{tracing-BQXBWY23.js → tracing-ChqPtgQh.js} +2 -2
  78. package/dist/assets/{transform-CzICUQw2.js → transform-Bze8Q3sQ.js} +1 -1
  79. package/dist/assets/{vega-component-DtuPSr8Q.js → vega-component-DJl4V3OP.js} +1 -1
  80. package/dist/assets/{xychartDiagram-VJFVF3MP-BLmNorBW.js → xychartDiagram-VJFVF3MP-JON3t4jP.js} +1 -1
  81. package/dist/index.html +1 -1
  82. package/package.json +1 -1
  83. package/dist/assets/_baseMap-DxzKXZWb.js +0 -1
  84. package/dist/assets/channel-DjeZJwED.js +0 -1
  85. package/dist/assets/classDiagram-GIVACNV2-C0Z_9O7c.js +0 -1
  86. package/dist/assets/classDiagram-v2-COTLJTTW-C0Z_9O7c.js +0 -1
  87. package/dist/assets/clone-B_4k1gKL.js +0 -1
  88. package/dist/assets/stateDiagram-v2-YXO3MK2T-BFTFqSej.js +0 -1
@@ -1,3 +1,3 @@
1
- import{gR as fe,gS as ae,cy as R,gT as Qn,gU as W,cz as H,cD as fu,cC as Oi,cx as P,gV as pe,gW as xp,gX as $p,gY as wp,cB as du,gZ as Kn,g_ as Fp}from"./index-BRG7BYdR.js";function No(e){return A(e,"or")}function _o(e){return A(e,"and")}function To(e){return A(e,"not")}function mr(e,t){if(To(e))mr(e.not,t);else if(_o(e))for(const n of e.and)mr(n,t);else if(No(e))for(const n of e.or)mr(n,t);else t(e)}function Zn(e,t){return To(e)?{not:Zn(e.not,t)}:_o(e)?{and:e.and.map(n=>Zn(n,t))}:No(e)?{or:e.or.map(n=>Zn(n,t))}:t(e)}const M=structuredClone;function pu(e){throw new Error(e)}function ei(e,t){const n={};for(const i of t)fe(e,i)&&(n[i]=e[i]);return n}function Re(e,t){const n={...e};for(const i of t)delete n[i];return n}function I(e){if(ae(e))return e;const t=R(e)?e:K(e);if(t.length<250)return t;let n=0;for(let i=0;i<t.length;i++)n=(n<<5)-n+t.charCodeAt(i),n&=n;return n}function jo(e){return e===!1||e===null}function U(e,t){return e.includes(t)}function ti(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function Mo(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function mu(e,...t){for(const n of t)Dp(e,n??{});return e}function Dp(e,t){for(const n of D(t))fu(e,n,t[n],!0)}function $t(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 Ap(e,t){const n=D(e),i=D(t);if(n.length!==i.length)return!1;for(const r of n)if(e[r]!==t[r])return!1;return!0}function hu(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Ro(e,t){for(const n of e)if(t.has(n))return!0;return!1}function Lo(e){const t=new Set;for(const n of e){const i=Qn(n).map((o,a)=>a===0?o:`[${o}]`),r=i.map((o,a)=>i.slice(0,a+1).join(""));for(const o of r)t.add(o)}return t}function qo(e,t){return e===void 0||t===void 0||Ro(Lo(e),Lo(t))}function Q(e){return D(e).length===0}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>K(e)).join(",")})`};const D=Object.keys,Ae=Object.values,un=Object.entries;function Pi(e){return e===!0||e===!1}function se(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function Ni(e,t){return To(e)?`!(${Ni(e.not,t)})`:_o(e)?`(${e.and.map(n=>Ni(n,t)).join(") && (")})`:No(e)?`(${e.or.map(n=>Ni(n,t)).join(") || (")})`:t(e)}function hr(e,t){if(t.length===0)return!0;const n=t.shift();return n in e&&hr(e[n],t)&&delete e[n],Q(e)}function _i(e){return e.charAt(0).toUpperCase()+e.substr(1)}function Uo(e,t="datum"){const n=Qn(e),i=[];for(let r=1;r<=n.length;r++){const o=`[${n.slice(0,r).map(W).join("][")}]`;i.push(`${t}${o}`)}return i.join(" && ")}function gu(e,t="datum"){return`${t}[${W(Qn(e).join("."))}]`}function V(e){return`datum['${e.replaceAll("'","\\'")}']`}function kp(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function Je(e){return`${Qn(e).map(kp).join("\\.")}`}function An(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function ni(e){return`${Qn(e).join(".")}`}function ii(e){return e?Qn(e).length:0}function me(...e){return e.find(t=>t!==void 0)}let yu=42;function vu(e){const t=++yu;return e?String(e)+t:t}function Cp(){yu=42}function bu(e){return xu(e)?e:`__${e}`}function xu(e){return e.startsWith("__")}function Ti(e){if(e!==void 0)return(e%360+360)%360}function gr(e){return!!ae(e)||!isNaN(e)&&!isNaN(parseFloat(e))}const $u=Object.getPrototypeOf(structuredClone({}));function He(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){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;i--!==0;)if(!He(e[i],t[i]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const o of e.entries())if(!t.has(o[0]))return!1;for(const o of e.entries())if(!He(o[1],t.get(o[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e.entries())if(!t.has(o[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(i=n;i--!==0;)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!==$u.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==$u.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;i--!==0;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;i--!==0;){const o=r[i];if(!He(e[o],t[o]))return!1}return!0}return e!=e&&t!=t}function K(e){const t=[];return function n(i){if(i&&i.toJSON&&typeof i.toJSON=="function"&&(i=i.toJSON()),i===void 0)return;if(typeof i=="number")return isFinite(i)?""+i:"null";if(typeof i!="object")return JSON.stringify(i);let r,o;if(Array.isArray(i)){for(o="[",r=0;r<i.length;r++)r&&(o+=","),o+=n(i[r])||"null";return o+"]"}if(i===null)return"null";if(t.includes(i))throw new TypeError("Converting circular structure to JSON");const a=t.push(i)-1,s=Object.keys(i).sort();for(o="",r=0;r<s.length;r++){const u=s[r],c=n(i[u]);c&&(o&&(o+=","),o+=JSON.stringify(u)+":"+c)}return t.splice(a,1),`{${o}}`}(e)}function A(e,t){return H(e)&&fe(e,t)&&e[t]!==void 0}const qt="row",Ut="column",yr="facet",ue="x",xe="y",at="x2",wt="y2",cn="xOffset",ri="yOffset",st="radius",Wt="radius2",Qe="theta",It="theta2",ut="latitude",ct="longitude",lt="latitude2",Ke="longitude2",ln="time",Le="color",Ft="fill",Dt="stroke",qe="shape",Ht="size",kn="angle",Gt="opacity",fn="fillOpacity",dn="strokeOpacity",pn="strokeWidth",mn="strokeDash",ji="text",oi="order",Mi="detail",vr="key",Cn="tooltip",br="href",xr="url",$r="description",wu={theta:1,theta2:1,radius:1,radius2:1};function Fu(e){return fe(wu,e)}const Wo={longitude:1,longitude2:1,latitude:1,latitude2:1};function Du(e){switch(e){case ut:return"y";case lt:return"y2";case ct:return"x";case Ke:return"x2"}}function Au(e){return fe(Wo,e)}const Sp=D(Wo),Io={x:1,y:1,x2:1,y2:1,...wu,...Wo,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,time: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 ai(e){return e===Le||e===Ft||e===Dt}const ku={row:1,column:1,facet:1},Ze=D(ku),Ho={...Io,...ku},Ep=D(Ho),{order:A0,detail:k0,tooltip:C0,...Bp}=Ho,{row:S0,column:E0,facet:B0,...zp}=Bp;function Op(e){return fe(zp,e)}function Cu(e){return fe(Ho,e)}const Pp=[at,wt,lt,Ke,It,Wt];function Su(e){return Sn(e)!==e}function Sn(e){switch(e){case at:return ue;case wt:return xe;case lt:return ut;case Ke:return ct;case It:return Qe;case Wt:return st}return e}function hn(e){if(Fu(e))switch(e){case Qe:return"startAngle";case It:return"endAngle";case st:return"outerRadius";case Wt:return"innerRadius"}return e}function At(e){switch(e){case ue:return at;case xe:return wt;case ut:return lt;case ct:return Ke;case Qe:return It;case st:return Wt}}function Ue(e){switch(e){case ue:case at:return"width";case xe:case wt:return"height"}}function Eu(e){switch(e){case ue:return"xOffset";case xe:return"yOffset";case at:return"x2Offset";case wt:return"y2Offset";case Qe:return"thetaOffset";case st:return"radiusOffset";case It:return"theta2Offset";case Wt:return"radius2Offset"}}function Go(e){switch(e){case ue:return"xOffset";case xe:return"yOffset"}}function Np(e){switch(e){case"xOffset":return"x";case"yOffset":return"y"}}const _p=D(Io),{x:z0,y:O0,x2:P0,y2:N0,xOffset:_0,yOffset:T0,latitude:j0,longitude:M0,latitude2:R0,longitude2:L0,theta:q0,theta2:U0,radius:W0,radius2:I0,...Vo}=Io,Tp=D(Vo),Yo={x:1,y:1},Vt=D(Yo);function he(e){return fe(Yo,e)}const Xo={theta:1,radius:1},jp=D(Xo);function wr(e){return e==="width"?ue:xe}const Bu={xOffset:1,yOffset:1};function Ri(e){return fe(Bu,e)}const Mp={time:1};function Jo(e){return e in Mp}const{text:H0,tooltip:G0,href:V0,url:Y0,description:X0,detail:J0,key:Q0,order:K0,...zu}=Vo,Ou=D(zu),Pu={...Yo,...Xo,...Bu,...zu},Qo=D(Pu);function kt(e){return fe(Pu,e)}function Rp(e,t){return function(n){switch(n){case Le:case Ft:case Dt:case $r:case Mi:case vr:case Cn:case br:case oi:case Gt:case fn:case dn:case pn:case yr:case qt:case Ut:return Nu;case ue:case xe:case cn:case ri:case ut:case ct:case ln:return Lp;case at:case wt:case lt:case Ke:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case Ht:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case mn:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case qe:return{point:"always",geoshape:"always"};case ji:return{text:"always"};case kn:return{point:"always",square:"always",text:"always"};case xr:return{image:"always"};case Qe:case st:return{text:"always",arc:"always"};case It:case Wt:return{arc:"always"}}}(e)[t]}const Nu={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:Z0,...Lp}=Nu;function Ko(e){switch(e){case ue:case xe:case Qe:case st:case cn:case ri:case Ht:case kn:case pn:case Gt:case fn:case dn:case ln:case at:case wt:case It:case Wt:return;case yr:case qt:case Ut:case qe:case mn:case ji:case Cn:case br:case xr:case $r:return"discrete";case Le:case Ft:case Dt:return"flexible";case ut:case ct:case lt:case Ke:case Mi:case vr:case oi:return}}const qp={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},Up={count:1,min:1,max:1};function Yt(e){return A(e,"argmin")}function gn(e){return A(e,"argmax")}function Fr(e){return R(e)&&fe(qp,e)}const Wp=new Set(["count","valid","missing","distinct"]);function Dr(e){return R(e)&&Wp.has(e)}const Ip=new Set(["count","sum","distinct","valid","missing"]),Hp=new Set(["mean","average","median","q1","q3","min","max"]);function _u(e){return Oi(e)&&(e=Ir(e,void 0)),"bin"+D(e).map(t=>Ar(e[t])?se(`_${t}_${un(e[t])}`):se(`_${t}_${e[t]}`)).join("")}function te(e){return e===!0||En(e)&&!e.binned}function ke(e){return e==="binned"||En(e)&&e.binned===!0}function En(e){return H(e)}function Ar(e){return A(e,"param")}function Tu(e){switch(e){case qt:case Ut:case Ht:case Le:case Ft:case Dt:case pn:case Gt:case fn:case dn:case qe:return 6;case mn:return 4;default:return 10}}function Li(e){return A(e,"expr")}function Ce(e,{level:t}={level:0}){const n=D(e||{}),i={};for(const r of n)i[r]=t===0?Ge(e[r]):Ce(e[r],{level:t-1});return i}function ju(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:a,color:s,subtitleColor:u,subtitleFont:c,subtitleFontSize:l,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...g}=e,m={...t?{anchor:t}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...o!==void 0?{angle:o}:{},...a!==void 0?{limit:a}:{}},y={...u?{subtitleColor:u}:{},...c?{subtitleFont:c}:{},...l?{subtitleFontSize:l}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}};return{titleMarkConfig:{...g,...s?{fill:s}:{}},subtitleMarkConfig:ei(e,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:m,subtitle:y}}function yn(e){return R(e)||P(e)&&R(e[0])}function N(e){return A(e,"signal")}function Bn(e){return A(e,"step")}function Xt(e){return!P(e)&&A(e,"field")&&A(e,"data")}const Gp=D({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}),Vp={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Zo=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function Mu(e){const t=P(e.condition)?e.condition.map(Ru):Ru(e.condition);return{...Ge(e),condition:t}}function Ge(e){if(Li(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function Ru(e){if(Li(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function re(e){if(Li(e)){const{expr:t,...n}=e;return{signal:t,...n}}return N(e)?e:e!==void 0?{value:e}:void 0}function Lu(e){return N(e)?e.signal:W(e.value)}function ft(e){return N(e)?e.signal:e==null?null:W(e)}function Yp(e,t,n){for(const i of n){const r=Ct(i,t.markDef,t.config);r!==void 0&&(e[i]=re(r))}return e}function qu(e){return[].concat(e.type,e.style??[])}function Z(e,t,n,i={}){const{vgChannel:r,ignoreVgConfig:o}=i;return r&&A(t,r)?t[r]:t[e]!==void 0?t[e]:!o||r&&r!==e?Ct(e,t,n,i):void 0}function Ct(e,t,n,{vgChannel:i}={}){const r=ea(e,t,n.style);return me(i?r:void 0,r,i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function ea(e,t,n){return Uu(e,qu(t),n)}function Uu(e,t,n){let i;t=pe(t);for(const r of t){const o=n[r];A(o,e)&&(i=o[e])}return i}function Wu(e,t){return pe(e).reduce((n,i)=>(n.field.push(S(i,t)),n.order.push(i.sort??"ascending"),n),{field:[],order:[]})}function Iu(e,t){const n=[...e];return t.forEach(i=>{for(const r of n)if(He(r,i))return;n.push(i)}),n}function Hu(e,t){return He(e,t)||!t?e:e?[...pe(e),...pe(t)].join(", "):t}function Gu(e,t){const n=e.value,i=t.value;if(n==null||i===null)return{explicit:e.explicit,value:null};if((yn(n)||N(n))&&(yn(i)||N(i)))return{explicit:e.explicit,value:Hu(n,i)};if(yn(n)||N(n))return{explicit:e.explicit,value:n};if(yn(i)||N(i))return{explicit:e.explicit,value:i};if(!(yn(n)||N(n)||yn(i)||N(i)))return{explicit:e.explicit,value:Iu(n,i)};throw new Error("It should never reach here")}function ta(e){return`Invalid specification ${K(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const Xp='Autosize "fit" only works for single views and layered views.';function Vu(e){return`${e=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function Yu(e){return`${e=="width"?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${e=="width"?"x":"y"}".`}function Xu(e){return e?`Dropping "fit-${e}" because spec has discrete ${Ue(e)}.`:'Dropping "fit" because spec has discrete size.'}function na(e){return`Unknown field for ${e}. Cannot calculate view size.`}function Ju(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Jp(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function Qu(e){return`Selection not supported for ${e} yet.`}const Qp="The same selection must be used to override scale domains in a layered view.";function Ku(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const ia="Animation involving facet, layer, or concat is currently unsupported.";function Zu(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function Kp(e){return`Ignoring an invalid transform: ${K(e)}.`}function ec(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function Zp(e){return`${e}Offset dropped because ${e} is continuous`}function tc(e){return`Invalid field type "${e}".`}function nc(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 ra(e,t){return`Dropping ${K(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}function kr(e,t,n){return`${e} dropped as it is incompatible with "${t}".`}function em(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function tm(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function nm(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function oa(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}function im(e){return`Using unaggregated domain with raw field has no effect (${K(e)}).`}function rm(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function om(e){return`Unaggregated domain is currently unsupported for log scale (${K(e)}).`}function ic(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function rc(e){return`The step for "${e}" is dropped because the ${e==="width"?"x":"y"} is continuous.`}const oc="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function Cr(e,t){return`Invalid ${e}: ${K(t)}.`}function ac(e){return`1D error band does not support ${e}.`}function sc(e){return`Channel ${e} is required for "binned" bin.`}const uc=xp($p);let qi=uc;function aa(...e){qi.error(...e)}function k(...e){qi.warn(...e)}function zn(e){if(e&&H(e)){for(const t of ua)if(A(e,t))return!0}return!1}const cc=["january","february","march","april","may","june","july","august","september","october","november","december"],am=cc.map(e=>e.substr(0,3)),lc=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],sm=lc.map(e=>e.substr(0,3));function sa(e,t){const n=[];if(t&&e.day!==void 0&&D(e).length>1&&(k(function(i){return`Dropping day from datetime ${K(i)} as day cannot be combined with other units.`}(e)),delete(e=M(e)).day),e.year!==void 0?n.push(e.year):n.push(2012),e.month!==void 0){const i=t?function(r){if(gr(r)&&(r=+r),ae(r))return r-1;{const o=r.toLowerCase(),a=cc.indexOf(o);if(a!==-1)return a;const s=o.substr(0,3),u=am.indexOf(s);if(u!==-1)return u;throw new Error(Cr("month",r))}}(e.month):e.month;n.push(i)}else if(e.quarter!==void 0){const i=t?function(r){if(gr(r)&&(r=+r),ae(r))return r>4&&k(Cr("quarter",r)),r-1;throw new Error(Cr("quarter",r))}(e.quarter):e.quarter;n.push(ae(i)?3*i:`${i}*3`)}else n.push(0);if(e.date!==void 0)n.push(e.date);else if(e.day!==void 0){const i=t?function(r){if(gr(r)&&(r=+r),ae(r))return r%7;{const o=r.toLowerCase(),a=lc.indexOf(o);if(a!==-1)return a;const s=o.substr(0,3),u=sm.indexOf(s);if(u!==-1)return u;throw new Error(Cr("day",r))}}(e.day):e.day;n.push(ae(i)?i+1:`${i}+1`)}else n.push(1);for(const i of["hours","minutes","seconds","milliseconds"]){const r=e[i];n.push(r===void 0?0:r)}return n}function On(e){const t=sa(e,!0).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}const fc={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},ua=D(fc);function Pn(e){return H(e)?e.binned:dc(e)}function dc(e){return e&&e.startsWith("binned")}function ca(e){return e.startsWith("utc")}const um={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function Sr(e){return ua.filter(t=>mc(e,t))}function pc(e){const t=Sr(e);return t[t.length-1]}function mc(e,t){const n=e.indexOf(t);return!(n<0)&&!(n>0&&t==="seconds"&&e.charAt(n-1)==="i")&&!(e.length>n+3&&t==="day"&&e.charAt(n+3)==="o")&&!(n>0&&t==="year"&&e.charAt(n-1)==="f")}function cm(e,t,{end:n}={end:!1}){const i=Uo(t),r=ca(e)?"utc":"";function o(u){return u==="quarter"?`(${r}quarter(${i})-1)`:`${r}${u}(${i})`}let a;const s={};for(const u of ua)mc(e,u)&&(s[u]=o(u),a=u);return n&&(s[a]+="+1"),function(u){const c=sa(u,!1).join(", ");return u.utc?`utc(${c})`:`datetime(${c})`}(s)}function hc(e){if(e)return`timeUnitSpecifier(${K(Sr(e))}, ${K(um)})`}function $e(e){if(!e)return;let t;return R(e)?t=dc(e)?{unit:e.substring(6),binned:!0}:{unit:e}:H(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),ca(t.unit)&&(t.utc=!0,t.unit=t.unit.substring(3)),t}function gc(e,t=n=>n){const n=$e(e),i=pc(n.unit);if(i&&i!=="day"){const r={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:o,part:a}=yc(i,n.step);return`${t(On({...r,[a]:+r[a]+o}))} - ${t(On(r))}`}}const lm={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function yc(e,t=1){if(function(n){return fe(lm,n)}(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 la(e){return!!(e!=null&&e.field)&&e.equal!==void 0}function fa(e){return!!(e!=null&&e.field)&&e.lt!==void 0}function da(e){return!!(e!=null&&e.field)&&e.lte!==void 0}function pa(e){return!!(e!=null&&e.field)&&e.gt!==void 0}function ma(e){return!!(e!=null&&e.field)&&e.gte!==void 0}function ha(e){return!!(e!=null&&e.field&&(P(e.range)&&e.range.length===2||N(e.range)))}function ga(e){return!!(e!=null&&e.field)&&(P(e.oneOf)||P(e.in))}function vc(e){return ga(e)||la(e)||ha(e)||fa(e)||pa(e)||da(e)||ma(e)}function St(e,t){return Hr(e,{timeUnit:t,wrapTime:!0})}function bc(e,t=!0){const{field:n}=e,i=$e(e.timeUnit),{unit:r,binned:o}=i||{},a=S(e,{expr:"datum"}),s=r?`time(${o?a:cm(r,n)})`:a;if(la(e))return`${s}===${St(e.equal,r)}`;if(fa(e))return`${s}<${St(e.lt,r)}`;if(pa(e))return`${s}>${St(e.gt,r)}`;if(da(e))return`${s}<=${St(e.lte,r)}`;if(ma(e))return`${s}>=${St(e.gte,r)}`;if(ga(e))return`indexof([${function(u,c){return u.map(l=>St(l,c))}(e.oneOf,r).join(",")}], ${s}) !== -1`;if(function(u){return!!(u!=null&&u.field)&&u.valid!==void 0}(e))return Er(s,e.valid);if(ha(e)){const{range:u}=Ce(e),c=N(u)?{signal:`${u.signal}[0]`}:u[0],l=N(u)?{signal:`${u.signal}[1]`}:u[1];if(c!==null&&l!==null&&t)return"inrange("+s+", ["+St(c,r)+", "+St(l,r)+"])";const f=[];return c!==null&&f.push(`${s} >= ${St(c,r)}`),l!==null&&f.push(`${s} <= ${St(l,r)}`),f.length>0?f.join(" && "):"true"}throw new Error(`Invalid field predicate: ${K(e)}`)}function Er(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function fm(e){return vc(e)&&e.timeUnit?{...e,timeUnit:$e(e.timeUnit)}:e}function dm(e){return e==="quantitative"||e==="temporal"}function xc(e){return e==="ordinal"||e==="nominal"}const Nn="quantitative",ya="ordinal",si="temporal",va="nominal",ui="geojson",$c="linear",pm="log",mm="pow",hm="sqrt",ba="time",Br="utc",wc="point",xa="band",$a={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function gm(e,t){const n=$a[e],i=$a[t];return n===i||n==="ordinal-position"&&i==="time"||i==="ordinal-position"&&n==="time"}const ym={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 Fc(e){return ym[e]}const Dc=new Set(["linear","log","pow","sqrt","symlog"]),Ac=new Set([...Dc,"time","utc"]);function kc(e){return Dc.has(e)}const Cc=new Set(["quantile","quantize","threshold"]),vm=new Set([...Ac,...Cc,"sequential","identity"]),bm=new Set(["ordinal","bin-ordinal","point","band"]);function we(e){return bm.has(e)}function dt(e){return vm.has(e)}function Et(e){return Ac.has(e)}function ci(e){return Cc.has(e)}function Sc(e){return A(e,"param")}const{type:e1,domain:t1,range:n1,rangeMax:i1,rangeMin:r1,scheme:o1,...xm}={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},$m=D(xm);function wa(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 Et(e)||e==="band"||e==="point";case"padding":case"rangeMin":case"rangeMax":return Et(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return e==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return Et(e);case"nice":return Et(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return dt(e)&&!U(["log","time","utc","threshold","quantile"],e)}}function Ec(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return ai(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 Be={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"},Bc=Be.arc,zr=Be.area,Or=Be.bar,wm=Be.image,Pr=Be.line,Nr=Be.point,Fm=Be.rect,_r=Be.rule,zc=Be.text,Fa=Be.tick,Dm=Be.trail,Da=Be.circle,Aa=Be.square,Oc=Be.geoshape;function vn(e){return["line","area","trail"].includes(e)}function Ui(e){return["rect","bar","image","arc","tick"].includes(e)}const Am=new Set(D(Be));function Bt(e){return A(e,"type")}const km=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],Pc=D({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),ka=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],Cm={area:["line","point"],bar:ka,rect:ka,line:["point"],tick:["bandSize","thickness",...ka]},Nc=D({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 _n(e){return A(e,"band")}const Sm={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Ca={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},Em={...Ca,binSpacing:1},Bm={...Ca,thickness:1};function _c(e,{isPath:t}){return e===void 0||e==="break-paths-show-path-domains"?t?"break-paths-show-domains":"filter":e===null?"show":e}function Sa({markDef:e,config:t,scaleChannel:n,scaleType:i,isCountAggregate:r}){var s,u;if(!i||!dt(i)||r)return"always-valid";const o=_c(Z("invalid",e,t),{isPath:vn(e.type)});return((u=(s=t.scale)==null?void 0:s.invalid)==null?void 0:u[n])!==void 0?"show":o}function Tc({scaleName:e,scale:t,mode:n}){const i=`domain('${e}')`;if(!t||!e)return;const r=`${i}[0]`,o=`peek(${i})`,a=t.domainHasZero();return a==="definitely"?{scale:e,value:0}:a==="maybe"?{signal:`scale('${e}', inrange(0, ${i}) ? 0 : ${n==="zeroOrMin"?r:o})`}:{signal:`scale('${e}', ${n==="zeroOrMin"?r:o})`}}function jc({scaleChannel:e,channelDef:t,scale:n,scaleName:i,markDef:r,config:o}){var c;const a=n==null?void 0:n.get("type"),s=ht(t),u=Sa({scaleChannel:e,markDef:r,config:o,scaleType:a,isCountAggregate:Dr(s==null?void 0:s.aggregate)});if(s&&u==="show"){const l=((c=o.scale.invalid)==null?void 0:c[e])??"zero-or-min";return{test:Er(S(s,{expr:"datum"}),!1),...zm(l,n,i)}}}function zm(e,t,n){if(H(i=e)&&"value"in i){const{value:r}=e;return N(r)?{signal:r.signal}:{value:r}}var i;return Tc({scale:t,scaleName:n,mode:"zeroOrMin"})}function Ea(e){const{channel:t,channelDef:n,markDef:i,scale:r,scaleName:o,config:a}=e,s=Sn(t),u=Ba(e),c=jc({scaleChannel:s,channelDef:n,scale:r,scaleName:o,markDef:i,config:a});return c!==void 0?[c,u]:u}function Tn(e,t,n,i){const r={};if(t&&(r.scale=t),zt(e)){const{datum:o}=e;zn(o)?r.signal=On(o):N(o)?r.signal=o.signal:Li(o)?r.signal=o.expr:r.value=o}else r.field=S(e,n);if(i){const{offset:o,band:a}=i;o&&(r.offset=o),a&&(r.band=a)}return r}function Tr({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:i,startSuffix:r,endSuffix:o="end",bandPosition:a=.5}){const s=!N(a)&&0<a&&a<1?"datum":void 0,u=S(t,{expr:s,suffix:r}),c=n!==void 0?S(n,{expr:s}):S(t,{suffix:o,expr:s}),l={};if(a===0||a===1){l.scale=e;const f=a===0?u:c;l.field=f}else{const f=N(a)?`(1-${a.signal}) * ${u} + ${a.signal} * ${c}`:`${1-a} * ${u} + ${a} * ${c}`;l.signal=`scale("${e}", ${f})`}return i&&(l.offset=i),l}function Ba({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:u,defaultRef:c,bandPosition:l}){if(t){if(L(t)){const f=a==null?void 0:a.get("type");if(_e(t)){l??(l=bn({fieldDef:t,fieldDef2:n,markDef:i,config:r}));const{bin:d,timeUnit:h,type:p}=t;if(te(d)||l&&h&&p===si)return s!=null&&s.impute?Tn(t,o,{binSuffix:"mid"},{offset:u}):l&&!we(f)?Tr({scaleName:o,fieldOrDatumDef:t,bandPosition:l,offset:u}):Tn(t,o,Yi(t,e)?{binSuffix:"range"}:{},{offset:u});if(ke(d)){if(C(n))return Tr({scaleName:o,fieldOrDatumDef:t,fieldOrDatumDef2:n,bandPosition:l,offset:u});k(sc(e===ue?at:wt))}}return Tn(t,o,we(f)?{binSuffix:"range"}:{},{offset:u,band:f==="band"?l??t.bandPosition??.5:void 0})}if(mt(t)){const f=u?{offset:u}:{};return{...Wi(e,t.value),...f}}}return wp(c)&&(c=c()),c&&{...c,...u?{offset:u}:{}}}function Wi(e,t){return U(["x","x2"],e)&&t==="width"?{field:{group:"width"}}:U(["y","y2"],e)&&t==="height"?{field:{group:"height"}}:re(t)}function jn(e){return e&&e!=="number"&&e!=="time"}function Mc(e,t,n){return`${e}(${t}${n?`, ${K(n)}`:""})`}function za({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o}){var u,c;if(jn(n))return pt({fieldOrDatumDef:e,format:t,formatType:n,expr:i,config:o});const a=Rc(e,i,r),s=li(e);if(t===void 0&&n===void 0&&o.customFormatTypes){if(s==="quantitative"){if(r&&o.normalizedNumberFormatType)return pt({fieldOrDatumDef:e,format:o.normalizedNumberFormat,formatType:o.normalizedNumberFormatType,expr:i,config:o});if(o.numberFormatType)return pt({fieldOrDatumDef:e,format:o.numberFormat,formatType:o.numberFormatType,expr:i,config:o})}if(s==="temporal"&&o.timeFormatType&&C(e)&&e.timeUnit===void 0)return pt({fieldOrDatumDef:e,format:o.timeFormat,formatType:o.timeFormatType,expr:i,config:o})}if(mi(e)){const l=function({field:f,timeUnit:d,format:h,formatType:p,rawTimeFormat:g,isUTCScale:m}){return!d||h?!d&&p?`${p}(${f}, '${h}')`:`${m?"utc":"time"}Format(${f}, '${h=R(h)?h:g}')`:function(y,x,b){if(!y)return;const v=hc(y);return`${b||ca(y)?"utc":"time"}Format(${x}, ${v})`}(d,f,m)}({field:a,timeUnit:C(e)?(u=$e(e.timeUnit))==null?void 0:u.unit:void 0,format:t,formatType:o.timeFormatType,rawTimeFormat:o.timeFormat,isUTCScale:Mn(e)&&((c=e.scale)==null?void 0:c.type)===Br});return l?{signal:l}:void 0}return t=Oa({type:s,specifiedFormat:t,config:o,normalizeStack:r}),C(e)&&te(e.bin)?{signal:Ii(a,S(e,{expr:i,binSuffix:"end"}),t,n,o)}:t||li(e)==="quantitative"?{signal:`${Uc(a,t)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function Rc(e,t,n){return C(e)?n?`${S(e,{expr:t,suffix:"end"})}-${S(e,{expr:t,suffix:"start"})}`:S(e,{expr:t}):function(i){const{datum:r}=i;return zn(r)?On(r):`${K(r)}`}(e)}function pt({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o,field:a}){return a??(a=Rc(e,i,r)),a!=="datum.value"&&C(e)&&te(e.bin)?{signal:Ii(a,S(e,{expr:i,binSuffix:"end"}),t,n,o)}:{signal:Mc(n,a,t)}}function Lc(e,t,n,i,r,o){var a;if(!R(i)||!jn(i)){if(n===void 0&&i===void 0&&r.customFormatTypes&&li(e)==="quantitative"&&(r.normalizedNumberFormatType&&fi(e)&&e.stack==="normalize"||r.numberFormatType))return;if(fi(e)&&e.stack==="normalize"&&r.normalizedNumberFormat)return Oa({type:"quantitative",config:r,normalizeStack:!0});if(mi(e)){const s=C(e)?(a=$e(e.timeUnit))==null?void 0:a.unit:void 0;return s===void 0&&r.customFormatTypes&&r.timeFormatType?void 0:function({specifiedFormat:u,timeUnit:c,config:l,omitTimeFormatConfig:f}){return u||(c?{signal:hc(c)}:f?void 0:l.timeFormat)}({specifiedFormat:n,timeUnit:s,config:r,omitTimeFormatConfig:o})}return Oa({type:t,specifiedFormat:n,config:r})}}function qc(e,t,n){var i;return e&&(N(e)||e==="number"||e==="time")?e:mi(t)&&n!=="time"&&n!=="utc"?C(t)&&((i=$e(t==null?void 0:t.timeUnit))!=null&&i.utc)?"utc":"time":void 0}function Oa({type:e,specifiedFormat:t,config:n,normalizeStack:i}){return R(t)?t:e===Nn?i?n.normalizedNumberFormat:n.numberFormat:void 0}function Uc(e,t){return`format(${e}, "${t||""}")`}function Wc(e,t,n,i){return jn(n)?Mc(n,e,t):Uc(e,(R(t)?t:void 0)??i.numberFormat)}function Ii(e,t,n,i,r){if(n===void 0&&i===void 0&&r.customFormatTypes&&r.numberFormatType)return Ii(e,t,r.numberFormat,r.numberFormatType,r);const o=Wc(e,n,i,r),a=Wc(t,n,i,r);return`${Er(e,!1)} ? "null" : ${o} + " \u2013 " + ${a}`}const jr="min",Om={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 Ic(e){return fe(Om,e)}function Jt(e){return e&&(e.op==="count"||A(e,"field"))}function Hc(e){return e&&P(e)}function Hi(e){return A(e,"row")||A(e,"column")}function Pa(e){return A(e,"header")}function Mr(e){return A(e,"facet")}function Gc(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return{...n?{timeUnit:n}:{},...i?{bin:i}:{},...r?{aggregate:r}:{},field:t}}function Na(e){return A(e,"sort")}function bn({fieldDef:e,fieldDef2:t,markDef:n,config:i}){if(L(e)&&e.bandPosition!==void 0)return e.bandPosition;if(C(e)){const{timeUnit:r,bin:o}=e;if(r&&!t)return Ct("timeUnitBandPosition",n,i);if(te(o))return .5}}function Vc({channel:e,fieldDef:t,fieldDef2:n,markDef:i,config:r,scaleType:o,useVlSizeChannel:a}){var c,l,f;const s=Ue(e),u=Z(a?"size":s,i,r,{vgChannel:s});if(u!==void 0)return u;if(C(t)){const{timeUnit:d,bin:h}=t;if(d&&!n)return{band:Ct("timeUnitBandSize",i,r)};if(te(h)&&!we(o))return{band:1}}return Ui(i.type)?o?we(o)?((c=r[i.type])==null?void 0:c.discreteBandSize)||{band:1}:(l=r[i.type])==null?void 0:l.continuousBandSize:(f=r[i.type])==null?void 0:f.discreteBandSize:void 0}function Yc(e,t,n,i){return!!(te(e.bin)||e.timeUnit&&_e(e)&&e.type==="temporal")&&bn({fieldDef:e,fieldDef2:t,markDef:n,config:i})!==void 0}function Xc(e){return A(e,"sort")&&!A(e,"field")}function Gi(e){return A(e,"condition")}function Rr(e){const t=e==null?void 0:e.condition;return!!t&&!P(t)&&C(t)}function Vi(e){const t=e==null?void 0:e.condition;return!!t&&!P(t)&&L(t)}function C(e){return A(e,"field")||(e==null?void 0:e.aggregate)==="count"}function li(e){return e==null?void 0:e.type}function zt(e){return A(e,"datum")}function xn(e){return _e(e)&&!qr(e)||Lr(e)}function Jc(e){return _e(e)&&e.type==="quantitative"&&!e.bin||Lr(e)}function Lr(e){return zt(e)&&ae(e.datum)}function L(e){return C(e)||zt(e)}function _e(e){return e&&(A(e,"field")||e.aggregate==="count")&&A(e,"type")}function mt(e){return A(e,"value")}function Mn(e){return A(e,"scale")||A(e,"sort")}function fi(e){return A(e,"axis")||A(e,"stack")||A(e,"impute")}function Qc(e){return A(e,"legend")}function Kc(e){return A(e,"format")||A(e,"formatType")}function Pm(e){return Re(e,["legend","axis","header","scale"])}function S(e,t={}){let n=e.field;const i=t.prefix;let r=t.suffix,o="";if(function(a){return a.aggregate==="count"}(e))n=bu("count");else{let a;if(!t.nofn)if(function(s){return A(s,"op")}(e))a=e.op;else{const{bin:s,aggregate:u,timeUnit:c}=e;te(s)?(a=_u(s),r=(t.binSuffix??"")+(t.suffix??"")):u?gn(u)?(o=`["${n}"]`,n=`argmax_${u.argmax}`):Yt(u)?(o=`["${n}"]`,n=`argmin_${u.argmin}`):a=String(u):c&&!Pn(c)&&(a=function(l){const{utc:f,...d}=$e(l);return d.unit?(f?"utc":"")+D(d).map(h=>se(`${h==="unit"?"":`_${h}_`}${d[h]}`)).join(""):(f?"utc":"")+"timeunit"+D(d).map(h=>se(`_${h}_${d[h]}`)).join("")}(c),r=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(t.suffix??""))}a&&(n=n?`${a}_${n}`:a)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?ni(n):t.expr?gu(n,t.expr)+o:Je(n)+o}function qr(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return C(e)&&!!e.bin;case"temporal":return!1}throw new Error(tc(e.type))}const Zc=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return function(n){const{aggregate:i,bin:r,timeUnit:o,field:a}=n;if(gn(i))return`${a} for argmax(${i.argmax})`;if(Yt(i))return`${a} for argmin(${i.argmin})`;const s=o&&!Pn(o)?$e(o):void 0,u=i||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||te(r)&&"bin";return u?`${u.toUpperCase()}(${a})`:a}(e);default:return function(n,i){var u;const{field:r,bin:o,timeUnit:a,aggregate:s}=n;if(s==="count")return i.countTitle;if(te(o))return`${r} (binned)`;if(a&&!Pn(a)){const c=(u=$e(a))==null?void 0:u.unit;if(c)return`${r} (${Sr(c).join("-")})`}else if(s)return gn(s)?`${r} for max ${s.argmax}`:Yt(s)?`${r} for min ${s.argmin}`:`${_i(s)} of ${r}`;return r}(e,t)}};let el=Zc;function tl(e){el=e}function di(e,t,{allowDisabling:n,includeDefault:i=!0}){var s;const r=(s=_a(e))==null?void 0:s.title;if(!C(e))return r??e.title;const o=e,a=i?Ta(o,t):void 0;return n?me(r,o.title,a):r??o.title??a}function _a(e){return fi(e)&&e.axis?e.axis:Qc(e)&&e.legend?e.legend:Pa(e)&&e.header?e.header:void 0}function Ta(e,t){return el(e,t)}function Ur(e){if(Kc(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}{const t=_a(e)??{},{format:n,formatType:i}=t;return{format:n,formatType:i}}}function ht(e){return C(e)?e:Rr(e)?e.condition:void 0}function ye(e){return L(e)?e:Vi(e)?e.condition:void 0}function nl(e,t,n,i={}){return R(e)||ae(e)||Oi(e)?(k(function(r,o,a){return`Channel ${r} is a ${o}. Converted to {value: ${K(a)}}.`}(t,R(e)?"string":ae(e)?"number":"boolean",e)),{value:e}):L(e)?Wr(e,t,n,i):Vi(e)?{...e,condition:Wr(e.condition,t,n,i)}:e}function Wr(e,t,n,i){if(Kc(e)){const{format:r,formatType:o,...a}=e;if(jn(o)&&!n.customFormatTypes)return k(ec(t)),Wr(a,t,n,i)}else{const r=fi(e)?"axis":Qc(e)?"legend":Pa(e)?"header":null;if(r&&e[r]){const{format:o,formatType:a,...s}=e[r];if(jn(a)&&!n.customFormatTypes)return k(ec(t)),Wr({...e,[r]:s},t,n,i)}}return C(e)?ja(e,t,i):function(r){let o=r.type;if(o)return r;const{datum:a}=r;return o=ae(a)?"quantitative":R(a)?"nominal":zn(a)?"temporal":void 0,{...r,type:o}}(e)}function ja(e,t,{compositeMark:n=!1}={}){const{aggregate:i,timeUnit:r,bin:o,field:a}=e,s={...e};if(n||!i||Fr(i)||gn(i)||Yt(i)||(k(function(u){return`Invalid aggregation operator "${u}".`}(i)),delete s.aggregate),r&&(s.timeUnit=$e(r)),a&&(s.field=`${a}`),te(o)&&(s.bin=Ir(o,t)),ke(o)&&!he(t)&&k(function(u){return`Channel ${u} should not be used with "binned" bin.`}(t)),_e(s)){const{type:u}=s,c=function(l){if(l)switch(l=l.toLowerCase()){case"q":case Nn:return"quantitative";case"t":case si:return"temporal";case"o":case ya:return"ordinal";case"n":case va:return"nominal";case ui:return"geojson"}}(u);u!==c&&(s.type=c),u!=="quantitative"&&Dr(i)&&(k(function(l,f){return`Invalid field type "${l}" for aggregate: "${f}", using "quantitative" instead.`}(u,i)),s.type="quantitative")}else if(!Su(t)){const u=function(c,l){var p;switch(l){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Na(c)&&P(c.sort))return"ordinal";const{aggregate:f,bin:d,timeUnit:h}=c;if(h)return"temporal";if(d||f&&!gn(f)&&!Yt(f))return"quantitative";if(Mn(c)&&((p=c.scale)!=null&&p.type))switch($a[c.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(s,t);s.type=u}if(_e(s)){const{compatible:u,warning:c}=function(l,f){var p;const d=l.type;if(d==="geojson"&&f!=="shape")return{compatible:!1,warning:`Channel ${f} should not be used with a geojson data.`};switch(f){case qt:case Ut:case yr:return qr(l)?pi:{compatible:!1,warning:tm(f)};case ue:case xe:case cn:case ri:case Le:case Ft:case Dt:case ji:case Mi:case vr:case Cn:case br:case xr:case kn:case Qe:case st:case $r:return pi;case ct:case Ke:case ut:case lt:return d!==Nn?{compatible:!1,warning:`Channel ${f} should be used with a quantitative field only, not ${l.type} field.`}:pi;case Gt:case fn:case dn:case pn:case Ht:case It:case Wt:case at:case wt:case ln:return d!=="nominal"||l.sort?pi:{compatible:!1,warning:`Channel ${f} should not be used with an unsorted discrete field.`};case qe:case mn:return qr(l)||Mn(h=l)&&ci((p=h.scale)==null?void 0:p.type)?pi:{compatible:!1,warning:nm(f)};case oi:return l.type!=="nominal"||"sort"in l?pi:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var h}(s,t)||{};u===!1&&k(c)}if(Na(s)&&R(s.sort)){const{sort:u}=s;if(Ic(u))return{...s,sort:{encoding:u}};const c=u.substring(1);if(u.charAt(0)==="-"&&Ic(c))return{...s,sort:{encoding:c,order:"descending"}}}if(Pa(s)){const{header:u}=s;if(u){const{orient:c,...l}=u;if(c)return{...s,header:{...l,labelOrient:u.labelOrient||c,titleOrient:u.titleOrient||c}}}}return s}function Ir(e,t){return Oi(e)?{maxbins:Tu(t)}:e==="binned"?{binned:!0}:e.maxbins||e.step?e:{...e,maxbins:Tu(t)}}const pi={compatible:!0};function mi(e){const{formatType:t}=Ur(e);return t==="time"||!t&&(n=e)&&(n.type==="temporal"||C(n)&&!!n.timeUnit);var n}function Hr(e,{timeUnit:t,type:n,wrapTime:i,undefinedIfExprNotRequired:r}){var u;const o=t&&((u=$e(t))==null?void 0:u.unit);let a,s=o||n==="temporal";return Li(e)?a=e.expr:N(e)?a=e.signal:zn(e)?(s=!0,a=On(e)):(R(e)||ae(e))&&s&&(a=`datetime(${K(e)})`,function(c){return fe(fc,c)}(o)&&(ae(e)&&e<1e4||R(e)&&isNaN(Date.parse(e)))&&(a=On({[o]:e}))),a?i&&s?`time(${a})`:a:r?void 0:K(e)}function il(e,t){const{type:n}=e;return t.map(i=>{const r=Hr(i,{timeUnit:C(e)&&!Pn(e.timeUnit)?e.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return r!==void 0?{signal:r}:i})}function Yi(e,t){return te(e.bin)?kt(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const rl={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 Xi(e){return e==null?void 0:e.condition}const ol=["domain","grid","labels","ticks","title"],Nm={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"},al={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},_m={...al,style:1,labelExpr:1,encoding:1};function sl(e){return fe(_m,e)}const ul=D({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 Qt(e){return A(e,"mark")}class Gr{constructor(t,n){this.name=t,this.run=n}hasMatchingType(t){return!!Qt(t)&&(Bt(n=t.mark)?n.type:n)===this.name;var n}}function Rn(e,t){const n=e&&e[t];return!!n&&(P(n)?ti(n,i=>!!i.field):C(n)||Rr(n))}function cl(e,t){const n=e&&e[t];return!!n&&(P(n)?ti(n,i=>!!i.field):C(n)||zt(n)||Vi(n))}function ll(e,t){if(he(t)){const n=e[t];if((C(n)||zt(n))&&(xc(n.type)||C(n)&&n.timeUnit))return cl(e,Go(t))}return!1}function fl(e){return ti(Ep,t=>{if(Rn(e,t)){const n=e[t];if(P(n))return ti(n,i=>!!i.aggregate);{const i=ht(n);return i&&!!i.aggregate}}return!1})}function dl(e,t){const n=[],i=[],r=[],o=[],a={};return Ma(e,(s,u)=>{if(C(s)){const{field:c,aggregate:l,bin:f,timeUnit:d,...h}=s;if(l||d||f){const p=_a(s),g=p==null?void 0:p.title;let m=S(s,{forAs:!0});const y={...g?[]:{title:di(s,t,{allowDisabling:!0})},...h,field:m};if(l){let x;if(gn(l)?(x="argmax",m=S({op:"argmax",field:l.argmax},{forAs:!0}),y.field=`${m}.${c}`):Yt(l)?(x="argmin",m=S({op:"argmin",field:l.argmin},{forAs:!0}),y.field=`${m}.${c}`):l!=="boxplot"&&l!=="errorbar"&&l!=="errorband"&&(x=l),x){const b={op:x,as:m};c&&(b.field=c),o.push(b)}}else if(n.push(m),_e(s)&&te(f)){if(i.push({bin:f,field:c,as:m}),n.push(S(s,{binSuffix:"end"})),Yi(s,u)&&n.push(S(s,{binSuffix:"range"})),he(u)){const x={field:`${m}_end`};a[`${u}2`]=x}y.bin="binned",Su(u)||(y.type=Nn)}else if(d&&!Pn(d)){r.push({timeUnit:d,field:c,as:m});const x=_e(s)&&s.type!==si&&"time";x&&(u===ji||u===Cn?y.formatType=x:function(b){return fe(Vo,b)}(u)?y.legend={formatType:x,...y.legend}:he(u)&&(y.axis={formatType:x,...y.axis}))}a[u]=y}else n.push(c),a[u]=e[u]}else a[u]=e[u]}),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:a}}function Tm(e,t,n){const i=Rp(t,n);if(!i)return!1;if(i==="binned"){const r=e[t===at?ue:xe];return!!(C(r)&&C(e[t])&&ke(r.bin))}return!0}function Vr(e,t){const n={};for(const i of D(e)){const r=nl(e[i],i,t,{compositeMark:!0});n[i]=r}return n}function Ma(e,t,n){if(e)for(const i of D(e)){const r=e[i];if(P(r))for(const o of r)t.call(n,o,i);else t.call(n,r,i)}}function pl(e,t){return D(t).reduce((n,i)=>{switch(i){case ue:case xe:case br:case $r:case xr:case at:case wt:case cn:case ri:case Qe:case It:case st:case Wt:case ln:case ut:case ct:case lt:case Ke:case ji:case qe:case kn:case Cn:return n;case oi:if(e==="line"||e==="trail")return n;case Mi:case vr:{const r=t[i];if(P(r)||C(r))for(const o of pe(r))o.aggregate||n.push(S(o,{}));return n}case Ht:if(e==="trail")return n;case Le:case Ft:case Dt:case Gt:case fn:case dn:case mn:case pn:{const r=ht(t[i]);return r&&!r.aggregate&&n.push(S(r,{})),n}}},[])}function Ra(e,t,n,i=!0){return"tooltip"in n?{tooltip:n.tooltip}:{tooltip:[...e.map(({fieldPrefix:r,titlePrefix:o})=>{const a=i?` of ${La(t)}`:"";return{field:r+t.field,type:t.type,title:N(o)?{signal:`${o}"${escape(a)}"`}:o+a}}),...$t(function(r){const o=[];for(const a of D(r))if(Rn(r,a)){const s=r[a],u=pe(s);for(const c of u)C(c)?o.push(c):Rr(c)&&o.push(c.condition)}return o}(n).map(Pm),I)]}}function La(e){const{title:t,field:n}=e;return me(t,n)}function qa(e,t,n,i,r){const{scale:o,axis:a}=n;return({partName:s,mark:u,positionPrefix:c,endPositionPrefix:l,extraEncoding:f={}})=>{const d=La(n);return ml(e,s,r,{mark:u,encoding:{[t]:{field:`${c}_${n.field}`,type:n.type,...d!==void 0?{title:d}:{},...o!==void 0?{scale:o}:{},...a!==void 0?{axis:a}:{}},...R(l)?{[`${t}2`]:{field:`${l}_${n.field}`}}:{},...i,...f}})}}function ml(e,t,n,i){const{clip:r,color:o,opacity:a}=e,s=e.type;return e[t]||e[t]===void 0&&n[t]?[{...i,mark:{...n[t],...r?{clip:r}:{},...o?{color:o}:{},...a?{opacity:a}:{},...Bt(i.mark)?i.mark:{type:i.mark},style:`${s}-${String(t)}`,...Oi(e[t])?{}:e[t]}}]:[]}function hl(e,t,n){const{encoding:i}=e,r=t==="vertical"?"y":"x",o=i[r],a=i[`${r}2`],s=i[`${r}Error`],u=i[`${r}Error2`];return{continuousAxisChannelDef:Yr(o,n),continuousAxisChannelDef2:Yr(a,n),continuousAxisChannelDefError:Yr(s,n),continuousAxisChannelDefError2:Yr(u,n),continuousAxis:r}}function Yr(e,t){if(e!=null&&e.aggregate){const{aggregate:n,...i}=e;return n!==t&&k(function(r,o){return`Continuous axis should not have customized aggregation function ${r}; ${o} already agregates the axis.`}(n,t)),i}return e}function gl(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(Bt(n)&&n.orient)return n.orient;if(xn(r)){if(xn(o)){const a=C(r)&&r.aggregate,s=C(o)&&o.aggregate;if(a||s!==t){if(s||a!==t){if(a===t&&s===t)throw new Error("Both x and y cannot have aggregate");return mi(o)&&!mi(r)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(xn(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}const Xr="boxplot",jm=new Gr(Xr,vl);function yl(e){return ae(e)?"tukey":e}function vl(e,{config:t}){e={...e,encoding:Vr(e.encoding,t)};const{mark:n,encoding:i,params:r,projection:o,...a}=e,s=Bt(n)?n:{type:n};r&&k(Qu("boxplot"));const u=s.extent??t.boxplot.extent,c=Z("size",s,t),l=s.invalid,f=yl(u),{bins:d,timeUnits:h,transform:p,continuousAxisChannelDef:g,continuousAxis:m,groupby:y,aggregate:x,encodingWithoutContinuousAxis:b,ticksOrient:v,boxOrient:w,customTooltipWithoutAggregatedField:F}=function(Ei,zo,cp){const Oo=gl(Ei,Xr),{continuousAxisChannelDef:ou,continuousAxis:au}=hl(Ei,Oo,Xr),Bi=ou.field,Me=ni(Bi),dr=yl(zo),lp=[...bl(Bi),{op:"median",field:Bi,as:`mid_box_${Me}`},{op:"min",field:Bi,as:(dr==="min-max"?"lower_whisker_":"min_")+Me},{op:"max",field:Bi,as:(dr==="min-max"?"upper_whisker_":"max_")+Me}],fp=dr==="min-max"||dr==="tukey"?[]:[{calculate:`${V(`upper_box_${Me}`)} - ${V(`lower_box_${Me}`)}`,as:`iqr_${Me}`},{calculate:`min(${V(`upper_box_${Me}`)} + ${V(`iqr_${Me}`)} * ${zo}, ${V(`max_${Me}`)})`,as:`upper_whisker_${Me}`},{calculate:`max(${V(`lower_box_${Me}`)} - ${V(`iqr_${Me}`)} * ${zo}, ${V(`min_${Me}`)})`,as:`lower_whisker_${Me}`}],{[au]:F0,...dp}=Ei.encoding,{customTooltipWithoutAggregatedField:pp,filteredEncoding:mp}=function(bp){const{tooltip:Jn,...pr}=bp;if(!Jn)return{filteredEncoding:pr};let zi,Lt;if(P(Jn)){for(const Po of Jn)Po.aggregate?(zi||(zi=[]),zi.push(Po)):(Lt||(Lt=[]),Lt.push(Po));zi&&(pr.tooltip=zi)}else Jn.aggregate?pr.tooltip=Jn:Lt=Jn;return P(Lt)&&Lt.length===1&&(Lt=Lt[0]),{customTooltipWithoutAggregatedField:Lt,filteredEncoding:pr}}(dp),{bins:su,timeUnits:uu,aggregate:cu,groupby:lu,encoding:hp}=dl(mp,cp),gp=Oo==="vertical"?"horizontal":"vertical",yp=Oo,vp=[...su,...uu,{aggregate:[...cu,...lp],groupby:lu},...fp];return{bins:su,timeUnits:uu,transform:vp,groupby:lu,aggregate:cu,continuousAxisChannelDef:ou,continuousAxis:au,encodingWithoutContinuousAxis:hp,ticksOrient:gp,boxOrient:yp,customTooltipWithoutAggregatedField:pp}}(e,u,t),E=ni(g.field),{color:B,size:O,...T}=b,z=Ei=>qa(s,m,g,Ei,t.boxplot),j=z(T),ve=z(b),ne=(H(t.boxplot.box)?t.boxplot.box.color:t.mark.color)||"#4c78a8",ie=z({...T,...O?{size:O}:{},color:{condition:{test:`${V(`lower_box_${g.field}`)} >= ${V(`upper_box_${g.field}`)}`,...B||{value:ne}}}}),J=Ra([{fieldPrefix:f==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:f==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],g,b),ee={type:"tick",color:"black",opacity:1,orient:v,invalid:l,aria:!1},de=f==="min-max"?J:Ra([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,b),tt=[...j({partName:"rule",mark:{type:"rule",invalid:l,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:de}),...j({partName:"rule",mark:{type:"rule",invalid:l,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:de}),...j({partName:"ticks",mark:ee,positionPrefix:"lower_whisker",extraEncoding:de}),...j({partName:"ticks",mark:ee,positionPrefix:"upper_whisker",extraEncoding:de})],Ye=[...f!=="tukey"?tt:[],...ve({partName:"box",mark:{type:"bar",...c?{size:c}:{},orient:w,invalid:l,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:J}),...ie({partName:"median",mark:{type:"tick",invalid:l,...H(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...c?{size:c}:{},orient:v,aria:!1},positionPrefix:"mid_box",extraEncoding:J})];if(f==="min-max")return{...a,transform:(a.transform??[]).concat(p),layer:Ye};const nt=V(`lower_box_${g.field}`),je=V(`upper_box_${g.field}`),jt=`(${je} - ${nt})`,ge=`${nt} - ${u} * ${jt}`,it=`${je} + ${u} * ${jt}`,be=V(g.field),q={joinaggregate:bl(g.field),groupby:y},Ne={transform:[{filter:`(${ge} <= ${be}) && (${be} <= ${it})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${E}`},{op:"max",field:g.field,as:`upper_whisker_${E}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${E}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${E}`},...x],groupby:y}],layer:tt},{tooltip:sn,...Yn}=T,{scale:Xn,axis:Xe}=g,rt=La(g),Mt=Re(Xe,["title"]),Rt=ml(s,"outliers",t.boxplot,{transform:[{filter:`(${be} < ${ge}) || (${be} > ${it})`}],mark:"point",encoding:{[m]:{field:g.field,type:g.type,...rt!==void 0?{title:rt}:{},...Xn!==void 0?{scale:Xn}:{},...Q(Mt)?{}:{axis:Mt}},...Yn,...B?{color:B}:{},...F?{tooltip:F}:{}}})[0];let ot;const ru=[...d,...h,q];return Rt?ot={transform:ru,layer:[Rt,Ne]}:(ot=Ne,ot.transform.unshift(...ru)),{...a,layer:[ot,{transform:p,layer:Ye}]}}function bl(e){const t=ni(e);return[{op:"q1",field:e,as:`lower_box_${t}`},{op:"q3",field:e,as:`upper_box_${t}`}]}const Ua="errorbar",Mm=new Gr(Ua,xl);function xl(e,{config:t}){e={...e,encoding:Vr(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:a,markDef:s,outerSpec:u,tooltipEncoding:c}=$l(e,Ua,t);delete o.size;const l=qa(s,r,i,o,t.errorbar),f=s.thickness,d=s.size,h={type:"tick",orient:a,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},p=[...l({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:c}),...l({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:c}),...l({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c})];return{...u,transform:n,...p.length>1?{layer:p}:{...p[0]}}}function Rm(e,t){const{encoding:n}=e;if(function(s){return(L(s.x)||L(s.y))&&!L(s.x2)&&!L(s.y2)&&!L(s.xError)&&!L(s.xError2)&&!L(s.yError)&&!L(s.yError2)}(n))return{orient:gl(e,t),inputType:"raw"};const i=function(s){return L(s.x2)||L(s.y2)}(n),r=function(s){return L(s.xError)||L(s.xError2)||L(s.yError)||L(s.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 s=n.x2,u=n.y2;if(L(s)&&L(u))throw new Error(`${t} cannot have both x2 and y2`);if(L(s)){if(xn(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}if(L(u)){if(xn(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 s=n.xError,u=n.xError2,c=n.yError,l=n.yError2;if(L(u)&&!L(s))throw new Error(`${t} cannot have xError2 without xError`);if(L(l)&&!L(c))throw new Error(`${t} cannot have yError2 without yError`);if(L(s)&&L(c))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(L(s)){if(xn(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(L(c)){if(xn(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 $l(e,t,n){const{mark:i,encoding:r,params:o,projection:a,...s}=e,u=Bt(i)?i:{type:i};o&&k(Qu(t));const{orient:c,inputType:l}=Rm(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:g}=hl(e,c,t),{errorBarSpecificAggregate:m,postAggregateCalculates:y,tooltipSummary:x,tooltipTitleWithFieldName:b}=function(ee,de,tt,Ye,nt,je,jt,ge){let it=[],be=[];const q=de.field;let Ne,sn=!1;if(je==="raw"){const Xe=ee.center?ee.center:ee.extent?ee.extent==="iqr"?"median":"mean":ge.errorbar.center,rt=ee.extent?ee.extent:Xe==="mean"?"stderr":"iqr";if(Xe==="median"!=(rt==="iqr")&&k(function(Mt,Rt,ot){return`${Mt} is not usually used with ${Rt} for ${ot}.`}(Xe,rt,jt)),rt==="stderr"||rt==="stdev")it=[{op:rt,field:q,as:`extent_${q}`},{op:Xe,field:q,as:`center_${q}`}],be=[{calculate:`${V(`center_${q}`)} + ${V(`extent_${q}`)}`,as:`upper_${q}`},{calculate:`${V(`center_${q}`)} - ${V(`extent_${q}`)}`,as:`lower_${q}`}],Ne=[{fieldPrefix:"center_",titlePrefix:_i(Xe)},{fieldPrefix:"upper_",titlePrefix:wl(Xe,rt,"+")},{fieldPrefix:"lower_",titlePrefix:wl(Xe,rt,"-")}],sn=!0;else{let Mt,Rt,ot;rt==="ci"?(Mt="mean",Rt="ci0",ot="ci1"):(Mt="median",Rt="q1",ot="q3"),it=[{op:Rt,field:q,as:`lower_${q}`},{op:ot,field:q,as:`upper_${q}`},{op:Mt,field:q,as:`center_${q}`}],Ne=[{fieldPrefix:"upper_",titlePrefix:di({field:q,aggregate:ot,type:"quantitative"},ge,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:di({field:q,aggregate:Rt,type:"quantitative"},ge,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:di({field:q,aggregate:Mt,type:"quantitative"},ge,{allowDisabling:!1})}]}}else{(ee.center||ee.extent)&&k((Yn=ee.center,`${(Xn=ee.extent)?"extent ":""}${Xn&&Yn?"and ":""}${Yn?"center ":""}${Xn&&Yn?"are ":"is "}not needed when data are aggregated.`)),je==="aggregated-upper-lower"?(Ne=[],be=[{calculate:V(tt.field),as:`upper_${q}`},{calculate:V(q),as:`lower_${q}`}]):je==="aggregated-error"&&(Ne=[{fieldPrefix:"",titlePrefix:q}],be=[{calculate:`${V(q)} + ${V(Ye.field)}`,as:`upper_${q}`}],nt?be.push({calculate:`${V(q)} + ${V(nt.field)}`,as:`lower_${q}`}):be.push({calculate:`${V(q)} - ${V(Ye.field)}`,as:`lower_${q}`}));for(const Xe of be)Ne.push({fieldPrefix:Xe.as.substring(0,6),titlePrefix:An(An(Xe.calculate,"datum['",""),"']","")})}var Yn,Xn;return{postAggregateCalculates:be,errorBarSpecificAggregate:it,tooltipSummary:Ne,tooltipTitleWithFieldName:sn}}(u,f,d,h,p,l,t,n),{[g]:v,[g==="x"?"x2":"y2"]:w,[g==="x"?"xError":"yError"]:F,[g==="x"?"xError2":"yError2"]:E,...B}=r,{bins:O,timeUnits:T,aggregate:z,groupby:j,encoding:ve}=dl(B,n),ne=[...z,...m],ie=l!=="raw"?[]:j,J=Ra(x,f,ve,b);return{transform:[...s.transform??[],...O,...T,...ne.length===0?[]:[{aggregate:ne,groupby:ie}],...y],groupby:ie,continuousAxisChannelDef:f,continuousAxis:g,encodingWithoutContinuousAxis:ve,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:s,tooltipEncoding:J}}function wl(e,t,n){return`${_i(e)} ${n} ${t}`}const Wa="errorband",Lm=new Gr(Wa,Fl);function Fl(e,{config:t}){e={...e,encoding:Vr(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:a,outerSpec:s,tooltipEncoding:u}=$l(e,Wa,t),c=a,l=qa(c,r,i,o,t.errorband),f=e.encoding.x!==void 0&&e.encoding.y!==void 0;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p={...c.interpolate?{interpolate:c.interpolate}:{},...c.tension&&c.interpolate?{tension:c.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):c.interpolate?k(ac("interpolate")):c.tension&&k(ac("tension")),{...s,transform:n,layer:[...l({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...l({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...l({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const Dl={};function Ia(e,t,n){const i=new Gr(e,t);Dl[e]={normalizer:i,parts:n}}Ia(Xr,vl,["box","median","outliers","rule","ticks"]),Ia(Ua,xl,["ticks","rule"]),Ia(Wa,Fl,["band","borders"]);const qm=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Al={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"},kl={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"},Um=D(Al),Wm=D(kl),Cl=D({header:1,headerRow:1,headerColumn:1,headerFacet:1}),Sl=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],gt="_vgsid_",Im={point:{on:"click",fields:[gt],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 Ha(e){return e==="legend"||!!(e!=null&&e.legend)}function Ga(e){return Ha(e)&&H(e)}function Va(e){return!!(e!=null&&e.select)}function El(e){const t=[];for(const n of e||[]){if(Va(n))continue;const{expr:i,bind:r,...o}=n;if(r&&i){const a={...o,bind:r,init:i};t.push(a)}else{const a={...o,...i?{update:i}:{},...r?{bind:r}:{}};t.push(a)}}return t}function Ya(e){return A(e,"concat")}function Jr(e){return A(e,"vconcat")}function Xa(e){return A(e,"hconcat")}function Bl({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function Ot(e){return A(e,"step")}function zl(e){return A(e,"view")||A(e,"width")||A(e,"height")}const Hm=D({align:1,bounds:1,center:1,columns:1,spacing:1});function Ja(e,t){return e[t]??e[t==="width"?"continuousWidth":"continuousHeight"]}function Qa(e,t){const n=Qr(e,t);return Ot(n)?n.step:Ol}function Qr(e,t){return me(e[t]??e[t==="width"?"discreteWidth":"discreteHeight"],{step:e.step})}const Ol=20,Gm={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:Ol},mark:{color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},arc:{},area:{},bar:Em,circle:{},geoshape:{},image:{},line:{},point:{},rect:Ca,rule:{color:"black"},square:{},text:{color:"black"},tick:Bm,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,framesPerSecond:2,animationDuration:5},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:Im,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},Kt=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Pl={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},Nl={blue:Kt[0],orange:Kt[1],red:Kt[2],teal:Kt[3],green:Kt[4],yellow:Kt[5],purple:Kt[6],pink:Kt[7],brown:Kt[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 _l(e){const t=D(e||{}),n={};for(const i of t){const r=e[i];n[i]=Xi(r)?Mu(r):Ge(r)}return n}const Vm=[...Nc,...ul,...Cl,"background","padding","legend","lineBreak","scale","style","title","view"];function Tl(e={}){const{color:t,font:n,fontSize:i,selection:r,...o}=e,a=du({},M(Gm),n?function(u){return{text:{font:u},style:{"guide-label":{font:u},"guide-title":{font:u},"group-title":{font:u},"group-subtitle":{font:u}}}}(n):{},t?function(u={}){return{signals:[{name:"color",value:H(u)?{...Nl,...u}:Nl}],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(u){return{signals:[{name:"fontSize",value:H(u)?{...Pl,...u}:Pl}],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&&fu(a,"selection",r,!0);const s=Re(a,Vm);for(const u of["background","lineBreak","padding"])a[u]&&(s[u]=Ge(a[u]));for(const u of Nc)a[u]&&(s[u]=Ce(a[u]));for(const u of ul)a[u]&&(s[u]=_l(a[u]));for(const u of Cl)a[u]&&(s[u]=Ce(a[u]));if(a.legend&&(s.legend=Ce(a.legend)),a.scale){const{invalid:u,...c}=a.scale,l=Ce(u,{level:1});s.scale={...Ce(c),...D(l).length>0?{invalid:l}:{}}}return a.style&&(s.style=function(u){const c=D(u),l={};for(const f of c)l[f]=_l(u[f]);return l}(a.style)),a.title&&(s.title=Ce(a.title)),a.view&&(s.view=Ce(a.view)),s}const Ym=new Set(["view",...Am]),Xm=["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"],Jm={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...Cm};function Qm(e){e=M(e);for(const t of Xm)delete e[t];if(e.axis)for(const t in e.axis)Xi(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of qm)delete e.legend[t];if(e.mark){for(const t of Pc)delete e.mark[t];e.mark.tooltip&&H(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(El(e.params)),delete e.params);for(const t of Ym){for(const i of Pc)delete e[t][i];const n=Jm[t];if(n)for(const i of n)delete e[t][i];Km(e,t)}for(const t of D(Dl))delete e[t];(function(t){const{titleMarkConfig:n,subtitleMarkConfig:i,subtitle:r}=ju(t.title);Q(n)||(t.style["group-title"]={...t.style["group-title"],...n}),Q(i)||(t.style["group-subtitle"]={...t.style["group-subtitle"],...i}),Q(r)?delete t.title:t.title=r})(e);for(const t in e)H(e[t])&&Q(e[t])&&delete e[t];return Q(e)?void 0:e}function Km(e,t,n,i){t==="view"&&(n="cell");const r={...e[t],...e.style[n??t]};Q(r)||(e.style[n??t]=r),delete e[t]}function Kr(e){return A(e,"layer")}class Ka{map(t,n){return Mr(t)?this.mapFacet(t,n):function(i){return A(i,"repeat")}(t)?this.mapRepeat(t,n):Xa(t)?this.mapHConcat(t,n):Jr(t)?this.mapVConcat(t,n):Ya(t)?this.mapConcat(t,n):this.mapLayerOrUnit(t,n)}mapLayerOrUnit(t,n){if(Kr(t))return this.mapLayer(t,n);if(Qt(t))return this.mapUnit(t,n);throw new Error(ta(t))}mapLayer(t,n){return{...t,layer:t.layer.map(i=>this.mapLayerOrUnit(i,n))}}mapHConcat(t,n){return{...t,hconcat:t.hconcat.map(i=>this.map(i,n))}}mapVConcat(t,n){return{...t,vconcat:t.vconcat.map(i=>this.map(i,n))}}mapConcat(t,n){const{concat:i,...r}=t;return{...r,concat:i.map(o=>this.map(o,n))}}mapFacet(t,n){return{...t,spec:this.map(t.spec,n)}}mapRepeat(t,n){return{...t,spec:this.map(t.spec,n)}}}const Zm={zero:1,center:1,normalize:1},eh=new Set([Bc,Or,zr,_r,Nr,Da,Aa,Pr,zc,Fa]),th=new Set([Or,zr,Bc]);function hi(e){return C(e)&&li(e)==="quantitative"&&!e.bin}function jl(e,t,{orient:n,type:i}){const r=t==="x"?"y":"radius",o=t==="x"&&["bar","area"].includes(i),a=e[t],s=e[r];if(C(a)&&C(s))if(hi(a)&&hi(s)){if(a.stack)return t;if(s.stack)return r;const u=C(a)&&!!a.aggregate;if(u!==(C(s)&&!!s.aggregate))return u?t:r;if(o){if(n==="vertical")return r;if(n==="horizontal")return t}}else{if(hi(a))return t;if(hi(s))return r}else{if(hi(a))return o&&n==="vertical"?void 0:t;if(hi(s))return o&&n==="horizontal"?void 0:r}}function Ml(e,t){var m,y;const n=Bt(e)?e:{type:e},i=n.type;if(!eh.has(i))return null;const r=jl(t,"x",n)||jl(t,"theta",n);if(!r)return null;const o=t[r],a=C(o)?S(o,{}):void 0,s=function(x){switch(x){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(r),u=[],c=new Set;if(t[s]){const x=t[s],b=C(x)?S(x,{}):void 0;b&&b!==a&&(u.push(s),c.add(b))}const l=s==="x"?"xOffset":"yOffset",f=t[l],d=C(f)?S(f,{}):void 0;d&&d!==a&&(u.push(l),c.add(d));const h=Tp.reduce((x,b)=>{if(b!=="tooltip"&&Rn(t,b)){const v=t[b];for(const w of pe(v)){const F=ht(w);if(F.aggregate)continue;const E=S(F,{});E&&c.has(E)||x.push({channel:b,fieldDef:F})}}return x},[]);let p;return o.stack!==void 0?p=Oi(o.stack)?o.stack?"zero":null:o.stack:th.has(i)&&(p="zero"),p&&fe(Zm,p)?fl(t)&&h.length===0?null:((m=o==null?void 0:o.scale)!=null&&m.type&&((y=o==null?void 0:o.scale)==null?void 0:y.type)!==$c&&(o!=null&&o.stack)&&k(function(x){return`Stack is applied to a non-linear scale (${x}).`}(o.scale.type)),L(t[At(r)])?(o.stack!==void 0&&k(`Cannot stack "${g=r}" if there is already "${g}2".`),null):(C(o)&&o.aggregate&&!Ip.has(o.aggregate)&&k(`Stacking is applied even though the aggregate function is non-summative ("${o.aggregate}").`),{groupbyChannels:u,groupbyFields:c,fieldChannel:r,impute:o.impute!==null&&vn(i),stackBy:h,offset:p})):null;var g}function Rl(e,t,n){const i=Ce(e),r=Z("orient",i,n);if(i.orient=function(s,u,c){switch(s){case Nr:case Da:case Aa:case zc:case Fm:case wm:return}const{x:l,y:f,x2:d,y2:h}=u;switch(s){case Or:if(C(l)&&(ke(l.bin)||C(f)&&f.aggregate&&!l.aggregate))return"vertical";if(C(f)&&(ke(f.bin)||C(l)&&l.aggregate&&!f.aggregate))return"horizontal";if(h||d){if(c)return c;if(!d)return(C(l)&&l.type===Nn&&!te(l.bin)||Lr(l))&&C(f)&&ke(f.bin)?"horizontal":"vertical";if(!h)return(C(f)&&f.type===Nn&&!te(f.bin)||Lr(f))&&C(l)&&ke(l.bin)?"vertical":"horizontal"}case _r:if(d&&(!C(l)||!ke(l.bin))&&h&&(!C(f)||!ke(f.bin)))return;case zr:if(h)return C(f)&&ke(f.bin)?"horizontal":"vertical";if(d)return C(l)&&ke(l.bin)?"vertical":"horizontal";if(s===_r){if(l&&!f)return"vertical";if(f&&!l)return"horizontal"}case Pr:case Fa:{const p=Jc(l),g=Jc(f);if(c)return c;if(p&&!g)return s!=="tick"?"horizontal":"vertical";if(!p&&g)return s!=="tick"?"vertical":"horizontal";if(p&&g)return"vertical";{const m=_e(l)&&l.type===si,y=_e(f)&&f.type===si;if(m&&!y)return"vertical";if(!m&&y)return"horizontal"}return}}return"vertical"}(i.type,t,r),r!==void 0&&r!==i.orient&&k(`Specified orient "${i.orient}" overridden with "${r}".`),i.type==="bar"&&i.orient){const s=Z("cornerRadiusEnd",i,n);if(s!==void 0){const u=i.orient==="horizontal"&&t.x2||i.orient==="vertical"&&t.y2?["cornerRadius"]:Sm[i.orient];for(const c of u)i[c]=s;i.cornerRadiusEnd!==void 0&&delete i.cornerRadiusEnd}}const o=Z("opacity",i,n),a=Z("fillOpacity",i,n);return o===void 0&&a===void 0&&(i.opacity=function(s,u){if(U([Nr,Fa,Da,Aa],s)&&!fl(u))return .7}(i.type,t)),Z("cursor",i,n)===void 0&&(i.cursor=function(s,u,c){return u.href||s.href||Z("href",s,c)?"pointer":s.cursor}(i,t,n)),i}function nh(e){const{point:t,line:n,...i}=e;return D(i).length>1?i:i.type}function ih(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:Re(e[t],["point","line"])});return e}function Za(e,t={},n){return e.point==="transparent"?{opacity:0}:e.point?H(e.point)?e.point:{}:e.point!==void 0?null:t.point||n.shape?H(t.point)?t.point:{}:void 0}function Ll(e,t={}){return e.line?e.line===!0?{}:e.line:e.line!==void 0?null:t.line?t.line===!0?{}:t.line:void 0}class rh{constructor(){this.name="path-overlay"}hasMatchingType(t,n){if(Qt(t)){const{mark:i,encoding:r}=t,o=Bt(i)?i:{type:i};switch(o.type){case"line":case"rule":case"trail":return!!Za(o,n[o.type],r);case"area":return!!Za(o,n[o.type],r)||!!Ll(o,n[o.type])}}return!1}run(t,n,i){const{config:r}=n,{params:o,projection:a,mark:s,name:u,encoding:c,...l}=t,f=Vr(c,r),d=Bt(s)?s:{type:s},h=Za(d,r[d.type],f),p=d.type==="area"&&Ll(d,r[d.type]),g=[{name:u,...o?{params:o}:{},mark:nh({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:Re(f,["shape"])}],m=Ml(Rl(d,f,r),f);let y=f;if(m){const{fieldChannel:x,offset:b}=m;y={...f,[x]:{...f[x],...b?{stack:b}:{}}}}return y=Re(y,["y2","x2"]),p&&g.push({...a?{projection:a}:{},mark:{type:"line",...ei(d,["clip","interpolate","tension","tooltip"]),...p},encoding:y}),h&&g.push({...a?{projection:a}:{},mark:{type:"point",opacity:1,filled:!0,...ei(d,["clip","tooltip"]),...h},encoding:y}),i({...l,layer:g},{...n,config:ih(r)})}}function oh(e,t){return t?Hi(e)?Il(e,t):ql(e,t):e}function es(e,t){return t?Il(e,t):e}function ts(e,t,n){const i=t[e];return!R(r=i)&&A(r,"repeat")?i.repeat in n?{...t,[e]:n[i.repeat]}:void k(function(o){return`Unknown repeated value "${o}".`}(i.repeat)):t;var r}function ql(e,t){if((e=ts("field",e,t))!==void 0){if(e===null)return null;if(Na(e)&&Jt(e.sort)){const n=ts("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function Ul(e,t){if(C(e))return ql(e,t);{const n=ts("datum",e,t);return n===e||n.type||(n.type="nominal"),n}}function Wl(e,t){if(!L(e)){if(Vi(e)){const n=Ul(e.condition,t);if(n)return{...e,condition:n};{const{condition:i,...r}=e;return r}}return e}{const n=Ul(e,t);if(n)return n;if(Gi(e))return{condition:e.condition}}}function Il(e,t){const n={};for(const i in e)if(A(e,i)){const r=e[i];if(P(r))n[i]=r.map(o=>Wl(o,t)).filter(o=>o);else{const o=Wl(r,t);o!==void 0&&(n[i]=o)}}return n}class ah{constructor(){this.name="RuleForRangedLine"}hasMatchingType(t){if(Qt(t)){const{encoding:n,mark:i}=t;if(i==="line"||Bt(i)&&i.type==="line")for(const r of Pp){const o=n[Sn(r)];if(n[r]&&(C(o)&&!ke(o.bin)||zt(o)))return!0}}return!1}run(t,n,i){const{encoding:r,mark:o}=t;var a,s;return k((a=!!r.x2,s=!!r.y2,`Line mark is for continuous lines and thus cannot be used with ${a&&s?"x2 and y2":a?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),i({...t,mark:H(o)?{...o,type:"rule"}:"rule"},n)}}function Hl({parentEncoding:e,encoding:t={},layer:n}){let i={};if(e){const r=new Set([...D(e),...D(t)]);for(const o of r){const a=t[o],s=e[o];if(L(a)){const u={...s,...a};i[o]=u}else Vi(a)?i[o]={...a,condition:{...s,...a.condition}}:a||a===null?i[o]=a:(n||mt(s)||N(s)||L(s)||P(s))&&(i[o]=s)}}else i=t;return!i||Q(i)?void 0:i}function Gl(e){const{parentProjection:t,projection:n}=e;return t&&n&&k(function(i){const{parentProjection:r,projection:o}=i;return`Layer's shared projection ${K(r)} is overridden by a child projection ${K(o)}.`}({parentProjection:t,projection:n})),n??t}function ns(e){return A(e,"filter")}function Vl(e){return A(e,"lookup")}function sh(e){return A(e,"pivot")}function uh(e){return A(e,"density")}function ch(e){return A(e,"quantile")}function lh(e){return A(e,"regression")}function fh(e){return A(e,"loess")}function dh(e){return A(e,"sample")}function ph(e){return A(e,"window")}function mh(e){return A(e,"joinaggregate")}function hh(e){return A(e,"flatten")}function gh(e){return A(e,"calculate")}function Yl(e){return A(e,"bin")}function yh(e){return A(e,"impute")}function vh(e){return A(e,"timeUnit")}function bh(e){return A(e,"aggregate")}function xh(e){return A(e,"stack")}function $h(e){return A(e,"fold")}function wh(e){return A(e,"extent")&&!A(e,"density")&&!A(e,"regression")}function Xl(e,t){const{transform:n,...i}=e;return n?{...i,transform:n.map(r=>{if(ns(r))return{filter:is(r,t)};if(Yl(r)&&En(r.bin))return{...r,bin:Ql(r.bin)};if(Vl(r)){const{selection:o,...a}=r.from;return o?{...r,from:{param:o,...a}}:r}return r})}:e}function Jl(e,t){var i,r;const n=M(e);if(C(n)&&En(n.bin)&&(n.bin=Ql(n.bin)),Mn(n)&&((r=(i=n.scale)==null?void 0:i.domain)==null?void 0:r.selection)){const{selection:o,...a}=n.scale.domain;n.scale.domain={...a,...o?{param:o}:{}}}if(Gi(n))if(P(n.condition))n.condition=n.condition.map(o=>{const{selection:a,param:s,test:u,...c}=o;return s?o:{...c,test:is(o,t)}});else{const{selection:o,param:a,test:s,...u}=Jl(n.condition,t);n.condition=a?n.condition:{...u,test:is(n.condition,t)}}return n}function Ql(e){const t=e.extent;if(t!=null&&t.selection){const{selection:n,...i}=t;return{...e,extent:{...i,param:n}}}return e}function is(e,t){const n=i=>Zn(i,r=>{var o;const a={param:r,empty:t.emptySelections[r]??!0};return(o=t.selectionPredicates)[r]??(o[r]=[]),t.selectionPredicates[r].push(a),a});return e.selection?n(e.selection):Zn(e.test||e.filter,i=>i.selection?n(i.selection):i)}class rs extends Ka{map(t,n){const i=n.selections??[];if(t.params&&!Qt(t)){const r=[];for(const o of t.params)Va(o)?i.push(o):r.push(o);t.params=r}return n.selections=i,super.map(t,n)}mapUnit(t,n){const i=n.selections;if(!i||!i.length)return t;const r=(n.path??[]).concat(t.name),o=[];for(const a of i)if(a.views&&a.views.length)for(const s of a.views)(R(s)&&(s===t.name||r.includes(s))||P(s)&&s.map(u=>r.indexOf(u)).every((u,c,l)=>u!==-1&&(c===0||u>l[c-1])))&&o.push(a);else o.push(a);return o.length&&(t.params=o),t}}for(const e of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const t=rs.prototype[e];rs.prototype[e]=function(n,i){return t.call(this,n,Fh(n,i))}}function Fh(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function Kl(e,t){t===void 0&&(t=Tl(e.config));const n=function(a,s={}){const u={config:s};return kh.map(Dh.map(Ah.map(a,u),u),u)}(e,t),{width:i,height:r}=e,o=function(a,s,u){let{width:c,height:l}=s;const f=Qt(a)||Kr(a),d={};f?c=="container"&&l=="container"?(d.type="fit",d.contains="padding"):c=="container"?(d.type="fit-x",d.contains="padding"):l=="container"&&(d.type="fit-y",d.contains="padding"):(c=="container"&&(k(Vu("width")),c=void 0),l=="container"&&(k(Vu("height")),l=void 0));const h={type:"pad",...d,...u?Zl(u.autosize):{},...Zl(a.autosize)};if(h.type!=="fit"||f||(k(Xp),h.type="pad"),c=="container"&&h.type!="fit"&&h.type!="fit-x"&&k(Yu("width")),l=="container"&&h.type!="fit"&&h.type!="fit-y"&&k(Yu("height")),!He(h,{type:"pad"}))return h}(n,{width:i,height:r,autosize:e.autosize},t);return{...n,...o?{autosize:o}:{}}}const Dh=new class extends Ka{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[jm,Mm,Lm,new rh,new ah]}map(e,t){if(Qt(e)){const n=Rn(e.encoding,qt),i=Rn(e.encoding,Ut),r=Rn(e.encoding,yr);if(n||i||r)return this.mapFacetedUnit(e,t)}return super.map(e,t)}mapUnit(e,t){const{parentEncoding:n,parentProjection:i}=t,r=es(e.encoding,t.repeater),o={...e,...e.name?{name:[t.repeaterPrefix,e.name].filter(s=>s).join("_")}:{},...r?{encoding:r}:{}};if(n||i)return this.mapUnitWithParentEncodingOrProjection(o,t);const a=this.mapLayerOrUnit.bind(this);for(const s of this.nonFacetUnitNormalizers)if(s.hasMatchingType(o,t.config))return s.run(o,t,a);return o}mapRepeat(e,t){return function(n){return!P(n.repeat)&&A(n.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:u={},repeaterPrefix:c=""}=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(l=>{const f={...u,layer:l},d=`${(i.name?`${i.name}_`:"")+c}child__layer_${se(l)}`,h=this.mapLayerOrUnit(i,{...t,repeater:f,repeaterPrefix:d});return h.name=d,h})}}mapNonLayerRepeat(e,t){const{repeat:n,spec:i,data:r,...o}=e;!P(n)&&e.columns&&(e=Re(e,["columns"]),k(Ku("repeat")));const a=[],{repeater:s={},repeaterPrefix:u=""}=t,c=!P(n)&&n.row||[s?s.row:null],l=!P(n)&&n.column||[s?s.column:null],f=P(n)&&n||[s?s.repeat:null];for(const h of f)for(const p of c)for(const g of l){const m={repeat:h,row:p,column:g,layer:s.layer},y=(i.name?`${i.name}_`:"")+u+"child__"+(P(n)?`${se(h)}`:(n.row?`row_${se(p)}`:"")+(n.column?`column_${se(g)}`:"")),x=this.map(i,{...t,repeater:m,repeaterPrefix:y});x.name=y,a.push(Re(x,["data"]))}const d=P(n)?e.columns:n.column?n.column.length:1;return{data:i.data??r,align:"all",...o,columns:d,concat:a}}mapFacet(e,t){const{facet:n}=e;return Hi(n)&&e.columns&&(e=Re(e,["columns"]),k(Ku("facet"))),super.mapFacet(e,t)}mapUnitWithParentEncodingOrProjection(e,t){const{encoding:n,projection:i}=e,{parentEncoding:r,parentProjection:o,config:a}=t,s=Gl({parentProjection:o,projection:i}),u=Hl({parentEncoding:r,encoding:es(n,t.repeater)});return this.mapUnit({...e,...s?{projection:s}:{},...u?{encoding:u}:{}},{config:a})}mapFacetedUnit(e,t){const{row:n,column:i,facet:r,...o}=e.encoding,{mark:a,width:s,projection:u,height:c,view:l,params:f,encoding:d,...h}=e,{facetMapping:p,layout:g}=this.getFacetMappingAndLayout({row:n,column:i,facet:r},t),m=es(o,t.repeater);return this.mapFacet({...h,...g,facet:p,spec:{...s?{width:s}:{},...c?{height:c}:{},...l?{view:l}:{},...u?{projection:u}:{},mark:a,encoding:m,...f?{params:f}:{}}},t)}getFacetMappingAndLayout(e,t){const{row:n,column:i,facet:r}=e;if(n||i){r&&k(`Facet encoding dropped as ${(o=[...n?[qt]:[],...i?[Ut]:[]]).join(" and ")} ${o.length>1?"are":"is"} also specified.`);const a={},s={};for(const u of[qt,Ut]){const c=e[u];if(c){const{align:l,center:f,spacing:d,columns:h,...p}=c;a[u]=p;for(const g of["align","center","spacing"])c[g]!==void 0&&(s[g]??(s[g]={}),s[g][u]=c[g])}}return{facetMapping:a,layout:s}}{const{align:a,center:s,spacing:u,columns:c,...l}=r;return{facetMapping:oh(l,t.repeater),layout:{...a?{align:a}:{},...s?{center:s}:{},...u?{spacing:u}:{},...c?{columns:c}:{}}}}var o}mapLayer(e,{parentEncoding:t,parentProjection:n,...i}){const{encoding:r,projection:o,...a}=e,s={...i,parentEncoding:Hl({parentEncoding:t,encoding:r,layer:!0}),parentProjection:Gl({parentProjection:n,projection:o})};return super.mapLayer({...a,...e.name?{name:[s.repeaterPrefix,e.name].filter(u=>u).join("_")}:{}},s)}},Ah=new class extends Ka{map(e,t){return t.emptySelections??(t.emptySelections={}),t.selectionPredicates??(t.selectionPredicates={}),e=Xl(e,t),super.map(e,t)}mapLayerOrUnit(e,t){if((e=Xl(e,t)).encoding){const n={};for(const[i,r]of un(e.encoding))n[i]=Jl(r,t);e={...e,encoding:n}}return super.mapLayerOrUnit(e,t)}mapUnit(e,t){const{selection:n,...i}=e;return n?{...i,params:un(n).map(([r,o])=>{const{init:a,bind:s,empty:u,...c}=o;c.type==="single"?(c.type="point",c.toggle=!1):c.type==="multi"&&(c.type="point"),t.emptySelections[r]=u!=="none";for(const l of Ae(t.selectionPredicates[r]??{}))l.empty=u!=="none";return{name:r,value:a,select:c,bind:s}})}:e}},kh=new rs;function Zl(e){return R(e)?{type:e}:e??{}}const Ch=["background","padding"];function ef(e,t){const n={};for(const i of Ch)e&&e[i]!==void 0&&(n[i]=Ge(e[i]));return t&&(n.params=e.params),n}class on{constructor(t={},n={}){this.explicit=t,this.implicit=n}clone(){return new on(M(this.explicit),M(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(t){return me(this.explicit[t],this.implicit[t])}getWithExplicit(t){return this.explicit[t]!==void 0?{explicit:!0,value:this.explicit[t]}:this.implicit[t]!==void 0?{explicit:!1,value:this.implicit[t]}:{explicit:!1,value:void 0}}setWithExplicit(t,{value:n,explicit:i}){n!==void 0&&this.set(t,n,i)}set(t,n,i){return delete this[i?"implicit":"explicit"][t],this[i?"explicit":"implicit"][t]=n,this}copyKeyFromSplit(t,{explicit:n,implicit:i}){n[t]!==void 0?this.set(t,n[t],!0):i[t]!==void 0&&this.set(t,i[t],!1)}copyKeyFromObject(t,n){n[t]!==void 0&&this.set(t,n[t],!0)}copyAll(t){for(const n of D(t.combine())){const i=t.getWithExplicit(n);this.setWithExplicit(n,i)}}}function Pt(e){return{explicit:!0,value:e}}function yt(e){return{explicit:!1,value:e}}function tf(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:Zr(t,n,i,r)}}function Zr(e,t,n,i){return e.explicit&&t.explicit&&k(function(r,o,a,s){return`Conflicting ${o.toString()} property "${r.toString()}" (${K(a)} and ${K(s)}). Using ${K(a)}.`}(n,i,e.value,t.value)),e}function $n(e,t,n,i,r=Zr){return e===void 0||e.value===void 0?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:He(e.value,t.value)?e:r(e,t,n,i)}class Sh extends on{constructor(t={},n={},i=!1){super(t,n),this.explicit=t,this.implicit=n,this.parseNothing=i}clone(){const t=super.clone();return t.parseNothing=this.parseNothing,t}}function gi(e){return A(e,"url")}function Ji(e){return A(e,"values")}function nf(e){return A(e,"name")&&!gi(e)&&!Ji(e)&&!wn(e)}function wn(e){return e&&(rf(e)||of(e)||os(e))}function rf(e){return A(e,"sequence")}function of(e){return A(e,"sphere")}function os(e){return A(e,"graticule")}var ce;function af({invalid:e,isPath:t}){switch(_c(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(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"})(ce||(ce={}));class Y{constructor(t,n){this.debugName=n,this._children=[],this._parent=null,t&&(this.parent=t)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(t){this._parent=t,t&&t.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(t,n){this._children.includes(t)?k("Attempt to add the same child twice."):n!==void 0?this._children.splice(n,0,t):this._children.push(t)}removeChild(t){const n=this._children.indexOf(t);return this._children.splice(n,1),n}remove(){let t=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,t++)}insertAsParentOf(t){const n=t.parent;n.removeChild(this),this.parent=n,t.parent=this}swapWithParent(){const t=this._parent,n=t.parent;for(const r of this._children)r.parent=t;this._children=[],t.removeChild(this);const i=t.parent.removeChild(t);this._parent=n,n.addChild(this,i),t.parent=this}}class We extends Y{clone(){const t=new this.constructor;return t.debugName=`clone_${this.debugName}`,t._source=this._source,t._name=`clone_${this._name}`,t.type=this.type,t.refCounts=this.refCounts,t.refCounts[t._name]=0,t}constructor(t,n,i,r){super(t,n),this.type=i,this.refCounts=r,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${vu()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(t){this._source=t}}function as(e){return e.as!==void 0}function sf(e){return`${e}_end`}class _t extends Y{clone(){return new _t(null,M(this.timeUnits))}constructor(t,n){super(t),this.timeUnits=n}static makeFromEncoding(t,n){const i=n.reduceFieldDef((r,o,a)=>{const{field:s,timeUnit:u}=o;if(u){let c;if(Pn(u)){if(le(n)){const{mark:l,markDef:f,config:d}=n,h=bn({fieldDef:o,markDef:f,config:d});(Ui(l)||h)&&(c={timeUnit:$e(u),field:s})}}else c={as:S(o,{forAs:!0}),field:s,timeUnit:u};if(le(n)){const{mark:l,markDef:f,config:d}=n,h=bn({fieldDef:o,markDef:f,config:d});Ui(l)&&he(a)&&h!==.5&&(c.rectBandPosition=h)}c&&(r[I(c)]=c)}return r},{});return Q(i)?null:new _t(t,i)}static makeFromTransform(t,n){const{timeUnit:i,...r}={...n},o={...r,timeUnit:$e(i)};return new _t(t,{[I(o)]:o})}merge(t){this.timeUnits={...this.timeUnits};for(const n in t.timeUnits)this.timeUnits[n]||(this.timeUnits[n]=t.timeUnits[n]);for(const n of t.children)t.removeChild(n),n.parent=this;t.remove()}removeFormulas(t){const n={};for(const[i,r]of un(this.timeUnits)){const o=as(r)?r.as:`${r.field}_end`;t.has(o)||(n[i]=r)}this.timeUnits=n}producedFields(){return new Set(Ae(this.timeUnits).map(t=>as(t)?t.as:sf(t.field)))}dependentFields(){return new Set(Ae(this.timeUnits).map(t=>t.field))}hash(){return`TimeUnit ${I(this.timeUnits)}`}assemble(){const t=[];for(const n of Ae(this.timeUnits)){const{rectBandPosition:i}=n,r=$e(n.timeUnit);if(as(n)){const{field:o,as:a}=n,{unit:s,utc:u,...c}=r,l=[a,`${a}_end`];t.push({field:Je(o),type:"timeunit",...s?{units:Sr(s)}:{},...u?{timezone:"utc"}:{},...c,as:l}),t.push(...cf(l,i,r))}else if(n){const{field:o}=n,a=o.replaceAll("\\.","."),s=uf({timeUnit:r,field:a}),u=sf(a);t.push({type:"formula",expr:s,as:u}),t.push(...cf([a,u],i,r))}}return t}}const eo="offsetted_rect_start",to="offsetted_rect_end";function uf({timeUnit:e,field:t,reverse:n}){const{unit:i,utc:r}=e,o=pc(i),{part:a,step:s}=yc(o,e.step);return`${r?"utcOffset":"timeOffset"}('${a}', ${V(t)}, ${n?-s:s})`}function cf([e,t],n,i){if(n!==void 0&&n!==.5){const r=V(e),o=V(t);return[{type:"formula",expr:lf([uf({timeUnit:i,field:e,reverse:!0}),r],n+.5),as:`${e}_${eo}`},{type:"formula",expr:lf([r,o],n+.5),as:`${e}_${to}`}]}return[]}function lf([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const Qi="_tuple_fields";class Eh{constructor(...t){this.items=t,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const Bh={defined:()=>!0,parse:(e,t,n)=>{const i=t.name,r=t.project??(t.project=new Eh),o={},a={},s=new Set,u=(p,g)=>{const m=g==="visual"?p.channel:p.field;let y=se(`${i}_${m}`);for(let x=1;s.has(y);x++)y=se(`${i}_${m}_${x}`);return s.add(y),{[g]:y}},c=t.type,l=e.config.selection[c],f=n.value!==void 0?pe(n.value):null;let{fields:d,encodings:h}=H(n.select)?n.select:{};if(!d&&!h&&f){for(const p of f)if(H(p))for(const g of D(p))Op(g)?(h||(h=[])).push(g):c==="interval"?(k('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),h=l.encodings):(d??(d=[])).push(g)}d||h||(h=l.encodings,"fields"in l&&(d=l.fields));for(const p of h??[]){const g=e.fieldDef(p);if(g){let m=g.field;if(g.aggregate){k(Jp(p,g.aggregate));continue}if(!m){k(Ju(p));continue}if(g.timeUnit&&!Pn(g.timeUnit)){m=e.vgField(p);const y={timeUnit:g.timeUnit,as:m,field:g.field};a[I(y)]=y}if(!o[m]){const y={field:m,channel:p,type:c==="interval"&&kt(p)&&dt(e.getScaleComponent(p).get("type"))?"R":g.bin?"R-RE":"E",index:r.items.length};y.signals={...u(y,"data"),...u(y,"visual")},r.items.push(o[m]=y),r.hasField[m]=o[m],r.hasSelectionId=r.hasSelectionId||m===gt,Au(p)?(y.geoChannel=p,y.channel=Du(p),r.hasChannel[y.channel]=o[m]):r.hasChannel[p]=o[m]}}else k(Ju(p))}for(const p of d??[]){if(r.hasField[p])continue;const g={type:"E",field:p,index:r.items.length};g.signals={...u(g,"data")},r.items.push(g),r.hasField[p]=g,r.hasSelectionId=r.hasSelectionId||p===gt}f&&(t.init=f.map(p=>r.items.map(g=>H(p)?p[g.geoChannel||g.channel]!==void 0?p[g.geoChannel||g.channel]:p[g.field]:p))),Q(a)||(r.timeUnit=new _t(null,a))},signals:(e,t,n)=>{const i=t.name+Qi;return n.filter(r=>r.name===i).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map(mf)})}},ff="_curr",no="anim_value",yi="anim_clock",ss="eased_anim_clock",df="min_extent",pf="max_range_extent",us="last_tick_at",cs="is_playing",zh=1/60*1e3,Oh={defined:e=>e.type==="point",topLevelSignals:(e,t,n)=>(Nt(t)&&(n=n.concat([{name:yi,init:"0",on:[{events:{type:"timer",throttle:zh},update:`${cs} ? (${yi} + (now() - ${us}) > ${pf} ? 0 : ${yi} + (now() - ${us})) : ${yi}`}]},{name:us,init:"now()",on:[{events:[{signal:yi},{signal:cs}],update:"now()"}]},{name:cs,init:"true"}])),n),signals:(e,t,n)=>{const i=t.name,r=i+Qi,o=t.project,a="(item().isVoronoi ? datum.datum : datum)",s=Ae(e.component.selection??{}).reduce((d,h)=>h.type==="interval"?d.concat(h.name+vi):d,[]).map(d=>`indexof(item().mark.name, '${d}') < 0`).join(" && "),u="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(s?` && ${s}`:"");let c=`unit: ${Un(e)}, `;if(t.project.hasSelectionId?c+=`${gt}: ${a}[${W(gt)}]`:Nt(t)?c+=`fields: ${r}, values: [${no} ? ${no} : ${df}]`:c+=`fields: ${r}, values: [${o.items.map(d=>{const h=e.fieldDef(d.channel);return h!=null&&h.bin?`[${a}[${W(e.vgField(d.channel,{}))}], ${a}[${W(e.vgField(d.channel,{binSuffix:"end"}))}]]`:`${a}[${W(d.field)}]`}).join(", ")}]`,Nt(t))return n.concat((l=t.name,f=e.scaleName(ln),[{name:ss,update:yi},{name:`${l}_domain`,init:`domain('${f}')`},{name:df,init:`extent(${l}_domain)[0]`},{name:pf,init:`extent(range('${f}'))[1]`},{name:no,update:`invert('${f}', ${ss})`}]),[{name:i+tn,on:[{events:[{signal:ss},{signal:no}],update:`{${c}}`,force:!0}]}]);{const d=t.events;return n.concat([{name:i+tn,on:d?[{events:d,update:`${u} ? {${c}} : null`,force:!0}]:[]}])}var l,f}};function mf(e){const{signals:t,hasLegend:n,index:i,...r}=e;return r.field=Je(r.field),r}function Ln(e,t=!0,n=Fp){if(P(e)){const i=e.map(r=>Ln(r,t,n));return t?`[${i.join(", ")}]`:i}return zn(e)?n(t?On(e):function(i){const r=sa(i,!0);return i.utc?+new Date(Date.UTC(...r)):+new Date(...r)}(e)):t?n(K(e)):e}function Ph(e,t){for(const n of Ae(e.component.selection??{})){const i=n.name;let r=`${i}${tn}, ${n.resolve==="global"?"true":`{unit: ${Un(e)}}`}`;for(const o of so)o.defined(n)&&(o.signals&&(t=o.signals(e,n,t)),o.modifyExpr&&(r=o.modifyExpr(e,n,r)));t.push({name:i+Yh,on:[{events:{signal:n.name+tn},update:`modify(${W(n.name+qn)}, ${r})`}]})}return ls(t)}function Nh(e,t){if(e.component.selection&&D(e.component.selection).length){const n=W(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:Kn("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return ls(t)}function hf(e,t){for(const n of Ae(e.component.selection??{}))for(const i of so)i.defined(n)&&i.marks&&(t=i.marks(e,n,t));return t}function ls(e){return e.map(t=>(t.on&&!t.on.length&&delete t.on,t))}const Zt={defined:e=>e.type==="interval"&&e.resolve==="global"&&e.bind&&e.bind==="scales",parse:(e,t)=>{const n=t.scales=[];for(const i of t.project.items){const r=i.channel;if(!kt(r))continue;const o=e.getScaleComponent(r),a=o?o.get("type"):void 0;a=="sequential"&&k("Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc"),o&&dt(a)?(o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)):k("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter(a=>n.filter(s=>s.name===a.signals.data).length===0);if(!e.parent||ds(e)||i.length===0)return n;const r=n.find(a=>a.name===t.name);let o=r.update;if(o.includes(Rf))r.update=`{${i.map(a=>`${W(Je(a.field))}: ${a.signals.data}`).join(", ")}}`;else{for(const a of i){const s=`${W(Je(a.field))}: ${a.signals.data}`;o.includes(s)||(o=`${o.substring(0,o.length-1)}, ${s}}`)}r.update=o}return n.concat(i.map(a=>({name:a.signals.data})))},signals:(e,t,n)=>{if(e.parent&&!ds(e))for(const i of t.scales){const r=n.find(o=>o.name===i.signals.data);r.push="outer",delete r.value,delete r.update}return n}};function fs(e,t){return`domain(${W(e.scaleName(t))})`}function ds(e){return e.parent&&Fi(e.parent)&&(!e.parent.parent||ds(e.parent.parent))}const vi="_brush",gf="_scale_trigger",Ki="geo_interval_init_tick",yf="_init",_h={defined:e=>e.type==="interval",parse:(e,t,n)=>{var i;if(e.hasProjection){const r={...H(n.select)?n.select:{}};r.fields=[gt],r.encodings||(r.encodings=n.value?D(n.value):[ct,ut]),n.select={type:"interval",...r}}if(t.translate&&!Zt.defined(t)){const r=`!event.item || event.item.mark.name !== ${W(t.name+vi)}`;for(const o of t.events){if(!o.between){k(`${o} is not an ordered event stream for interval selections.`);continue}const a=pe((i=o.between[0]).filter??(i.filter=[]));a.includes(r)||a.push(r)}}},signals:(e,t,n)=>{const i=t.name,r=i+tn,o=Ae(t.project.hasChannel).filter(s=>s.channel===ue||s.channel===xe),a=t.init?t.init[0]:null;if(n.push(...o.reduce((s,u)=>s.concat(function(c,l,f,d){const h=!c.hasProjection,p=f.channel,g=f.signals.visual,m=W(h?c.scaleName(p):c.projectionName()),y=w=>`scale(${m}, ${w})`,x=c.getSizeSignalRef(p===ue?"width":"height").signal,b=`${p}(unit)`,v=l.events.reduce((w,F)=>[...w,{events:F.between[0],update:`[${b}, ${b}]`},{events:F,update:`[${g}[0], clamp(${b}, 0, ${x})]`}],[]);if(h){const w=f.signals.data,F=Zt.defined(l),E=c.getScaleComponent(p),B=E?E.get("type"):void 0,O=d?{init:Ln(d,!0,y)}:{value:[]};return v.push({events:{signal:l.name+gf},update:dt(B)?`[${y(`${w}[0]`)}, ${y(`${w}[1]`)}]`:"[0, 0]"}),F?[{name:w,on:[]}]:[{name:g,...O,on:v},{name:w,...d?{init:Ln(d)}:{},on:[{events:{signal:g},update:`${g}[0] === ${g}[1] ? null : invert(${m}, ${g})`}]}]}{const w=p===ue?0:1,F=l.name+yf;return[{name:g,...d?{init:`[${F}[0][${w}], ${F}[1][${w}]]`}:{value:[]},on:v}]}}(e,t,u,a&&a[u.index])),[])),e.hasProjection){const s=W(e.projectionName()),u=e.projectionName()+"_center",{x:c,y:l}=t.project.hasChannel,f=c&&c.signals.visual,d=l&&l.signals.visual,h=c?a&&a[c.index]:`${u}[0]`,p=l?a&&a[l.index]:`${u}[1]`,g=b=>e.getSizeSignalRef(b).signal,m=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":g("width")}, ${d?d+"[1]":g("height")}]]`;a&&(n.unshift({name:i+yf,init:`[scale(${s}, [${c?h[0]:h}, ${l?p[0]:p}]), scale(${s}, [${c?h[1]:h}, ${l?p[1]:p}])]`}),!c||!l)&&(n.find(b=>b.name===u)||n.unshift({name:u,update:`invert(${s}, [${g("width")}/2, ${g("height")}/2])`}));const y=`vlSelectionTuples(${`intersect(${m}, {markname: ${W(e.getName("marks"))}}, unit.mark)`}, ${`{unit: ${Un(e)}}`})`,x=o.map(b=>b.signals.visual);return n.concat({name:r,on:[{events:[...x.length?[{signal:x.join(" || ")}]:[],...a?[{signal:Ki}]:[]],update:y}]})}{if(!Zt.defined(t)){const c=i+gf,l=o.map(f=>{const d=f.channel,{data:h,visual:p}=f.signals,g=W(e.scaleName(d)),m=dt(e.getScaleComponent(d).get("type"))?"+":"";return`(!isArray(${h}) || (${m}invert(${g}, ${p})[0] === ${m}${h}[0] && ${m}invert(${g}, ${p})[1] === ${m}${h}[1]))`});l.length&&n.push({name:c,value:{},on:[{events:o.map(f=>({scale:e.scaleName(f.channel)})),update:l.join(" && ")+` ? ${c} : {}`}]})}const s=o.map(c=>c.signals.data),u=`unit: ${Un(e)}, fields: ${i+Qi}, values`;return n.concat({name:r,...a?{init:`{${u}: ${Ln(a)}}`}:{},...s.length?{on:[{events:[{signal:s.join(" || ")}],update:`${s.join(" && ")} ? {${u}: [${s}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>(le(e)&&e.hasProjection&&t.init&&(n.filter(i=>i.name===Ki).length||n.unshift({name:Ki,value:null,on:[{events:"timer{1}",update:`${Ki} === null ? {} : ${Ki}`}]})),n),marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,a=r==null?void 0:r.signals.visual,s=o==null?void 0:o.signals.visual,u=`data(${W(t.name+qn)})`;if(Zt.defined(t)||!r&&!o)return n;const c={x:r!==void 0?{signal:`${a}[0]`}:{value:0},y:o!==void 0?{signal:`${s}[0]`}:{value:0},x2:r!==void 0?{signal:`${a}[1]`}:{field:{group:"width"}},y2:o!==void 0?{signal:`${s}[1]`}:{field:{group:"height"}}};if(t.resolve==="global")for(const m of D(c))c[m]=[{test:`${u}.length && ${u}[0].unit === ${Un(e)}`,...c[m]},{value:0}];const{fill:l,fillOpacity:f,cursor:d,...h}=t.mark,p=D(h).reduce((m,y)=>(m[y]=[{test:[r!==void 0&&`${a}[0] !== ${a}[1]`,o!==void 0&&`${s}[0] !== ${s}[1]`].filter(x=>x).join(" && "),value:h[y]},{value:null}],m),{}),g=d??(t.translate?"move":null);return[{name:`${i+vi}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:l},fillOpacity:{value:f}},update:c}},...n,{name:i+vi,type:"rect",clip:!0,encode:{enter:{...g?{cursor:{value:g}}:{},fill:{value:"transparent"}},update:{...c,...p}}}]}};function bi({model:e,channelDef:t,vgChannel:n,invalidValueRef:i,mainRefFn:r}){const o=Gi(t)&&t.condition;let a=[];o&&(a=pe(o).map(u=>{const c=r(u);if(function(l){return A(l,"param")}(u)){const{param:l,empty:f}=u;return{test:nd(e,{param:l,empty:f}),...c}}return{test:po(e,u.test),...c}})),i!==void 0&&a.push(i);const s=r(t);return s!==void 0&&a.push(s),a.length>1||a.length===1&&a[0].test?{[n]:a}:a.length===1?{[n]:a[0]}:{}}function ps(e,t="text"){const n=e.encoding[t];return bi({model:e,channelDef:n,vgChannel:t,mainRefFn:i=>io(i,e.config),invalidValueRef:void 0})}function io(e,t,n="datum"){if(e){if(mt(e))return re(e.value);if(L(e)){const{format:i,formatType:r}=Ur(e);return za({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function vf(e,t={}){const{encoding:n,markDef:i,config:r,stack:o}=e,a=n.tooltip;if(P(a))return{tooltip:xf({tooltip:a},o,r,t)};{const s=t.reactiveGeom?"datum.datum":"datum";return bi({model:e,channelDef:a,vgChannel:"tooltip",mainRefFn:u=>{const c=io(u,r,s);if(c)return c;if(u===null)return;let l=Z("tooltip",i,r);return l===!0&&(l={content:"encoding"}),R(l)?{value:l}:H(l)?N(l)?l:l.content==="encoding"?xf(n,o,r,t):{signal:s}:void 0},invalidValueRef:void 0})}}function bf(e,t,n,{reactiveGeom:i}={}){const r={...n,...n.tooltipFormat},o=new Set,a=i?"datum.datum":"datum",s=[];function u(l,f){const d=Sn(f),h=_e(l)?l:{...l,type:e[d].type},p=h.title||Ta(h,r),g=pe(p).join(", ").replaceAll(/"/g,'\\"');let m;if(he(f)){const y=f==="x"?"x2":"y2",x=ht(e[y]);if(ke(h.bin)&&x){const b=S(h,{expr:a}),v=S(x,{expr:a}),{format:w,formatType:F}=Ur(h);m=Ii(b,v,w,F,r),o.add(y)}}if((he(f)||f===Qe||f===st)&&t&&t.fieldChannel===f&&t.offset==="normalize"){const{format:y,formatType:x}=Ur(h);m=za({fieldOrDatumDef:h,format:y,formatType:x,expr:a,config:r,normalizeStack:!0}).signal}m??(m=io(h,r,a).signal),s.push({channel:f,key:g,value:m})}Ma(e,(l,f)=>{C(l)?u(l,f):Rr(l)&&u(l.condition,f)});const c={};for(const{channel:l,key:f,value:d}of s)o.has(l)||c[f]||(c[f]=d);return c}function xf(e,t,n,{reactiveGeom:i}={}){const r=bf(e,t,n,{reactiveGeom:i}),o=un(r).map(([a,s])=>`"${a}": ${s}`);return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function Th(e){const{markDef:t,config:n}=e,i=Z("aria",t,n);return i===!1?{}:{...i?{aria:i}:{},...jh(e),...Mh(e)}}function jh(e){const{mark:t,markDef:n,config:i}=e;if(i.aria===!1)return{};const r=Z("ariaRoleDescription",n,i);return r!=null?{ariaRoleDescription:{value:r}}:fe(Vp,t)?{}:{ariaRoleDescription:{value:t}}}function Mh(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return bi({model:e,channelDef:o,vgChannel:"description",mainRefFn:u=>io(u,e.config),invalidValueRef:void 0});const a=Z("description",n,i);if(a!=null)return{description:re(a)};if(i.aria===!1)return{};const s=bf(t,r,i);return Q(s)?void 0:{description:{signal:un(s).map(([u,c],l)=>`"${l>0?"; ":""}${u}: " + (${c})`).join(" + ")}}}function Se(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:a}=n;let{defaultRef:s,defaultValue:u}=n;const c=r[e];s===void 0&&(u??(u=Z(e,i,o,{vgChannel:a,ignoreVgConfig:!Gi(c)})),u!==void 0&&(s=re(u)));const l={markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e)},f=jc({...l,scaleChannel:e,channelDef:c});return bi({model:t,channelDef:c,vgChannel:a??e,invalidValueRef:f,mainRefFn:d=>Ba({...l,channel:e,channelDef:d,stack:null,defaultRef:s})})}function $f(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,a=t.filled??Z("filled",n,r),s=U(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,u=Z(a===!0?"color":void 0,n,r,{vgChannel:"fill"})??r.mark[a===!0&&"color"]??s,c=Z(a===!1?"color":void 0,n,r,{vgChannel:"stroke"})??r.mark[a===!1&&"color"],l=a?"fill":"stroke",f={...u?{fill:re(u)}:{},...c?{stroke:re(c)}:{}};return n.color&&(a?n.fill:n.stroke)&&k(nc("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...Se("color",e,{vgChannel:l,defaultValue:a?u:c}),...Se("fill",e,{defaultValue:i.fill?u:void 0}),...Se("stroke",e,{defaultValue:i.stroke?c:void 0})}}function Rh(e){const{encoding:t,mark:n}=e,i=t.order;return!vn(n)&&mt(i)?bi({model:e,channelDef:i,vgChannel:"zindex",mainRefFn:r=>re(r.value),invalidValueRef:void 0}):{}}function Zi({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,a=t[o],s=n[o];if((o==="xOffset"||o==="yOffset")&&s)return{offsetType:"encoding",offset:Ba({channel:o,channelDef:s,markDef:t,config:i==null?void 0:i.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:re(a),bandPosition:r})};const u=t[o];return u?{offsetType:"visual",offset:u}:{}}function Te(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:a,stack:s}=t,u=r[e],c=r[At(e)],l=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=Zi({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),p=ms({model:t,defaultPos:n,channel:e,scaleName:l,scale:f}),g=!u&&he(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:function(m){const{channel:y,channelDef:x,scaleName:b,stack:v,offset:w,markDef:F}=m;if(L(x)&&v&&y===v.fieldChannel){if(C(x)){let E=x.bandPosition;if(E!==void 0||F.type!=="text"||y!=="radius"&&y!=="theta"||(E=.5),E!==void 0)return Tr({scaleName:b,fieldOrDatumDef:x,startSuffix:"start",bandPosition:E,offset:w})}return Tn(x,b,{suffix:"end"},{offset:w})}return Ea(m)}({channel:e,channelDef:u,channel2Def:c,markDef:o,config:a,scaleName:l,scale:f,stack:s,offset:d,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return g?{[i||e]:g}:void 0}function ms({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:a}=e;return()=>{const s=Sn(n),u=hn(n),c=Z(n,o,a,{vgChannel:u});if(c!==void 0)return Wi(n,c);switch(t){case"zeroOrMin":return wf({scaleName:i,scale:r,mode:"zeroOrMin",mainChannel:s,config:a});case"zeroOrMax":return wf({scaleName:i,scale:r,mode:{zeroOrMax:{widthSignal:e.width.signal,heightSignal:e.height.signal}},mainChannel:s,config:a});case"mid":return{...e[Ue(n)],mult:.5}}}}function wf({mainChannel:e,config:t,...n}){const i=Tc(n),{mode:r}=n;if(i)return i;switch(e){case"radius":{if(r==="zeroOrMin")return{value:0};const{widthSignal:o,heightSignal:a}=r.zeroOrMax;return{signal:`min(${o},${a})/2`}}case"theta":return r==="zeroOrMin"?{value:0}:{signal:"2*PI"};case"x":return r==="zeroOrMin"?{value:0}:{field:{group:"width"}};case"y":return r==="zeroOrMin"?{field:{group:"height"}}:{value:0}}}const Lh={left:"x",center:"xc",right:"x2"},qh={top:"y",middle:"yc",bottom:"y2"};function Ff(e,t,n,i="middle"){if(e==="radius"||e==="theta")return hn(e);const r=e==="x"?"align":"baseline",o=Z(r,t,n);let a;return N(o)?(k(function(s){return`The ${s} for range marks cannot be an expression`}(r)),a=void 0):a=o,e==="x"?Lh[a||(i==="top"?"left":"center")]:qh[a||i]}function ro(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?Df(e,t,{defaultPos:n,defaultPos2:i}):Te(e,t,{defaultPos:n})}function Df(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,a=At(e),s=Ue(e),u=function(c,l,f){const{encoding:d,mark:h,markDef:p,stack:g,config:m}=c,y=Sn(f),x=Ue(f),b=hn(f),v=d[y],w=c.scaleName(y),F=c.getScaleComponent(y),{offset:E}=Zi(f in d||f in p?{channel:f,markDef:p,encoding:d,model:c}:{channel:y,markDef:p,encoding:d,model:c});if(!v&&(f==="x2"||f==="y2")&&(d.latitude||d.longitude)){const O=Ue(f),T=c.markDef[O];return T!=null?{[O]:{value:T}}:{[b]:{field:c.getName(f)}}}const B=function({channel:O,channelDef:T,channel2Def:z,markDef:j,config:ve,scaleName:ne,scale:ie,stack:J,offset:ee,defaultRef:de}){return L(T)&&J&&O.charAt(0)===J.fieldChannel.charAt(0)?Tn(T,ne,{suffix:"start"},{offset:ee}):Ea({channel:O,channelDef:z,scaleName:ne,scale:ie,stack:J,markDef:j,config:ve,offset:ee,defaultRef:de})}({channel:f,channelDef:v,channel2Def:d[f],markDef:p,config:m,scaleName:w,scale:F,stack:g,offset:E,defaultRef:void 0});return B!==void 0?{[b]:B}:oo(f,p)||oo(f,{[f]:ea(f,p,m.style),[x]:ea(x,p,m.style)})||oo(f,m[h])||oo(f,m.mark)||{[b]:ms({model:c,defaultPos:l,channel:f,scaleName:w,scale:F})()}}(t,i,a);return{...Te(e,t,{defaultPos:n,vgChannel:u[s]?Ff(e,r,o):hn(e)}),...u}}function oo(e,t){const n=Ue(e),i=hn(e);if(t[i]!==void 0)return{[i]:Wi(e,t[i])};if(t[e]!==void 0)return{[i]:Wi(e,t[e])};if(t[n]){const r=t[n];if(!_n(r))return{[n]:Wi(e,r)};k(function(o){return`Position range does not support relative band size for ${o}.`}(n))}}function en(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.type,a=At(t),s=Ue(t),u=i[t],c=i[a],l=e.getScaleComponent(t),f=l?l.get("type"):void 0,d=r.orient,h=i[s]??i.size??Z("size",r,n,{vgChannel:s}),p=Eu(t),g=o==="bar"&&(t==="x"?d==="vertical":d==="horizontal")||o==="tick"&&(t==="y"?d==="vertical":d==="horizontal");return!C(u)||!(te(u.bin)||ke(u.bin)||u.timeUnit&&!c)||h&&!_n(h)||i[p]||we(f)?(L(u)&&we(f)||g)&&!c?function(m,y,x){var it,be;const{markDef:b,encoding:v,config:w,stack:F}=x,E=b.orient,B=x.scaleName(y),O=x.getScaleComponent(y),T=Ue(y),z=At(y),j=Eu(y),ve=x.scaleName(j),ne=x.getScaleComponent(Go(y)),ie=b.type==="tick"||E==="horizontal"&&y==="y"||E==="vertical"&&y==="x";let J;(v.size||b.size)&&(ie?J=Se("size",x,{vgChannel:T,defaultRef:re(b.size)}):k(function(q){return`Cannot apply size to non-oriented mark "${q}".`}(b.type)));const ee=!!J,de=Vc({channel:y,fieldDef:m,markDef:b,config:w,scaleType:(it=O||ne)==null?void 0:it.get("type"),useVlSizeChannel:ie});J=J||{[T]:Uh(T,ve||B,ne||O,w,de,!!m,b.type)};const tt=((be=O||ne)==null?void 0:be.get("type"))==="band"&&_n(de)&&!ee?"top":"middle",Ye=Ff(y,b,w,tt),nt=Ye==="xc"||Ye==="yc",{offset:je,offsetType:jt}=Zi({channel:y,markDef:b,encoding:v,model:x,bandPosition:nt?.5:0}),ge=Ea({channel:y,channelDef:m,markDef:b,config:w,scaleName:B,scale:O,stack:F,offset:je,defaultRef:ms({model:x,defaultPos:"mid",channel:y,scaleName:B,scale:O}),bandPosition:nt?jt==="encoding"?0:.5:N(de)?{signal:`(1-${de})/2`}:_n(de)?(1-de.band)/2:0});if(T)return{[Ye]:ge,...J};{const q=hn(z),Ne=J[T],sn=je?{...Ne,offset:je}:Ne;return{[Ye]:ge,[q]:P(ge)?[ge[0],{...ge[1],offset:sn}]:{...ge,offset:sn}}}}(u,t,e):Df(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function({fieldDef:m,fieldDef2:y,channel:x,model:b}){var be;const{config:v,markDef:w,encoding:F}=b,E=b.getScaleComponent(x),B=b.scaleName(x),O=E?E.get("type"):void 0,T=E.get("reverse"),z=Vc({channel:x,fieldDef:m,markDef:w,config:v,scaleType:O}),j=(be=b.component.axes[x])==null?void 0:be[0],ve=(j==null?void 0:j.get("translate"))??.5,ne=he(x)?Z("binSpacing",w,v)??0:0,ie=At(x),J=hn(x),ee=hn(ie),de=Ct("minBandSize",w,v),{offset:tt}=Zi({channel:x,markDef:w,encoding:F,model:b,bandPosition:0}),{offset:Ye}=Zi({channel:ie,markDef:w,encoding:F,model:b,bandPosition:0}),nt=function({scaleName:q,fieldDef:Ne}){const sn=S(Ne,{expr:"datum"});return`abs(scale("${q}", ${S(Ne,{expr:"datum",suffix:"end"})}) - scale("${q}", ${sn}))`}({fieldDef:m,scaleName:B}),je=Af(x,ne,T,ve,tt,de,nt),jt=Af(ie,ne,T,ve,Ye??tt,de,nt),ge=N(z)?{signal:`(1-${z.signal})/2`}:_n(z)?(1-z.band)/2:.5,it=bn({fieldDef:m,fieldDef2:y,markDef:w,config:v});if(te(m.bin)||m.timeUnit){const q=m.timeUnit&&it!==.5;return{[ee]:kf({fieldDef:m,scaleName:B,bandPosition:ge,offset:jt,useRectOffsetField:q}),[J]:kf({fieldDef:m,scaleName:B,bandPosition:N(ge)?{signal:`1-${ge.signal}`}:1-ge,offset:je,useRectOffsetField:q})}}if(ke(m.bin)){const q=Tn(m,B,{},{offset:jt});if(C(y))return{[ee]:q,[J]:Tn(y,B,{},{offset:je})};if(En(m.bin)&&m.bin.step)return{[ee]:q,[J]:{signal:`scale("${B}", ${S(m,{expr:"datum"})} + ${m.bin.step})`,offset:je}}}return void k(sc(ie))}({fieldDef:u,fieldDef2:c,channel:t,model:e})}function Uh(e,t,n,i,r,o,a){if(_n(r)){if(!n)return{mult:r.band,field:{group:e}};{const s=n.get("type");if(s==="band"){let u=`bandwidth('${t}')`;r.band!==1&&(u=`${r.band} * ${u}`);const c=Ct("minBandSize",{type:a},i);return{signal:c?`max(${ft(c)}, ${u})`:u}}r.band!==1&&(k(function(u){return`Cannot use the relative band size with ${u} scale.`}(s)),r=void 0)}}else{if(N(r))return r;if(r)return{value:r}}if(n){const s=n.get("range");if(Bn(s)&&ae(s.step))return{value:s.step-2}}if(!o){const{bandPaddingInner:s,barBandPaddingInner:u,rectBandPaddingInner:c,tickBandPaddingInner:l}=i.scale,f=me(s,a==="tick"?l:a==="bar"?u:c);if(N(f))return{signal:`(1 - (${f.signal})) * ${e}`};if(ae(f))return{signal:`${1-f} * ${e}`}}return{value:Qa(i.view,e)-2}}function Af(e,t,n,i,r,o,a){if(Fu(e))return 0;const s=e==="x"||e==="y2",u=s?-t/2:t/2;if(N(n)||N(r)||N(i)||o){const c=ft(n),l=ft(r),f=ft(i),d=ft(o),h=o?`(${a} < ${d} ? ${s?"":"-"}0.5 * (${d} - (${a})) : ${u})`:u;return{signal:(f?`${f} + `:"")+(c?`(${c} ? -1 : 1) * `:"")+(l?`(${l} + ${h})`:h)}}return r=r||0,i+(n?-r-u:+r+u)}function kf({fieldDef:e,scaleName:t,bandPosition:n,offset:i,useRectOffsetField:r}){return Tr({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i,...r?{startSuffix:eo,endSuffix:to}:{}})}const Wh=new Set(["aria","width","height"]);function et(e,t){const{fill:n,stroke:i}=t.color==="include"?$f(e):{};return{...Ih(e.markDef,t),...Cf("fill",n),...Cf("stroke",i),...Se("opacity",e),...Se("fillOpacity",e),...Se("strokeOpacity",e),...Se("strokeWidth",e),...Se("strokeDash",e),...Rh(e),...vf(e),...ps(e,"href"),...Th(e)}}function Cf(e,t){return t?{[e]:t}:{}}function Ih(e,t){return Gp.reduce((n,i)=>(!Wh.has(i)&&A(e,i)&&t[i]!=="ignore"&&(n[i]=re(e[i])),n),{})}function hs(e){const{config:t,markDef:n}=e,i=new Set;if(e.forEachFieldDef((r,o)=>{var l;let a;if(!kt(o)||!(a=e.getScaleType(o)))return;const s=Dr(r.aggregate);if((c=Sa({scaleChannel:o,markDef:n,config:t,scaleType:a,isCountAggregate:s}))==="break-paths-filter-domains"||c==="break-paths-show-domains"){const f=e.vgField(o,{expr:"datum",binSuffix:(l=e.stack)!=null&&l.impute?"mid":void 0});f&&i.add(f)}var c}),i.size>0)return{defined:{signal:[...i].map(r=>Er(r,!0)).join(" && ")}}}function Sf(e,t){if(t!==void 0)return{[e]:re(t)}}const gs="voronoi",Ef={defined:e=>e.type==="point"&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(gs)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(vn(o))return k(`The "nearest" transform is not supported for ${o} marks.`),n;const a={name:e.getName(gs),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...vf(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,u=!1;return n.forEach((c,l)=>{const f=c.name??"";f===e.component.mark[0].name?s=l:f.includes(gs)&&(u=!0)}),u||n.splice(s+1,0,a),n}},Bf={defined:e=>e.type==="point"&&e.resolve==="global"&&e.bind&&e.bind!=="scales"&&!Ha(e.bind),parse:(e,t,n)=>Lf(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,a=t.init&&t.init[0],s=Ef.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach((u,c)=>{const l=se(`${i}_${u.field}`);n.filter(f=>f.name===l).length||n.unshift({name:l,...a?{init:Ln(a[c])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${s}[${W(u.field)}] : null`}]:[],bind:o[u.field]??o[u.channel]??o})}),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find(c=>c.name===i+tn),a=i+Qi,s=r.items.map(c=>se(`${i}_${c.field}`)),u=s.map(c=>`${c} !== null`).join(" && ");return s.length&&(o.update=`${u} ? {fields: ${a}, values: [${s.join(", ")}]} : null`),delete o.value,delete o.on,n}},ao="_toggle",zf={defined:e=>e.type==="point"&&!Nt(e)&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+ao,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+tn,i=t.name+ao;return`${i} ? null : ${n}, `+(t.resolve==="global"?`${i} ? null : true, `:`${i} ? null : {unit: ${Un(e)}}, `)+`${i} ? ${n} : null`}},Hh={defined:e=>e.clear!==void 0&&e.clear!==!1&&!Nt(e),parse:(e,t)=>{t.clear&&(t.clear=R(t.clear)?Kn(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(Bf.defined(t))for(const i of t.project.items){const r=n.findIndex(o=>o.name===se(`${t.name}_${i.field}`));r!==-1&&n[r].on.push({events:t.clear,update:"null"})}return n},signals:(e,t,n)=>{function i(r,o){r!==-1&&n[r].on&&n[r].on.push({events:t.clear,update:o})}if(t.type==="interval")for(const r of t.project.items){const o=n.findIndex(a=>a.name===r.signals.visual);i(o,"[0, 0]"),o===-1&&i(n.findIndex(a=>a.name===r.signals.data),"null")}else{let r=n.findIndex(o=>o.name===t.name+tn);i(r,"null"),zf.defined(t)&&(r=n.findIndex(o=>o.name===t.name+ao),i(r,"false"))}return n}},Of={defined:e=>{const t=e.resolve==="global"&&e.bind&&Ha(e.bind),n=e.project.items.length===1&&e.project.items[0].field!==gt;return t&&!n&&k("Legend bindings are only supported for selections over an individual field or encoding channel."),t&&n},parse:(e,t,n)=>{const i=M(n);if(i.select=R(i.select)?{type:i.select,toggle:t.toggle}:{...i.select,toggle:t.toggle},Lf(t,i),H(n.select)&&(n.select.on||n.select.clear)){const a='event.item && indexof(event.item.mark.role, "legend") < 0';for(const s of t.events)s.filter=pe(s.filter??[]),s.filter.includes(a)||s.filter.push(a)}const r=Ga(t.bind)?t.bind.legend:"click",o=R(r)?Kn(r,"view"):pe(r);t.bind={legend:{merge:o}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=Ga(t.bind)&&t.bind.legend,o=a=>s=>{const u=M(s);return u.markname=a,u};for(const a of t.project.items){if(!a.hasLegend)continue;const s=`${se(a.field)}_legend`,u=`${i}_${s}`;if(n.filter(c=>c.name===u).length===0){const c=r.merge.map(o(`${s}_symbols`)).concat(r.merge.map(o(`${s}_labels`))).concat(r.merge.map(o(`${s}_entries`)));n.unshift({name:u,...t.init?{}:{value:null},on:[{events:c,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:`!event.item || !datum ? null : ${u}`,force:!0}]})}}return n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find(f=>f.name===i+tn),a=i+Qi,s=r.items.filter(f=>f.hasLegend).map(f=>se(`${i}_${se(f.field)}_legend`)),u=`${s.map(f=>`${f} !== null`).join(" && ")} ? {fields: ${a}, values: [${s.join(", ")}]} : null`;t.events&&s.length>0?o.on.push({events:s.map(f=>({signal:f})),update:u}):s.length>0&&(o.update=u,delete o.value,delete o.on);const c=n.find(f=>f.name===i+ao),l=Ga(t.bind)&&t.bind.legend;return c&&(t.events?c.on.push({...c.on[0],events:l}):c.on[0].events=l),n}},Pf="_translate_anchor",Nf="_translate_delta",Gh={defined:e=>e.type==="interval"&&e.translate,signals:(e,t,n)=>{const i=t.name,r=Zt.defined(t),o=i+Pf,{x:a,y:s}=t.project.hasChannel;let u=Kn(t.translate,"scope");return r||(u=u.map(c=>(c.between[0].markname=i+vi,c))),n.push({name:o,value:{},on:[{events:u.map(c=>c.between[0]),update:"{x: x(unit), y: y(unit)"+(a!==void 0?`, extent_x: ${r?fs(e,ue):`slice(${a.signals.visual})`}`:"")+(s!==void 0?`, extent_y: ${r?fs(e,xe):`slice(${s.signals.visual})`}`:"")+"}"}]},{name:i+Nf,value:{},on:[{events:u,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),a!==void 0&&_f(e,t,a,"width",n),s!==void 0&&_f(e,t,s,"height",n),n}};function _f(e,t,n,i,r){const o=t.name,a=o+Pf,s=o+Nf,u=n.channel,c=Zt.defined(t),l=r.find(y=>y.name===n.signals[c?"data":"visual"]),f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(u),h=d&&d.get("type"),p=d&&d.get("reverse"),g=`${a}.extent_${u}`,m=`${c&&d?h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear":"panLinear"}(${g}, ${`${c?u===ue?p?"":"-":p?"-":"":""}${s}.${u} / ${c?`${f}`:`span(${g})`}`}${c?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":""})`;l.on.push({events:{signal:s},update:c?m:`clampRange(${m}, 0, ${f})`})}const Tf="_zoom_anchor",jf="_zoom_delta",Vh={defined:e=>e.type==="interval"&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=Zt.defined(t),o=i+jf,{x:a,y:s}=t.project.hasChannel,u=W(e.scaleName(ue)),c=W(e.scaleName(xe));let l=Kn(t.zoom,"scope");return r||(l=l.map(f=>(f.markname=i+vi,f))),n.push({name:i+Tf,on:[{events:l,update:r?"{"+[u?`x: invert(${u}, x(unit))`:"",c?`y: invert(${c}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:l,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),a!==void 0&&Mf(e,t,a,"width",n),s!==void 0&&Mf(e,t,s,"height",n),n}};function Mf(e,t,n,i,r){const o=t.name,a=n.channel,s=Zt.defined(t),u=r.find(g=>g.name===n.signals[s?"data":"visual"]),c=e.getSizeSignalRef(i).signal,l=e.getScaleComponent(a),f=l&&l.get("type"),d=s?fs(e,a):u.name,h=o+jf,p=`${s&&l?f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear":"zoomLinear"}(${d}, ${`${o}${Tf}.${a}`}, ${h}${s?f==="pow"?`, ${l.get("exponent")??1}`:f==="symlog"?`, ${l.get("constant")??1}`:"":""})`;u.on.push({events:{signal:h},update:s?p:`clampRange(${p}, 0, ${c})`})}const qn="_store",tn="_tuple",Yh="_modify",Rf="vlSelectionResolve",so=[Oh,_h,Bh,zf,Bf,Zt,Of,Hh,Gh,Vh,Ef];function Un(e,{escape:t}={escape:!0}){let n=t?W(e.name):e.name;const i=function(r){let o=r.parent;for(;o&&!Ve(o);)o=o.parent;return o}(e);if(i){const{facet:r}=i;for(const o of Ze)r[o]&&(n+=` + '__facet_${o}_' + (facet[${W(i.vgField(o))}])`)}return n}function ys(e){return Ae(e.component.selection??{}).reduce((t,n)=>t||n.project.hasSelectionId,!1)}function Lf(e,t){!R(t.select)&&t.select.on||delete e.events,!R(t.select)&&t.select.clear||delete e.clear,!R(t.select)&&t.select.toggle||delete e.toggle}function Nt(e){var t;return(t=e.events)==null?void 0:t.find(n=>"type"in n&&n.type==="timer")}const Xh="Property",Jh="ArrayExpression",Qh="BinaryExpression",Kh="CallExpression",Zh="ConditionalExpression",eg="LogicalExpression",tg="MemberExpression",ng="ObjectExpression",ig="UnaryExpression";function vt(e){this.type=e}var nn,_,$,ze,X;vt.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=function(r){switch(r.type){case Jh:return r.elements;case Qh:case eg:return[r.left,r.right];case Kh:return[r.callee].concat(r.arguments);case Zh:return[r.test,r.consequent,r.alternate];case tg:return[r.object,r.property];case ng:return r.properties;case Xh:return[r.key,r.value];case ig:return[r.argument];default:return[]}}(this),n=0,i=t.length;n<i;++n)if(t[n].visit(e))return 1},(nn={})[1]="Boolean",nn[2]="<end>",nn[3]="Identifier",nn[4]="Keyword",nn[5]="Null",nn[6]="Numeric",nn[7]="Punctuator",nn[8]="String",nn[9]="RegularExpression";var qf="Identifier",Fe="Unexpected token %0",vs="Invalid regular expression",bs="Invalid regular expression: missing /",Uf="Octal literals are not allowed in strict mode.",Ee="ILLEGAL",er="Disabled.",rg=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),og=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function uo(e,t){if(!e)throw new Error("ASSERT: "+t)}function rn(e){return e>=48&&e<=57}function xs(e){return"0123456789abcdefABCDEF".includes(e)}function tr(e){return"01234567".includes(e)}function ag(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function nr(e){return e===10||e===13||e===8232||e===8233}function ir(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&rg.test(String.fromCharCode(e))}function co(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&og.test(String.fromCharCode(e))}const sg={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Wf(){for(;$<ze;){const e=_.charCodeAt($);if(!ag(e)&&!nr(e))break;++$}}function $s(e){var t,n,i,r=0;for(n=e==="u"?4:2,t=0;t<n;++t)$<ze&&xs(_[$])?(i=_[$++],r=16*r+"0123456789abcdef".indexOf(i.toLowerCase())):G({},Fe,Ee);return String.fromCharCode(r)}function ug(){var e,t,n,i;for(t=0,(e=_[$])==="}"&&G({},Fe,Ee);$<ze&&xs(e=_[$++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&G({},Fe,Ee),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),i=56320+(t-65536&1023),String.fromCharCode(n,i))}function If(){var e,t;for(e=_.charCodeAt($++),t=String.fromCharCode(e),e===92&&(_.charCodeAt($)!==117&&G({},Fe,Ee),++$,(e=$s("u"))&&e!=="\\"&&ir(e.charCodeAt(0))||G({},Fe,Ee),t=e);$<ze&&co(e=_.charCodeAt($));)++$,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),_.charCodeAt($)!==117&&G({},Fe,Ee),++$,(e=$s("u"))&&e!=="\\"&&co(e.charCodeAt(0))||G({},Fe,Ee),t+=e);return t}function cg(){var e,t;return e=$,t=_.charCodeAt($)===92?If():function(){var n,i;for(n=$++;$<ze;){if((i=_.charCodeAt($))===92)return $=n,If();if(!co(i))break;++$}return _.slice(n,$)}(),{type:t.length===1?3:sg.hasOwnProperty(t)?4:t==="null"?5:t==="true"||t==="false"?1:3,value:t,start:e,end:$}}function ws(){var e,t,n,i,r=$,o=_.charCodeAt($),a=_[$];switch(o){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++$,{type:7,value:String.fromCharCode(o),start:r,end:$};default:if((e=_.charCodeAt($+1))===61)switch(o){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return $+=2,{type:7,value:String.fromCharCode(o)+String.fromCharCode(e),start:r,end:$};case 33:case 61:return $+=2,_.charCodeAt($)===61&&++$,{type:7,value:_.slice(r,$),start:r,end:$}}}return(i=_.substr($,4))===">>>="?{type:7,value:i,start:r,end:$+=4}:(n=i.substr(0,3))===">>>"||n==="<<="||n===">>="?{type:7,value:n,start:r,end:$+=3}:a===(t=n.substr(0,2))[1]&&"+-<>&|".includes(a)||t==="=>"?{type:7,value:t,start:r,end:$+=2}:(t==="//"&&G({},Fe,Ee),"<>=!+-*%&|^/".includes(a)?{type:7,value:a,start:r,end:++$}:void G({},Fe,Ee))}function Hf(){var e,t,n;if(uo(rn((n=_[$]).charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=$,e="",n!=="."){if(e=_[$++],n=_[$],e==="0"){if(n==="x"||n==="X")return++$,function(i){let r="";for(;$<ze&&xs(_[$]);)r+=_[$++];return r.length===0&&G({},Fe,Ee),ir(_.charCodeAt($))&&G({},Fe,Ee),{type:6,value:parseInt("0x"+r,16),start:i,end:$}}(t);if(tr(n))return function(i){let r="0"+_[$++];for(;$<ze&&tr(_[$]);)r+=_[$++];return(ir(_.charCodeAt($))||rn(_.charCodeAt($)))&&G({},Fe,Ee),{type:6,value:parseInt(r,8),octal:!0,start:i,end:$}}(t);n&&rn(n.charCodeAt(0))&&G({},Fe,Ee)}for(;rn(_.charCodeAt($));)e+=_[$++];n=_[$]}if(n==="."){for(e+=_[$++];rn(_.charCodeAt($));)e+=_[$++];n=_[$]}if(n==="e"||n==="E")if(e+=_[$++],(n=_[$])!=="+"&&n!=="-"||(e+=_[$++]),rn(_.charCodeAt($)))for(;rn(_.charCodeAt($));)e+=_[$++];else G({},Fe,Ee);return ir(_.charCodeAt($))&&G({},Fe,Ee),{type:6,value:parseFloat(e),start:t,end:$}}function lg(){var e,t,n,i;return X=null,Wf(),e=$,t=function(){var r,o,a,s;for(uo((r=_[$])==="/","Regular expression literal must start with a slash"),o=_[$++],a=!1,s=!1;$<ze;)if(o+=r=_[$++],r==="\\")nr((r=_[$++]).charCodeAt(0))&&G({},bs),o+=r;else if(nr(r.charCodeAt(0)))G({},bs);else if(a)r==="]"&&(a=!1);else{if(r==="/"){s=!0;break}r==="["&&(a=!0)}return s||G({},bs),{value:o.substr(1,o.length-2),literal:o}}(),n=function(){var r,o,a;for(o="",a="";$<ze&&co((r=_[$]).charCodeAt(0));)++$,r==="\\"&&$<ze?G({},Fe,Ee):(a+=r,o+=r);return a.search(/[^gimuy]/g)>=0&&G({},vs,a),{value:a,literal:o}}(),i=function(r,o){let a=r;o.includes("u")&&(a=a.replace(/\\u\{([0-9a-fA-F]+)\}/g,(s,u)=>{if(parseInt(u,16)<=1114111)return"x";G({},vs)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(a)}catch{G({},vs)}try{return new RegExp(r,o)}catch{return null}}(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:$}}function Gf(){if(Wf(),$>=ze)return{type:2,start:$,end:$};const e=_.charCodeAt($);return ir(e)?cg():e===40||e===41||e===59?ws():e===39||e===34?function(){var t,n,i,r,o="",a=!1;for(uo((t=_[$])==="'"||t==='"',"String literal must starts with a quote"),n=$,++$;$<ze;){if((i=_[$++])===t){t="";break}if(i==="\\")if((i=_[$++])&&nr(i.charCodeAt(0)))i==="\r"&&_[$]===`
1
+ import{gR as fe,gS as ae,cy as R,gT as Qn,gU as W,cz as H,cD as fu,cC as Oi,cx as P,gV as pe,gW as xp,gX as $p,gY as wp,cB as du,gZ as Kn,g_ as Fp}from"./index-l_wokygA.js";function No(e){return A(e,"or")}function _o(e){return A(e,"and")}function To(e){return A(e,"not")}function mr(e,t){if(To(e))mr(e.not,t);else if(_o(e))for(const n of e.and)mr(n,t);else if(No(e))for(const n of e.or)mr(n,t);else t(e)}function Zn(e,t){return To(e)?{not:Zn(e.not,t)}:_o(e)?{and:e.and.map(n=>Zn(n,t))}:No(e)?{or:e.or.map(n=>Zn(n,t))}:t(e)}const M=structuredClone;function pu(e){throw new Error(e)}function ei(e,t){const n={};for(const i of t)fe(e,i)&&(n[i]=e[i]);return n}function Re(e,t){const n={...e};for(const i of t)delete n[i];return n}function I(e){if(ae(e))return e;const t=R(e)?e:K(e);if(t.length<250)return t;let n=0;for(let i=0;i<t.length;i++)n=(n<<5)-n+t.charCodeAt(i),n&=n;return n}function jo(e){return e===!1||e===null}function U(e,t){return e.includes(t)}function ti(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function Mo(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function mu(e,...t){for(const n of t)Dp(e,n??{});return e}function Dp(e,t){for(const n of D(t))fu(e,n,t[n],!0)}function $t(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 Ap(e,t){const n=D(e),i=D(t);if(n.length!==i.length)return!1;for(const r of n)if(e[r]!==t[r])return!1;return!0}function hu(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Ro(e,t){for(const n of e)if(t.has(n))return!0;return!1}function Lo(e){const t=new Set;for(const n of e){const i=Qn(n).map((o,a)=>a===0?o:`[${o}]`),r=i.map((o,a)=>i.slice(0,a+1).join(""));for(const o of r)t.add(o)}return t}function qo(e,t){return e===void 0||t===void 0||Ro(Lo(e),Lo(t))}function Q(e){return D(e).length===0}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>K(e)).join(",")})`};const D=Object.keys,Ae=Object.values,un=Object.entries;function Pi(e){return e===!0||e===!1}function se(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function Ni(e,t){return To(e)?`!(${Ni(e.not,t)})`:_o(e)?`(${e.and.map(n=>Ni(n,t)).join(") && (")})`:No(e)?`(${e.or.map(n=>Ni(n,t)).join(") || (")})`:t(e)}function hr(e,t){if(t.length===0)return!0;const n=t.shift();return n in e&&hr(e[n],t)&&delete e[n],Q(e)}function _i(e){return e.charAt(0).toUpperCase()+e.substr(1)}function Uo(e,t="datum"){const n=Qn(e),i=[];for(let r=1;r<=n.length;r++){const o=`[${n.slice(0,r).map(W).join("][")}]`;i.push(`${t}${o}`)}return i.join(" && ")}function gu(e,t="datum"){return`${t}[${W(Qn(e).join("."))}]`}function V(e){return`datum['${e.replaceAll("'","\\'")}']`}function kp(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function Je(e){return`${Qn(e).map(kp).join("\\.")}`}function An(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function ni(e){return`${Qn(e).join(".")}`}function ii(e){return e?Qn(e).length:0}function me(...e){return e.find(t=>t!==void 0)}let yu=42;function vu(e){const t=++yu;return e?String(e)+t:t}function Cp(){yu=42}function bu(e){return xu(e)?e:`__${e}`}function xu(e){return e.startsWith("__")}function Ti(e){if(e!==void 0)return(e%360+360)%360}function gr(e){return!!ae(e)||!isNaN(e)&&!isNaN(parseFloat(e))}const $u=Object.getPrototypeOf(structuredClone({}));function He(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){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;i--!==0;)if(!He(e[i],t[i]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const o of e.entries())if(!t.has(o[0]))return!1;for(const o of e.entries())if(!He(o[1],t.get(o[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e.entries())if(!t.has(o[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(i=n;i--!==0;)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!==$u.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==$u.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;i--!==0;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;i--!==0;){const o=r[i];if(!He(e[o],t[o]))return!1}return!0}return e!=e&&t!=t}function K(e){const t=[];return function n(i){if(i&&i.toJSON&&typeof i.toJSON=="function"&&(i=i.toJSON()),i===void 0)return;if(typeof i=="number")return isFinite(i)?""+i:"null";if(typeof i!="object")return JSON.stringify(i);let r,o;if(Array.isArray(i)){for(o="[",r=0;r<i.length;r++)r&&(o+=","),o+=n(i[r])||"null";return o+"]"}if(i===null)return"null";if(t.includes(i))throw new TypeError("Converting circular structure to JSON");const a=t.push(i)-1,s=Object.keys(i).sort();for(o="",r=0;r<s.length;r++){const u=s[r],c=n(i[u]);c&&(o&&(o+=","),o+=JSON.stringify(u)+":"+c)}return t.splice(a,1),`{${o}}`}(e)}function A(e,t){return H(e)&&fe(e,t)&&e[t]!==void 0}const qt="row",Ut="column",yr="facet",ue="x",xe="y",at="x2",wt="y2",cn="xOffset",ri="yOffset",st="radius",Wt="radius2",Qe="theta",It="theta2",ut="latitude",ct="longitude",lt="latitude2",Ke="longitude2",ln="time",Le="color",Ft="fill",Dt="stroke",qe="shape",Ht="size",kn="angle",Gt="opacity",fn="fillOpacity",dn="strokeOpacity",pn="strokeWidth",mn="strokeDash",ji="text",oi="order",Mi="detail",vr="key",Cn="tooltip",br="href",xr="url",$r="description",wu={theta:1,theta2:1,radius:1,radius2:1};function Fu(e){return fe(wu,e)}const Wo={longitude:1,longitude2:1,latitude:1,latitude2:1};function Du(e){switch(e){case ut:return"y";case lt:return"y2";case ct:return"x";case Ke:return"x2"}}function Au(e){return fe(Wo,e)}const Sp=D(Wo),Io={x:1,y:1,x2:1,y2:1,...wu,...Wo,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,time: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 ai(e){return e===Le||e===Ft||e===Dt}const ku={row:1,column:1,facet:1},Ze=D(ku),Ho={...Io,...ku},Ep=D(Ho),{order:A0,detail:k0,tooltip:C0,...Bp}=Ho,{row:S0,column:E0,facet:B0,...zp}=Bp;function Op(e){return fe(zp,e)}function Cu(e){return fe(Ho,e)}const Pp=[at,wt,lt,Ke,It,Wt];function Su(e){return Sn(e)!==e}function Sn(e){switch(e){case at:return ue;case wt:return xe;case lt:return ut;case Ke:return ct;case It:return Qe;case Wt:return st}return e}function hn(e){if(Fu(e))switch(e){case Qe:return"startAngle";case It:return"endAngle";case st:return"outerRadius";case Wt:return"innerRadius"}return e}function At(e){switch(e){case ue:return at;case xe:return wt;case ut:return lt;case ct:return Ke;case Qe:return It;case st:return Wt}}function Ue(e){switch(e){case ue:case at:return"width";case xe:case wt:return"height"}}function Eu(e){switch(e){case ue:return"xOffset";case xe:return"yOffset";case at:return"x2Offset";case wt:return"y2Offset";case Qe:return"thetaOffset";case st:return"radiusOffset";case It:return"theta2Offset";case Wt:return"radius2Offset"}}function Go(e){switch(e){case ue:return"xOffset";case xe:return"yOffset"}}function Np(e){switch(e){case"xOffset":return"x";case"yOffset":return"y"}}const _p=D(Io),{x:z0,y:O0,x2:P0,y2:N0,xOffset:_0,yOffset:T0,latitude:j0,longitude:M0,latitude2:R0,longitude2:L0,theta:q0,theta2:U0,radius:W0,radius2:I0,...Vo}=Io,Tp=D(Vo),Yo={x:1,y:1},Vt=D(Yo);function he(e){return fe(Yo,e)}const Xo={theta:1,radius:1},jp=D(Xo);function wr(e){return e==="width"?ue:xe}const Bu={xOffset:1,yOffset:1};function Ri(e){return fe(Bu,e)}const Mp={time:1};function Jo(e){return e in Mp}const{text:H0,tooltip:G0,href:V0,url:Y0,description:X0,detail:J0,key:Q0,order:K0,...zu}=Vo,Ou=D(zu),Pu={...Yo,...Xo,...Bu,...zu},Qo=D(Pu);function kt(e){return fe(Pu,e)}function Rp(e,t){return function(n){switch(n){case Le:case Ft:case Dt:case $r:case Mi:case vr:case Cn:case br:case oi:case Gt:case fn:case dn:case pn:case yr:case qt:case Ut:return Nu;case ue:case xe:case cn:case ri:case ut:case ct:case ln:return Lp;case at:case wt:case lt:case Ke:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case Ht:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case mn:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case qe:return{point:"always",geoshape:"always"};case ji:return{text:"always"};case kn:return{point:"always",square:"always",text:"always"};case xr:return{image:"always"};case Qe:case st:return{text:"always",arc:"always"};case It:case Wt:return{arc:"always"}}}(e)[t]}const Nu={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:Z0,...Lp}=Nu;function Ko(e){switch(e){case ue:case xe:case Qe:case st:case cn:case ri:case Ht:case kn:case pn:case Gt:case fn:case dn:case ln:case at:case wt:case It:case Wt:return;case yr:case qt:case Ut:case qe:case mn:case ji:case Cn:case br:case xr:case $r:return"discrete";case Le:case Ft:case Dt:return"flexible";case ut:case ct:case lt:case Ke:case Mi:case vr:case oi:return}}const qp={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},Up={count:1,min:1,max:1};function Yt(e){return A(e,"argmin")}function gn(e){return A(e,"argmax")}function Fr(e){return R(e)&&fe(qp,e)}const Wp=new Set(["count","valid","missing","distinct"]);function Dr(e){return R(e)&&Wp.has(e)}const Ip=new Set(["count","sum","distinct","valid","missing"]),Hp=new Set(["mean","average","median","q1","q3","min","max"]);function _u(e){return Oi(e)&&(e=Ir(e,void 0)),"bin"+D(e).map(t=>Ar(e[t])?se(`_${t}_${un(e[t])}`):se(`_${t}_${e[t]}`)).join("")}function te(e){return e===!0||En(e)&&!e.binned}function ke(e){return e==="binned"||En(e)&&e.binned===!0}function En(e){return H(e)}function Ar(e){return A(e,"param")}function Tu(e){switch(e){case qt:case Ut:case Ht:case Le:case Ft:case Dt:case pn:case Gt:case fn:case dn:case qe:return 6;case mn:return 4;default:return 10}}function Li(e){return A(e,"expr")}function Ce(e,{level:t}={level:0}){const n=D(e||{}),i={};for(const r of n)i[r]=t===0?Ge(e[r]):Ce(e[r],{level:t-1});return i}function ju(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:a,color:s,subtitleColor:u,subtitleFont:c,subtitleFontSize:l,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...g}=e,m={...t?{anchor:t}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...o!==void 0?{angle:o}:{},...a!==void 0?{limit:a}:{}},y={...u?{subtitleColor:u}:{},...c?{subtitleFont:c}:{},...l?{subtitleFontSize:l}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}};return{titleMarkConfig:{...g,...s?{fill:s}:{}},subtitleMarkConfig:ei(e,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:m,subtitle:y}}function yn(e){return R(e)||P(e)&&R(e[0])}function N(e){return A(e,"signal")}function Bn(e){return A(e,"step")}function Xt(e){return!P(e)&&A(e,"field")&&A(e,"data")}const Gp=D({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}),Vp={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Zo=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function Mu(e){const t=P(e.condition)?e.condition.map(Ru):Ru(e.condition);return{...Ge(e),condition:t}}function Ge(e){if(Li(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function Ru(e){if(Li(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function re(e){if(Li(e)){const{expr:t,...n}=e;return{signal:t,...n}}return N(e)?e:e!==void 0?{value:e}:void 0}function Lu(e){return N(e)?e.signal:W(e.value)}function ft(e){return N(e)?e.signal:e==null?null:W(e)}function Yp(e,t,n){for(const i of n){const r=Ct(i,t.markDef,t.config);r!==void 0&&(e[i]=re(r))}return e}function qu(e){return[].concat(e.type,e.style??[])}function Z(e,t,n,i={}){const{vgChannel:r,ignoreVgConfig:o}=i;return r&&A(t,r)?t[r]:t[e]!==void 0?t[e]:!o||r&&r!==e?Ct(e,t,n,i):void 0}function Ct(e,t,n,{vgChannel:i}={}){const r=ea(e,t,n.style);return me(i?r:void 0,r,i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function ea(e,t,n){return Uu(e,qu(t),n)}function Uu(e,t,n){let i;t=pe(t);for(const r of t){const o=n[r];A(o,e)&&(i=o[e])}return i}function Wu(e,t){return pe(e).reduce((n,i)=>(n.field.push(S(i,t)),n.order.push(i.sort??"ascending"),n),{field:[],order:[]})}function Iu(e,t){const n=[...e];return t.forEach(i=>{for(const r of n)if(He(r,i))return;n.push(i)}),n}function Hu(e,t){return He(e,t)||!t?e:e?[...pe(e),...pe(t)].join(", "):t}function Gu(e,t){const n=e.value,i=t.value;if(n==null||i===null)return{explicit:e.explicit,value:null};if((yn(n)||N(n))&&(yn(i)||N(i)))return{explicit:e.explicit,value:Hu(n,i)};if(yn(n)||N(n))return{explicit:e.explicit,value:n};if(yn(i)||N(i))return{explicit:e.explicit,value:i};if(!(yn(n)||N(n)||yn(i)||N(i)))return{explicit:e.explicit,value:Iu(n,i)};throw new Error("It should never reach here")}function ta(e){return`Invalid specification ${K(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const Xp='Autosize "fit" only works for single views and layered views.';function Vu(e){return`${e=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function Yu(e){return`${e=="width"?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${e=="width"?"x":"y"}".`}function Xu(e){return e?`Dropping "fit-${e}" because spec has discrete ${Ue(e)}.`:'Dropping "fit" because spec has discrete size.'}function na(e){return`Unknown field for ${e}. Cannot calculate view size.`}function Ju(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Jp(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function Qu(e){return`Selection not supported for ${e} yet.`}const Qp="The same selection must be used to override scale domains in a layered view.";function Ku(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const ia="Animation involving facet, layer, or concat is currently unsupported.";function Zu(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function Kp(e){return`Ignoring an invalid transform: ${K(e)}.`}function ec(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function Zp(e){return`${e}Offset dropped because ${e} is continuous`}function tc(e){return`Invalid field type "${e}".`}function nc(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 ra(e,t){return`Dropping ${K(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}function kr(e,t,n){return`${e} dropped as it is incompatible with "${t}".`}function em(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function tm(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function nm(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function oa(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}function im(e){return`Using unaggregated domain with raw field has no effect (${K(e)}).`}function rm(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function om(e){return`Unaggregated domain is currently unsupported for log scale (${K(e)}).`}function ic(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function rc(e){return`The step for "${e}" is dropped because the ${e==="width"?"x":"y"} is continuous.`}const oc="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function Cr(e,t){return`Invalid ${e}: ${K(t)}.`}function ac(e){return`1D error band does not support ${e}.`}function sc(e){return`Channel ${e} is required for "binned" bin.`}const uc=xp($p);let qi=uc;function aa(...e){qi.error(...e)}function k(...e){qi.warn(...e)}function zn(e){if(e&&H(e)){for(const t of ua)if(A(e,t))return!0}return!1}const cc=["january","february","march","april","may","june","july","august","september","october","november","december"],am=cc.map(e=>e.substr(0,3)),lc=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],sm=lc.map(e=>e.substr(0,3));function sa(e,t){const n=[];if(t&&e.day!==void 0&&D(e).length>1&&(k(function(i){return`Dropping day from datetime ${K(i)} as day cannot be combined with other units.`}(e)),delete(e=M(e)).day),e.year!==void 0?n.push(e.year):n.push(2012),e.month!==void 0){const i=t?function(r){if(gr(r)&&(r=+r),ae(r))return r-1;{const o=r.toLowerCase(),a=cc.indexOf(o);if(a!==-1)return a;const s=o.substr(0,3),u=am.indexOf(s);if(u!==-1)return u;throw new Error(Cr("month",r))}}(e.month):e.month;n.push(i)}else if(e.quarter!==void 0){const i=t?function(r){if(gr(r)&&(r=+r),ae(r))return r>4&&k(Cr("quarter",r)),r-1;throw new Error(Cr("quarter",r))}(e.quarter):e.quarter;n.push(ae(i)?3*i:`${i}*3`)}else n.push(0);if(e.date!==void 0)n.push(e.date);else if(e.day!==void 0){const i=t?function(r){if(gr(r)&&(r=+r),ae(r))return r%7;{const o=r.toLowerCase(),a=lc.indexOf(o);if(a!==-1)return a;const s=o.substr(0,3),u=sm.indexOf(s);if(u!==-1)return u;throw new Error(Cr("day",r))}}(e.day):e.day;n.push(ae(i)?i+1:`${i}+1`)}else n.push(1);for(const i of["hours","minutes","seconds","milliseconds"]){const r=e[i];n.push(r===void 0?0:r)}return n}function On(e){const t=sa(e,!0).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}const fc={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},ua=D(fc);function Pn(e){return H(e)?e.binned:dc(e)}function dc(e){return e&&e.startsWith("binned")}function ca(e){return e.startsWith("utc")}const um={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function Sr(e){return ua.filter(t=>mc(e,t))}function pc(e){const t=Sr(e);return t[t.length-1]}function mc(e,t){const n=e.indexOf(t);return!(n<0)&&!(n>0&&t==="seconds"&&e.charAt(n-1)==="i")&&!(e.length>n+3&&t==="day"&&e.charAt(n+3)==="o")&&!(n>0&&t==="year"&&e.charAt(n-1)==="f")}function cm(e,t,{end:n}={end:!1}){const i=Uo(t),r=ca(e)?"utc":"";function o(u){return u==="quarter"?`(${r}quarter(${i})-1)`:`${r}${u}(${i})`}let a;const s={};for(const u of ua)mc(e,u)&&(s[u]=o(u),a=u);return n&&(s[a]+="+1"),function(u){const c=sa(u,!1).join(", ");return u.utc?`utc(${c})`:`datetime(${c})`}(s)}function hc(e){if(e)return`timeUnitSpecifier(${K(Sr(e))}, ${K(um)})`}function $e(e){if(!e)return;let t;return R(e)?t=dc(e)?{unit:e.substring(6),binned:!0}:{unit:e}:H(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),ca(t.unit)&&(t.utc=!0,t.unit=t.unit.substring(3)),t}function gc(e,t=n=>n){const n=$e(e),i=pc(n.unit);if(i&&i!=="day"){const r={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:o,part:a}=yc(i,n.step);return`${t(On({...r,[a]:+r[a]+o}))} - ${t(On(r))}`}}const lm={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function yc(e,t=1){if(function(n){return fe(lm,n)}(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 la(e){return!!(e!=null&&e.field)&&e.equal!==void 0}function fa(e){return!!(e!=null&&e.field)&&e.lt!==void 0}function da(e){return!!(e!=null&&e.field)&&e.lte!==void 0}function pa(e){return!!(e!=null&&e.field)&&e.gt!==void 0}function ma(e){return!!(e!=null&&e.field)&&e.gte!==void 0}function ha(e){return!!(e!=null&&e.field&&(P(e.range)&&e.range.length===2||N(e.range)))}function ga(e){return!!(e!=null&&e.field)&&(P(e.oneOf)||P(e.in))}function vc(e){return ga(e)||la(e)||ha(e)||fa(e)||pa(e)||da(e)||ma(e)}function St(e,t){return Hr(e,{timeUnit:t,wrapTime:!0})}function bc(e,t=!0){const{field:n}=e,i=$e(e.timeUnit),{unit:r,binned:o}=i||{},a=S(e,{expr:"datum"}),s=r?`time(${o?a:cm(r,n)})`:a;if(la(e))return`${s}===${St(e.equal,r)}`;if(fa(e))return`${s}<${St(e.lt,r)}`;if(pa(e))return`${s}>${St(e.gt,r)}`;if(da(e))return`${s}<=${St(e.lte,r)}`;if(ma(e))return`${s}>=${St(e.gte,r)}`;if(ga(e))return`indexof([${function(u,c){return u.map(l=>St(l,c))}(e.oneOf,r).join(",")}], ${s}) !== -1`;if(function(u){return!!(u!=null&&u.field)&&u.valid!==void 0}(e))return Er(s,e.valid);if(ha(e)){const{range:u}=Ce(e),c=N(u)?{signal:`${u.signal}[0]`}:u[0],l=N(u)?{signal:`${u.signal}[1]`}:u[1];if(c!==null&&l!==null&&t)return"inrange("+s+", ["+St(c,r)+", "+St(l,r)+"])";const f=[];return c!==null&&f.push(`${s} >= ${St(c,r)}`),l!==null&&f.push(`${s} <= ${St(l,r)}`),f.length>0?f.join(" && "):"true"}throw new Error(`Invalid field predicate: ${K(e)}`)}function Er(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function fm(e){return vc(e)&&e.timeUnit?{...e,timeUnit:$e(e.timeUnit)}:e}function dm(e){return e==="quantitative"||e==="temporal"}function xc(e){return e==="ordinal"||e==="nominal"}const Nn="quantitative",ya="ordinal",si="temporal",va="nominal",ui="geojson",$c="linear",pm="log",mm="pow",hm="sqrt",ba="time",Br="utc",wc="point",xa="band",$a={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function gm(e,t){const n=$a[e],i=$a[t];return n===i||n==="ordinal-position"&&i==="time"||i==="ordinal-position"&&n==="time"}const ym={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 Fc(e){return ym[e]}const Dc=new Set(["linear","log","pow","sqrt","symlog"]),Ac=new Set([...Dc,"time","utc"]);function kc(e){return Dc.has(e)}const Cc=new Set(["quantile","quantize","threshold"]),vm=new Set([...Ac,...Cc,"sequential","identity"]),bm=new Set(["ordinal","bin-ordinal","point","band"]);function we(e){return bm.has(e)}function dt(e){return vm.has(e)}function Et(e){return Ac.has(e)}function ci(e){return Cc.has(e)}function Sc(e){return A(e,"param")}const{type:e1,domain:t1,range:n1,rangeMax:i1,rangeMin:r1,scheme:o1,...xm}={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},$m=D(xm);function wa(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 Et(e)||e==="band"||e==="point";case"padding":case"rangeMin":case"rangeMax":return Et(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return e==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return Et(e);case"nice":return Et(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return dt(e)&&!U(["log","time","utc","threshold","quantile"],e)}}function Ec(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return ai(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 Be={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"},Bc=Be.arc,zr=Be.area,Or=Be.bar,wm=Be.image,Pr=Be.line,Nr=Be.point,Fm=Be.rect,_r=Be.rule,zc=Be.text,Fa=Be.tick,Dm=Be.trail,Da=Be.circle,Aa=Be.square,Oc=Be.geoshape;function vn(e){return["line","area","trail"].includes(e)}function Ui(e){return["rect","bar","image","arc","tick"].includes(e)}const Am=new Set(D(Be));function Bt(e){return A(e,"type")}const km=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],Pc=D({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),ka=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],Cm={area:["line","point"],bar:ka,rect:ka,line:["point"],tick:["bandSize","thickness",...ka]},Nc=D({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 _n(e){return A(e,"band")}const Sm={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Ca={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},Em={...Ca,binSpacing:1},Bm={...Ca,thickness:1};function _c(e,{isPath:t}){return e===void 0||e==="break-paths-show-path-domains"?t?"break-paths-show-domains":"filter":e===null?"show":e}function Sa({markDef:e,config:t,scaleChannel:n,scaleType:i,isCountAggregate:r}){var s,u;if(!i||!dt(i)||r)return"always-valid";const o=_c(Z("invalid",e,t),{isPath:vn(e.type)});return((u=(s=t.scale)==null?void 0:s.invalid)==null?void 0:u[n])!==void 0?"show":o}function Tc({scaleName:e,scale:t,mode:n}){const i=`domain('${e}')`;if(!t||!e)return;const r=`${i}[0]`,o=`peek(${i})`,a=t.domainHasZero();return a==="definitely"?{scale:e,value:0}:a==="maybe"?{signal:`scale('${e}', inrange(0, ${i}) ? 0 : ${n==="zeroOrMin"?r:o})`}:{signal:`scale('${e}', ${n==="zeroOrMin"?r:o})`}}function jc({scaleChannel:e,channelDef:t,scale:n,scaleName:i,markDef:r,config:o}){var c;const a=n==null?void 0:n.get("type"),s=ht(t),u=Sa({scaleChannel:e,markDef:r,config:o,scaleType:a,isCountAggregate:Dr(s==null?void 0:s.aggregate)});if(s&&u==="show"){const l=((c=o.scale.invalid)==null?void 0:c[e])??"zero-or-min";return{test:Er(S(s,{expr:"datum"}),!1),...zm(l,n,i)}}}function zm(e,t,n){if(H(i=e)&&"value"in i){const{value:r}=e;return N(r)?{signal:r.signal}:{value:r}}var i;return Tc({scale:t,scaleName:n,mode:"zeroOrMin"})}function Ea(e){const{channel:t,channelDef:n,markDef:i,scale:r,scaleName:o,config:a}=e,s=Sn(t),u=Ba(e),c=jc({scaleChannel:s,channelDef:n,scale:r,scaleName:o,markDef:i,config:a});return c!==void 0?[c,u]:u}function Tn(e,t,n,i){const r={};if(t&&(r.scale=t),zt(e)){const{datum:o}=e;zn(o)?r.signal=On(o):N(o)?r.signal=o.signal:Li(o)?r.signal=o.expr:r.value=o}else r.field=S(e,n);if(i){const{offset:o,band:a}=i;o&&(r.offset=o),a&&(r.band=a)}return r}function Tr({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:i,startSuffix:r,endSuffix:o="end",bandPosition:a=.5}){const s=!N(a)&&0<a&&a<1?"datum":void 0,u=S(t,{expr:s,suffix:r}),c=n!==void 0?S(n,{expr:s}):S(t,{suffix:o,expr:s}),l={};if(a===0||a===1){l.scale=e;const f=a===0?u:c;l.field=f}else{const f=N(a)?`(1-${a.signal}) * ${u} + ${a.signal} * ${c}`:`${1-a} * ${u} + ${a} * ${c}`;l.signal=`scale("${e}", ${f})`}return i&&(l.offset=i),l}function Ba({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:u,defaultRef:c,bandPosition:l}){if(t){if(L(t)){const f=a==null?void 0:a.get("type");if(_e(t)){l??(l=bn({fieldDef:t,fieldDef2:n,markDef:i,config:r}));const{bin:d,timeUnit:h,type:p}=t;if(te(d)||l&&h&&p===si)return s!=null&&s.impute?Tn(t,o,{binSuffix:"mid"},{offset:u}):l&&!we(f)?Tr({scaleName:o,fieldOrDatumDef:t,bandPosition:l,offset:u}):Tn(t,o,Yi(t,e)?{binSuffix:"range"}:{},{offset:u});if(ke(d)){if(C(n))return Tr({scaleName:o,fieldOrDatumDef:t,fieldOrDatumDef2:n,bandPosition:l,offset:u});k(sc(e===ue?at:wt))}}return Tn(t,o,we(f)?{binSuffix:"range"}:{},{offset:u,band:f==="band"?l??t.bandPosition??.5:void 0})}if(mt(t)){const f=u?{offset:u}:{};return{...Wi(e,t.value),...f}}}return wp(c)&&(c=c()),c&&{...c,...u?{offset:u}:{}}}function Wi(e,t){return U(["x","x2"],e)&&t==="width"?{field:{group:"width"}}:U(["y","y2"],e)&&t==="height"?{field:{group:"height"}}:re(t)}function jn(e){return e&&e!=="number"&&e!=="time"}function Mc(e,t,n){return`${e}(${t}${n?`, ${K(n)}`:""})`}function za({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o}){var u,c;if(jn(n))return pt({fieldOrDatumDef:e,format:t,formatType:n,expr:i,config:o});const a=Rc(e,i,r),s=li(e);if(t===void 0&&n===void 0&&o.customFormatTypes){if(s==="quantitative"){if(r&&o.normalizedNumberFormatType)return pt({fieldOrDatumDef:e,format:o.normalizedNumberFormat,formatType:o.normalizedNumberFormatType,expr:i,config:o});if(o.numberFormatType)return pt({fieldOrDatumDef:e,format:o.numberFormat,formatType:o.numberFormatType,expr:i,config:o})}if(s==="temporal"&&o.timeFormatType&&C(e)&&e.timeUnit===void 0)return pt({fieldOrDatumDef:e,format:o.timeFormat,formatType:o.timeFormatType,expr:i,config:o})}if(mi(e)){const l=function({field:f,timeUnit:d,format:h,formatType:p,rawTimeFormat:g,isUTCScale:m}){return!d||h?!d&&p?`${p}(${f}, '${h}')`:`${m?"utc":"time"}Format(${f}, '${h=R(h)?h:g}')`:function(y,x,b){if(!y)return;const v=hc(y);return`${b||ca(y)?"utc":"time"}Format(${x}, ${v})`}(d,f,m)}({field:a,timeUnit:C(e)?(u=$e(e.timeUnit))==null?void 0:u.unit:void 0,format:t,formatType:o.timeFormatType,rawTimeFormat:o.timeFormat,isUTCScale:Mn(e)&&((c=e.scale)==null?void 0:c.type)===Br});return l?{signal:l}:void 0}return t=Oa({type:s,specifiedFormat:t,config:o,normalizeStack:r}),C(e)&&te(e.bin)?{signal:Ii(a,S(e,{expr:i,binSuffix:"end"}),t,n,o)}:t||li(e)==="quantitative"?{signal:`${Uc(a,t)}`}:{signal:`isValid(${a}) ? ${a} : ""+${a}`}}function Rc(e,t,n){return C(e)?n?`${S(e,{expr:t,suffix:"end"})}-${S(e,{expr:t,suffix:"start"})}`:S(e,{expr:t}):function(i){const{datum:r}=i;return zn(r)?On(r):`${K(r)}`}(e)}function pt({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o,field:a}){return a??(a=Rc(e,i,r)),a!=="datum.value"&&C(e)&&te(e.bin)?{signal:Ii(a,S(e,{expr:i,binSuffix:"end"}),t,n,o)}:{signal:Mc(n,a,t)}}function Lc(e,t,n,i,r,o){var a;if(!R(i)||!jn(i)){if(n===void 0&&i===void 0&&r.customFormatTypes&&li(e)==="quantitative"&&(r.normalizedNumberFormatType&&fi(e)&&e.stack==="normalize"||r.numberFormatType))return;if(fi(e)&&e.stack==="normalize"&&r.normalizedNumberFormat)return Oa({type:"quantitative",config:r,normalizeStack:!0});if(mi(e)){const s=C(e)?(a=$e(e.timeUnit))==null?void 0:a.unit:void 0;return s===void 0&&r.customFormatTypes&&r.timeFormatType?void 0:function({specifiedFormat:u,timeUnit:c,config:l,omitTimeFormatConfig:f}){return u||(c?{signal:hc(c)}:f?void 0:l.timeFormat)}({specifiedFormat:n,timeUnit:s,config:r,omitTimeFormatConfig:o})}return Oa({type:t,specifiedFormat:n,config:r})}}function qc(e,t,n){var i;return e&&(N(e)||e==="number"||e==="time")?e:mi(t)&&n!=="time"&&n!=="utc"?C(t)&&((i=$e(t==null?void 0:t.timeUnit))!=null&&i.utc)?"utc":"time":void 0}function Oa({type:e,specifiedFormat:t,config:n,normalizeStack:i}){return R(t)?t:e===Nn?i?n.normalizedNumberFormat:n.numberFormat:void 0}function Uc(e,t){return`format(${e}, "${t||""}")`}function Wc(e,t,n,i){return jn(n)?Mc(n,e,t):Uc(e,(R(t)?t:void 0)??i.numberFormat)}function Ii(e,t,n,i,r){if(n===void 0&&i===void 0&&r.customFormatTypes&&r.numberFormatType)return Ii(e,t,r.numberFormat,r.numberFormatType,r);const o=Wc(e,n,i,r),a=Wc(t,n,i,r);return`${Er(e,!1)} ? "null" : ${o} + " \u2013 " + ${a}`}const jr="min",Om={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 Ic(e){return fe(Om,e)}function Jt(e){return e&&(e.op==="count"||A(e,"field"))}function Hc(e){return e&&P(e)}function Hi(e){return A(e,"row")||A(e,"column")}function Pa(e){return A(e,"header")}function Mr(e){return A(e,"facet")}function Gc(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return{...n?{timeUnit:n}:{},...i?{bin:i}:{},...r?{aggregate:r}:{},field:t}}function Na(e){return A(e,"sort")}function bn({fieldDef:e,fieldDef2:t,markDef:n,config:i}){if(L(e)&&e.bandPosition!==void 0)return e.bandPosition;if(C(e)){const{timeUnit:r,bin:o}=e;if(r&&!t)return Ct("timeUnitBandPosition",n,i);if(te(o))return .5}}function Vc({channel:e,fieldDef:t,fieldDef2:n,markDef:i,config:r,scaleType:o,useVlSizeChannel:a}){var c,l,f;const s=Ue(e),u=Z(a?"size":s,i,r,{vgChannel:s});if(u!==void 0)return u;if(C(t)){const{timeUnit:d,bin:h}=t;if(d&&!n)return{band:Ct("timeUnitBandSize",i,r)};if(te(h)&&!we(o))return{band:1}}return Ui(i.type)?o?we(o)?((c=r[i.type])==null?void 0:c.discreteBandSize)||{band:1}:(l=r[i.type])==null?void 0:l.continuousBandSize:(f=r[i.type])==null?void 0:f.discreteBandSize:void 0}function Yc(e,t,n,i){return!!(te(e.bin)||e.timeUnit&&_e(e)&&e.type==="temporal")&&bn({fieldDef:e,fieldDef2:t,markDef:n,config:i})!==void 0}function Xc(e){return A(e,"sort")&&!A(e,"field")}function Gi(e){return A(e,"condition")}function Rr(e){const t=e==null?void 0:e.condition;return!!t&&!P(t)&&C(t)}function Vi(e){const t=e==null?void 0:e.condition;return!!t&&!P(t)&&L(t)}function C(e){return A(e,"field")||(e==null?void 0:e.aggregate)==="count"}function li(e){return e==null?void 0:e.type}function zt(e){return A(e,"datum")}function xn(e){return _e(e)&&!qr(e)||Lr(e)}function Jc(e){return _e(e)&&e.type==="quantitative"&&!e.bin||Lr(e)}function Lr(e){return zt(e)&&ae(e.datum)}function L(e){return C(e)||zt(e)}function _e(e){return e&&(A(e,"field")||e.aggregate==="count")&&A(e,"type")}function mt(e){return A(e,"value")}function Mn(e){return A(e,"scale")||A(e,"sort")}function fi(e){return A(e,"axis")||A(e,"stack")||A(e,"impute")}function Qc(e){return A(e,"legend")}function Kc(e){return A(e,"format")||A(e,"formatType")}function Pm(e){return Re(e,["legend","axis","header","scale"])}function S(e,t={}){let n=e.field;const i=t.prefix;let r=t.suffix,o="";if(function(a){return a.aggregate==="count"}(e))n=bu("count");else{let a;if(!t.nofn)if(function(s){return A(s,"op")}(e))a=e.op;else{const{bin:s,aggregate:u,timeUnit:c}=e;te(s)?(a=_u(s),r=(t.binSuffix??"")+(t.suffix??"")):u?gn(u)?(o=`["${n}"]`,n=`argmax_${u.argmax}`):Yt(u)?(o=`["${n}"]`,n=`argmin_${u.argmin}`):a=String(u):c&&!Pn(c)&&(a=function(l){const{utc:f,...d}=$e(l);return d.unit?(f?"utc":"")+D(d).map(h=>se(`${h==="unit"?"":`_${h}_`}${d[h]}`)).join(""):(f?"utc":"")+"timeunit"+D(d).map(h=>se(`_${h}_${d[h]}`)).join("")}(c),r=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(t.suffix??""))}a&&(n=n?`${a}_${n}`:a)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?ni(n):t.expr?gu(n,t.expr)+o:Je(n)+o}function qr(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return C(e)&&!!e.bin;case"temporal":return!1}throw new Error(tc(e.type))}const Zc=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return function(n){const{aggregate:i,bin:r,timeUnit:o,field:a}=n;if(gn(i))return`${a} for argmax(${i.argmax})`;if(Yt(i))return`${a} for argmin(${i.argmin})`;const s=o&&!Pn(o)?$e(o):void 0,u=i||(s==null?void 0:s.unit)||(s==null?void 0:s.maxbins)&&"timeunit"||te(r)&&"bin";return u?`${u.toUpperCase()}(${a})`:a}(e);default:return function(n,i){var u;const{field:r,bin:o,timeUnit:a,aggregate:s}=n;if(s==="count")return i.countTitle;if(te(o))return`${r} (binned)`;if(a&&!Pn(a)){const c=(u=$e(a))==null?void 0:u.unit;if(c)return`${r} (${Sr(c).join("-")})`}else if(s)return gn(s)?`${r} for max ${s.argmax}`:Yt(s)?`${r} for min ${s.argmin}`:`${_i(s)} of ${r}`;return r}(e,t)}};let el=Zc;function tl(e){el=e}function di(e,t,{allowDisabling:n,includeDefault:i=!0}){var s;const r=(s=_a(e))==null?void 0:s.title;if(!C(e))return r??e.title;const o=e,a=i?Ta(o,t):void 0;return n?me(r,o.title,a):r??o.title??a}function _a(e){return fi(e)&&e.axis?e.axis:Qc(e)&&e.legend?e.legend:Pa(e)&&e.header?e.header:void 0}function Ta(e,t){return el(e,t)}function Ur(e){if(Kc(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}{const t=_a(e)??{},{format:n,formatType:i}=t;return{format:n,formatType:i}}}function ht(e){return C(e)?e:Rr(e)?e.condition:void 0}function ye(e){return L(e)?e:Vi(e)?e.condition:void 0}function nl(e,t,n,i={}){return R(e)||ae(e)||Oi(e)?(k(function(r,o,a){return`Channel ${r} is a ${o}. Converted to {value: ${K(a)}}.`}(t,R(e)?"string":ae(e)?"number":"boolean",e)),{value:e}):L(e)?Wr(e,t,n,i):Vi(e)?{...e,condition:Wr(e.condition,t,n,i)}:e}function Wr(e,t,n,i){if(Kc(e)){const{format:r,formatType:o,...a}=e;if(jn(o)&&!n.customFormatTypes)return k(ec(t)),Wr(a,t,n,i)}else{const r=fi(e)?"axis":Qc(e)?"legend":Pa(e)?"header":null;if(r&&e[r]){const{format:o,formatType:a,...s}=e[r];if(jn(a)&&!n.customFormatTypes)return k(ec(t)),Wr({...e,[r]:s},t,n,i)}}return C(e)?ja(e,t,i):function(r){let o=r.type;if(o)return r;const{datum:a}=r;return o=ae(a)?"quantitative":R(a)?"nominal":zn(a)?"temporal":void 0,{...r,type:o}}(e)}function ja(e,t,{compositeMark:n=!1}={}){const{aggregate:i,timeUnit:r,bin:o,field:a}=e,s={...e};if(n||!i||Fr(i)||gn(i)||Yt(i)||(k(function(u){return`Invalid aggregation operator "${u}".`}(i)),delete s.aggregate),r&&(s.timeUnit=$e(r)),a&&(s.field=`${a}`),te(o)&&(s.bin=Ir(o,t)),ke(o)&&!he(t)&&k(function(u){return`Channel ${u} should not be used with "binned" bin.`}(t)),_e(s)){const{type:u}=s,c=function(l){if(l)switch(l=l.toLowerCase()){case"q":case Nn:return"quantitative";case"t":case si:return"temporal";case"o":case ya:return"ordinal";case"n":case va:return"nominal";case ui:return"geojson"}}(u);u!==c&&(s.type=c),u!=="quantitative"&&Dr(i)&&(k(function(l,f){return`Invalid field type "${l}" for aggregate: "${f}", using "quantitative" instead.`}(u,i)),s.type="quantitative")}else if(!Su(t)){const u=function(c,l){var p;switch(l){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Na(c)&&P(c.sort))return"ordinal";const{aggregate:f,bin:d,timeUnit:h}=c;if(h)return"temporal";if(d||f&&!gn(f)&&!Yt(f))return"quantitative";if(Mn(c)&&((p=c.scale)!=null&&p.type))switch($a[c.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(s,t);s.type=u}if(_e(s)){const{compatible:u,warning:c}=function(l,f){var p;const d=l.type;if(d==="geojson"&&f!=="shape")return{compatible:!1,warning:`Channel ${f} should not be used with a geojson data.`};switch(f){case qt:case Ut:case yr:return qr(l)?pi:{compatible:!1,warning:tm(f)};case ue:case xe:case cn:case ri:case Le:case Ft:case Dt:case ji:case Mi:case vr:case Cn:case br:case xr:case kn:case Qe:case st:case $r:return pi;case ct:case Ke:case ut:case lt:return d!==Nn?{compatible:!1,warning:`Channel ${f} should be used with a quantitative field only, not ${l.type} field.`}:pi;case Gt:case fn:case dn:case pn:case Ht:case It:case Wt:case at:case wt:case ln:return d!=="nominal"||l.sort?pi:{compatible:!1,warning:`Channel ${f} should not be used with an unsorted discrete field.`};case qe:case mn:return qr(l)||Mn(h=l)&&ci((p=h.scale)==null?void 0:p.type)?pi:{compatible:!1,warning:nm(f)};case oi:return l.type!=="nominal"||"sort"in l?pi:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var h}(s,t)||{};u===!1&&k(c)}if(Na(s)&&R(s.sort)){const{sort:u}=s;if(Ic(u))return{...s,sort:{encoding:u}};const c=u.substring(1);if(u.charAt(0)==="-"&&Ic(c))return{...s,sort:{encoding:c,order:"descending"}}}if(Pa(s)){const{header:u}=s;if(u){const{orient:c,...l}=u;if(c)return{...s,header:{...l,labelOrient:u.labelOrient||c,titleOrient:u.titleOrient||c}}}}return s}function Ir(e,t){return Oi(e)?{maxbins:Tu(t)}:e==="binned"?{binned:!0}:e.maxbins||e.step?e:{...e,maxbins:Tu(t)}}const pi={compatible:!0};function mi(e){const{formatType:t}=Ur(e);return t==="time"||!t&&(n=e)&&(n.type==="temporal"||C(n)&&!!n.timeUnit);var n}function Hr(e,{timeUnit:t,type:n,wrapTime:i,undefinedIfExprNotRequired:r}){var u;const o=t&&((u=$e(t))==null?void 0:u.unit);let a,s=o||n==="temporal";return Li(e)?a=e.expr:N(e)?a=e.signal:zn(e)?(s=!0,a=On(e)):(R(e)||ae(e))&&s&&(a=`datetime(${K(e)})`,function(c){return fe(fc,c)}(o)&&(ae(e)&&e<1e4||R(e)&&isNaN(Date.parse(e)))&&(a=On({[o]:e}))),a?i&&s?`time(${a})`:a:r?void 0:K(e)}function il(e,t){const{type:n}=e;return t.map(i=>{const r=Hr(i,{timeUnit:C(e)&&!Pn(e.timeUnit)?e.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return r!==void 0?{signal:r}:i})}function Yi(e,t){return te(e.bin)?kt(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const rl={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 Xi(e){return e==null?void 0:e.condition}const ol=["domain","grid","labels","ticks","title"],Nm={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"},al={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},_m={...al,style:1,labelExpr:1,encoding:1};function sl(e){return fe(_m,e)}const ul=D({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 Qt(e){return A(e,"mark")}class Gr{constructor(t,n){this.name=t,this.run=n}hasMatchingType(t){return!!Qt(t)&&(Bt(n=t.mark)?n.type:n)===this.name;var n}}function Rn(e,t){const n=e&&e[t];return!!n&&(P(n)?ti(n,i=>!!i.field):C(n)||Rr(n))}function cl(e,t){const n=e&&e[t];return!!n&&(P(n)?ti(n,i=>!!i.field):C(n)||zt(n)||Vi(n))}function ll(e,t){if(he(t)){const n=e[t];if((C(n)||zt(n))&&(xc(n.type)||C(n)&&n.timeUnit))return cl(e,Go(t))}return!1}function fl(e){return ti(Ep,t=>{if(Rn(e,t)){const n=e[t];if(P(n))return ti(n,i=>!!i.aggregate);{const i=ht(n);return i&&!!i.aggregate}}return!1})}function dl(e,t){const n=[],i=[],r=[],o=[],a={};return Ma(e,(s,u)=>{if(C(s)){const{field:c,aggregate:l,bin:f,timeUnit:d,...h}=s;if(l||d||f){const p=_a(s),g=p==null?void 0:p.title;let m=S(s,{forAs:!0});const y={...g?[]:{title:di(s,t,{allowDisabling:!0})},...h,field:m};if(l){let x;if(gn(l)?(x="argmax",m=S({op:"argmax",field:l.argmax},{forAs:!0}),y.field=`${m}.${c}`):Yt(l)?(x="argmin",m=S({op:"argmin",field:l.argmin},{forAs:!0}),y.field=`${m}.${c}`):l!=="boxplot"&&l!=="errorbar"&&l!=="errorband"&&(x=l),x){const b={op:x,as:m};c&&(b.field=c),o.push(b)}}else if(n.push(m),_e(s)&&te(f)){if(i.push({bin:f,field:c,as:m}),n.push(S(s,{binSuffix:"end"})),Yi(s,u)&&n.push(S(s,{binSuffix:"range"})),he(u)){const x={field:`${m}_end`};a[`${u}2`]=x}y.bin="binned",Su(u)||(y.type=Nn)}else if(d&&!Pn(d)){r.push({timeUnit:d,field:c,as:m});const x=_e(s)&&s.type!==si&&"time";x&&(u===ji||u===Cn?y.formatType=x:function(b){return fe(Vo,b)}(u)?y.legend={formatType:x,...y.legend}:he(u)&&(y.axis={formatType:x,...y.axis}))}a[u]=y}else n.push(c),a[u]=e[u]}else a[u]=e[u]}),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:a}}function Tm(e,t,n){const i=Rp(t,n);if(!i)return!1;if(i==="binned"){const r=e[t===at?ue:xe];return!!(C(r)&&C(e[t])&&ke(r.bin))}return!0}function Vr(e,t){const n={};for(const i of D(e)){const r=nl(e[i],i,t,{compositeMark:!0});n[i]=r}return n}function Ma(e,t,n){if(e)for(const i of D(e)){const r=e[i];if(P(r))for(const o of r)t.call(n,o,i);else t.call(n,r,i)}}function pl(e,t){return D(t).reduce((n,i)=>{switch(i){case ue:case xe:case br:case $r:case xr:case at:case wt:case cn:case ri:case Qe:case It:case st:case Wt:case ln:case ut:case ct:case lt:case Ke:case ji:case qe:case kn:case Cn:return n;case oi:if(e==="line"||e==="trail")return n;case Mi:case vr:{const r=t[i];if(P(r)||C(r))for(const o of pe(r))o.aggregate||n.push(S(o,{}));return n}case Ht:if(e==="trail")return n;case Le:case Ft:case Dt:case Gt:case fn:case dn:case mn:case pn:{const r=ht(t[i]);return r&&!r.aggregate&&n.push(S(r,{})),n}}},[])}function Ra(e,t,n,i=!0){return"tooltip"in n?{tooltip:n.tooltip}:{tooltip:[...e.map(({fieldPrefix:r,titlePrefix:o})=>{const a=i?` of ${La(t)}`:"";return{field:r+t.field,type:t.type,title:N(o)?{signal:`${o}"${escape(a)}"`}:o+a}}),...$t(function(r){const o=[];for(const a of D(r))if(Rn(r,a)){const s=r[a],u=pe(s);for(const c of u)C(c)?o.push(c):Rr(c)&&o.push(c.condition)}return o}(n).map(Pm),I)]}}function La(e){const{title:t,field:n}=e;return me(t,n)}function qa(e,t,n,i,r){const{scale:o,axis:a}=n;return({partName:s,mark:u,positionPrefix:c,endPositionPrefix:l,extraEncoding:f={}})=>{const d=La(n);return ml(e,s,r,{mark:u,encoding:{[t]:{field:`${c}_${n.field}`,type:n.type,...d!==void 0?{title:d}:{},...o!==void 0?{scale:o}:{},...a!==void 0?{axis:a}:{}},...R(l)?{[`${t}2`]:{field:`${l}_${n.field}`}}:{},...i,...f}})}}function ml(e,t,n,i){const{clip:r,color:o,opacity:a}=e,s=e.type;return e[t]||e[t]===void 0&&n[t]?[{...i,mark:{...n[t],...r?{clip:r}:{},...o?{color:o}:{},...a?{opacity:a}:{},...Bt(i.mark)?i.mark:{type:i.mark},style:`${s}-${String(t)}`,...Oi(e[t])?{}:e[t]}}]:[]}function hl(e,t,n){const{encoding:i}=e,r=t==="vertical"?"y":"x",o=i[r],a=i[`${r}2`],s=i[`${r}Error`],u=i[`${r}Error2`];return{continuousAxisChannelDef:Yr(o,n),continuousAxisChannelDef2:Yr(a,n),continuousAxisChannelDefError:Yr(s,n),continuousAxisChannelDefError2:Yr(u,n),continuousAxis:r}}function Yr(e,t){if(e!=null&&e.aggregate){const{aggregate:n,...i}=e;return n!==t&&k(function(r,o){return`Continuous axis should not have customized aggregation function ${r}; ${o} already agregates the axis.`}(n,t)),i}return e}function gl(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(Bt(n)&&n.orient)return n.orient;if(xn(r)){if(xn(o)){const a=C(r)&&r.aggregate,s=C(o)&&o.aggregate;if(a||s!==t){if(s||a!==t){if(a===t&&s===t)throw new Error("Both x and y cannot have aggregate");return mi(o)&&!mi(r)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(xn(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}const Xr="boxplot",jm=new Gr(Xr,vl);function yl(e){return ae(e)?"tukey":e}function vl(e,{config:t}){e={...e,encoding:Vr(e.encoding,t)};const{mark:n,encoding:i,params:r,projection:o,...a}=e,s=Bt(n)?n:{type:n};r&&k(Qu("boxplot"));const u=s.extent??t.boxplot.extent,c=Z("size",s,t),l=s.invalid,f=yl(u),{bins:d,timeUnits:h,transform:p,continuousAxisChannelDef:g,continuousAxis:m,groupby:y,aggregate:x,encodingWithoutContinuousAxis:b,ticksOrient:v,boxOrient:w,customTooltipWithoutAggregatedField:F}=function(Ei,zo,cp){const Oo=gl(Ei,Xr),{continuousAxisChannelDef:ou,continuousAxis:au}=hl(Ei,Oo,Xr),Bi=ou.field,Me=ni(Bi),dr=yl(zo),lp=[...bl(Bi),{op:"median",field:Bi,as:`mid_box_${Me}`},{op:"min",field:Bi,as:(dr==="min-max"?"lower_whisker_":"min_")+Me},{op:"max",field:Bi,as:(dr==="min-max"?"upper_whisker_":"max_")+Me}],fp=dr==="min-max"||dr==="tukey"?[]:[{calculate:`${V(`upper_box_${Me}`)} - ${V(`lower_box_${Me}`)}`,as:`iqr_${Me}`},{calculate:`min(${V(`upper_box_${Me}`)} + ${V(`iqr_${Me}`)} * ${zo}, ${V(`max_${Me}`)})`,as:`upper_whisker_${Me}`},{calculate:`max(${V(`lower_box_${Me}`)} - ${V(`iqr_${Me}`)} * ${zo}, ${V(`min_${Me}`)})`,as:`lower_whisker_${Me}`}],{[au]:F0,...dp}=Ei.encoding,{customTooltipWithoutAggregatedField:pp,filteredEncoding:mp}=function(bp){const{tooltip:Jn,...pr}=bp;if(!Jn)return{filteredEncoding:pr};let zi,Lt;if(P(Jn)){for(const Po of Jn)Po.aggregate?(zi||(zi=[]),zi.push(Po)):(Lt||(Lt=[]),Lt.push(Po));zi&&(pr.tooltip=zi)}else Jn.aggregate?pr.tooltip=Jn:Lt=Jn;return P(Lt)&&Lt.length===1&&(Lt=Lt[0]),{customTooltipWithoutAggregatedField:Lt,filteredEncoding:pr}}(dp),{bins:su,timeUnits:uu,aggregate:cu,groupby:lu,encoding:hp}=dl(mp,cp),gp=Oo==="vertical"?"horizontal":"vertical",yp=Oo,vp=[...su,...uu,{aggregate:[...cu,...lp],groupby:lu},...fp];return{bins:su,timeUnits:uu,transform:vp,groupby:lu,aggregate:cu,continuousAxisChannelDef:ou,continuousAxis:au,encodingWithoutContinuousAxis:hp,ticksOrient:gp,boxOrient:yp,customTooltipWithoutAggregatedField:pp}}(e,u,t),E=ni(g.field),{color:B,size:O,...T}=b,z=Ei=>qa(s,m,g,Ei,t.boxplot),j=z(T),ve=z(b),ne=(H(t.boxplot.box)?t.boxplot.box.color:t.mark.color)||"#4c78a8",ie=z({...T,...O?{size:O}:{},color:{condition:{test:`${V(`lower_box_${g.field}`)} >= ${V(`upper_box_${g.field}`)}`,...B||{value:ne}}}}),J=Ra([{fieldPrefix:f==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:f==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],g,b),ee={type:"tick",color:"black",opacity:1,orient:v,invalid:l,aria:!1},de=f==="min-max"?J:Ra([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,b),tt=[...j({partName:"rule",mark:{type:"rule",invalid:l,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:de}),...j({partName:"rule",mark:{type:"rule",invalid:l,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:de}),...j({partName:"ticks",mark:ee,positionPrefix:"lower_whisker",extraEncoding:de}),...j({partName:"ticks",mark:ee,positionPrefix:"upper_whisker",extraEncoding:de})],Ye=[...f!=="tukey"?tt:[],...ve({partName:"box",mark:{type:"bar",...c?{size:c}:{},orient:w,invalid:l,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:J}),...ie({partName:"median",mark:{type:"tick",invalid:l,...H(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...c?{size:c}:{},orient:v,aria:!1},positionPrefix:"mid_box",extraEncoding:J})];if(f==="min-max")return{...a,transform:(a.transform??[]).concat(p),layer:Ye};const nt=V(`lower_box_${g.field}`),je=V(`upper_box_${g.field}`),jt=`(${je} - ${nt})`,ge=`${nt} - ${u} * ${jt}`,it=`${je} + ${u} * ${jt}`,be=V(g.field),q={joinaggregate:bl(g.field),groupby:y},Ne={transform:[{filter:`(${ge} <= ${be}) && (${be} <= ${it})`},{aggregate:[{op:"min",field:g.field,as:`lower_whisker_${E}`},{op:"max",field:g.field,as:`upper_whisker_${E}`},{op:"min",field:`lower_box_${g.field}`,as:`lower_box_${E}`},{op:"max",field:`upper_box_${g.field}`,as:`upper_box_${E}`},...x],groupby:y}],layer:tt},{tooltip:sn,...Yn}=T,{scale:Xn,axis:Xe}=g,rt=La(g),Mt=Re(Xe,["title"]),Rt=ml(s,"outliers",t.boxplot,{transform:[{filter:`(${be} < ${ge}) || (${be} > ${it})`}],mark:"point",encoding:{[m]:{field:g.field,type:g.type,...rt!==void 0?{title:rt}:{},...Xn!==void 0?{scale:Xn}:{},...Q(Mt)?{}:{axis:Mt}},...Yn,...B?{color:B}:{},...F?{tooltip:F}:{}}})[0];let ot;const ru=[...d,...h,q];return Rt?ot={transform:ru,layer:[Rt,Ne]}:(ot=Ne,ot.transform.unshift(...ru)),{...a,layer:[ot,{transform:p,layer:Ye}]}}function bl(e){const t=ni(e);return[{op:"q1",field:e,as:`lower_box_${t}`},{op:"q3",field:e,as:`upper_box_${t}`}]}const Ua="errorbar",Mm=new Gr(Ua,xl);function xl(e,{config:t}){e={...e,encoding:Vr(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:a,markDef:s,outerSpec:u,tooltipEncoding:c}=$l(e,Ua,t);delete o.size;const l=qa(s,r,i,o,t.errorbar),f=s.thickness,d=s.size,h={type:"tick",orient:a,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},p=[...l({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:c}),...l({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:c}),...l({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c})];return{...u,transform:n,...p.length>1?{layer:p}:{...p[0]}}}function Rm(e,t){const{encoding:n}=e;if(function(s){return(L(s.x)||L(s.y))&&!L(s.x2)&&!L(s.y2)&&!L(s.xError)&&!L(s.xError2)&&!L(s.yError)&&!L(s.yError2)}(n))return{orient:gl(e,t),inputType:"raw"};const i=function(s){return L(s.x2)||L(s.y2)}(n),r=function(s){return L(s.xError)||L(s.xError2)||L(s.yError)||L(s.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 s=n.x2,u=n.y2;if(L(s)&&L(u))throw new Error(`${t} cannot have both x2 and y2`);if(L(s)){if(xn(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}if(L(u)){if(xn(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 s=n.xError,u=n.xError2,c=n.yError,l=n.yError2;if(L(u)&&!L(s))throw new Error(`${t} cannot have xError2 without xError`);if(L(l)&&!L(c))throw new Error(`${t} cannot have yError2 without yError`);if(L(s)&&L(c))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(L(s)){if(xn(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(L(c)){if(xn(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 $l(e,t,n){const{mark:i,encoding:r,params:o,projection:a,...s}=e,u=Bt(i)?i:{type:i};o&&k(Qu(t));const{orient:c,inputType:l}=Rm(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:g}=hl(e,c,t),{errorBarSpecificAggregate:m,postAggregateCalculates:y,tooltipSummary:x,tooltipTitleWithFieldName:b}=function(ee,de,tt,Ye,nt,je,jt,ge){let it=[],be=[];const q=de.field;let Ne,sn=!1;if(je==="raw"){const Xe=ee.center?ee.center:ee.extent?ee.extent==="iqr"?"median":"mean":ge.errorbar.center,rt=ee.extent?ee.extent:Xe==="mean"?"stderr":"iqr";if(Xe==="median"!=(rt==="iqr")&&k(function(Mt,Rt,ot){return`${Mt} is not usually used with ${Rt} for ${ot}.`}(Xe,rt,jt)),rt==="stderr"||rt==="stdev")it=[{op:rt,field:q,as:`extent_${q}`},{op:Xe,field:q,as:`center_${q}`}],be=[{calculate:`${V(`center_${q}`)} + ${V(`extent_${q}`)}`,as:`upper_${q}`},{calculate:`${V(`center_${q}`)} - ${V(`extent_${q}`)}`,as:`lower_${q}`}],Ne=[{fieldPrefix:"center_",titlePrefix:_i(Xe)},{fieldPrefix:"upper_",titlePrefix:wl(Xe,rt,"+")},{fieldPrefix:"lower_",titlePrefix:wl(Xe,rt,"-")}],sn=!0;else{let Mt,Rt,ot;rt==="ci"?(Mt="mean",Rt="ci0",ot="ci1"):(Mt="median",Rt="q1",ot="q3"),it=[{op:Rt,field:q,as:`lower_${q}`},{op:ot,field:q,as:`upper_${q}`},{op:Mt,field:q,as:`center_${q}`}],Ne=[{fieldPrefix:"upper_",titlePrefix:di({field:q,aggregate:ot,type:"quantitative"},ge,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:di({field:q,aggregate:Rt,type:"quantitative"},ge,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:di({field:q,aggregate:Mt,type:"quantitative"},ge,{allowDisabling:!1})}]}}else{(ee.center||ee.extent)&&k((Yn=ee.center,`${(Xn=ee.extent)?"extent ":""}${Xn&&Yn?"and ":""}${Yn?"center ":""}${Xn&&Yn?"are ":"is "}not needed when data are aggregated.`)),je==="aggregated-upper-lower"?(Ne=[],be=[{calculate:V(tt.field),as:`upper_${q}`},{calculate:V(q),as:`lower_${q}`}]):je==="aggregated-error"&&(Ne=[{fieldPrefix:"",titlePrefix:q}],be=[{calculate:`${V(q)} + ${V(Ye.field)}`,as:`upper_${q}`}],nt?be.push({calculate:`${V(q)} + ${V(nt.field)}`,as:`lower_${q}`}):be.push({calculate:`${V(q)} - ${V(Ye.field)}`,as:`lower_${q}`}));for(const Xe of be)Ne.push({fieldPrefix:Xe.as.substring(0,6),titlePrefix:An(An(Xe.calculate,"datum['",""),"']","")})}var Yn,Xn;return{postAggregateCalculates:be,errorBarSpecificAggregate:it,tooltipSummary:Ne,tooltipTitleWithFieldName:sn}}(u,f,d,h,p,l,t,n),{[g]:v,[g==="x"?"x2":"y2"]:w,[g==="x"?"xError":"yError"]:F,[g==="x"?"xError2":"yError2"]:E,...B}=r,{bins:O,timeUnits:T,aggregate:z,groupby:j,encoding:ve}=dl(B,n),ne=[...z,...m],ie=l!=="raw"?[]:j,J=Ra(x,f,ve,b);return{transform:[...s.transform??[],...O,...T,...ne.length===0?[]:[{aggregate:ne,groupby:ie}],...y],groupby:ie,continuousAxisChannelDef:f,continuousAxis:g,encodingWithoutContinuousAxis:ve,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:s,tooltipEncoding:J}}function wl(e,t,n){return`${_i(e)} ${n} ${t}`}const Wa="errorband",Lm=new Gr(Wa,Fl);function Fl(e,{config:t}){e={...e,encoding:Vr(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:a,outerSpec:s,tooltipEncoding:u}=$l(e,Wa,t),c=a,l=qa(c,r,i,o,t.errorband),f=e.encoding.x!==void 0&&e.encoding.y!==void 0;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p={...c.interpolate?{interpolate:c.interpolate}:{},...c.tension&&c.interpolate?{tension:c.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):c.interpolate?k(ac("interpolate")):c.tension&&k(ac("tension")),{...s,transform:n,layer:[...l({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...l({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...l({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const Dl={};function Ia(e,t,n){const i=new Gr(e,t);Dl[e]={normalizer:i,parts:n}}Ia(Xr,vl,["box","median","outliers","rule","ticks"]),Ia(Ua,xl,["ticks","rule"]),Ia(Wa,Fl,["band","borders"]);const qm=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Al={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"},kl={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"},Um=D(Al),Wm=D(kl),Cl=D({header:1,headerRow:1,headerColumn:1,headerFacet:1}),Sl=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],gt="_vgsid_",Im={point:{on:"click",fields:[gt],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 Ha(e){return e==="legend"||!!(e!=null&&e.legend)}function Ga(e){return Ha(e)&&H(e)}function Va(e){return!!(e!=null&&e.select)}function El(e){const t=[];for(const n of e||[]){if(Va(n))continue;const{expr:i,bind:r,...o}=n;if(r&&i){const a={...o,bind:r,init:i};t.push(a)}else{const a={...o,...i?{update:i}:{},...r?{bind:r}:{}};t.push(a)}}return t}function Ya(e){return A(e,"concat")}function Jr(e){return A(e,"vconcat")}function Xa(e){return A(e,"hconcat")}function Bl({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function Ot(e){return A(e,"step")}function zl(e){return A(e,"view")||A(e,"width")||A(e,"height")}const Hm=D({align:1,bounds:1,center:1,columns:1,spacing:1});function Ja(e,t){return e[t]??e[t==="width"?"continuousWidth":"continuousHeight"]}function Qa(e,t){const n=Qr(e,t);return Ot(n)?n.step:Ol}function Qr(e,t){return me(e[t]??e[t==="width"?"discreteWidth":"discreteHeight"],{step:e.step})}const Ol=20,Gm={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:Ol},mark:{color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},arc:{},area:{},bar:Em,circle:{},geoshape:{},image:{},line:{},point:{},rect:Ca,rule:{color:"black"},square:{},text:{color:"black"},tick:Bm,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,framesPerSecond:2,animationDuration:5},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:Im,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},Kt=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Pl={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},Nl={blue:Kt[0],orange:Kt[1],red:Kt[2],teal:Kt[3],green:Kt[4],yellow:Kt[5],purple:Kt[6],pink:Kt[7],brown:Kt[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 _l(e){const t=D(e||{}),n={};for(const i of t){const r=e[i];n[i]=Xi(r)?Mu(r):Ge(r)}return n}const Vm=[...Nc,...ul,...Cl,"background","padding","legend","lineBreak","scale","style","title","view"];function Tl(e={}){const{color:t,font:n,fontSize:i,selection:r,...o}=e,a=du({},M(Gm),n?function(u){return{text:{font:u},style:{"guide-label":{font:u},"guide-title":{font:u},"group-title":{font:u},"group-subtitle":{font:u}}}}(n):{},t?function(u={}){return{signals:[{name:"color",value:H(u)?{...Nl,...u}:Nl}],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(u){return{signals:[{name:"fontSize",value:H(u)?{...Pl,...u}:Pl}],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&&fu(a,"selection",r,!0);const s=Re(a,Vm);for(const u of["background","lineBreak","padding"])a[u]&&(s[u]=Ge(a[u]));for(const u of Nc)a[u]&&(s[u]=Ce(a[u]));for(const u of ul)a[u]&&(s[u]=_l(a[u]));for(const u of Cl)a[u]&&(s[u]=Ce(a[u]));if(a.legend&&(s.legend=Ce(a.legend)),a.scale){const{invalid:u,...c}=a.scale,l=Ce(u,{level:1});s.scale={...Ce(c),...D(l).length>0?{invalid:l}:{}}}return a.style&&(s.style=function(u){const c=D(u),l={};for(const f of c)l[f]=_l(u[f]);return l}(a.style)),a.title&&(s.title=Ce(a.title)),a.view&&(s.view=Ce(a.view)),s}const Ym=new Set(["view",...Am]),Xm=["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"],Jm={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...Cm};function Qm(e){e=M(e);for(const t of Xm)delete e[t];if(e.axis)for(const t in e.axis)Xi(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of qm)delete e.legend[t];if(e.mark){for(const t of Pc)delete e.mark[t];e.mark.tooltip&&H(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(El(e.params)),delete e.params);for(const t of Ym){for(const i of Pc)delete e[t][i];const n=Jm[t];if(n)for(const i of n)delete e[t][i];Km(e,t)}for(const t of D(Dl))delete e[t];(function(t){const{titleMarkConfig:n,subtitleMarkConfig:i,subtitle:r}=ju(t.title);Q(n)||(t.style["group-title"]={...t.style["group-title"],...n}),Q(i)||(t.style["group-subtitle"]={...t.style["group-subtitle"],...i}),Q(r)?delete t.title:t.title=r})(e);for(const t in e)H(e[t])&&Q(e[t])&&delete e[t];return Q(e)?void 0:e}function Km(e,t,n,i){t==="view"&&(n="cell");const r={...e[t],...e.style[n??t]};Q(r)||(e.style[n??t]=r),delete e[t]}function Kr(e){return A(e,"layer")}class Ka{map(t,n){return Mr(t)?this.mapFacet(t,n):function(i){return A(i,"repeat")}(t)?this.mapRepeat(t,n):Xa(t)?this.mapHConcat(t,n):Jr(t)?this.mapVConcat(t,n):Ya(t)?this.mapConcat(t,n):this.mapLayerOrUnit(t,n)}mapLayerOrUnit(t,n){if(Kr(t))return this.mapLayer(t,n);if(Qt(t))return this.mapUnit(t,n);throw new Error(ta(t))}mapLayer(t,n){return{...t,layer:t.layer.map(i=>this.mapLayerOrUnit(i,n))}}mapHConcat(t,n){return{...t,hconcat:t.hconcat.map(i=>this.map(i,n))}}mapVConcat(t,n){return{...t,vconcat:t.vconcat.map(i=>this.map(i,n))}}mapConcat(t,n){const{concat:i,...r}=t;return{...r,concat:i.map(o=>this.map(o,n))}}mapFacet(t,n){return{...t,spec:this.map(t.spec,n)}}mapRepeat(t,n){return{...t,spec:this.map(t.spec,n)}}}const Zm={zero:1,center:1,normalize:1},eh=new Set([Bc,Or,zr,_r,Nr,Da,Aa,Pr,zc,Fa]),th=new Set([Or,zr,Bc]);function hi(e){return C(e)&&li(e)==="quantitative"&&!e.bin}function jl(e,t,{orient:n,type:i}){const r=t==="x"?"y":"radius",o=t==="x"&&["bar","area"].includes(i),a=e[t],s=e[r];if(C(a)&&C(s))if(hi(a)&&hi(s)){if(a.stack)return t;if(s.stack)return r;const u=C(a)&&!!a.aggregate;if(u!==(C(s)&&!!s.aggregate))return u?t:r;if(o){if(n==="vertical")return r;if(n==="horizontal")return t}}else{if(hi(a))return t;if(hi(s))return r}else{if(hi(a))return o&&n==="vertical"?void 0:t;if(hi(s))return o&&n==="horizontal"?void 0:r}}function Ml(e,t){var m,y;const n=Bt(e)?e:{type:e},i=n.type;if(!eh.has(i))return null;const r=jl(t,"x",n)||jl(t,"theta",n);if(!r)return null;const o=t[r],a=C(o)?S(o,{}):void 0,s=function(x){switch(x){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(r),u=[],c=new Set;if(t[s]){const x=t[s],b=C(x)?S(x,{}):void 0;b&&b!==a&&(u.push(s),c.add(b))}const l=s==="x"?"xOffset":"yOffset",f=t[l],d=C(f)?S(f,{}):void 0;d&&d!==a&&(u.push(l),c.add(d));const h=Tp.reduce((x,b)=>{if(b!=="tooltip"&&Rn(t,b)){const v=t[b];for(const w of pe(v)){const F=ht(w);if(F.aggregate)continue;const E=S(F,{});E&&c.has(E)||x.push({channel:b,fieldDef:F})}}return x},[]);let p;return o.stack!==void 0?p=Oi(o.stack)?o.stack?"zero":null:o.stack:th.has(i)&&(p="zero"),p&&fe(Zm,p)?fl(t)&&h.length===0?null:((m=o==null?void 0:o.scale)!=null&&m.type&&((y=o==null?void 0:o.scale)==null?void 0:y.type)!==$c&&(o!=null&&o.stack)&&k(function(x){return`Stack is applied to a non-linear scale (${x}).`}(o.scale.type)),L(t[At(r)])?(o.stack!==void 0&&k(`Cannot stack "${g=r}" if there is already "${g}2".`),null):(C(o)&&o.aggregate&&!Ip.has(o.aggregate)&&k(`Stacking is applied even though the aggregate function is non-summative ("${o.aggregate}").`),{groupbyChannels:u,groupbyFields:c,fieldChannel:r,impute:o.impute!==null&&vn(i),stackBy:h,offset:p})):null;var g}function Rl(e,t,n){const i=Ce(e),r=Z("orient",i,n);if(i.orient=function(s,u,c){switch(s){case Nr:case Da:case Aa:case zc:case Fm:case wm:return}const{x:l,y:f,x2:d,y2:h}=u;switch(s){case Or:if(C(l)&&(ke(l.bin)||C(f)&&f.aggregate&&!l.aggregate))return"vertical";if(C(f)&&(ke(f.bin)||C(l)&&l.aggregate&&!f.aggregate))return"horizontal";if(h||d){if(c)return c;if(!d)return(C(l)&&l.type===Nn&&!te(l.bin)||Lr(l))&&C(f)&&ke(f.bin)?"horizontal":"vertical";if(!h)return(C(f)&&f.type===Nn&&!te(f.bin)||Lr(f))&&C(l)&&ke(l.bin)?"vertical":"horizontal"}case _r:if(d&&(!C(l)||!ke(l.bin))&&h&&(!C(f)||!ke(f.bin)))return;case zr:if(h)return C(f)&&ke(f.bin)?"horizontal":"vertical";if(d)return C(l)&&ke(l.bin)?"vertical":"horizontal";if(s===_r){if(l&&!f)return"vertical";if(f&&!l)return"horizontal"}case Pr:case Fa:{const p=Jc(l),g=Jc(f);if(c)return c;if(p&&!g)return s!=="tick"?"horizontal":"vertical";if(!p&&g)return s!=="tick"?"vertical":"horizontal";if(p&&g)return"vertical";{const m=_e(l)&&l.type===si,y=_e(f)&&f.type===si;if(m&&!y)return"vertical";if(!m&&y)return"horizontal"}return}}return"vertical"}(i.type,t,r),r!==void 0&&r!==i.orient&&k(`Specified orient "${i.orient}" overridden with "${r}".`),i.type==="bar"&&i.orient){const s=Z("cornerRadiusEnd",i,n);if(s!==void 0){const u=i.orient==="horizontal"&&t.x2||i.orient==="vertical"&&t.y2?["cornerRadius"]:Sm[i.orient];for(const c of u)i[c]=s;i.cornerRadiusEnd!==void 0&&delete i.cornerRadiusEnd}}const o=Z("opacity",i,n),a=Z("fillOpacity",i,n);return o===void 0&&a===void 0&&(i.opacity=function(s,u){if(U([Nr,Fa,Da,Aa],s)&&!fl(u))return .7}(i.type,t)),Z("cursor",i,n)===void 0&&(i.cursor=function(s,u,c){return u.href||s.href||Z("href",s,c)?"pointer":s.cursor}(i,t,n)),i}function nh(e){const{point:t,line:n,...i}=e;return D(i).length>1?i:i.type}function ih(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:Re(e[t],["point","line"])});return e}function Za(e,t={},n){return e.point==="transparent"?{opacity:0}:e.point?H(e.point)?e.point:{}:e.point!==void 0?null:t.point||n.shape?H(t.point)?t.point:{}:void 0}function Ll(e,t={}){return e.line?e.line===!0?{}:e.line:e.line!==void 0?null:t.line?t.line===!0?{}:t.line:void 0}class rh{constructor(){this.name="path-overlay"}hasMatchingType(t,n){if(Qt(t)){const{mark:i,encoding:r}=t,o=Bt(i)?i:{type:i};switch(o.type){case"line":case"rule":case"trail":return!!Za(o,n[o.type],r);case"area":return!!Za(o,n[o.type],r)||!!Ll(o,n[o.type])}}return!1}run(t,n,i){const{config:r}=n,{params:o,projection:a,mark:s,name:u,encoding:c,...l}=t,f=Vr(c,r),d=Bt(s)?s:{type:s},h=Za(d,r[d.type],f),p=d.type==="area"&&Ll(d,r[d.type]),g=[{name:u,...o?{params:o}:{},mark:nh({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:Re(f,["shape"])}],m=Ml(Rl(d,f,r),f);let y=f;if(m){const{fieldChannel:x,offset:b}=m;y={...f,[x]:{...f[x],...b?{stack:b}:{}}}}return y=Re(y,["y2","x2"]),p&&g.push({...a?{projection:a}:{},mark:{type:"line",...ei(d,["clip","interpolate","tension","tooltip"]),...p},encoding:y}),h&&g.push({...a?{projection:a}:{},mark:{type:"point",opacity:1,filled:!0,...ei(d,["clip","tooltip"]),...h},encoding:y}),i({...l,layer:g},{...n,config:ih(r)})}}function oh(e,t){return t?Hi(e)?Il(e,t):ql(e,t):e}function es(e,t){return t?Il(e,t):e}function ts(e,t,n){const i=t[e];return!R(r=i)&&A(r,"repeat")?i.repeat in n?{...t,[e]:n[i.repeat]}:void k(function(o){return`Unknown repeated value "${o}".`}(i.repeat)):t;var r}function ql(e,t){if((e=ts("field",e,t))!==void 0){if(e===null)return null;if(Na(e)&&Jt(e.sort)){const n=ts("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function Ul(e,t){if(C(e))return ql(e,t);{const n=ts("datum",e,t);return n===e||n.type||(n.type="nominal"),n}}function Wl(e,t){if(!L(e)){if(Vi(e)){const n=Ul(e.condition,t);if(n)return{...e,condition:n};{const{condition:i,...r}=e;return r}}return e}{const n=Ul(e,t);if(n)return n;if(Gi(e))return{condition:e.condition}}}function Il(e,t){const n={};for(const i in e)if(A(e,i)){const r=e[i];if(P(r))n[i]=r.map(o=>Wl(o,t)).filter(o=>o);else{const o=Wl(r,t);o!==void 0&&(n[i]=o)}}return n}class ah{constructor(){this.name="RuleForRangedLine"}hasMatchingType(t){if(Qt(t)){const{encoding:n,mark:i}=t;if(i==="line"||Bt(i)&&i.type==="line")for(const r of Pp){const o=n[Sn(r)];if(n[r]&&(C(o)&&!ke(o.bin)||zt(o)))return!0}}return!1}run(t,n,i){const{encoding:r,mark:o}=t;var a,s;return k((a=!!r.x2,s=!!r.y2,`Line mark is for continuous lines and thus cannot be used with ${a&&s?"x2 and y2":a?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),i({...t,mark:H(o)?{...o,type:"rule"}:"rule"},n)}}function Hl({parentEncoding:e,encoding:t={},layer:n}){let i={};if(e){const r=new Set([...D(e),...D(t)]);for(const o of r){const a=t[o],s=e[o];if(L(a)){const u={...s,...a};i[o]=u}else Vi(a)?i[o]={...a,condition:{...s,...a.condition}}:a||a===null?i[o]=a:(n||mt(s)||N(s)||L(s)||P(s))&&(i[o]=s)}}else i=t;return!i||Q(i)?void 0:i}function Gl(e){const{parentProjection:t,projection:n}=e;return t&&n&&k(function(i){const{parentProjection:r,projection:o}=i;return`Layer's shared projection ${K(r)} is overridden by a child projection ${K(o)}.`}({parentProjection:t,projection:n})),n??t}function ns(e){return A(e,"filter")}function Vl(e){return A(e,"lookup")}function sh(e){return A(e,"pivot")}function uh(e){return A(e,"density")}function ch(e){return A(e,"quantile")}function lh(e){return A(e,"regression")}function fh(e){return A(e,"loess")}function dh(e){return A(e,"sample")}function ph(e){return A(e,"window")}function mh(e){return A(e,"joinaggregate")}function hh(e){return A(e,"flatten")}function gh(e){return A(e,"calculate")}function Yl(e){return A(e,"bin")}function yh(e){return A(e,"impute")}function vh(e){return A(e,"timeUnit")}function bh(e){return A(e,"aggregate")}function xh(e){return A(e,"stack")}function $h(e){return A(e,"fold")}function wh(e){return A(e,"extent")&&!A(e,"density")&&!A(e,"regression")}function Xl(e,t){const{transform:n,...i}=e;return n?{...i,transform:n.map(r=>{if(ns(r))return{filter:is(r,t)};if(Yl(r)&&En(r.bin))return{...r,bin:Ql(r.bin)};if(Vl(r)){const{selection:o,...a}=r.from;return o?{...r,from:{param:o,...a}}:r}return r})}:e}function Jl(e,t){var i,r;const n=M(e);if(C(n)&&En(n.bin)&&(n.bin=Ql(n.bin)),Mn(n)&&((r=(i=n.scale)==null?void 0:i.domain)==null?void 0:r.selection)){const{selection:o,...a}=n.scale.domain;n.scale.domain={...a,...o?{param:o}:{}}}if(Gi(n))if(P(n.condition))n.condition=n.condition.map(o=>{const{selection:a,param:s,test:u,...c}=o;return s?o:{...c,test:is(o,t)}});else{const{selection:o,param:a,test:s,...u}=Jl(n.condition,t);n.condition=a?n.condition:{...u,test:is(n.condition,t)}}return n}function Ql(e){const t=e.extent;if(t!=null&&t.selection){const{selection:n,...i}=t;return{...e,extent:{...i,param:n}}}return e}function is(e,t){const n=i=>Zn(i,r=>{var o;const a={param:r,empty:t.emptySelections[r]??!0};return(o=t.selectionPredicates)[r]??(o[r]=[]),t.selectionPredicates[r].push(a),a});return e.selection?n(e.selection):Zn(e.test||e.filter,i=>i.selection?n(i.selection):i)}class rs extends Ka{map(t,n){const i=n.selections??[];if(t.params&&!Qt(t)){const r=[];for(const o of t.params)Va(o)?i.push(o):r.push(o);t.params=r}return n.selections=i,super.map(t,n)}mapUnit(t,n){const i=n.selections;if(!i||!i.length)return t;const r=(n.path??[]).concat(t.name),o=[];for(const a of i)if(a.views&&a.views.length)for(const s of a.views)(R(s)&&(s===t.name||r.includes(s))||P(s)&&s.map(u=>r.indexOf(u)).every((u,c,l)=>u!==-1&&(c===0||u>l[c-1])))&&o.push(a);else o.push(a);return o.length&&(t.params=o),t}}for(const e of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const t=rs.prototype[e];rs.prototype[e]=function(n,i){return t.call(this,n,Fh(n,i))}}function Fh(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function Kl(e,t){t===void 0&&(t=Tl(e.config));const n=function(a,s={}){const u={config:s};return kh.map(Dh.map(Ah.map(a,u),u),u)}(e,t),{width:i,height:r}=e,o=function(a,s,u){let{width:c,height:l}=s;const f=Qt(a)||Kr(a),d={};f?c=="container"&&l=="container"?(d.type="fit",d.contains="padding"):c=="container"?(d.type="fit-x",d.contains="padding"):l=="container"&&(d.type="fit-y",d.contains="padding"):(c=="container"&&(k(Vu("width")),c=void 0),l=="container"&&(k(Vu("height")),l=void 0));const h={type:"pad",...d,...u?Zl(u.autosize):{},...Zl(a.autosize)};if(h.type!=="fit"||f||(k(Xp),h.type="pad"),c=="container"&&h.type!="fit"&&h.type!="fit-x"&&k(Yu("width")),l=="container"&&h.type!="fit"&&h.type!="fit-y"&&k(Yu("height")),!He(h,{type:"pad"}))return h}(n,{width:i,height:r,autosize:e.autosize},t);return{...n,...o?{autosize:o}:{}}}const Dh=new class extends Ka{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[jm,Mm,Lm,new rh,new ah]}map(e,t){if(Qt(e)){const n=Rn(e.encoding,qt),i=Rn(e.encoding,Ut),r=Rn(e.encoding,yr);if(n||i||r)return this.mapFacetedUnit(e,t)}return super.map(e,t)}mapUnit(e,t){const{parentEncoding:n,parentProjection:i}=t,r=es(e.encoding,t.repeater),o={...e,...e.name?{name:[t.repeaterPrefix,e.name].filter(s=>s).join("_")}:{},...r?{encoding:r}:{}};if(n||i)return this.mapUnitWithParentEncodingOrProjection(o,t);const a=this.mapLayerOrUnit.bind(this);for(const s of this.nonFacetUnitNormalizers)if(s.hasMatchingType(o,t.config))return s.run(o,t,a);return o}mapRepeat(e,t){return function(n){return!P(n.repeat)&&A(n.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:u={},repeaterPrefix:c=""}=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(l=>{const f={...u,layer:l},d=`${(i.name?`${i.name}_`:"")+c}child__layer_${se(l)}`,h=this.mapLayerOrUnit(i,{...t,repeater:f,repeaterPrefix:d});return h.name=d,h})}}mapNonLayerRepeat(e,t){const{repeat:n,spec:i,data:r,...o}=e;!P(n)&&e.columns&&(e=Re(e,["columns"]),k(Ku("repeat")));const a=[],{repeater:s={},repeaterPrefix:u=""}=t,c=!P(n)&&n.row||[s?s.row:null],l=!P(n)&&n.column||[s?s.column:null],f=P(n)&&n||[s?s.repeat:null];for(const h of f)for(const p of c)for(const g of l){const m={repeat:h,row:p,column:g,layer:s.layer},y=(i.name?`${i.name}_`:"")+u+"child__"+(P(n)?`${se(h)}`:(n.row?`row_${se(p)}`:"")+(n.column?`column_${se(g)}`:"")),x=this.map(i,{...t,repeater:m,repeaterPrefix:y});x.name=y,a.push(Re(x,["data"]))}const d=P(n)?e.columns:n.column?n.column.length:1;return{data:i.data??r,align:"all",...o,columns:d,concat:a}}mapFacet(e,t){const{facet:n}=e;return Hi(n)&&e.columns&&(e=Re(e,["columns"]),k(Ku("facet"))),super.mapFacet(e,t)}mapUnitWithParentEncodingOrProjection(e,t){const{encoding:n,projection:i}=e,{parentEncoding:r,parentProjection:o,config:a}=t,s=Gl({parentProjection:o,projection:i}),u=Hl({parentEncoding:r,encoding:es(n,t.repeater)});return this.mapUnit({...e,...s?{projection:s}:{},...u?{encoding:u}:{}},{config:a})}mapFacetedUnit(e,t){const{row:n,column:i,facet:r,...o}=e.encoding,{mark:a,width:s,projection:u,height:c,view:l,params:f,encoding:d,...h}=e,{facetMapping:p,layout:g}=this.getFacetMappingAndLayout({row:n,column:i,facet:r},t),m=es(o,t.repeater);return this.mapFacet({...h,...g,facet:p,spec:{...s?{width:s}:{},...c?{height:c}:{},...l?{view:l}:{},...u?{projection:u}:{},mark:a,encoding:m,...f?{params:f}:{}}},t)}getFacetMappingAndLayout(e,t){const{row:n,column:i,facet:r}=e;if(n||i){r&&k(`Facet encoding dropped as ${(o=[...n?[qt]:[],...i?[Ut]:[]]).join(" and ")} ${o.length>1?"are":"is"} also specified.`);const a={},s={};for(const u of[qt,Ut]){const c=e[u];if(c){const{align:l,center:f,spacing:d,columns:h,...p}=c;a[u]=p;for(const g of["align","center","spacing"])c[g]!==void 0&&(s[g]??(s[g]={}),s[g][u]=c[g])}}return{facetMapping:a,layout:s}}{const{align:a,center:s,spacing:u,columns:c,...l}=r;return{facetMapping:oh(l,t.repeater),layout:{...a?{align:a}:{},...s?{center:s}:{},...u?{spacing:u}:{},...c?{columns:c}:{}}}}var o}mapLayer(e,{parentEncoding:t,parentProjection:n,...i}){const{encoding:r,projection:o,...a}=e,s={...i,parentEncoding:Hl({parentEncoding:t,encoding:r,layer:!0}),parentProjection:Gl({parentProjection:n,projection:o})};return super.mapLayer({...a,...e.name?{name:[s.repeaterPrefix,e.name].filter(u=>u).join("_")}:{}},s)}},Ah=new class extends Ka{map(e,t){return t.emptySelections??(t.emptySelections={}),t.selectionPredicates??(t.selectionPredicates={}),e=Xl(e,t),super.map(e,t)}mapLayerOrUnit(e,t){if((e=Xl(e,t)).encoding){const n={};for(const[i,r]of un(e.encoding))n[i]=Jl(r,t);e={...e,encoding:n}}return super.mapLayerOrUnit(e,t)}mapUnit(e,t){const{selection:n,...i}=e;return n?{...i,params:un(n).map(([r,o])=>{const{init:a,bind:s,empty:u,...c}=o;c.type==="single"?(c.type="point",c.toggle=!1):c.type==="multi"&&(c.type="point"),t.emptySelections[r]=u!=="none";for(const l of Ae(t.selectionPredicates[r]??{}))l.empty=u!=="none";return{name:r,value:a,select:c,bind:s}})}:e}},kh=new rs;function Zl(e){return R(e)?{type:e}:e??{}}const Ch=["background","padding"];function ef(e,t){const n={};for(const i of Ch)e&&e[i]!==void 0&&(n[i]=Ge(e[i]));return t&&(n.params=e.params),n}class on{constructor(t={},n={}){this.explicit=t,this.implicit=n}clone(){return new on(M(this.explicit),M(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(t){return me(this.explicit[t],this.implicit[t])}getWithExplicit(t){return this.explicit[t]!==void 0?{explicit:!0,value:this.explicit[t]}:this.implicit[t]!==void 0?{explicit:!1,value:this.implicit[t]}:{explicit:!1,value:void 0}}setWithExplicit(t,{value:n,explicit:i}){n!==void 0&&this.set(t,n,i)}set(t,n,i){return delete this[i?"implicit":"explicit"][t],this[i?"explicit":"implicit"][t]=n,this}copyKeyFromSplit(t,{explicit:n,implicit:i}){n[t]!==void 0?this.set(t,n[t],!0):i[t]!==void 0&&this.set(t,i[t],!1)}copyKeyFromObject(t,n){n[t]!==void 0&&this.set(t,n[t],!0)}copyAll(t){for(const n of D(t.combine())){const i=t.getWithExplicit(n);this.setWithExplicit(n,i)}}}function Pt(e){return{explicit:!0,value:e}}function yt(e){return{explicit:!1,value:e}}function tf(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:Zr(t,n,i,r)}}function Zr(e,t,n,i){return e.explicit&&t.explicit&&k(function(r,o,a,s){return`Conflicting ${o.toString()} property "${r.toString()}" (${K(a)} and ${K(s)}). Using ${K(a)}.`}(n,i,e.value,t.value)),e}function $n(e,t,n,i,r=Zr){return e===void 0||e.value===void 0?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:He(e.value,t.value)?e:r(e,t,n,i)}class Sh extends on{constructor(t={},n={},i=!1){super(t,n),this.explicit=t,this.implicit=n,this.parseNothing=i}clone(){const t=super.clone();return t.parseNothing=this.parseNothing,t}}function gi(e){return A(e,"url")}function Ji(e){return A(e,"values")}function nf(e){return A(e,"name")&&!gi(e)&&!Ji(e)&&!wn(e)}function wn(e){return e&&(rf(e)||of(e)||os(e))}function rf(e){return A(e,"sequence")}function of(e){return A(e,"sphere")}function os(e){return A(e,"graticule")}var ce;function af({invalid:e,isPath:t}){switch(_c(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(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"})(ce||(ce={}));class Y{constructor(t,n){this.debugName=n,this._children=[],this._parent=null,t&&(this.parent=t)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(t){this._parent=t,t&&t.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(t,n){this._children.includes(t)?k("Attempt to add the same child twice."):n!==void 0?this._children.splice(n,0,t):this._children.push(t)}removeChild(t){const n=this._children.indexOf(t);return this._children.splice(n,1),n}remove(){let t=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,t++)}insertAsParentOf(t){const n=t.parent;n.removeChild(this),this.parent=n,t.parent=this}swapWithParent(){const t=this._parent,n=t.parent;for(const r of this._children)r.parent=t;this._children=[],t.removeChild(this);const i=t.parent.removeChild(t);this._parent=n,n.addChild(this,i),t.parent=this}}class We extends Y{clone(){const t=new this.constructor;return t.debugName=`clone_${this.debugName}`,t._source=this._source,t._name=`clone_${this._name}`,t.type=this.type,t.refCounts=this.refCounts,t.refCounts[t._name]=0,t}constructor(t,n,i,r){super(t,n),this.type=i,this.refCounts=r,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${vu()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(t){this._source=t}}function as(e){return e.as!==void 0}function sf(e){return`${e}_end`}class _t extends Y{clone(){return new _t(null,M(this.timeUnits))}constructor(t,n){super(t),this.timeUnits=n}static makeFromEncoding(t,n){const i=n.reduceFieldDef((r,o,a)=>{const{field:s,timeUnit:u}=o;if(u){let c;if(Pn(u)){if(le(n)){const{mark:l,markDef:f,config:d}=n,h=bn({fieldDef:o,markDef:f,config:d});(Ui(l)||h)&&(c={timeUnit:$e(u),field:s})}}else c={as:S(o,{forAs:!0}),field:s,timeUnit:u};if(le(n)){const{mark:l,markDef:f,config:d}=n,h=bn({fieldDef:o,markDef:f,config:d});Ui(l)&&he(a)&&h!==.5&&(c.rectBandPosition=h)}c&&(r[I(c)]=c)}return r},{});return Q(i)?null:new _t(t,i)}static makeFromTransform(t,n){const{timeUnit:i,...r}={...n},o={...r,timeUnit:$e(i)};return new _t(t,{[I(o)]:o})}merge(t){this.timeUnits={...this.timeUnits};for(const n in t.timeUnits)this.timeUnits[n]||(this.timeUnits[n]=t.timeUnits[n]);for(const n of t.children)t.removeChild(n),n.parent=this;t.remove()}removeFormulas(t){const n={};for(const[i,r]of un(this.timeUnits)){const o=as(r)?r.as:`${r.field}_end`;t.has(o)||(n[i]=r)}this.timeUnits=n}producedFields(){return new Set(Ae(this.timeUnits).map(t=>as(t)?t.as:sf(t.field)))}dependentFields(){return new Set(Ae(this.timeUnits).map(t=>t.field))}hash(){return`TimeUnit ${I(this.timeUnits)}`}assemble(){const t=[];for(const n of Ae(this.timeUnits)){const{rectBandPosition:i}=n,r=$e(n.timeUnit);if(as(n)){const{field:o,as:a}=n,{unit:s,utc:u,...c}=r,l=[a,`${a}_end`];t.push({field:Je(o),type:"timeunit",...s?{units:Sr(s)}:{},...u?{timezone:"utc"}:{},...c,as:l}),t.push(...cf(l,i,r))}else if(n){const{field:o}=n,a=o.replaceAll("\\.","."),s=uf({timeUnit:r,field:a}),u=sf(a);t.push({type:"formula",expr:s,as:u}),t.push(...cf([a,u],i,r))}}return t}}const eo="offsetted_rect_start",to="offsetted_rect_end";function uf({timeUnit:e,field:t,reverse:n}){const{unit:i,utc:r}=e,o=pc(i),{part:a,step:s}=yc(o,e.step);return`${r?"utcOffset":"timeOffset"}('${a}', ${V(t)}, ${n?-s:s})`}function cf([e,t],n,i){if(n!==void 0&&n!==.5){const r=V(e),o=V(t);return[{type:"formula",expr:lf([uf({timeUnit:i,field:e,reverse:!0}),r],n+.5),as:`${e}_${eo}`},{type:"formula",expr:lf([r,o],n+.5),as:`${e}_${to}`}]}return[]}function lf([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const Qi="_tuple_fields";class Eh{constructor(...t){this.items=t,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const Bh={defined:()=>!0,parse:(e,t,n)=>{const i=t.name,r=t.project??(t.project=new Eh),o={},a={},s=new Set,u=(p,g)=>{const m=g==="visual"?p.channel:p.field;let y=se(`${i}_${m}`);for(let x=1;s.has(y);x++)y=se(`${i}_${m}_${x}`);return s.add(y),{[g]:y}},c=t.type,l=e.config.selection[c],f=n.value!==void 0?pe(n.value):null;let{fields:d,encodings:h}=H(n.select)?n.select:{};if(!d&&!h&&f){for(const p of f)if(H(p))for(const g of D(p))Op(g)?(h||(h=[])).push(g):c==="interval"?(k('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),h=l.encodings):(d??(d=[])).push(g)}d||h||(h=l.encodings,"fields"in l&&(d=l.fields));for(const p of h??[]){const g=e.fieldDef(p);if(g){let m=g.field;if(g.aggregate){k(Jp(p,g.aggregate));continue}if(!m){k(Ju(p));continue}if(g.timeUnit&&!Pn(g.timeUnit)){m=e.vgField(p);const y={timeUnit:g.timeUnit,as:m,field:g.field};a[I(y)]=y}if(!o[m]){const y={field:m,channel:p,type:c==="interval"&&kt(p)&&dt(e.getScaleComponent(p).get("type"))?"R":g.bin?"R-RE":"E",index:r.items.length};y.signals={...u(y,"data"),...u(y,"visual")},r.items.push(o[m]=y),r.hasField[m]=o[m],r.hasSelectionId=r.hasSelectionId||m===gt,Au(p)?(y.geoChannel=p,y.channel=Du(p),r.hasChannel[y.channel]=o[m]):r.hasChannel[p]=o[m]}}else k(Ju(p))}for(const p of d??[]){if(r.hasField[p])continue;const g={type:"E",field:p,index:r.items.length};g.signals={...u(g,"data")},r.items.push(g),r.hasField[p]=g,r.hasSelectionId=r.hasSelectionId||p===gt}f&&(t.init=f.map(p=>r.items.map(g=>H(p)?p[g.geoChannel||g.channel]!==void 0?p[g.geoChannel||g.channel]:p[g.field]:p))),Q(a)||(r.timeUnit=new _t(null,a))},signals:(e,t,n)=>{const i=t.name+Qi;return n.filter(r=>r.name===i).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map(mf)})}},ff="_curr",no="anim_value",yi="anim_clock",ss="eased_anim_clock",df="min_extent",pf="max_range_extent",us="last_tick_at",cs="is_playing",zh=1/60*1e3,Oh={defined:e=>e.type==="point",topLevelSignals:(e,t,n)=>(Nt(t)&&(n=n.concat([{name:yi,init:"0",on:[{events:{type:"timer",throttle:zh},update:`${cs} ? (${yi} + (now() - ${us}) > ${pf} ? 0 : ${yi} + (now() - ${us})) : ${yi}`}]},{name:us,init:"now()",on:[{events:[{signal:yi},{signal:cs}],update:"now()"}]},{name:cs,init:"true"}])),n),signals:(e,t,n)=>{const i=t.name,r=i+Qi,o=t.project,a="(item().isVoronoi ? datum.datum : datum)",s=Ae(e.component.selection??{}).reduce((d,h)=>h.type==="interval"?d.concat(h.name+vi):d,[]).map(d=>`indexof(item().mark.name, '${d}') < 0`).join(" && "),u="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(s?` && ${s}`:"");let c=`unit: ${Un(e)}, `;if(t.project.hasSelectionId?c+=`${gt}: ${a}[${W(gt)}]`:Nt(t)?c+=`fields: ${r}, values: [${no} ? ${no} : ${df}]`:c+=`fields: ${r}, values: [${o.items.map(d=>{const h=e.fieldDef(d.channel);return h!=null&&h.bin?`[${a}[${W(e.vgField(d.channel,{}))}], ${a}[${W(e.vgField(d.channel,{binSuffix:"end"}))}]]`:`${a}[${W(d.field)}]`}).join(", ")}]`,Nt(t))return n.concat((l=t.name,f=e.scaleName(ln),[{name:ss,update:yi},{name:`${l}_domain`,init:`domain('${f}')`},{name:df,init:`extent(${l}_domain)[0]`},{name:pf,init:`extent(range('${f}'))[1]`},{name:no,update:`invert('${f}', ${ss})`}]),[{name:i+tn,on:[{events:[{signal:ss},{signal:no}],update:`{${c}}`,force:!0}]}]);{const d=t.events;return n.concat([{name:i+tn,on:d?[{events:d,update:`${u} ? {${c}} : null`,force:!0}]:[]}])}var l,f}};function mf(e){const{signals:t,hasLegend:n,index:i,...r}=e;return r.field=Je(r.field),r}function Ln(e,t=!0,n=Fp){if(P(e)){const i=e.map(r=>Ln(r,t,n));return t?`[${i.join(", ")}]`:i}return zn(e)?n(t?On(e):function(i){const r=sa(i,!0);return i.utc?+new Date(Date.UTC(...r)):+new Date(...r)}(e)):t?n(K(e)):e}function Ph(e,t){for(const n of Ae(e.component.selection??{})){const i=n.name;let r=`${i}${tn}, ${n.resolve==="global"?"true":`{unit: ${Un(e)}}`}`;for(const o of so)o.defined(n)&&(o.signals&&(t=o.signals(e,n,t)),o.modifyExpr&&(r=o.modifyExpr(e,n,r)));t.push({name:i+Yh,on:[{events:{signal:n.name+tn},update:`modify(${W(n.name+qn)}, ${r})`}]})}return ls(t)}function Nh(e,t){if(e.component.selection&&D(e.component.selection).length){const n=W(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:Kn("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return ls(t)}function hf(e,t){for(const n of Ae(e.component.selection??{}))for(const i of so)i.defined(n)&&i.marks&&(t=i.marks(e,n,t));return t}function ls(e){return e.map(t=>(t.on&&!t.on.length&&delete t.on,t))}const Zt={defined:e=>e.type==="interval"&&e.resolve==="global"&&e.bind&&e.bind==="scales",parse:(e,t)=>{const n=t.scales=[];for(const i of t.project.items){const r=i.channel;if(!kt(r))continue;const o=e.getScaleComponent(r),a=o?o.get("type"):void 0;a=="sequential"&&k("Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc"),o&&dt(a)?(o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)):k("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter(a=>n.filter(s=>s.name===a.signals.data).length===0);if(!e.parent||ds(e)||i.length===0)return n;const r=n.find(a=>a.name===t.name);let o=r.update;if(o.includes(Rf))r.update=`{${i.map(a=>`${W(Je(a.field))}: ${a.signals.data}`).join(", ")}}`;else{for(const a of i){const s=`${W(Je(a.field))}: ${a.signals.data}`;o.includes(s)||(o=`${o.substring(0,o.length-1)}, ${s}}`)}r.update=o}return n.concat(i.map(a=>({name:a.signals.data})))},signals:(e,t,n)=>{if(e.parent&&!ds(e))for(const i of t.scales){const r=n.find(o=>o.name===i.signals.data);r.push="outer",delete r.value,delete r.update}return n}};function fs(e,t){return`domain(${W(e.scaleName(t))})`}function ds(e){return e.parent&&Fi(e.parent)&&(!e.parent.parent||ds(e.parent.parent))}const vi="_brush",gf="_scale_trigger",Ki="geo_interval_init_tick",yf="_init",_h={defined:e=>e.type==="interval",parse:(e,t,n)=>{var i;if(e.hasProjection){const r={...H(n.select)?n.select:{}};r.fields=[gt],r.encodings||(r.encodings=n.value?D(n.value):[ct,ut]),n.select={type:"interval",...r}}if(t.translate&&!Zt.defined(t)){const r=`!event.item || event.item.mark.name !== ${W(t.name+vi)}`;for(const o of t.events){if(!o.between){k(`${o} is not an ordered event stream for interval selections.`);continue}const a=pe((i=o.between[0]).filter??(i.filter=[]));a.includes(r)||a.push(r)}}},signals:(e,t,n)=>{const i=t.name,r=i+tn,o=Ae(t.project.hasChannel).filter(s=>s.channel===ue||s.channel===xe),a=t.init?t.init[0]:null;if(n.push(...o.reduce((s,u)=>s.concat(function(c,l,f,d){const h=!c.hasProjection,p=f.channel,g=f.signals.visual,m=W(h?c.scaleName(p):c.projectionName()),y=w=>`scale(${m}, ${w})`,x=c.getSizeSignalRef(p===ue?"width":"height").signal,b=`${p}(unit)`,v=l.events.reduce((w,F)=>[...w,{events:F.between[0],update:`[${b}, ${b}]`},{events:F,update:`[${g}[0], clamp(${b}, 0, ${x})]`}],[]);if(h){const w=f.signals.data,F=Zt.defined(l),E=c.getScaleComponent(p),B=E?E.get("type"):void 0,O=d?{init:Ln(d,!0,y)}:{value:[]};return v.push({events:{signal:l.name+gf},update:dt(B)?`[${y(`${w}[0]`)}, ${y(`${w}[1]`)}]`:"[0, 0]"}),F?[{name:w,on:[]}]:[{name:g,...O,on:v},{name:w,...d?{init:Ln(d)}:{},on:[{events:{signal:g},update:`${g}[0] === ${g}[1] ? null : invert(${m}, ${g})`}]}]}{const w=p===ue?0:1,F=l.name+yf;return[{name:g,...d?{init:`[${F}[0][${w}], ${F}[1][${w}]]`}:{value:[]},on:v}]}}(e,t,u,a&&a[u.index])),[])),e.hasProjection){const s=W(e.projectionName()),u=e.projectionName()+"_center",{x:c,y:l}=t.project.hasChannel,f=c&&c.signals.visual,d=l&&l.signals.visual,h=c?a&&a[c.index]:`${u}[0]`,p=l?a&&a[l.index]:`${u}[1]`,g=b=>e.getSizeSignalRef(b).signal,m=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":g("width")}, ${d?d+"[1]":g("height")}]]`;a&&(n.unshift({name:i+yf,init:`[scale(${s}, [${c?h[0]:h}, ${l?p[0]:p}]), scale(${s}, [${c?h[1]:h}, ${l?p[1]:p}])]`}),!c||!l)&&(n.find(b=>b.name===u)||n.unshift({name:u,update:`invert(${s}, [${g("width")}/2, ${g("height")}/2])`}));const y=`vlSelectionTuples(${`intersect(${m}, {markname: ${W(e.getName("marks"))}}, unit.mark)`}, ${`{unit: ${Un(e)}}`})`,x=o.map(b=>b.signals.visual);return n.concat({name:r,on:[{events:[...x.length?[{signal:x.join(" || ")}]:[],...a?[{signal:Ki}]:[]],update:y}]})}{if(!Zt.defined(t)){const c=i+gf,l=o.map(f=>{const d=f.channel,{data:h,visual:p}=f.signals,g=W(e.scaleName(d)),m=dt(e.getScaleComponent(d).get("type"))?"+":"";return`(!isArray(${h}) || (${m}invert(${g}, ${p})[0] === ${m}${h}[0] && ${m}invert(${g}, ${p})[1] === ${m}${h}[1]))`});l.length&&n.push({name:c,value:{},on:[{events:o.map(f=>({scale:e.scaleName(f.channel)})),update:l.join(" && ")+` ? ${c} : {}`}]})}const s=o.map(c=>c.signals.data),u=`unit: ${Un(e)}, fields: ${i+Qi}, values`;return n.concat({name:r,...a?{init:`{${u}: ${Ln(a)}}`}:{},...s.length?{on:[{events:[{signal:s.join(" || ")}],update:`${s.join(" && ")} ? {${u}: [${s}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>(le(e)&&e.hasProjection&&t.init&&(n.filter(i=>i.name===Ki).length||n.unshift({name:Ki,value:null,on:[{events:"timer{1}",update:`${Ki} === null ? {} : ${Ki}`}]})),n),marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,a=r==null?void 0:r.signals.visual,s=o==null?void 0:o.signals.visual,u=`data(${W(t.name+qn)})`;if(Zt.defined(t)||!r&&!o)return n;const c={x:r!==void 0?{signal:`${a}[0]`}:{value:0},y:o!==void 0?{signal:`${s}[0]`}:{value:0},x2:r!==void 0?{signal:`${a}[1]`}:{field:{group:"width"}},y2:o!==void 0?{signal:`${s}[1]`}:{field:{group:"height"}}};if(t.resolve==="global")for(const m of D(c))c[m]=[{test:`${u}.length && ${u}[0].unit === ${Un(e)}`,...c[m]},{value:0}];const{fill:l,fillOpacity:f,cursor:d,...h}=t.mark,p=D(h).reduce((m,y)=>(m[y]=[{test:[r!==void 0&&`${a}[0] !== ${a}[1]`,o!==void 0&&`${s}[0] !== ${s}[1]`].filter(x=>x).join(" && "),value:h[y]},{value:null}],m),{}),g=d??(t.translate?"move":null);return[{name:`${i+vi}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:l},fillOpacity:{value:f}},update:c}},...n,{name:i+vi,type:"rect",clip:!0,encode:{enter:{...g?{cursor:{value:g}}:{},fill:{value:"transparent"}},update:{...c,...p}}}]}};function bi({model:e,channelDef:t,vgChannel:n,invalidValueRef:i,mainRefFn:r}){const o=Gi(t)&&t.condition;let a=[];o&&(a=pe(o).map(u=>{const c=r(u);if(function(l){return A(l,"param")}(u)){const{param:l,empty:f}=u;return{test:nd(e,{param:l,empty:f}),...c}}return{test:po(e,u.test),...c}})),i!==void 0&&a.push(i);const s=r(t);return s!==void 0&&a.push(s),a.length>1||a.length===1&&a[0].test?{[n]:a}:a.length===1?{[n]:a[0]}:{}}function ps(e,t="text"){const n=e.encoding[t];return bi({model:e,channelDef:n,vgChannel:t,mainRefFn:i=>io(i,e.config),invalidValueRef:void 0})}function io(e,t,n="datum"){if(e){if(mt(e))return re(e.value);if(L(e)){const{format:i,formatType:r}=Ur(e);return za({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function vf(e,t={}){const{encoding:n,markDef:i,config:r,stack:o}=e,a=n.tooltip;if(P(a))return{tooltip:xf({tooltip:a},o,r,t)};{const s=t.reactiveGeom?"datum.datum":"datum";return bi({model:e,channelDef:a,vgChannel:"tooltip",mainRefFn:u=>{const c=io(u,r,s);if(c)return c;if(u===null)return;let l=Z("tooltip",i,r);return l===!0&&(l={content:"encoding"}),R(l)?{value:l}:H(l)?N(l)?l:l.content==="encoding"?xf(n,o,r,t):{signal:s}:void 0},invalidValueRef:void 0})}}function bf(e,t,n,{reactiveGeom:i}={}){const r={...n,...n.tooltipFormat},o=new Set,a=i?"datum.datum":"datum",s=[];function u(l,f){const d=Sn(f),h=_e(l)?l:{...l,type:e[d].type},p=h.title||Ta(h,r),g=pe(p).join(", ").replaceAll(/"/g,'\\"');let m;if(he(f)){const y=f==="x"?"x2":"y2",x=ht(e[y]);if(ke(h.bin)&&x){const b=S(h,{expr:a}),v=S(x,{expr:a}),{format:w,formatType:F}=Ur(h);m=Ii(b,v,w,F,r),o.add(y)}}if((he(f)||f===Qe||f===st)&&t&&t.fieldChannel===f&&t.offset==="normalize"){const{format:y,formatType:x}=Ur(h);m=za({fieldOrDatumDef:h,format:y,formatType:x,expr:a,config:r,normalizeStack:!0}).signal}m??(m=io(h,r,a).signal),s.push({channel:f,key:g,value:m})}Ma(e,(l,f)=>{C(l)?u(l,f):Rr(l)&&u(l.condition,f)});const c={};for(const{channel:l,key:f,value:d}of s)o.has(l)||c[f]||(c[f]=d);return c}function xf(e,t,n,{reactiveGeom:i}={}){const r=bf(e,t,n,{reactiveGeom:i}),o=un(r).map(([a,s])=>`"${a}": ${s}`);return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function Th(e){const{markDef:t,config:n}=e,i=Z("aria",t,n);return i===!1?{}:{...i?{aria:i}:{},...jh(e),...Mh(e)}}function jh(e){const{mark:t,markDef:n,config:i}=e;if(i.aria===!1)return{};const r=Z("ariaRoleDescription",n,i);return r!=null?{ariaRoleDescription:{value:r}}:fe(Vp,t)?{}:{ariaRoleDescription:{value:t}}}function Mh(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return bi({model:e,channelDef:o,vgChannel:"description",mainRefFn:u=>io(u,e.config),invalidValueRef:void 0});const a=Z("description",n,i);if(a!=null)return{description:re(a)};if(i.aria===!1)return{};const s=bf(t,r,i);return Q(s)?void 0:{description:{signal:un(s).map(([u,c],l)=>`"${l>0?"; ":""}${u}: " + (${c})`).join(" + ")}}}function Se(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:a}=n;let{defaultRef:s,defaultValue:u}=n;const c=r[e];s===void 0&&(u??(u=Z(e,i,o,{vgChannel:a,ignoreVgConfig:!Gi(c)})),u!==void 0&&(s=re(u)));const l={markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e)},f=jc({...l,scaleChannel:e,channelDef:c});return bi({model:t,channelDef:c,vgChannel:a??e,invalidValueRef:f,mainRefFn:d=>Ba({...l,channel:e,channelDef:d,stack:null,defaultRef:s})})}function $f(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,a=t.filled??Z("filled",n,r),s=U(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,u=Z(a===!0?"color":void 0,n,r,{vgChannel:"fill"})??r.mark[a===!0&&"color"]??s,c=Z(a===!1?"color":void 0,n,r,{vgChannel:"stroke"})??r.mark[a===!1&&"color"],l=a?"fill":"stroke",f={...u?{fill:re(u)}:{},...c?{stroke:re(c)}:{}};return n.color&&(a?n.fill:n.stroke)&&k(nc("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...Se("color",e,{vgChannel:l,defaultValue:a?u:c}),...Se("fill",e,{defaultValue:i.fill?u:void 0}),...Se("stroke",e,{defaultValue:i.stroke?c:void 0})}}function Rh(e){const{encoding:t,mark:n}=e,i=t.order;return!vn(n)&&mt(i)?bi({model:e,channelDef:i,vgChannel:"zindex",mainRefFn:r=>re(r.value),invalidValueRef:void 0}):{}}function Zi({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,a=t[o],s=n[o];if((o==="xOffset"||o==="yOffset")&&s)return{offsetType:"encoding",offset:Ba({channel:o,channelDef:s,markDef:t,config:i==null?void 0:i.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:re(a),bandPosition:r})};const u=t[o];return u?{offsetType:"visual",offset:u}:{}}function Te(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:a,stack:s}=t,u=r[e],c=r[At(e)],l=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=Zi({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),p=ms({model:t,defaultPos:n,channel:e,scaleName:l,scale:f}),g=!u&&he(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:function(m){const{channel:y,channelDef:x,scaleName:b,stack:v,offset:w,markDef:F}=m;if(L(x)&&v&&y===v.fieldChannel){if(C(x)){let E=x.bandPosition;if(E!==void 0||F.type!=="text"||y!=="radius"&&y!=="theta"||(E=.5),E!==void 0)return Tr({scaleName:b,fieldOrDatumDef:x,startSuffix:"start",bandPosition:E,offset:w})}return Tn(x,b,{suffix:"end"},{offset:w})}return Ea(m)}({channel:e,channelDef:u,channel2Def:c,markDef:o,config:a,scaleName:l,scale:f,stack:s,offset:d,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return g?{[i||e]:g}:void 0}function ms({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:a}=e;return()=>{const s=Sn(n),u=hn(n),c=Z(n,o,a,{vgChannel:u});if(c!==void 0)return Wi(n,c);switch(t){case"zeroOrMin":return wf({scaleName:i,scale:r,mode:"zeroOrMin",mainChannel:s,config:a});case"zeroOrMax":return wf({scaleName:i,scale:r,mode:{zeroOrMax:{widthSignal:e.width.signal,heightSignal:e.height.signal}},mainChannel:s,config:a});case"mid":return{...e[Ue(n)],mult:.5}}}}function wf({mainChannel:e,config:t,...n}){const i=Tc(n),{mode:r}=n;if(i)return i;switch(e){case"radius":{if(r==="zeroOrMin")return{value:0};const{widthSignal:o,heightSignal:a}=r.zeroOrMax;return{signal:`min(${o},${a})/2`}}case"theta":return r==="zeroOrMin"?{value:0}:{signal:"2*PI"};case"x":return r==="zeroOrMin"?{value:0}:{field:{group:"width"}};case"y":return r==="zeroOrMin"?{field:{group:"height"}}:{value:0}}}const Lh={left:"x",center:"xc",right:"x2"},qh={top:"y",middle:"yc",bottom:"y2"};function Ff(e,t,n,i="middle"){if(e==="radius"||e==="theta")return hn(e);const r=e==="x"?"align":"baseline",o=Z(r,t,n);let a;return N(o)?(k(function(s){return`The ${s} for range marks cannot be an expression`}(r)),a=void 0):a=o,e==="x"?Lh[a||(i==="top"?"left":"center")]:qh[a||i]}function ro(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?Df(e,t,{defaultPos:n,defaultPos2:i}):Te(e,t,{defaultPos:n})}function Df(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,a=At(e),s=Ue(e),u=function(c,l,f){const{encoding:d,mark:h,markDef:p,stack:g,config:m}=c,y=Sn(f),x=Ue(f),b=hn(f),v=d[y],w=c.scaleName(y),F=c.getScaleComponent(y),{offset:E}=Zi(f in d||f in p?{channel:f,markDef:p,encoding:d,model:c}:{channel:y,markDef:p,encoding:d,model:c});if(!v&&(f==="x2"||f==="y2")&&(d.latitude||d.longitude)){const O=Ue(f),T=c.markDef[O];return T!=null?{[O]:{value:T}}:{[b]:{field:c.getName(f)}}}const B=function({channel:O,channelDef:T,channel2Def:z,markDef:j,config:ve,scaleName:ne,scale:ie,stack:J,offset:ee,defaultRef:de}){return L(T)&&J&&O.charAt(0)===J.fieldChannel.charAt(0)?Tn(T,ne,{suffix:"start"},{offset:ee}):Ea({channel:O,channelDef:z,scaleName:ne,scale:ie,stack:J,markDef:j,config:ve,offset:ee,defaultRef:de})}({channel:f,channelDef:v,channel2Def:d[f],markDef:p,config:m,scaleName:w,scale:F,stack:g,offset:E,defaultRef:void 0});return B!==void 0?{[b]:B}:oo(f,p)||oo(f,{[f]:ea(f,p,m.style),[x]:ea(x,p,m.style)})||oo(f,m[h])||oo(f,m.mark)||{[b]:ms({model:c,defaultPos:l,channel:f,scaleName:w,scale:F})()}}(t,i,a);return{...Te(e,t,{defaultPos:n,vgChannel:u[s]?Ff(e,r,o):hn(e)}),...u}}function oo(e,t){const n=Ue(e),i=hn(e);if(t[i]!==void 0)return{[i]:Wi(e,t[i])};if(t[e]!==void 0)return{[i]:Wi(e,t[e])};if(t[n]){const r=t[n];if(!_n(r))return{[n]:Wi(e,r)};k(function(o){return`Position range does not support relative band size for ${o}.`}(n))}}function en(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.type,a=At(t),s=Ue(t),u=i[t],c=i[a],l=e.getScaleComponent(t),f=l?l.get("type"):void 0,d=r.orient,h=i[s]??i.size??Z("size",r,n,{vgChannel:s}),p=Eu(t),g=o==="bar"&&(t==="x"?d==="vertical":d==="horizontal")||o==="tick"&&(t==="y"?d==="vertical":d==="horizontal");return!C(u)||!(te(u.bin)||ke(u.bin)||u.timeUnit&&!c)||h&&!_n(h)||i[p]||we(f)?(L(u)&&we(f)||g)&&!c?function(m,y,x){var it,be;const{markDef:b,encoding:v,config:w,stack:F}=x,E=b.orient,B=x.scaleName(y),O=x.getScaleComponent(y),T=Ue(y),z=At(y),j=Eu(y),ve=x.scaleName(j),ne=x.getScaleComponent(Go(y)),ie=b.type==="tick"||E==="horizontal"&&y==="y"||E==="vertical"&&y==="x";let J;(v.size||b.size)&&(ie?J=Se("size",x,{vgChannel:T,defaultRef:re(b.size)}):k(function(q){return`Cannot apply size to non-oriented mark "${q}".`}(b.type)));const ee=!!J,de=Vc({channel:y,fieldDef:m,markDef:b,config:w,scaleType:(it=O||ne)==null?void 0:it.get("type"),useVlSizeChannel:ie});J=J||{[T]:Uh(T,ve||B,ne||O,w,de,!!m,b.type)};const tt=((be=O||ne)==null?void 0:be.get("type"))==="band"&&_n(de)&&!ee?"top":"middle",Ye=Ff(y,b,w,tt),nt=Ye==="xc"||Ye==="yc",{offset:je,offsetType:jt}=Zi({channel:y,markDef:b,encoding:v,model:x,bandPosition:nt?.5:0}),ge=Ea({channel:y,channelDef:m,markDef:b,config:w,scaleName:B,scale:O,stack:F,offset:je,defaultRef:ms({model:x,defaultPos:"mid",channel:y,scaleName:B,scale:O}),bandPosition:nt?jt==="encoding"?0:.5:N(de)?{signal:`(1-${de})/2`}:_n(de)?(1-de.band)/2:0});if(T)return{[Ye]:ge,...J};{const q=hn(z),Ne=J[T],sn=je?{...Ne,offset:je}:Ne;return{[Ye]:ge,[q]:P(ge)?[ge[0],{...ge[1],offset:sn}]:{...ge,offset:sn}}}}(u,t,e):Df(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function({fieldDef:m,fieldDef2:y,channel:x,model:b}){var be;const{config:v,markDef:w,encoding:F}=b,E=b.getScaleComponent(x),B=b.scaleName(x),O=E?E.get("type"):void 0,T=E.get("reverse"),z=Vc({channel:x,fieldDef:m,markDef:w,config:v,scaleType:O}),j=(be=b.component.axes[x])==null?void 0:be[0],ve=(j==null?void 0:j.get("translate"))??.5,ne=he(x)?Z("binSpacing",w,v)??0:0,ie=At(x),J=hn(x),ee=hn(ie),de=Ct("minBandSize",w,v),{offset:tt}=Zi({channel:x,markDef:w,encoding:F,model:b,bandPosition:0}),{offset:Ye}=Zi({channel:ie,markDef:w,encoding:F,model:b,bandPosition:0}),nt=function({scaleName:q,fieldDef:Ne}){const sn=S(Ne,{expr:"datum"});return`abs(scale("${q}", ${S(Ne,{expr:"datum",suffix:"end"})}) - scale("${q}", ${sn}))`}({fieldDef:m,scaleName:B}),je=Af(x,ne,T,ve,tt,de,nt),jt=Af(ie,ne,T,ve,Ye??tt,de,nt),ge=N(z)?{signal:`(1-${z.signal})/2`}:_n(z)?(1-z.band)/2:.5,it=bn({fieldDef:m,fieldDef2:y,markDef:w,config:v});if(te(m.bin)||m.timeUnit){const q=m.timeUnit&&it!==.5;return{[ee]:kf({fieldDef:m,scaleName:B,bandPosition:ge,offset:jt,useRectOffsetField:q}),[J]:kf({fieldDef:m,scaleName:B,bandPosition:N(ge)?{signal:`1-${ge.signal}`}:1-ge,offset:je,useRectOffsetField:q})}}if(ke(m.bin)){const q=Tn(m,B,{},{offset:jt});if(C(y))return{[ee]:q,[J]:Tn(y,B,{},{offset:je})};if(En(m.bin)&&m.bin.step)return{[ee]:q,[J]:{signal:`scale("${B}", ${S(m,{expr:"datum"})} + ${m.bin.step})`,offset:je}}}return void k(sc(ie))}({fieldDef:u,fieldDef2:c,channel:t,model:e})}function Uh(e,t,n,i,r,o,a){if(_n(r)){if(!n)return{mult:r.band,field:{group:e}};{const s=n.get("type");if(s==="band"){let u=`bandwidth('${t}')`;r.band!==1&&(u=`${r.band} * ${u}`);const c=Ct("minBandSize",{type:a},i);return{signal:c?`max(${ft(c)}, ${u})`:u}}r.band!==1&&(k(function(u){return`Cannot use the relative band size with ${u} scale.`}(s)),r=void 0)}}else{if(N(r))return r;if(r)return{value:r}}if(n){const s=n.get("range");if(Bn(s)&&ae(s.step))return{value:s.step-2}}if(!o){const{bandPaddingInner:s,barBandPaddingInner:u,rectBandPaddingInner:c,tickBandPaddingInner:l}=i.scale,f=me(s,a==="tick"?l:a==="bar"?u:c);if(N(f))return{signal:`(1 - (${f.signal})) * ${e}`};if(ae(f))return{signal:`${1-f} * ${e}`}}return{value:Qa(i.view,e)-2}}function Af(e,t,n,i,r,o,a){if(Fu(e))return 0;const s=e==="x"||e==="y2",u=s?-t/2:t/2;if(N(n)||N(r)||N(i)||o){const c=ft(n),l=ft(r),f=ft(i),d=ft(o),h=o?`(${a} < ${d} ? ${s?"":"-"}0.5 * (${d} - (${a})) : ${u})`:u;return{signal:(f?`${f} + `:"")+(c?`(${c} ? -1 : 1) * `:"")+(l?`(${l} + ${h})`:h)}}return r=r||0,i+(n?-r-u:+r+u)}function kf({fieldDef:e,scaleName:t,bandPosition:n,offset:i,useRectOffsetField:r}){return Tr({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i,...r?{startSuffix:eo,endSuffix:to}:{}})}const Wh=new Set(["aria","width","height"]);function et(e,t){const{fill:n,stroke:i}=t.color==="include"?$f(e):{};return{...Ih(e.markDef,t),...Cf("fill",n),...Cf("stroke",i),...Se("opacity",e),...Se("fillOpacity",e),...Se("strokeOpacity",e),...Se("strokeWidth",e),...Se("strokeDash",e),...Rh(e),...vf(e),...ps(e,"href"),...Th(e)}}function Cf(e,t){return t?{[e]:t}:{}}function Ih(e,t){return Gp.reduce((n,i)=>(!Wh.has(i)&&A(e,i)&&t[i]!=="ignore"&&(n[i]=re(e[i])),n),{})}function hs(e){const{config:t,markDef:n}=e,i=new Set;if(e.forEachFieldDef((r,o)=>{var l;let a;if(!kt(o)||!(a=e.getScaleType(o)))return;const s=Dr(r.aggregate);if((c=Sa({scaleChannel:o,markDef:n,config:t,scaleType:a,isCountAggregate:s}))==="break-paths-filter-domains"||c==="break-paths-show-domains"){const f=e.vgField(o,{expr:"datum",binSuffix:(l=e.stack)!=null&&l.impute?"mid":void 0});f&&i.add(f)}var c}),i.size>0)return{defined:{signal:[...i].map(r=>Er(r,!0)).join(" && ")}}}function Sf(e,t){if(t!==void 0)return{[e]:re(t)}}const gs="voronoi",Ef={defined:e=>e.type==="point"&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(gs)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(vn(o))return k(`The "nearest" transform is not supported for ${o} marks.`),n;const a={name:e.getName(gs),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...vf(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,u=!1;return n.forEach((c,l)=>{const f=c.name??"";f===e.component.mark[0].name?s=l:f.includes(gs)&&(u=!0)}),u||n.splice(s+1,0,a),n}},Bf={defined:e=>e.type==="point"&&e.resolve==="global"&&e.bind&&e.bind!=="scales"&&!Ha(e.bind),parse:(e,t,n)=>Lf(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,a=t.init&&t.init[0],s=Ef.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach((u,c)=>{const l=se(`${i}_${u.field}`);n.filter(f=>f.name===l).length||n.unshift({name:l,...a?{init:Ln(a[c])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${s}[${W(u.field)}] : null`}]:[],bind:o[u.field]??o[u.channel]??o})}),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find(c=>c.name===i+tn),a=i+Qi,s=r.items.map(c=>se(`${i}_${c.field}`)),u=s.map(c=>`${c} !== null`).join(" && ");return s.length&&(o.update=`${u} ? {fields: ${a}, values: [${s.join(", ")}]} : null`),delete o.value,delete o.on,n}},ao="_toggle",zf={defined:e=>e.type==="point"&&!Nt(e)&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+ao,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+tn,i=t.name+ao;return`${i} ? null : ${n}, `+(t.resolve==="global"?`${i} ? null : true, `:`${i} ? null : {unit: ${Un(e)}}, `)+`${i} ? ${n} : null`}},Hh={defined:e=>e.clear!==void 0&&e.clear!==!1&&!Nt(e),parse:(e,t)=>{t.clear&&(t.clear=R(t.clear)?Kn(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(Bf.defined(t))for(const i of t.project.items){const r=n.findIndex(o=>o.name===se(`${t.name}_${i.field}`));r!==-1&&n[r].on.push({events:t.clear,update:"null"})}return n},signals:(e,t,n)=>{function i(r,o){r!==-1&&n[r].on&&n[r].on.push({events:t.clear,update:o})}if(t.type==="interval")for(const r of t.project.items){const o=n.findIndex(a=>a.name===r.signals.visual);i(o,"[0, 0]"),o===-1&&i(n.findIndex(a=>a.name===r.signals.data),"null")}else{let r=n.findIndex(o=>o.name===t.name+tn);i(r,"null"),zf.defined(t)&&(r=n.findIndex(o=>o.name===t.name+ao),i(r,"false"))}return n}},Of={defined:e=>{const t=e.resolve==="global"&&e.bind&&Ha(e.bind),n=e.project.items.length===1&&e.project.items[0].field!==gt;return t&&!n&&k("Legend bindings are only supported for selections over an individual field or encoding channel."),t&&n},parse:(e,t,n)=>{const i=M(n);if(i.select=R(i.select)?{type:i.select,toggle:t.toggle}:{...i.select,toggle:t.toggle},Lf(t,i),H(n.select)&&(n.select.on||n.select.clear)){const a='event.item && indexof(event.item.mark.role, "legend") < 0';for(const s of t.events)s.filter=pe(s.filter??[]),s.filter.includes(a)||s.filter.push(a)}const r=Ga(t.bind)?t.bind.legend:"click",o=R(r)?Kn(r,"view"):pe(r);t.bind={legend:{merge:o}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=Ga(t.bind)&&t.bind.legend,o=a=>s=>{const u=M(s);return u.markname=a,u};for(const a of t.project.items){if(!a.hasLegend)continue;const s=`${se(a.field)}_legend`,u=`${i}_${s}`;if(n.filter(c=>c.name===u).length===0){const c=r.merge.map(o(`${s}_symbols`)).concat(r.merge.map(o(`${s}_labels`))).concat(r.merge.map(o(`${s}_entries`)));n.unshift({name:u,...t.init?{}:{value:null},on:[{events:c,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:`!event.item || !datum ? null : ${u}`,force:!0}]})}}return n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find(f=>f.name===i+tn),a=i+Qi,s=r.items.filter(f=>f.hasLegend).map(f=>se(`${i}_${se(f.field)}_legend`)),u=`${s.map(f=>`${f} !== null`).join(" && ")} ? {fields: ${a}, values: [${s.join(", ")}]} : null`;t.events&&s.length>0?o.on.push({events:s.map(f=>({signal:f})),update:u}):s.length>0&&(o.update=u,delete o.value,delete o.on);const c=n.find(f=>f.name===i+ao),l=Ga(t.bind)&&t.bind.legend;return c&&(t.events?c.on.push({...c.on[0],events:l}):c.on[0].events=l),n}},Pf="_translate_anchor",Nf="_translate_delta",Gh={defined:e=>e.type==="interval"&&e.translate,signals:(e,t,n)=>{const i=t.name,r=Zt.defined(t),o=i+Pf,{x:a,y:s}=t.project.hasChannel;let u=Kn(t.translate,"scope");return r||(u=u.map(c=>(c.between[0].markname=i+vi,c))),n.push({name:o,value:{},on:[{events:u.map(c=>c.between[0]),update:"{x: x(unit), y: y(unit)"+(a!==void 0?`, extent_x: ${r?fs(e,ue):`slice(${a.signals.visual})`}`:"")+(s!==void 0?`, extent_y: ${r?fs(e,xe):`slice(${s.signals.visual})`}`:"")+"}"}]},{name:i+Nf,value:{},on:[{events:u,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),a!==void 0&&_f(e,t,a,"width",n),s!==void 0&&_f(e,t,s,"height",n),n}};function _f(e,t,n,i,r){const o=t.name,a=o+Pf,s=o+Nf,u=n.channel,c=Zt.defined(t),l=r.find(y=>y.name===n.signals[c?"data":"visual"]),f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(u),h=d&&d.get("type"),p=d&&d.get("reverse"),g=`${a}.extent_${u}`,m=`${c&&d?h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear":"panLinear"}(${g}, ${`${c?u===ue?p?"":"-":p?"-":"":""}${s}.${u} / ${c?`${f}`:`span(${g})`}`}${c?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":""})`;l.on.push({events:{signal:s},update:c?m:`clampRange(${m}, 0, ${f})`})}const Tf="_zoom_anchor",jf="_zoom_delta",Vh={defined:e=>e.type==="interval"&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=Zt.defined(t),o=i+jf,{x:a,y:s}=t.project.hasChannel,u=W(e.scaleName(ue)),c=W(e.scaleName(xe));let l=Kn(t.zoom,"scope");return r||(l=l.map(f=>(f.markname=i+vi,f))),n.push({name:i+Tf,on:[{events:l,update:r?"{"+[u?`x: invert(${u}, x(unit))`:"",c?`y: invert(${c}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:l,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),a!==void 0&&Mf(e,t,a,"width",n),s!==void 0&&Mf(e,t,s,"height",n),n}};function Mf(e,t,n,i,r){const o=t.name,a=n.channel,s=Zt.defined(t),u=r.find(g=>g.name===n.signals[s?"data":"visual"]),c=e.getSizeSignalRef(i).signal,l=e.getScaleComponent(a),f=l&&l.get("type"),d=s?fs(e,a):u.name,h=o+jf,p=`${s&&l?f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear":"zoomLinear"}(${d}, ${`${o}${Tf}.${a}`}, ${h}${s?f==="pow"?`, ${l.get("exponent")??1}`:f==="symlog"?`, ${l.get("constant")??1}`:"":""})`;u.on.push({events:{signal:h},update:s?p:`clampRange(${p}, 0, ${c})`})}const qn="_store",tn="_tuple",Yh="_modify",Rf="vlSelectionResolve",so=[Oh,_h,Bh,zf,Bf,Zt,Of,Hh,Gh,Vh,Ef];function Un(e,{escape:t}={escape:!0}){let n=t?W(e.name):e.name;const i=function(r){let o=r.parent;for(;o&&!Ve(o);)o=o.parent;return o}(e);if(i){const{facet:r}=i;for(const o of Ze)r[o]&&(n+=` + '__facet_${o}_' + (facet[${W(i.vgField(o))}])`)}return n}function ys(e){return Ae(e.component.selection??{}).reduce((t,n)=>t||n.project.hasSelectionId,!1)}function Lf(e,t){!R(t.select)&&t.select.on||delete e.events,!R(t.select)&&t.select.clear||delete e.clear,!R(t.select)&&t.select.toggle||delete e.toggle}function Nt(e){var t;return(t=e.events)==null?void 0:t.find(n=>"type"in n&&n.type==="timer")}const Xh="Property",Jh="ArrayExpression",Qh="BinaryExpression",Kh="CallExpression",Zh="ConditionalExpression",eg="LogicalExpression",tg="MemberExpression",ng="ObjectExpression",ig="UnaryExpression";function vt(e){this.type=e}var nn,_,$,ze,X;vt.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=function(r){switch(r.type){case Jh:return r.elements;case Qh:case eg:return[r.left,r.right];case Kh:return[r.callee].concat(r.arguments);case Zh:return[r.test,r.consequent,r.alternate];case tg:return[r.object,r.property];case ng:return r.properties;case Xh:return[r.key,r.value];case ig:return[r.argument];default:return[]}}(this),n=0,i=t.length;n<i;++n)if(t[n].visit(e))return 1},(nn={})[1]="Boolean",nn[2]="<end>",nn[3]="Identifier",nn[4]="Keyword",nn[5]="Null",nn[6]="Numeric",nn[7]="Punctuator",nn[8]="String",nn[9]="RegularExpression";var qf="Identifier",Fe="Unexpected token %0",vs="Invalid regular expression",bs="Invalid regular expression: missing /",Uf="Octal literals are not allowed in strict mode.",Ee="ILLEGAL",er="Disabled.",rg=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),og=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function uo(e,t){if(!e)throw new Error("ASSERT: "+t)}function rn(e){return e>=48&&e<=57}function xs(e){return"0123456789abcdefABCDEF".includes(e)}function tr(e){return"01234567".includes(e)}function ag(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function nr(e){return e===10||e===13||e===8232||e===8233}function ir(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&rg.test(String.fromCharCode(e))}function co(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&og.test(String.fromCharCode(e))}const sg={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Wf(){for(;$<ze;){const e=_.charCodeAt($);if(!ag(e)&&!nr(e))break;++$}}function $s(e){var t,n,i,r=0;for(n=e==="u"?4:2,t=0;t<n;++t)$<ze&&xs(_[$])?(i=_[$++],r=16*r+"0123456789abcdef".indexOf(i.toLowerCase())):G({},Fe,Ee);return String.fromCharCode(r)}function ug(){var e,t,n,i;for(t=0,(e=_[$])==="}"&&G({},Fe,Ee);$<ze&&xs(e=_[$++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&G({},Fe,Ee),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),i=56320+(t-65536&1023),String.fromCharCode(n,i))}function If(){var e,t;for(e=_.charCodeAt($++),t=String.fromCharCode(e),e===92&&(_.charCodeAt($)!==117&&G({},Fe,Ee),++$,(e=$s("u"))&&e!=="\\"&&ir(e.charCodeAt(0))||G({},Fe,Ee),t=e);$<ze&&co(e=_.charCodeAt($));)++$,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),_.charCodeAt($)!==117&&G({},Fe,Ee),++$,(e=$s("u"))&&e!=="\\"&&co(e.charCodeAt(0))||G({},Fe,Ee),t+=e);return t}function cg(){var e,t;return e=$,t=_.charCodeAt($)===92?If():function(){var n,i;for(n=$++;$<ze;){if((i=_.charCodeAt($))===92)return $=n,If();if(!co(i))break;++$}return _.slice(n,$)}(),{type:t.length===1?3:sg.hasOwnProperty(t)?4:t==="null"?5:t==="true"||t==="false"?1:3,value:t,start:e,end:$}}function ws(){var e,t,n,i,r=$,o=_.charCodeAt($),a=_[$];switch(o){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++$,{type:7,value:String.fromCharCode(o),start:r,end:$};default:if((e=_.charCodeAt($+1))===61)switch(o){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return $+=2,{type:7,value:String.fromCharCode(o)+String.fromCharCode(e),start:r,end:$};case 33:case 61:return $+=2,_.charCodeAt($)===61&&++$,{type:7,value:_.slice(r,$),start:r,end:$}}}return(i=_.substr($,4))===">>>="?{type:7,value:i,start:r,end:$+=4}:(n=i.substr(0,3))===">>>"||n==="<<="||n===">>="?{type:7,value:n,start:r,end:$+=3}:a===(t=n.substr(0,2))[1]&&"+-<>&|".includes(a)||t==="=>"?{type:7,value:t,start:r,end:$+=2}:(t==="//"&&G({},Fe,Ee),"<>=!+-*%&|^/".includes(a)?{type:7,value:a,start:r,end:++$}:void G({},Fe,Ee))}function Hf(){var e,t,n;if(uo(rn((n=_[$]).charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=$,e="",n!=="."){if(e=_[$++],n=_[$],e==="0"){if(n==="x"||n==="X")return++$,function(i){let r="";for(;$<ze&&xs(_[$]);)r+=_[$++];return r.length===0&&G({},Fe,Ee),ir(_.charCodeAt($))&&G({},Fe,Ee),{type:6,value:parseInt("0x"+r,16),start:i,end:$}}(t);if(tr(n))return function(i){let r="0"+_[$++];for(;$<ze&&tr(_[$]);)r+=_[$++];return(ir(_.charCodeAt($))||rn(_.charCodeAt($)))&&G({},Fe,Ee),{type:6,value:parseInt(r,8),octal:!0,start:i,end:$}}(t);n&&rn(n.charCodeAt(0))&&G({},Fe,Ee)}for(;rn(_.charCodeAt($));)e+=_[$++];n=_[$]}if(n==="."){for(e+=_[$++];rn(_.charCodeAt($));)e+=_[$++];n=_[$]}if(n==="e"||n==="E")if(e+=_[$++],(n=_[$])!=="+"&&n!=="-"||(e+=_[$++]),rn(_.charCodeAt($)))for(;rn(_.charCodeAt($));)e+=_[$++];else G({},Fe,Ee);return ir(_.charCodeAt($))&&G({},Fe,Ee),{type:6,value:parseFloat(e),start:t,end:$}}function lg(){var e,t,n,i;return X=null,Wf(),e=$,t=function(){var r,o,a,s;for(uo((r=_[$])==="/","Regular expression literal must start with a slash"),o=_[$++],a=!1,s=!1;$<ze;)if(o+=r=_[$++],r==="\\")nr((r=_[$++]).charCodeAt(0))&&G({},bs),o+=r;else if(nr(r.charCodeAt(0)))G({},bs);else if(a)r==="]"&&(a=!1);else{if(r==="/"){s=!0;break}r==="["&&(a=!0)}return s||G({},bs),{value:o.substr(1,o.length-2),literal:o}}(),n=function(){var r,o,a;for(o="",a="";$<ze&&co((r=_[$]).charCodeAt(0));)++$,r==="\\"&&$<ze?G({},Fe,Ee):(a+=r,o+=r);return a.search(/[^gimuy]/g)>=0&&G({},vs,a),{value:a,literal:o}}(),i=function(r,o){let a=r;o.includes("u")&&(a=a.replace(/\\u\{([0-9a-fA-F]+)\}/g,(s,u)=>{if(parseInt(u,16)<=1114111)return"x";G({},vs)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(a)}catch{G({},vs)}try{return new RegExp(r,o)}catch{return null}}(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:$}}function Gf(){if(Wf(),$>=ze)return{type:2,start:$,end:$};const e=_.charCodeAt($);return ir(e)?cg():e===40||e===41||e===59?ws():e===39||e===34?function(){var t,n,i,r,o="",a=!1;for(uo((t=_[$])==="'"||t==='"',"String literal must starts with a quote"),n=$,++$;$<ze;){if((i=_[$++])===t){t="";break}if(i==="\\")if((i=_[$++])&&nr(i.charCodeAt(0)))i==="\r"&&_[$]===`
2
2
  `&&++$;else switch(i){case"u":case"x":_[$]==="{"?(++$,o+=ug()):o+=$s(i);break;case"n":o+=`
3
3
  `;break;case"r":o+="\r";break;case"t":o+=" ";break;case"b":o+="\b";break;case"f":o+="\f";break;case"v":o+="\v";break;default:tr(i)?((r="01234567".indexOf(i))!==0&&(a=!0),$<ze&&tr(_[$])&&(a=!0,r=8*r+"01234567".indexOf(_[$++]),"0123".includes(i)&&$<ze&&tr(_[$])&&(r=8*r+"01234567".indexOf(_[$++]))),o+=String.fromCharCode(r)):o+=i}else{if(nr(i.charCodeAt(0)))break;o+=i}}return t!==""&&G({},Fe,Ee),{type:8,value:o,octal:a,start:n,end:$}}():e===46?rn(_.charCodeAt($+1))?Hf():ws():rn(e)?Hf():ws()}function Ie(){const e=X;return $=e.end,X=Gf(),$=e.end,e}function Vf(){const e=$;X=Gf(),$=e}function Yf(e,t,n){const i=new vt(e==="||"||e==="&&"?"LogicalExpression":"BinaryExpression");return i.operator=e,i.left=t,i.right=n,i}function fg(e,t){const n=new vt("CallExpression");return n.callee=e,n.arguments=t,n}function Fs(e){const t=new vt(qf);return t.name=e,t}function rr(e){const t=new vt("Literal");return t.value=e.value,t.raw=_.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function Xf(e,t,n){const i=new vt("MemberExpression");return i.computed=e==="[",i.object=t,i.property=n,i.computed||(n.member=!0),i}function Jf(e,t,n){const i=new vt("Property");return i.key=t,i.value=n,i.kind=e,i}function G(e,t){var n,i=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,(o,a)=>(uo(a<i.length,"Message reference must be in range"),i[a]));throw(n=new Error(r)).index=$,n.description=r,n}function lo(e){e.type===2&&G(e,"Unexpected end of input"),e.type===6&&G(e,"Unexpected number"),e.type===8&&G(e,"Unexpected string"),e.type===3&&G(e,"Unexpected identifier"),e.type===4&&G(e,"Unexpected reserved word"),G(e,Fe,e.value)}function Oe(e){const t=Ie();t.type===7&&t.value===e||lo(t)}function oe(e){return X.type===7&&X.value===e}function Ds(e){return X.type===4&&X.value===e}function dg(){const e=[];for($=X.start,Oe("[");!oe("]");)oe(",")?(Ie(),e.push(null)):(e.push(Wn()),oe("]")||Oe(","));return Ie(),function(t){const n=new vt("ArrayExpression");return n.elements=t,n}(e)}function Qf(){$=X.start;const e=Ie();return e.type===8||e.type===6?(e.octal&&G(e,Uf),rr(e)):Fs(e.value)}function pg(){var e,t,n;return $=X.start,(e=X).type===3?(n=Qf(),Oe(":"),Jf("init",n,Wn())):e.type!==2&&e.type!==7?(t=Qf(),Oe(":"),Jf("init",t,Wn())):void lo(e)}function mg(){var e,t,n=[],i={},r=String;for($=X.start,Oe("{");!oe("}");)t="$"+((e=pg()).key.type===qf?e.key.name:r(e.key.value)),Object.prototype.hasOwnProperty.call(i,t)?G({},"Duplicate data property in object literal not allowed in strict mode"):i[t]=!0,n.push(e),oe("}")||Oe(",");return Oe("}"),function(o){const a=new vt("ObjectExpression");return a.properties=o,a}(n)}const hg={if:1};function gg(){var e,t,n;if(oe("("))return function(){Oe("(");const i=As();return Oe(")"),i}();if(oe("["))return dg();if(oe("{"))return mg();if(e=X.type,$=X.start,e===3||hg[X.value])n=Fs(Ie().value);else if(e===8||e===6)X.octal&&G(X,Uf),n=rr(Ie());else{if(e===4)throw new Error(er);e===1?((t=Ie()).value=t.value==="true",n=rr(t)):e===5?((t=Ie()).value=null,n=rr(t)):oe("/")||oe("/=")?(n=rr(lg()),Vf()):lo(Ie())}return n}function yg(){const e=[];if(Oe("("),!oe(")"))for(;$<ze&&(e.push(Wn()),!oe(")"));)Oe(",");return Oe(")"),e}function vg(){return Oe("."),function(){$=X.start;const e=Ie();return function(t){return t.type===3||t.type===4||t.type===1||t.type===5}(e)||lo(e),Fs(e.value)}()}function bg(){Oe("[");const e=As();return Oe("]"),e}function Kf(){const e=function(){var t;for(t=gg();;)if(oe("."))t=Xf(".",t,vg());else if(oe("("))t=fg(t,yg());else{if(!oe("["))break;t=Xf("[",t,bg())}return t}();if(X.type===7&&(oe("++")||oe("--")))throw new Error(er);return e}function fo(){var e,t;if(X.type!==7&&X.type!==4)t=Kf();else{if(oe("++")||oe("--"))throw new Error(er);if(oe("+")||oe("-")||oe("~")||oe("!"))e=Ie(),t=fo(),t=function(n,i){const r=new vt("UnaryExpression");return r.operator=n,r.argument=i,r.prefix=!0,r}(e.value,t);else{if(Ds("delete")||Ds("void")||Ds("typeof"))throw new Error(er);t=Kf()}}return t}function Zf(e){let t=0;if(e.type!==7&&e.type!==4)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function Wn(){var e,t;return e=function(){var n,i,r,o,a,s,u,c,l,f;if(n=X,l=fo(),(a=Zf(o=X))===0)return l;for(o.prec=a,Ie(),i=[n,X],s=[l,o,u=fo()];(a=Zf(X))>0;){for(;s.length>2&&a<=s[s.length-2].prec;)u=s.pop(),c=s.pop().value,l=s.pop(),i.pop(),r=Yf(c,l,u),s.push(r);(o=Ie()).prec=a,s.push(o),i.push(X),r=fo(),s.push(r)}for(r=s[f=s.length-1],i.pop();f>1;)i.pop(),r=Yf(s[f-1].value,s[f-2],r),f-=2;return r}(),oe("?")&&(Ie(),t=Wn(),Oe(":"),e=function(n,i,r){const o=new vt("ConditionalExpression");return o.test=n,o.consequent=i,o.alternate=r,o}(e,t,Wn())),e}function As(){const e=Wn();if(oe(","))throw new Error(er);return e}function ks(e){const t=[];return e.type==="Identifier"?[e.name]:e.type==="Literal"?[e.value]:(e.type==="MemberExpression"&&(t.push(...ks(e.object)),t.push(...ks(e.property))),t)}function ed(e){return e.object.type==="MemberExpression"?ed(e.object):e.object.name==="datum"}function td(e){const t=function(i){$=0,ze=(_=i).length,X=null,Vf();const r=As();if(X.type!==2)throw new Error("Unexpect token after expression.");return r}(e),n=new Set;return t.visit(i=>{i.type==="MemberExpression"&&ed(i)&&n.add(ks(i).slice(1).join("."))}),n}class Di extends Y{clone(){return new Di(null,this.model,M(this.filter))}constructor(t,n,i){super(t),this.model=n,this.filter=i,this.expr=po(this.model,this.filter,this),this._dependentFields=td(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function nd(e,t,n,i="datum"){const r=R(t)?t:t.param,o=se(r),a=W(o+qn);let s;try{s=e.getSelectionComponent(o,r)}catch{return`!!${o}`}if(s.project.timeUnit){const l=n??e.component.data.raw,f=s.project.timeUnit.clone();l.parent?f.insertAsParentOf(l):l.parent=f}const u=`${s.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${a}, ${i}${s.resolve==="global"?")":`, ${W(s.resolve)})`}`,c=`length(data(${a}))`;return t.empty===!1?`${c} && ${u}`:`!${c} || ${u}`}function id(e,t,n){const i=se(t),r=n.encoding;let o,a=n.field;try{o=e.getSelectionComponent(i,t)}catch{return i}if(r||a){if(r&&!a){const s=o.project.items.filter(u=>u.channel===r);!s.length||s.length>1?(a=o.project.items[0].field,k(function(u,c,l,f){return(u.length?"Multiple ":"No ")+`matching ${W(c)} encoding found for selection ${W(l.param)}. Using "field": ${W(f)}.`}(s,r,n,a))):a=s[0].field}}else a=o.project.items[0].field,o.project.items.length>1&&k(function(s){return`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${W(s)}.`}(a));return`${o.name}[${W(Je(a))}]`}function po(e,t,n){return Ni(t,i=>R(i)?i:function(r){return A(r,"param")}(i)?nd(e,i,n):bc(i))}function Cs(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 or(e,t,n,i={header:!1}){var f,d;const{disable:r,orient:o,scale:a,labelExpr:s,title:u,zindex:c,...l}=e.combine();if(!r){for(const h in l){const p=h,g=Nm[p],m=l[p];if(g&&g!==t&&g!=="both")delete l[p];else if(Xi(m)){const{condition:y,...x}=m,b=pe(y),v=rl[p];if(v){const{vgProp:w,part:F}=v;Cs(l,F,w,[...b.map(E=>{const{test:B,...O}=E;return{test:po(null,B),...O}}),x]),delete l[p]}else if(v===null){const w={signal:b.map(F=>{const{test:E,...B}=F;return`${po(null,E)} ? ${Lu(B)} : `}).join("")+Lu(x)};l[p]=w}}else if(N(m)){const y=rl[p];if(y){const{vgProp:x,part:b}=y;Cs(l,b,x,m),delete l[p]}}U(["labelAlign","labelBaseline"],p)&&l[p]===null&&delete l[p]}if(t==="grid"){if(!l.grid)return;if(l.encode){const{grid:h}=l.encode;l.encode={...h?{grid:h}:{}},Q(l.encode)&&delete l.encode}return{scale:a,orient:o,...l,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:me(c,0)}}{if(!i.header&&e.mainExtracted)return;if(s!==void 0){let p=s;(d=(f=l.encode)==null?void 0:f.labels)!=null&&d.update&&N(l.encode.labels.update.text)&&(p=An(s,"datum.label",l.encode.labels.update.text.signal)),Cs(l,"labels","text",{signal:p})}if(l.labelAlign===null&&delete l.labelAlign,l.encode){for(const p of ol)e.hasAxisPart(p)||delete l.encode[p];Q(l.encode)&&delete l.encode}const h=function(p,g){if(p)return P(p)&&!yn(p)?p.map(m=>Ta(m,g)).join(", "):p}(u,n);return{scale:a,orient:o,grid:!1,...h?{title:h}:{},...l,...n.aria===!1?{aria:!1}:{},zindex:me(c,0)}}}}function rd(e){const{axes:t}=e.component,n=[];for(const i of Vt)if(t[i]){for(const r of t[i])if(!r.get("disable")&&!r.get("gridScale")){const o=i==="x"?"height":"width",a=e.getSizeSignalRef(o).signal;o!==a&&n.push({name:o,update:a})}}return n}function od(e,t,n,i){return Object.assign.apply(null,[{},...e.map(r=>{if(r==="axisOrient"){const o=n==="x"?"bottom":"left",a=t[n==="x"?"axisBottom":"axisLeft"]||{},s=t[n==="x"?"axisTop":"axisRight"]||{},u=new Set([...D(a),...D(s)]),c={};for(const l of u.values())c[l]={signal:`${i.signal} === "${o}" ? ${ft(a[l])} : ${ft(s[l])}`};return c}return t[r]})])}function xg(e,t){var i;const n=[{}];for(const r of e){let o=(i=t[r])==null?void 0:i.style;if(o){o=pe(o);for(const a of o)n.push(t.style[a])}}return Object.assign.apply(null,n)}function Ss(e,t,n,i={}){var o;const r=Uu(e,n,t);if(r!==void 0)return{configFrom:"style",configValue:r};for(const a of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((o=i[a])==null?void 0:o[e])!==void 0)return{configFrom:a,configValue:i[a][e]};return{}}const ad={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(i,r){return!we(i)&&C(r)&&!te(r==null?void 0:r.bin)&&!ke(r==null?void 0:r.bin)}(n,e),gridScale:({model:e,channel:t})=>function(n,i){const r=i==="x"?"y":"x";if(n.getScaleComponent(r))return n.scaleName(r)}(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelAlign||ud(t,n,i),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelBaseline||sd(t,n,i),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>e.labelFlush??function(i,r){if(r==="x"&&U(["quantitative","temporal"],i))return!0}(t.type,n),labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>e.labelOverlap??function(i,r,o,a){if(o&&!H(a)||i!=="nominal"&&i!=="ordinal")return r!=="log"&&r!=="symlog"||"greedy"}(t.type,n,C(t)&&!!t.timeUnit,C(t)?t.sort:void 0),orient:({orient:e})=>e,tickCount:({channel:e,model:t,axis:n,fieldOrDatumDef:i,scaleType:r})=>{const o=e==="x"?"width":e==="y"?"height":void 0,a=o?t.getSizeSignalRef(o):void 0;return n.tickCount??function({fieldOrDatumDef:s,scaleType:u,size:c,values:l}){var f;if(!l&&!we(u)&&u!=="log"){if(C(s)){if(te(s.bin))return{signal:`ceil(${c.signal}/10)`};if(s.timeUnit&&U(["month","hours","day","quarter"],(f=$e(s.timeUnit))==null?void 0:f.unit))return}return{signal:`ceil(${c.signal}/40)`}}}({fieldOrDatumDef:i,scaleType:r,size:a,values:n.values})},tickMinStep:function({format:e,fieldOrDatumDef:t}){if(e==="d")return 1;if(C(t)){const{timeUnit:n}=t;if(n){const i=gc(n);if(i)return{signal:i}}}},title:({axis:e,model:t,channel:n})=>{if(e.title!==void 0)return e.title;const i=cd(t,n);if(i!==void 0)return i;const r=t.typedFieldDef(n),o=n==="x"?"x2":"y2",a=t.fieldDef(o);return Iu(r?[Gc(r)]:[],C(a)?[Gc(a)]:[])},values:({axis:e,fieldOrDatumDef:t})=>function(n,i){const r=n.values;if(P(r))return il(i,r);if(N(r))return r}(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>e.zindex??function(i,r){return i==="rect"&&qr(r)?1:0}(n,t)};function Es(e){return`(((${e.signal} % 360) + 360) % 360)`}function sd(e,t,n,i){if(e!==void 0){if(n==="x"){if(N(e)){const r=Es(e);return{signal:`(45 < ${r} && ${r} < 135) || (225 < ${r} && ${r} < 315) ? "middle" :(${r} <= 45 || 315 <= ${r}) === ${N(t)?`(${t.signal} === "top")`:t==="top"} ? "bottom" : "top"`}}if(45<e&&e<135||225<e&&e<315)return"middle";if(N(t)){const r=e<=45||315<=e?"===":"!==";return{signal:`${t.signal} ${r} "top" ? "bottom" : "top"`}}return(e<=45||315<=e)==(t==="top")?"bottom":"top"}if(N(e)){const r=Es(e);return{signal:`${r} <= 45 || 315 <= ${r} || (135 <= ${r} && ${r} <= 225) ? ${i?'"middle"':"null"} : (45 <= ${r} && ${r} <= 135) === ${N(t)?`(${t.signal} === "left")`:t==="left"} ? "top" : "bottom"`}}if(e<=45||315<=e||135<=e&&e<=225)return i?"middle":null;if(N(t)){const r=45<=e&&e<=135?"===":"!==";return{signal:`${t.signal} ${r} "left" ? "top" : "bottom"`}}return(45<=e&&e<=135)==(t==="left")?"top":"bottom"}}function ud(e,t,n){if(e===void 0)return;const i=n==="x",r=i?0:90,o=i?"bottom":"left";if(N(e)){const a=Es(e);return{signal:`(${r?`(${a} + 90)`:a} % 180 === 0) ? ${i?null:'"center"'} :(${r} < ${a} && ${a} < ${180+r}) === ${N(t)?`(${t.signal} === "${o}")`:t===o} ? "left" : "right"`}}if((e+r)%180==0)return i?null:"center";if(N(t)){const a=r<e&&e<180+r?"===":"!==";return{signal:`${`${t.signal} ${a} "${o}"`} ? "left" : "right"`}}return(r<e&&e<180+r)==(t===o)?"left":"right"}function cd(e,t){const n=t==="x"?"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?Hu(o,a):o||a||(o!==void 0?o:a!==void 0?a:void 0)}class ki extends Y{clone(){return new ki(null,M(this.transform))}constructor(t,n){super(t),this.transform=n,this._dependentFields=td(this.transform.calculate)}static parseAllForSortIndex(t,n){return n.forEachFieldDef((i,r)=>{if(Mn(i)&&Hc(i.sort)){const{field:o,timeUnit:a}=i,s=i.sort,u=s.map((c,l)=>`${bc({field:o,timeUnit:a,equal:c})} ? ${l} : `).join("")+s.length;t=new ki(t,{calculate:u,as:xi(i,r,{forAs:!0})})}}),t}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${I(this.transform)}`}}function xi(e,t,n){return S(e,{prefix:t,suffix:"sort_index",...n})}function mo(e,t){return U(["top","bottom"],t)?"column":U(["left","right"],t)||e==="row"?"row":"column"}function $i(e,t,n,i){const r=i==="row"?n.headerRow:i==="column"?n.headerColumn:n.headerFacet;return me((t||{})[e],r[e],n.header[e])}function ho(e,t,n,i){const r={};for(const o of e){const a=$i(o,t||{},n,i);a!==void 0&&(r[o]=a)}return r}const Bs=["row","column"],zs=["header","footer"];function $g(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}=ho(["titleAnchor","titleAngle","titleOrient"],r.header,i,t),u=mo(t,s),c=Ti(a);return{name:`${t}-title`,type:"group",role:`${u}-title`,title:{text:n,...t==="row"?{orient:"left"}:{},style:"guide-title",...fd(c,u),...ld(u,c,o),...dd(i,r,t,Um,Al)}}}function ld(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=ud(t,e==="row"?"left":"top",e==="row"?"y":"x");return i?{align:i}:{}}function fd(e,t){const n=sd(e,t==="row"?"left":"top",t==="row"?"y":"x",!0);return n?{baseline:n}:{}}function wg(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of zs)if(n[r])for(const o of n[r]){const a=Dg(e,t,r,n,o);a!=null&&i.push(a)}return i}function Fg(e,t){const{sort:n}=e;return Jt(n)?{field:S(n,{expr:"datum"}),order:n.order??"ascending"}:P(n)?{field:xi(e,t,{expr:"datum"}),order:"ascending"}:{field:S(e,{expr:"datum"}),order:n??"ascending"}}function Os(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:a,labelOrient:s,labelExpr:u}=ho(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),c=za({fieldOrDatumDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,l=mo(t,s);return{text:{signal:u?An(An(u,"datum.label",c),"datum.value",S(e,{expr:"parent"})):c},...t==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...fd(o,l),...ld(l,o,a),...dd(n,e,t,Wm,kl)}}function Dg(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:f}=ho(["labelOrient"],a.header,s,t);(t==="row"&&!U(["top","bottom"],f)||t==="column"&&!U(["left","right"],f))&&(o=Os(a,t,s))}const u=Ve(e)&&!Hi(e.facet),c=r.axes,l=(c==null?void 0:c.length)>0;if(o||l){const f=t==="row"?"height":"width";return{name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`,...i.facetFieldDef?{from:{data:e.getName(`${t}_domain`)},sort:Fg(a,t)}:{},...l&&u?{from:{data:e.getName(`facet_domain_${t}`)}}:{},...o?{title:o}:{},...r.sizeSignal?{encode:{update:{[f]:r.sizeSignal}}}:{},...l?{axes:c}:{}}}}return null}const Ag={column:{start:0,end:1},row:{start:1,end:0}};function kg(e,t){return Ag[t][e]}function dd(e,t,n,i,r){const o={};for(const a of i){if(!r[a])continue;const s=$i(a,t==null?void 0:t.header,e,n);s!==void 0&&(o[r[a]]=s)}return o}function Ps(e){return[...go(e,"width"),...go(e,"height"),...go(e,"childWidth"),...go(e,"childHeight")]}function go(e,t){const n=t==="width"?"x":"y",i=e.component.layoutSize.get(t);if(!i||i==="merged")return[];const r=e.getSizeSignalRef(t).signal;if(i==="step"){const o=e.getScaleComponent(n);if(o){const a=o.get("type"),s=o.get("range");if(we(a)&&Bn(s)){const u=e.scaleName(n);return Ve(e.parent)&&e.parent.component.resolve.scale[n]==="independent"?[pd(u,s)]:[pd(u,s),{name:r,update:md(u,o,`domain('${u}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if(i=="container"){const o=r.endsWith("width"),a=o?"containerSize()[0]":"containerSize()[1]",s=`isFinite(${a}) ? ${a} : ${Ja(e.config.view,o?"width":"height")}`;return[{name:r,init:s,on:[{update:s,events:"window:resize"}]}]}return[{name:r,value:i}]}function pd(e,t){const n=`${e}_step`;return N(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function md(e,t,n){const i=t.get("type"),r=t.get("padding"),o=me(t.get("paddingOuter"),r);let a=t.get("paddingInner");return a=i==="band"?a!==void 0?a:r:1,`bandspace(${n}, ${ft(a)}, ${ft(o)}) * ${e}_step`}function hd(e){return e==="childWidth"?"width":e==="childHeight"?"height":e}function gd(e,t){return D(e).reduce((n,i)=>({...n,...bi({model:t,channelDef:e[i],vgChannel:i,mainRefFn:r=>re(r.value),invalidValueRef:void 0})}),{})}function yd(e,t){if(Ve(t))return e==="theta"?"independent":"shared";if(Fi(t))return"shared";if(Xs(t))return he(e)||e==="theta"||e==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function Ns(e,t){const n=e.scale[t],i=he(t)?"axis":"legend";return n==="independent"?(e[i][t]==="shared"&&k(function(r){return`Setting the scale to be independent for "${r}" means we also have to set the guide (axis or legend) to be independent.`}(t)),"independent"):e[i][t]||"shared"}const vd=D({aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});class Cg extends on{}const bd={symbols:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r,legendType:o}){if(o!=="symbol")return;const{markDef:a,encoding:s,config:u,mark:c}=n,l=a.filled&&c!=="trail";let f={...Yp({},n,km),...$f(n,{filled:l})};const d=r.get("symbolOpacity")??u.legend.symbolOpacity,h=r.get("symbolFillColor")??u.legend.symbolFillColor,p=r.get("symbolStrokeColor")??u.legend.symbolStrokeColor,g=d===void 0?xd(s.opacity)??a.opacity:void 0;if(f.fill){if(i==="fill"||l&&i===Le)delete f.fill;else if(A(f.fill,"field"))h?delete f.fill:(f.fill=re(u.legend.symbolBaseFillColor??"black"),f.fillOpacity=re(g??1));else if(P(f.fill)){const m=_s(s.fill??s.color)??a.fill??(l&&a.color);m&&(f.fill=re(m))}}if(f.stroke){if(i==="stroke"||!l&&i===Le)delete f.stroke;else if(A(f.stroke,"field")||p)delete f.stroke;else if(P(f.stroke)){const m=me(_s(s.stroke||s.color),a.stroke,l?a.color:void 0);m&&(f.stroke={value:m})}}if(i!==Gt){const m=C(t)&&wd(n,r,t);m?f.opacity=[{test:m,...re(g??1)},re(u.legend.unselectedOpacity)]:g&&(f.opacity=re(g))}return f={...f,...e},Q(f)?void 0:f},gradient:function(e,{model:t,legendType:n,legendCmpt:i}){if(n!=="gradient")return;const{config:r,markDef:o,encoding:a}=t;let s={};const u=(i.get("gradientOpacity")??r.legend.gradientOpacity)===void 0?xd(a.opacity)||o.opacity:void 0;return u&&(s.opacity=re(u)),s={...s,...e},Q(s)?void 0:s},labels:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r}){const o=n.legend(i)||{},a=n.config,s=C(t)?wd(n,r,t):void 0,u=s?[{test:s,value:1},{value:a.legend.unselectedOpacity}]:void 0,{format:c,formatType:l}=o;let f;jn(l)?f=pt({fieldOrDatumDef:t,field:"datum.value",format:c,formatType:l,config:a}):c===void 0&&l===void 0&&a.customFormatTypes&&(t.type==="quantitative"&&a.numberFormatType?f=pt({fieldOrDatumDef:t,field:"datum.value",format:a.numberFormat,formatType:a.numberFormatType,config:a}):t.type==="temporal"&&a.timeFormatType&&C(t)&&t.timeUnit===void 0&&(f=pt({fieldOrDatumDef:t,field:"datum.value",format:a.timeFormat,formatType:a.timeFormatType,config:a})));const d={...u?{opacity:u}:{},...f?{text:f}:{},...e};return Q(d)?void 0:d},entries:function(e,{legendCmpt:t}){const n=t.get("selections");return n!=null&&n.length?{...e,fill:{value:"transparent"}}:e}};function xd(e){return $d(e,(t,n)=>Math.max(t,n.value))}function _s(e){return $d(e,(t,n)=>me(t,n.value))}function $d(e,t){return function(n){const i=n==null?void 0:n.condition;return!!i&&(P(i)||mt(i))}(e)?pe(e.condition).reduce(t,e.value):mt(e)?e.value:void 0}function wd(e,t,n){const i=t.get("selections");if(!(i!=null&&i.length))return;const r=W(n.field);return i.map(o=>`(!length(data(${W(se(o)+qn)})) || (${o}[${r}] && indexof(${o}[${r}], datum.value) >= 0))`).join(" || ")}const Fd={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:i,formatType:r}=t;return Lc(e,e.type,i,r,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:i}=e;return qc(i,t,n)},gradientLength:e=>{const{legend:t,legendConfig:n}=e;return t.gradientLength??n.gradientLength??function({legendConfig:i,model:r,direction:o,orient:a,scaleType:s}){const{gradientHorizontalMaxLength:u,gradientHorizontalMinLength:c,gradientVerticalMaxLength:l,gradientVerticalMinLength:f}=i;if(Et(s))return o==="horizontal"?a==="top"||a==="bottom"?Dd(r,"width",c,u):c:Dd(r,"height",f,l)}(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>e.labelOverlap??t.labelOverlap??function(i){if(U(["quantile","threshold","log","symlog"],i))return"greedy"}(n),symbolType:({legend:e,markDef:t,channel:n,encoding:i})=>e.symbolType??function(r,o,a,s){if(o!=="shape"){const u=_s(a)??s;if(u)return u}switch(r){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})=>di(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if(ai(n)&&Et(t)){if(e==="gradient")return}else if(e==="symbol")return;return e},values:({fieldOrDatumDef:e,legend:t})=>function(n,i){const r=n.values;if(P(r))return il(i,r);if(N(r))return r}(t,e)};function Sg(e){const{legend:t}=e;return me(t.type,function({channel:n,timeUnit:i,scaleType:r}){if(ai(n)){if(U(["quarter","month","day"],i))return"symbol";if(Et(r))return"gradient"}return"symbol"}(e))}function Eg({legendConfig:e,legendType:t,orient:n,legend:i}){return i.direction??e[t?"gradientDirection":"symbolDirection"]??function(r,o){switch(r){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return o==="gradient"?"horizontal":void 0}}(n,t)}function Dd(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function Ad(e){const t=le(e)?function(n){const{encoding:i}=n,r={};for(const o of[Le,...Sl]){const a=ye(i[o]);a&&n.getScaleComponent(o)&&(o===qe&&C(a)&&a.type===ui||(r[o]=zg(n,o)))}return r}(e):function(n){const{legends:i,resolve:r}=n.component;for(const o of n.children){Ad(o);for(const a of D(o.component.legends))r.legend[a]=Ns(n.component.resolve,a),r.legend[a]==="shared"&&(i[a]=kd(i[a],o.component.legends[a]),i[a]||(r.legend[a]="independent",delete i[a]))}for(const o of D(i))for(const a of n.children)a.component.legends[o]&&r.legend[o]==="shared"&&delete a.component.legends[o];return i}(e);return e.component.legends=t,t}function Bg(e,t,n,i){switch(t){case"disable":return n!==void 0;case"values":return!!(n!=null&&n.values);case"title":if(t==="title"&&e===(i==null?void 0:i.title))return!0}return e===(n||{})[t]}function zg(e,t){var b;let n=e.legend(t);const{markDef:i,encoding:r,config:o}=e,a=o.legend,s=new Cg({},function(v,w){const F=v.scaleName(w);if(v.mark==="trail"){if(w==="color")return{stroke:F};if(w==="size")return{strokeWidth:F}}return w==="color"?v.markDef.filled?{fill:F}:{stroke:F}:{[w]:F}}(e,t));(function(v,w,F){var B;const E=(B=v.fieldDef(w))==null?void 0:B.field;for(const O of Ae(v.component.selection??{})){const T=O.project.hasField[E]??O.project.hasChannel[w];if(T&&Of.defined(O)){const z=F.get("selections")??[];z.push(O.name),F.set("selections",z,!1),T.hasLegend=!0}}})(e,t,s);const u=n!==void 0?!n:a.disable;if(s.set("disable",u,n!==void 0),u)return s;n=n||{};const c=e.getScaleComponent(t).get("type"),l=ye(r[t]),f=C(l)?(b=$e(l.timeUnit))==null?void 0:b.unit:void 0,d=n.orient||o.legend.orient||"right",h=Sg({legend:n,channel:t,timeUnit:f,scaleType:c}),p={legend:n,channel:t,model:e,markDef:i,encoding:r,fieldOrDatumDef:l,legendConfig:a,config:o,scaleType:c,orient:d,legendType:h,direction:Eg({legend:n,legendType:h,orient:d,legendConfig:a})};for(const v of vd){if(h==="gradient"&&v.startsWith("symbol")||h==="symbol"&&v.startsWith("gradient"))continue;const w=v in Fd?Fd[v](p):n[v];if(w!==void 0){const F=Bg(w,v,n,e.fieldDef(t));(F||o.legend[v]===void 0)&&s.set(v,w,F)}}const g=(n==null?void 0:n.encoding)??{},m=s.get("selections"),y={},x={fieldOrDatumDef:l,model:e,channel:t,legendCmpt:s,legendType:h};for(const v of["labels","legend","title","symbols","gradient","entries"]){const w=gd(g[v]??{},e),F=v in bd?bd[v](w,x):w;F===void 0||Q(F)||(y[v]={...m!=null&&m.length&&C(l)?{name:`${se(l.field)}_legend_${v}`}:{},...m!=null&&m.length?{interactive:!!m}:{},update:F})}return Q(y)||s.set("encode",y,!!(n!=null&&n.encoding)),s}function kd(e,t){var o,a,s,u;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 c of vd){const l=$n(e.getWithExplicit(c),t.getWithExplicit(c),c,"legend",(f,d)=>{switch(c){case"symbolType":return Og(f,d);case"title":return Gu(f,d);case"type":return r=!0,yt("symbol")}return Zr(f,d,c,"legend")});e.setWithExplicit(c,l)}return r&&((a=(o=e.implicit)==null?void 0:o.encode)!=null&&a.gradient&&hr(e.implicit,["encode","gradient"]),(u=(s=e.explicit)==null?void 0:s.encode)!=null&&u.gradient&&hr(e.explicit,["encode","gradient"])),e}function Og(e,t){return t.value==="circle"?t:e}function Cd(e){const t=e.component.legends,n={};for(const i of D(t)){const r=K(e.getScaleComponent(i).get("domains"));if(n[r])for(const o of n[r])kd(o,t[i])||n[r].push(t[i]);else n[r]=[t[i].clone()]}return Ae(n).flat().map(i=>function(r,o){var l,f,d;const{disable:a,labelExpr:s,selections:u,...c}=r.combine();if(!a){if(o.aria===!1&&c.aria==null&&(c.aria=!1),(l=c.encode)!=null&&l.symbols){const h=c.encode.symbols.update;!h.fill||h.fill.value==="transparent"||h.stroke||c.stroke||(h.stroke={value:"transparent"});for(const p of Sl)c[p]&&delete h[p]}if(c.title||delete c.title,s!==void 0){let h=s;(d=(f=c.encode)==null?void 0:f.labels)!=null&&d.update&&N(c.encode.labels.update.text)&&(h=An(s,"datum.label",c.encode.labels.update.text.signal)),function(p,g,m,y){var x,b;p.encode??(p.encode={}),(x=p.encode)[g]??(x[g]={}),(b=p.encode[g]).update??(b.update={}),p.encode[g].update[m]=y}(c,"labels","text",{signal:h})}return c}}(i,e.config)).filter(i=>i!==void 0)}function Pg(e){return Fi(e)||Xs(e)?function(t){return t.children.reduce((n,i)=>n.concat(i.assembleProjections()),Sd(t))}(e):Sd(e)}function Sd(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(a=>a.signal).join(", ")}]`},o=t.data.reduce((a,s)=>{const u=N(s)?s.signal:`data('${e.lookupDataSource(s)}')`;return U(a,u)||a.push(u),a},[]);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 Ng=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class Ed extends on{constructor(t,n,i,r){super({...n},{name:t}),this.specifiedProjection=n,this.size=i,this.data=r,this.merged=!1}get isFit(){return!!this.data}}function Bd(e){e.component.projection=le(e)?function(t){if(t.hasProjection){const n=Ce(t.specifiedProjection),i=!(n&&(n.scale!=null||n.translate!=null)),r=i?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,o=i?function(s){const u=[],{encoding:c}=s;for(const l of[[ct,ut],[Ke,lt]])(ye(c[l[0]])||ye(c[l[1]]))&&u.push({signal:s.getName(`geojson_${u.length}`)});return s.channelHasField(qe)&&s.typedFieldDef(qe).type===ui&&u.push({signal:s.getName(`geojson_${u.length}`)}),u.length===0&&u.push(s.requestDataName(ce.Main)),u}(t):void 0,a=new Ed(t.projectionName(!0),{...Ce(t.config.projection),...n},r,o);return a.get("type")||a.set("type","equalEarth",!1),a}}(e):function(t){if(t.children.length===0)return;let n;for(const r of t.children)Bd(r);const i=Mo(t.children,r=>{const o=r.component.projection;if(o){if(n){const a=function(s,u){const c=Mo(Ng,l=>!fe(s.explicit,l)&&!fe(u.explicit,l)||!!(fe(s.explicit,l)&&fe(u.explicit,l)&&He(s.get(l),u.get(l))));if(He(s.size,u.size)){if(c)return s;if(He(s.explicit,{}))return u;if(He(u.explicit,{}))return s}return null}(n,o);return a&&(n=a),!!a}return n=o,!0}return!0});if(n&&i){const r=t.projectionName(!0),o=new Ed(r,n.specifiedProjection,n.size,M(n.data));for(const a of t.children){const s=a.component.projection;s&&(s.isFit&&o.data.push(...a.component.projection.data),a.renameProjection(s.get("name"),r),s.merged=!0)}return o}}(e)}function _g(e,t,n,i){if(Yi(t,n)){const r=le(e)?e.axis(n)??e.legend(n)??{}:{},o=S(t,{expr:"datum"}),a=S(t,{expr:"datum",binSuffix:"end"});return{formulaAs:S(t,{binSuffix:"range",forAs:!0}),formula:Ii(o,a,r.format,r.formatType,i)}}return{}}function zd(e,t){return`${_u(e)}_${t}`}function Ts(e,t,n){const i=zd(Ir(n,void 0)??{},t);return e.getName(`${i}_bins`)}function Od(e,t,n){let i,r;i=function(c){return"as"in c}(e)?R(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:[S(e,{forAs:!0}),S(e,{binSuffix:"end",forAs:!0})];const o={...Ir(t,void 0)},a=zd(o,e.field),{signal:s,extentSignal:u}=function(c,l){return{signal:c.getName(`${l}_bins`),extentSignal:c.getName(`${l}_extent`)}}(n,a);if(Ar(o.extent)){const c=o.extent;r=id(n,c.param,c),delete o.extent}return{key:a,binComponent:{bin:o,field:e.field,as:[i],...s?{signal:s}:{},...u?{extentSignal:u}:{},...r?{span:r}:{}}}}class Tt extends Y{clone(){return new Tt(null,M(this.bins))}constructor(t,n){super(t),this.bins=n}static makeFromEncoding(t,n){const i=n.reduceFieldDef((r,o,a)=>{if(_e(o)&&te(o.bin)){const{key:s,binComponent:u}=Od(o,o.bin,n);r[s]={...u,...r[s],..._g(n,o,a,n.config)}}return r},{});return Q(i)?null:new Tt(t,i)}static makeFromTransform(t,n,i){const{key:r,binComponent:o}=Od(n,n.bin,i);return new Tt(t,{[r]:o})}merge(t,n){for(const i of D(t.bins))i in this.bins?(n(t.bins[i].signal,this.bins[i].signal),this.bins[i].as=$t([...this.bins[i].as,...t.bins[i].as],I)):this.bins[i]=t.bins[i];for(const i of t.children)t.removeChild(i),i.parent=this;t.remove()}producedFields(){return new Set(Ae(this.bins).map(t=>t.as).flat(2))}dependentFields(){return new Set(Ae(this.bins).map(t=>t.field))}hash(){return`Bin ${I(this.bins)}`}assemble(){return Ae(this.bins).flatMap(t=>{const n=[],[i,...r]=t.as,{extent:o,...a}=t.bin,s={type:"bin",field:Je(t.field),as:i,signal:t.signal,...Ar(o)?{extent:null}:{extent:o},...t.span?{span:{signal:`span(${t.span})`}}:{},...a};!o&&t.extentSignal&&(n.push({type:"extent",field:Je(t.field),signal:t.extentSignal}),s.extent={signal:t.extentSignal}),n.push(s);for(const u of r)for(let c=0;c<2;c++)n.push({type:"formula",expr:S({field:i[c]},{expr:"datum"}),as:u[c]});return t.formula&&n.push({type:"formula",expr:t.formula,as:t.formulaAs}),n})}}function Tg(e,t,n,i){var o;const r=le(i)?i.encoding[At(t)]:void 0;if(_e(n)&&le(i)&&Yc(n,r,i.markDef,i.config)){e.add(S(n,{})),e.add(S(n,{suffix:"end"}));const{mark:a,markDef:s,config:u}=i,c=bn({fieldDef:n,markDef:s,config:u});Ui(a)&&c!==.5&&he(t)&&(e.add(S(n,{suffix:eo})),e.add(S(n,{suffix:to}))),n.bin&&Yi(n,t)&&e.add(S(n,{binSuffix:"range"}))}else if(Au(t)){const a=Du(t);e.add(i.getName(a))}else e.add(S(n));return Mn(n)&&function(a){return H(a)&&"field"in a}((o=n.scale)==null?void 0:o.range)&&e.add(n.scale.range.field),e}class xt extends Y{clone(){return new xt(null,new Set(this.dimensions),M(this.measures))}constructor(t,n,i){super(t),this.dimensions=n,this.measures=i}get groupBy(){return this.dimensions}static makeFromEncoding(t,n){let i=!1;n.forEachFieldDef(a=>{a.aggregate&&(i=!0)});const r={},o=new Set;return i?(n.forEachFieldDef((a,s)=>{const{aggregate:u,field:c}=a;if(u)if(u==="count")r["*"]??(r["*"]={}),r["*"].count=new Set([S(a,{forAs:!0})]);else{if(Yt(u)||gn(u)){const l=Yt(u)?"argmin":"argmax",f=u[l];r[f]??(r[f]={}),r[f][l]=new Set([S({op:l,field:f},{forAs:!0})])}else r[c]??(r[c]={}),r[c][u]=new Set([S(a,{forAs:!0})]);kt(s)&&n.scaleDomain(s)==="unaggregated"&&(r[c]??(r[c]={}),r[c].min=new Set([S({field:c,aggregate:"min"},{forAs:!0})]),r[c].max=new Set([S({field:c,aggregate:"max"},{forAs:!0})]))}else Tg(o,s,a,n)}),o.size+D(r).length===0?null:new xt(t,o,r)):null}static makeFromTransform(t,n){var i;const r=new Set,o={};for(const a of n.aggregate){const{op:s,field:u,as:c}=a;s&&(s==="count"?(o["*"]??(o["*"]={}),o["*"].count=new Set([c||S(a,{forAs:!0})])):(o[u]??(o[u]={}),(i=o[u])[s]??(i[s]=new Set),o[u][s].add(c||S(a,{forAs:!0}))))}for(const a of n.groupby??[])r.add(a);return r.size+D(o).length===0?null:new xt(t,r,o)}merge(t){return hu(this.dimensions,t.dimensions)?(function(n,i){for(const r of D(i)){const o=i[r];for(const a of D(o))r in n?n[r][a]=new Set([...n[r][a]??[],...o[a]]):n[r]={[a]:o[a]}}}(this.measures,t.measures),!0):(function(...n){qi.debug(...n)}("different dimensions, cannot merge"),!1)}addDimensions(t){t.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...D(this.measures)])}producedFields(){const t=new Set;for(const n of D(this.measures))for(const i of D(this.measures[n])){const r=this.measures[n][i];r.size===0?t.add(`${i}_${n}`):r.forEach(t.add,t)}return t}hash(){return`Aggregate ${I({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const t=[],n=[],i=[];for(const r of D(this.measures))for(const o of D(this.measures[r]))for(const a of this.measures[r][o])i.push(a),t.push(o),n.push(r==="*"?null:Je(r));return{type:"aggregate",groupby:[...this.dimensions].map(Je),ops:t,fields:n,as:i}}}class wi extends Y{constructor(t,n,i,r){super(t),this.model=n,this.name=i,this.data=r;for(const o of Ze){const a=n.facet[o];if(a){const{bin:s,sort:u}=a;this[o]={name:n.getName(`${o}_domain`),fields:[S(a),...te(s)?[S(a,{binSuffix:"end"})]:[]],...Jt(u)?{sortField:u}:P(u)?{sortIndexField:xi(a,o)}:{}}}}this.childModel=n.child}hash(){let t="Facet";for(const n of Ze)this[n]&&(t+=` ${n.charAt(0)}:${I(this[n])}`);return t}get fields(){var n;const t=[];for(const i of Ze)(n=this[i])!=null&&n.fields&&t.push(...this[i].fields);return t}dependentFields(){const t=new Set(this.fields);for(const n of Ze)this[n]&&(this[n].sortField&&t.add(this[n].sortField.field),this[n].sortIndexField&&t.add(this[n].sortIndexField));return t}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const t={};for(const n of Vt){const i=this.childModel.component.scales[n];if(i&&!i.merged){const r=i.get("type"),o=i.get("range");if(we(r)&&Bn(o)){const a=Vs(yo(this.childModel,n));a?t[n]=a:k(na(n))}}}return t}assembleRowColumnHeaderData(t,n,i){const r={row:"y",column:"x",facet:void 0}[t],o=[],a=[],s=[];r&&i&&i[r]&&(n?(o.push(`distinct_${i[r]}`),a.push("max")):(o.push(i[r]),a.push("distinct")),s.push(`distinct_${i[r]}`));const{sortField:u,sortIndexField:c}=this[t];if(u){const{op:l=jr,field:f}=u;o.push(f),a.push(l),s.push(S(u,{forAs:!0}))}else c&&(o.push(c),a.push("max"),s.push(c));return{name:this[t].name,source:n??this.data,transform:[{type:"aggregate",groupby:this[t].fields,...o.length?{fields:o,ops:a,as:s}:{}}]}}assembleFacetHeaderData(t){var u;const{columns:n}=this.model.layout,{layoutHeaders:i}=this.model.component,r=[],o={};for(const c of Bs){for(const l of zs){const f=(i[c]&&i[c][l])??[];for(const d of f)if(((u=d.axes)==null?void 0:u.length)>0){o[c]=!0;break}}if(o[c]){const l=`length(data("${this.facet.name}"))`,f=c==="row"?n?{signal:`ceil(${l} / ${n})`}:1:n?{signal:`min(${l}, ${n})`}:{signal:l};r.push({name:`${this.facet.name}_${c}`,transform:[{type:"sequence",start:0,stop:f}]})}}const{row:a,column:s}=o;return(a||s)&&r.unshift(this.assembleRowColumnHeaderData("facet",null,t)),r}assemble(){const t=[];let n=null;const i=this.getChildIndependentFieldsWithStep(),{column:r,row:o,facet:a}=this;if(r&&o&&(i.x||i.y)){n=`cross_${this.column.name}_${this.row.name}`;const s=[].concat(i.x??[],i.y??[]),u=s.map(()=>"distinct");t.push({name:n,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:s,ops:u}]})}for(const s of[Ut,qt])this[s]&&t.push(this.assembleRowColumnHeaderData(s,n,i));if(a){const s=this.assembleFacetHeaderData(i);s&&t.push(...s)}return t}}function Pd(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function jg(e){const t={};return mr(e.filter,n=>{if(vc(n)){let i=null;la(n)?i=Ge(n.equal):da(n)?i=Ge(n.lte):fa(n)?i=Ge(n.lt):pa(n)?i=Ge(n.gt):ma(n)?i=Ge(n.gte):ha(n)?i=n.range[0]:ga(n)&&(i=(n.oneOf??n.in)[0]),i&&(zn(i)?t[n.field]="date":ae(i)?t[n.field]="number":R(i)&&(t[n.field]="string")),n.timeUnit&&(t[n.field]="date")}}),t}function Mg(e){const t={};function n(i){var r;mi(i)?t[i.field]="date":i.type==="quantitative"&&(r=i.aggregate,R(r)&&U(["min","max"],r))?t[i.field]="number":ii(i.field)>1?i.field in t||(t[i.field]="flatten"):Mn(i)&&Jt(i.sort)&&ii(i.sort.field)>1&&(i.sort.field in t||(t[i.sort.field]="flatten"))}if((le(e)||Ve(e))&&e.forEachFieldDef((i,r)=>{if(_e(i))n(i);else{const o=Sn(r),a=e.fieldDef(o);n({...i,type:a.type})}}),le(e)){const{mark:i,markDef:r,encoding:o}=e;if(vn(i)&&!e.encoding.order){const a=o[r.orient==="horizontal"?"y":"x"];C(a)&&a.type==="quantitative"&&!(a.field in t)&&(t[a.field]="number")}}return t}class Pe extends Y{clone(){return new Pe(null,M(this._parse))}constructor(t,n){super(t),this._parse=n}hash(){return`Parse ${I(this._parse)}`}static makeExplicit(t,n,i){var a;let r={};const o=n.data;return!wn(o)&&((a=o==null?void 0:o.format)!=null&&a.parse)&&(r=o.format.parse),this.makeWithAncestors(t,r,{},i)}static makeWithAncestors(t,n,i,r){for(const s of D(i)){const u=r.getWithExplicit(s);u.value!==void 0&&(u.explicit||u.value===i[s]||u.value==="derived"||i[s]==="flatten"?delete i[s]:k(Zu(s,i[s],u.value)))}for(const s of D(n)){const u=r.get(s);u!==void 0&&(u===n[s]?delete n[s]:k(Zu(s,n[s],u)))}const o=new on(n,i);r.copyAll(o);const a={};for(const s of D(o.combine())){const u=o.get(s);u!==null&&(a[s]=u)}return D(a).length===0||r.parseNothing?null:new Pe(t,a)}get parse(){return this._parse}merge(t){this._parse={...this._parse,...t.parse},t.remove()}assembleFormatParse(){const t={};for(const n of D(this._parse)){const i=this._parse[n];ii(n)===1&&(t[n]=i)}return t}producedFields(){return new Set(D(this._parse))}dependentFields(){return new Set(D(this._parse))}assembleTransforms(t=!1){return D(this._parse).filter(n=>!t||ii(n)>1).map(n=>{const i=function(r,o){const a=Uo(r);return o==="number"?`toNumber(${a})`:o==="boolean"?`toBoolean(${a})`:o==="string"?`toString(${a})`:o==="date"?`toDate(${a})`:o==="flatten"?a:o.startsWith("date:")?`timeParse(${a},'${Pd(o.slice(5,o.length))}')`:o.startsWith("utc:")?`utcParse(${a},'${Pd(o.slice(4,o.length))}')`:(k(`Unrecognized parse "${o}".`),null)}(n,this._parse[n]);return i?{type:"formula",expr:i,as:ni(n)}:null}).filter(n=>n!==null)}}class Dn extends Y{clone(){return new Dn(null)}constructor(t){super(t)}dependentFields(){return new Set}producedFields(){return new Set([gt])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:gt}}}class sr extends Y{clone(){return new sr(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${I(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class ur extends Y{clone(){return new ur(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${I(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class In extends Y{constructor(t){let n;if(super(null),t??(t={name:"source"}),wn(t)||(n=t.format?{...Re(t.format,["parse"])}:{}),Ji(t))this._data={values:t.values};else if(gi(t)){if(this._data={url:t.url},!n.type){let i=/(?:\.([^.]+))?$/.exec(t.url)[1];U(["json","csv","tsv","dsv","topojson"],i)||(i="json"),n.type=i}}else of(t)?this._data={values:[{type:"Sphere"}]}:(nf(t)||wn(t))&&(this._data={});this._generator=wn(t),t.name&&(this._name=t.name),n&&!Q(n)&&(this._data.format=n)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(t){this._name=t}set parent(t){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}var ar,Nd=function(e,t,n,i,r){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?r.call(e,n):r?r.value=n:t.set(e,n),n},Rg=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)};function js(e){return e instanceof In||e instanceof sr||e instanceof ur}class Ms{constructor(){ar.set(this,void 0),Nd(this,ar,!1,"f")}setModified(){Nd(this,ar,!0,"f")}get modifiedFlag(){return Rg(this,ar,"f")}}ar=new WeakMap;class Hn extends Ms{getNodeDepths(t,n,i){i.set(t,n);for(const r of t.children)this.getNodeDepths(r,n+1,i);return i}optimize(t){const n=[...this.getNodeDepths(t,0,new Map).entries()].sort((i,r)=>r[1]-i[1]);for(const i of n)this.run(i[0]);return this.modifiedFlag}}class Rs extends Ms{optimize(t){this.run(t);for(const n of t.children)this.optimize(n);return this.modifiedFlag}}class Lg extends Rs{mergeNodes(t,n){const i=n.shift();for(const r of n)t.removeChild(r),r.parent=i,r.remove()}run(t){const n=t.children.map(r=>r.hash()),i={};for(let r=0;r<n.length;r++)i[n[r]]===void 0?i[n[r]]=[t.children[r]]:i[n[r]].push(t.children[r]);for(const r of D(i))i[r].length>1&&(this.setModified(),this.mergeNodes(t,i[r]))}}class qg extends Rs{constructor(t){super(),this.requiresSelectionId=t&&ys(t)}run(t){t instanceof Dn&&(this.requiresSelectionId&&(js(t.parent)||t.parent instanceof xt||t.parent instanceof Pe)||(this.setModified(),t.remove()))}}class Ug extends Ms{optimize(t){return this.run(t,new Set),this.modifiedFlag}run(t,n){let i=new Set;t instanceof _t&&(i=t.producedFields(),Ro(i,n)&&(this.setModified(),t.removeFormulas(n),t.producedFields.length===0&&t.remove()));for(const r of t.children)this.run(r,new Set([...n,...i]))}}class Wg extends Rs{constructor(){super()}run(t){t instanceof We&&!t.isRequired()&&(this.setModified(),t.remove())}}class Ig extends Hn{run(t){if(!(js(t)||t.numChildren()>1)){for(const n of t.children)if(n instanceof Pe)if(t instanceof Pe)this.setModified(),t.merge(n);else{if(qo(t.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class Hg extends Hn{run(t){const n=[...t.children],i=t.children.filter(r=>r instanceof Pe);if(t.numChildren()>1&&i.length>=1){const r={},o=new Set;for(const a of i){const s=a.parse;for(const u of D(s))u in r?r[u]!==s[u]&&o.add(u):r[u]=s[u]}for(const a of o)delete r[a];if(!Q(r)){this.setModified();const a=new Pe(t,r);for(const s of n){if(s instanceof Pe)for(const u of D(r))delete s.parse[u];t.removeChild(s),s.parent=a,s instanceof Pe&&D(s.parse).length===0&&s.remove()}}}}}class Gg extends Hn{run(t){t instanceof We||t.numChildren()>0||t instanceof wi||t instanceof In||(this.setModified(),t.remove())}}class Vg extends Hn{run(t){const n=t.children.filter(r=>r instanceof _t),i=n.pop();for(const r of n)this.setModified(),i.merge(r)}}class Yg extends Hn{run(t){const n=t.children.filter(r=>r instanceof xt),i={};for(const r of n){const o=I(r.groupBy);o in i||(i[o]=[]),i[o].push(r)}for(const r of D(i)){const o=i[r];if(o.length>1){const a=o.pop();for(const s of o)a.merge(s)&&(t.removeChild(s),s.parent=a,s.remove(),this.setModified())}}}}class Xg extends Hn{constructor(t){super(),this.model=t}run(t){const n=!(js(t)||t instanceof Di||t instanceof Pe||t instanceof Dn),i=[],r=[];for(const o of t.children)o instanceof Tt&&(n&&!qo(t.producedFields(),o.dependentFields())?i.push(o):r.push(o));if(i.length>0){const o=i.pop();for(const a of i)o.merge(a,this.model.renameSignal.bind(this.model));this.setModified(),t instanceof Tt?t.merge(o,this.model.renameSignal.bind(this.model)):o.swapWithParent()}if(r.length>1){const o=r.pop();for(const a of r)o.merge(a,this.model.renameSignal.bind(this.model));this.setModified()}}}class Jg extends Hn{run(t){const n=[...t.children];if(!ti(n,o=>o instanceof We)||t.numChildren()<=1)return;const i=[];let r;for(const o of n)if(o instanceof We){let a=o;for(;a.numChildren()===1;){const[s]=a.children;if(!(s instanceof We))break;a=s}i.push(...a.children),r?(t.removeChild(o),o.parent=r.parent,r.parent.removeChild(r),r.parent=a,this.setModified()):r=a}else i.push(o);if(i.length){this.setModified();for(const o of i)o.parent.removeChild(o),o.parent=r}}}class Gn extends Y{clone(){return new Gn(null,M(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=$t(this.transform.groupby.concat(t),n=>n)}dependentFields(){const t=new Set;return this.transform.groupby&&this.transform.groupby.forEach(t.add,t),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(t.add,t),t}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(t){return t.as??S(t)}hash(){return`JoinAggregateTransform ${I(this.transform)}`}assemble(){const t=[],n=[],i=[];for(const o of this.transform.joinaggregate)n.push(o.op),i.push(this.getDefaultName(o)),t.push(o.field===void 0?null:o.field);const r=this.transform.groupby;return{type:"joinaggregate",as:i,ops:n,fields:t,...r!==void 0?{groupby:r}:{}}}}class Ci extends Y{clone(){return new Ci(null,{...this.filter})}constructor(t,n){super(t),this.filter=n}static make(t,n,i){const{config:r,markDef:o}=n,{marks:a,scales:s}=i;if(a==="include-invalid-values"&&s==="include-invalid-values")return null;const u=n.reduceFieldDef((c,l,f)=>{const d=kt(f)&&n.getScaleComponent(f);if(d){const h=d.get("type"),{aggregate:p}=l,g=Sa({scaleChannel:f,markDef:o,config:r,scaleType:h,isCountAggregate:Dr(p)});g!=="show"&&g!=="always-valid"&&(c[l.field]=l)}return c},{});return D(u).length?new Ci(t,u):null}dependentFields(){return new Set(D(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${I(this.filter)}`}assemble(){const t=D(this.filter).reduce((n,i)=>{const r=this.filter[i],o=S(r,{expr:"datum"});return r!==null&&(r.type==="temporal"?n.push(`(isDate(${o}) || (${Ls(o)}))`):r.type==="quantitative"&&n.push(Ls(o))),n},[]);return t.length>0?{type:"filter",expr:t.join(" && ")}:null}}function Ls(e){return`isValid(${e}) && isFinite(+${e})`}class an extends Y{clone(){return new an(null,M(this._stack))}constructor(t,n){super(t),this._stack=n}static makeFromTransform(t,n){const{stack:i,groupby:r,as:o,offset:a="zero"}=n,s=[],u=[];if(n.sort!==void 0)for(const f of n.sort)s.push(f.field),u.push(me(f.order,"ascending"));const c={field:s,order:u};let l;return l=function(f){return P(f)&&f.every(d=>R(d))&&f.length>1}(o)?o:R(o)?[o,`${o}_end`]:[`${n.stack}_start`,`${n.stack}_end`],new an(t,{dimensionFieldDefs:[],stackField:i,groupby:r,offset:a,sort:c,facetby:[],as:l})}static makeFromEncoding(t,n){const i=n.stack,{encoding:r}=n;if(!i)return null;const{groupbyChannels:o,fieldChannel:a,offset:s,impute:u}=i,c=o.map(h=>ht(r[h])).filter(h=>!!h),l=function(h){return h.stack.stackBy.reduce((p,g)=>{const m=S(g.fieldDef);return m&&p.push(m),p},[])}(n),f=n.encoding.order;let d;if(P(f)||C(f))d=Wu(f);else{const h=Xc(f)?f.sort:a==="y"?"descending":"ascending";d=l.reduce((p,g)=>(p.field.includes(g)||(p.field.push(g),p.order.push(h)),p),{field:[],order:[]})}return new an(t,{dimensionFieldDefs:c,stackField:n.vgField(a),facetby:[],stackby:l,sort:d,offset:s,impute:u,as:[n.vgField(a,{suffix:"start",forAs:!0}),n.vgField(a,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(t){this._stack.facetby.push(...t)}dependentFields(){const t=new Set;return t.add(this._stack.stackField),this.getGroupbyFields().forEach(t.add,t),this._stack.facetby.forEach(t.add,t),this._stack.sort.field.forEach(t.add,t),t}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${I(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:t,impute:n,groupby:i}=this._stack;return t.length>0?t.map(r=>r.bin?n?[S(r,{binSuffix:"mid"})]:[S(r,{}),S(r,{binSuffix:"end"})]:[S(r)]).flat():i??[]}assemble(){const t=[],{facetby:n,dimensionFieldDefs:i,stackField:r,stackby:o,sort:a,offset:s,impute:u,as:c}=this._stack;if(u)for(const l of i){const{bandPosition:f=.5,bin:d}=l;if(d){const h=S(l,{expr:"datum"}),p=S(l,{expr:"datum",binSuffix:"end"});t.push({type:"formula",expr:`${Ls(h)} ? ${f}*${h}+${1-f}*${p} : ${h}`,as:S(l,{binSuffix:"mid",forAs:!0})})}t.push({type:"impute",field:r,groupby:[...o,...n],key:S(l,{binSuffix:"mid"}),method:"value",value:0})}return t.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:r,sort:a,as:c,offset:s}),t}}class Ai extends Y{clone(){return new Ai(null,M(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=$t(this.transform.groupby.concat(t),n=>n)}dependentFields(){const t=new Set;return(this.transform.groupby??[]).forEach(t.add,t),(this.transform.sort??[]).forEach(n=>t.add(n.field)),this.transform.window.map(n=>n.field).filter(n=>n!==void 0).forEach(t.add,t),t}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(t){return t.as??S(t)}hash(){return`WindowTransform ${I(this.transform)}`}assemble(){const t=[],n=[],i=[],r=[];for(const f of this.transform.window)n.push(f.op),i.push(this.getDefaultName(f)),r.push(f.param===void 0?null:f.param),t.push(f.field===void 0?null:f.field);const o=this.transform.frame,a=this.transform.groupby;if(o&&o[0]===null&&o[1]===null&&n.every(f=>Fr(f)))return{type:"joinaggregate",as:i,ops:n,fields:t,...a!==void 0?{groupby:a}:{}};const s=[],u=[];if(this.transform.sort!==void 0)for(const f of this.transform.sort)s.push(f.field),u.push(f.order??"ascending");const c={field:s,order:u},l=this.transform.ignorePeers;return{type:"window",params:r,as:i,ops:n,fields:t,sort:c,...l!==void 0?{ignorePeers:l}:{},...a!==void 0?{groupby:a}:{},...o!==void 0?{frame:o}:{}}}}function qs(e){if(e instanceof wi)if(e.numChildren()!==1||e.children[0]instanceof We){const n=e.model.component.data.main;_d(n);const i=(t=e,function o(a){if(!(a instanceof wi)){const s=a.clone();if(s instanceof We){const u=Us+s.getSource();s.setSource(u),t.model.component.data.outputNodes[u]=s}else(s instanceof xt||s instanceof an||s instanceof Ai||s instanceof Gn)&&s.addDimensions(t.fields);for(const u of a.children.flatMap(o))u.parent=s;return[s]}return a.children.flatMap(o)}),r=e.children.map(i).flat();for(const o of r)o.parent=n}else{const n=e.children[0];(n instanceof xt||n instanceof an||n instanceof Ai||n instanceof Gn)&&n.addDimensions(e.fields),n.swapWithParent(),qs(e)}else e.children.map(qs);var t}function _d(e){if(e instanceof We&&e.type===ce.Main&&e.numChildren()===1){const t=e.children[0];t instanceof wi||(t.swapWithParent(),_d(e))}}const Us="scale_";function Ws(e){for(const t of e){for(const n of t.children)if(n.parent!==t)return!1;if(!Ws(t.children))return!1}return!0}function bt(e,t){let n=!1;for(const i of t)n=e.optimize(i)||n;return n}function Td(e,t,n){let i=e.sources,r=!1;return r=bt(new Wg,i)||r,r=bt(new qg(t),i)||r,i=i.filter(o=>o.numChildren()>0),r=bt(new Gg,i)||r,i=i.filter(o=>o.numChildren()>0),n||(r=bt(new Ig,i)||r,r=bt(new Xg(t),i)||r,r=bt(new Ug,i)||r,r=bt(new Hg,i)||r,r=bt(new Yg,i)||r,r=bt(new Vg,i)||r,r=bt(new Lg,i)||r,r=bt(new Jg,i)||r),e.sources=i,r}class De{constructor(t){Object.defineProperty(this,"signal",{enumerable:!0,get:t})}static fromName(t,n){return new De(()=>t(n))}}function jd(e){le(e)?function(t){const n=t.component.scales;for(const i of D(n)){const r=Qg(t,i);if(n[i].setWithExplicit("domains",r),Kg(t,i),t.component.data.isFaceted){let o=t;for(;!Ve(o)&&o.parent;)o=o.parent;if(o.component.resolve.scale[i]==="shared")for(const a of r.value)Xt(a)&&(a.data=Us+a.data.replace(Us,""))}}}(e):function(t){for(const i of t.children)jd(i);const n=t.component.scales;for(const i of D(n)){let r,o=null;for(const a of t.children){const s=a.component.scales[i];if(s){r=r===void 0?s.getWithExplicit("domains"):$n(r,s.getWithExplicit("domains"),"domains","scale",Gs);const u=s.get("selectionExtent");o&&u&&o.param!==u.param&&k(Qp),o=u}}n[i].setWithExplicit("domains",r),o&&n[i].set("selectionExtent",o,!0)}}(e)}function Qg(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:i}=e,r=function(o,a,s,u){if(o==="unaggregated"){const{valid:c,reason:l}=Md(a,s);if(!c)return void k(l)}else if(o===void 0&&u.useUnaggregatedDomain){const{valid:c}=Md(a,s);if(c)return"unaggregated"}return o}(e.scaleDomain(t),e.typedFieldDef(t),n,e.config.scale);return r!==e.scaleDomain(t)&&(e.specifiedScales[t]={...e.specifiedScales[t],domain:r}),t==="x"&&ye(i.x2)?ye(i.x)?$n(Fn(n,r,e,"x"),Fn(n,r,e,"x2"),"domain","scale",Gs):Fn(n,r,e,"x2"):t==="y"&&ye(i.y2)?ye(i.y)?$n(Fn(n,r,e,"y"),Fn(n,r,e,"y2"),"domain","scale",Gs):Fn(n,r,e,"y2"):Fn(n,r,e,t)}function Is(e,t,n){var r;const i=(r=$e(n))==null?void 0:r.unit;return t==="temporal"||i?function(o,a,s){return o.map(u=>({signal:`{data: ${Hr(u,{timeUnit:s,type:a})}}`}))}(e,t,i):[e]}function Fn(e,t,n,i){const{encoding:r,markDef:o,mark:a,config:s,stack:u}=n,c=ye(r[i]),{type:l}=c,f=c.timeUnit,d=function(g){const{marks:m,scales:y}=af(g);return m===y?ce.Main:y==="include-invalid-values"?ce.PreFilterInvalid:ce.PostFilterInvalid}({invalid:Ct("invalid",o,s),isPath:vn(a)});if(function(g){return A(g,"unionWith")}(t)){const g=Fn(e,void 0,n,i);return Pt([...Is(t.unionWith,l,f),...g.value])}if(N(t))return Pt([t]);if(t&&t!=="unaggregated"&&!Sc(t))return Pt(Is(t,l,f));if(u&&i===u.fieldChannel){if(u.offset==="normalize")return yt([[0,1]]);const g=n.requestDataName(d);return yt([{data:g,field:n.vgField(i,{suffix:"start"})},{data:g,field:n.vgField(i,{suffix:"end"})}])}const h=kt(i)&&C(c)?function(g,m,y){if(!we(y))return;const x=g.fieldDef(m),b=x.sort;if(Hc(b))return{op:"min",field:xi(x,m),order:"ascending"};const{stack:v}=g,w=v?new Set([...v.groupbyFields,...v.stackBy.map(F=>F.fieldDef.field)]):void 0;if(Jt(b))return Hs(b,v&&!w.has(b.field));if(function(F){return A(F,"encoding")}(b)){const{encoding:F,order:E}=b,B=g.fieldDef(F),{aggregate:O,field:T}=B,z=v&&!w.has(T);if(Yt(O)||gn(O))return Hs({field:S(B),order:E},z);if(Fr(O)||!O)return Hs({op:O,field:T,order:E},z)}else{if(b==="descending")return{op:"min",field:g.vgField(m),order:"descending"};if(U(["ascending",void 0],b))return!0}}(n,i,e):void 0;if(zt(c))return yt(Is([c.datum],l,f));const p=c;if(t==="unaggregated"){const{field:g}=c;return yt([{data:n.requestDataName(d),field:S({field:g,aggregate:"min"})},{data:n.requestDataName(d),field:S({field:g,aggregate:"max"})}])}if(te(p.bin)){if(we(e))return yt(e==="bin-ordinal"?[]:[{data:Pi(h)?n.requestDataName(d):n.requestDataName(ce.Raw),field:n.vgField(i,Yi(p,i)?{binSuffix:"range"}:{}),sort:h!==!0&&H(h)?h:{field:n.vgField(i,{}),op:"min"}}]);{const{bin:g}=p;if(te(g)){const m=Ts(n,p.field,g);return yt([new De(()=>{const y=n.getSignalName(m);return`[${y}.start, ${y}.stop]`})])}return yt([{data:n.requestDataName(d),field:n.vgField(i,{})}])}}if(p.timeUnit&&U(["time","utc"],e)){const g=r[At(i)];if(Yc(p,g,o,s)){const m=n.requestDataName(d),y=bn({fieldDef:p,fieldDef2:g,markDef:o,config:s}),x=Ui(a)&&y!==.5&&he(i);return yt([{data:m,field:n.vgField(i,x?{suffix:eo}:{})},{data:m,field:n.vgField(i,{suffix:x?to:"end"})}])}}return yt(h?[{data:Pi(h)?n.requestDataName(d):n.requestDataName(ce.Raw),field:n.vgField(i),sort:h}]:[{data:n.requestDataName(d),field:n.vgField(i)}])}function Hs(e,t){const{op:n,field:i,order:r}=e;return{op:n??(t?"sum":jr),...i?{field:Je(i)}:{},...r?{order:r}:{}}}function Kg(e,t){var s;const n=e.component.scales[t],i=e.specifiedScales[t].domain,r=(s=e.fieldDef(t))==null?void 0:s.bin,o=Sc(i)?i:void 0,a=En(r)&&Ar(r.extent)?r.extent:void 0;(o||a)&&n.set("selectionExtent",o??a,!0)}function Md(e,t){const{aggregate:n,type:i}=e;return n?R(n)&&!Hp.has(n)?{valid:!1,reason:rm(n)}:i==="quantitative"&&t==="log"?{valid:!1,reason:om(e)}:{valid:!0}:{valid:!1,reason:im(e)}}function Gs(e,t,n,i){return e.explicit&&t.explicit&&k(function(r,o,a,s){return`Conflicting ${o.toString()} property "${r.toString()}" (${K(a)} and ${K(s)}). Using the union of the two domains.`}(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function Zg(e){const t=$t(e.map(a=>{if(Xt(a)){const{sort:s,...u}=a;return u}return a}),I),n=$t(e.map(a=>{if(Xt(a)){const s=a.sort;return s===void 0||Pi(s)||("op"in s&&s.op==="count"&&delete s.field,s.order==="ascending"&&delete s.order),s}}).filter(a=>a!==void 0),I);if(t.length===0)return;if(t.length===1){const a=e[0];if(Xt(a)&&n.length>0){let s=n[0];if(n.length>1){k(oc);const u=n.filter(c=>H(c)&&"op"in c&&c.op!=="min");s=!n.every(c=>H(c)&&"op"in c)||u.length!==1||u[0]}else if(H(s)&&"field"in s){const u=s.field;a.field===u&&(s=!s.order||{order:s.order})}return{...a,sort:s}}return a}const i=$t(n.map(a=>Pi(a)||!("op"in a)||R(a.op)&&fe(Up,a.op)?a:(k(function(s){return`Dropping sort property ${K(s)} as unioned domains only support boolean or op "count", "min", and "max".`}(a)),!0)),I);let r;i.length===1?r=i[0]:i.length>1&&(k(oc),r=!0);const o=$t(e.map(a=>Xt(a)?a.data:null),a=>a);return o.length===1&&o[0]!==null?{data:o[0],fields:t.map(a=>a.field),...r?{sort:r}:{}}:{fields:t,...r?{sort:r}:{}}}function Vs(e){if(Xt(e)&&R(e.field))return e.field;if(function(t){return!P(t)&&A(t,"fields")&&!A(t,"data")}(e)){let t;for(const n of e.fields)if(Xt(n)&&R(n.field))if(t){if(t!==n.field)return k("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 k("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(t){return!P(t)&&A(t,"fields")&&A(t,"data")}(e)){k("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 R(t)?t:void 0}}function yo(e,t){const n=e.component.scales[t].get("domains").map(i=>(Xt(i)&&(i.data=e.lookupDataSource(i.data)),i));return Zg(n)}function Rd(e){return Fi(e)||Xs(e)?e.children.reduce((t,n)=>t.concat(Rd(n)),Ld(e)):Ld(e)}function Ld(e){return D(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:u,range:c,reverse:l,...f}=r,d=function(g,m,y,x){if(he(y)){if(Bn(g))return{step:{signal:`${m}_step`}}}else if(H(g)&&Xt(g))return{...g,data:x.lookupDataSource(g.data)};return g}(r.range,o,n,e),h=yo(e,n),p=s?function(g,m,y,x){const b=id(g,m.param,m);return{signal:dt(y.get("type"))&&P(x)&&x[0]>x[1]?`isValid(${b}) && reverse(${b})`:b}}(e,s,i,h):null;return t.push({name:o,type:a,...h?{domain:h}:{},...p?{domainRaw:p}:{},range:d,...l!==void 0?{reverse:l}:{},...f}),t},[])}class qd extends on{constructor(t,n){super({},{name:t}),this.merged=!1,this.setWithExplicit("type",n)}domainHasZero(){const t=this.get("type");if(U([pm,ba,Br],t))return"definitely-not";const n=this.get("zero");if(n===!0||n===void 0&&U([$c,hm,mm],t))return"definitely";const i=this.get("domains");if(i.length>0){let r=!1,o=!1,a=!1;for(const s of i){if(P(s)){const u=s[0],c=s[s.length-1];if(ae(u)&&ae(c)){if(u<=0&&c>=0){r=!0;continue}o=!0;continue}}a=!0}if(r)return"definitely";if(o&&!a)return"definitely-not"}return"maybe"}}const e0=["range","scheme"];function Ud(e,t){const n=e.fieldDef(t);if(n!=null&&n.bin){const{bin:i,field:r}=n,o=Ue(t),a=e.getName(o);if(H(i)&&i.binned&&i.step!==void 0)return new De(()=>{const s=e.scaleName(t),u=`(domain("${s}")[1] - domain("${s}")[0]) / ${i.step}`;return`${e.getSignalName(a)} / (${u})`});if(te(i)){const s=Ts(e,r,i);return new De(()=>{const u=e.getSignalName(s),c=`(${u}.stop - ${u}.start) / ${u}.step`;return`${e.getSignalName(a)} / (${c})`})}}}function t0(e,t){const n=t.specifiedScales[e],{size:i}=t,r=t.getScaleComponent(e).get("type");for(const l of e0)if(n[l]!==void 0){const f=wa(r,l),d=Ec(e,l);if(f)if(d)k(d);else switch(l){case"range":{const h=n.range;if(P(h)){if(he(e))return Pt(h.map(p=>{if(p==="width"||p==="height"){const g=t.getName(p),m=t.getSignalName.bind(t);return De.fromName(m,g)}return p}))}else if(H(h))return Pt({data:t.requestDataName(ce.Main),field:h.field,sort:{op:"min",field:t.vgField(e)}});return Pt(h)}case"scheme":return Pt(n0(n[l]))}else k(ic(r,l,e))}const o=e===ue||e==="xOffset"?"width":"height",a=i[o];if(Ot(a)){if(he(e))if(we(r)){const l=Id(a,t,e);if(l)return Pt({step:l})}else k(rc(o));else if(Ri(e)){const l=e===cn?"x":"y";if(t.getScaleComponent(l).get("type")==="band"){const f=Hd(a,r);if(f)return Pt(f)}}}const{rangeMin:s,rangeMax:u}=n,c=function(l,f){const{size:d,config:h,mark:p,encoding:g}=f,{type:m}=ye(g[l]),y=f.getScaleComponent(l),x=y.get("type"),{domain:b,domainMid:v}=f.specifiedScales[l];switch(l){case ue:case xe:if(U(["point","band"],x)){const w=Gd(l,d,h.view);if(Ot(w))return{step:Id(w,f,l)}}return Wd(l,f,x);case cn:case ri:return function(w,F,E){const B=w===cn?"x":"y",O=F.getScaleComponent(B);if(!O)return Wd(B,F,E,{center:!0});const T=O.get("type"),z=F.scaleName(B),{markDef:j,config:ve}=F;if(T==="band"){const ne=Gd(B,F.size,F.config.view);if(Ot(ne)){const ie=Hd(ne,E);if(ie)return ie}return[0,{signal:`bandwidth('${z}')`}]}{const ne=F.encoding[B];if(C(ne)&&ne.timeUnit){const ie=gc(ne.timeUnit,tt=>`scale('${z}', ${tt})`),J=F.config.scale.bandWithNestedOffsetPaddingInner,ee=bn({fieldDef:ne,markDef:j,config:ve})-.5,de=ee!==0?` + ${ee}`:"";return J?[{signal:`${N(J)?`${J.signal}/2`+de:`${J/2+ee}`} * (${ie})`},{signal:`${N(J)?`(1 - ${J.signal}/2)`+de:`${1-J/2+ee}`} * (${ie})`}]:[0,{signal:ie}]}return pu(`Cannot use ${w} scale if ${B} scale is not discrete.`)}}(l,f,x);case Ht:{const w=function(E,B){switch(E){case"bar":case"tick":return B.scale.minBandSize;case"line":case"trail":case"rule":return B.scale.minStrokeWidth;case"text":return B.scale.minFontSize;case"point":case"square":case"circle":return B.scale.minSize}throw new Error(kr("size",E))}(p,h),F=function(E,B,O,T){const z={x:Ud(O,"x"),y:Ud(O,"y")};switch(E){case"bar":case"tick":{if(T.scale.maxBandSize!==void 0)return T.scale.maxBandSize;const j=Yd(B,z,T.view);return ae(j)?j-1:new De(()=>`${j.signal} - 1`)}case"line":case"trail":case"rule":return T.scale.maxStrokeWidth;case"text":return T.scale.maxFontSize;case"point":case"square":case"circle":{if(T.scale.maxSize)return T.scale.maxSize;const j=Yd(B,z,T.view);return ae(j)?Math.pow(Vd*j,2):new De(()=>`pow(${Vd} * ${j.signal}, 2)`)}}throw new Error(kr("size",E))}(p,d,f,h);return ci(x)?function(E,B,O){const T=()=>{const z=ft(B),j=ft(E),ve=`(${z} - ${j}) / (${O} - 1)`;return`sequence(${j}, ${z} + ${ve}, ${ve})`};return N(B)?new De(T):{signal:T()}}(w,F,function(E,B,O,T){switch(E){case"quantile":return B.scale.quantileCount;case"quantize":return B.scale.quantizeCount;case"threshold":return O!==void 0&&P(O)?O.length+1:(k(function(z){return`Domain for ${z} is required for threshold scale.`}(T)),3)}}(x,h,b,l)):[w,F]}case Qe:return[0,2*Math.PI];case kn:return[0,360];case st:return[0,new De(()=>`min(${f.getSignalName(Ve(f.parent)?"child_width":"width")},${f.getSignalName(Ve(f.parent)?"child_height":"height")})/2`)];case ln:return{step:1e3/h.scale.framesPerSecond};case pn:return[h.scale.minStrokeWidth,h.scale.maxStrokeWidth];case mn:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case qe:return"symbol";case Le:case Ft:case Dt:return x==="ordinal"?m==="nominal"?"category":"ordinal":v!==void 0?"diverging":p==="rect"||p==="geoshape"?"heatmap":"ramp";case Gt:case fn:case dn:return[h.scale.minOpacity,h.scale.maxOpacity]}}(e,t);return(s!==void 0||u!==void 0)&&wa(r,"rangeMin")&&P(c)&&c.length===2?Pt([s??c[0],u??c[1]]):yt(c)}function n0(e){return function(t){return!R(t)&&A(t,"name")}(e)?{scheme:e.name,...Re(e,["name"])}:{scheme:e}}function Wd(e,t,n,{center:i}={}){const r=Ue(e),o=t.getName(r),a=t.getSignalName.bind(t);return e===xe&&dt(n)?i?[De.fromName(s=>`${a(s)}/2`,o),De.fromName(s=>`-${a(s)}/2`,o)]:[De.fromName(a,o),0]:i?[De.fromName(s=>`-${a(s)}/2`,o),De.fromName(s=>`${a(s)}/2`,o)]:[0,De.fromName(a,o)]}function Id(e,t,n){const{encoding:i}=t,r=t.getScaleComponent(n),o=Go(n),a=i[o];if(Bl({step:e,offsetIsDiscrete:L(a)&&xc(a.type)})==="offset"&&cl(i,o)){const u=t.getScaleComponent(o);let c=`domain('${t.scaleName(o)}').length`;u.get("type")==="band"&&(c=`bandspace(${c}, ${u.get("paddingInner")??u.get("padding")??0}, ${u.get("paddingOuter")??u.get("padding")??0})`);const l=r.get("paddingInner")??r.get("padding");return{signal:`${e.step} * ${c} / (1-${s=l,N(s)?s.signal:W(s)})`}}return e.step;var s}function Hd(e,t){if(Bl({step:e,offsetIsDiscrete:we(t)})==="offset")return{step:e.step}}function Gd(e,t,n){const i=e===ue?"width":"height";return t[i]||Qr(n,i)}const Vd=.95;function Yd(e,t,n){const i=Ot(e.width)?e.width.step:Qa(n,"width"),r=Ot(e.height)?e.height.step:Qa(n,"height");return t.x||t.y?new De(()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`):Math.min(i,r)}function Xd(e,t){le(e)?function(n,i){const r=n.component.scales,{config:o,encoding:a,markDef:s,specifiedScales:u}=n;for(const c of D(r)){const l=u[c],f=r[c],d=n.getScaleComponent(c),h=ye(a[c]),p=l[i],g=d.get("type"),m=d.get("padding"),y=d.get("paddingInner"),x=wa(g,i),b=Ec(c,i);if(p!==void 0&&(x?b&&k(b):k(ic(g,i,c))),x&&b===void 0)if(p!==void 0){const v=h.timeUnit,w=h.type;switch(i){case"domainMax":case"domainMin":zn(l[i])||w==="temporal"||v?f.set(i,{signal:Hr(l[i],{type:w,timeUnit:v})},!0):f.set(i,l[i],!0);break;default:f.copyKeyFromObject(i,l)}}else{const v=A(Jd,i)?Jd[i]({model:n,channel:c,fieldOrDatumDef:h,scaleType:g,scalePadding:m,scalePaddingInner:y,domain:l.domain,domainMin:l.domainMin,domainMax:l.domainMax,markDef:s,config:o,hasNestedOffsetScale:ll(a,c),hasSecondaryRangeChannel:!!a[At(c)]}):o.scale[i];v!==void 0&&f.set(i,v,!1)}}}(e,t):Kd(e,t)}const Jd={bins:({model:e,fieldOrDatumDef:t})=>C(t)?function(n,i){const r=i.bin;if(te(r)){const o=Ts(n,i.field,r);return new De(()=>n.getSignalName(o))}if(ke(r)&&En(r)&&r.step!==void 0)return{step:r.step}}(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>function(n,i){if(U([Le,Ft,Dt],n)&&i!=="nominal")return"hcl"}(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:i,domainMax:r,fieldOrDatumDef:o})=>function(a,s,u,c,l,f){var d;if(!((d=ht(f))!=null&&d.bin||P(u)||l!=null||c!=null||U([ba,Br],a)))return!!he(s)||void 0}(e,t,n,i,r,o),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:i,config:r})=>function(o,a,s,u,c,l){if(he(o)){if(Et(a)){if(s.continuousPadding!==void 0)return s.continuousPadding;const{type:f,orient:d}=c;if(f==="bar"&&(!C(u)||!u.bin&&!u.timeUnit)&&(d==="vertical"&&o==="x"||d==="horizontal"&&o==="y"))return l.continuousBandSize}if(a===wc)return s.pointPadding}}(e,t,r.scale,n,i,r.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:i,config:r,hasNestedOffsetScale:o})=>function(a,s,u,c,l,f=!1){if(a===void 0){if(he(s)){const{bandPaddingInner:d,barBandPaddingInner:h,rectBandPaddingInner:p,tickBandPaddingInner:g,bandWithNestedOffsetPaddingInner:m}=l;return f?m:me(d,u==="bar"?h:u==="tick"?g:p)}if(Ri(s)&&c===xa)return l.offsetBandPaddingInner}}(e,t,n.type,i,r.scale,o),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:i,config:r,hasNestedOffsetScale:o})=>function(a,s,u,c,l,f=!1){if(a===void 0){if(he(s)){const{bandPaddingOuter:d,bandWithNestedOffsetPaddingOuter:h}=l;if(f)return h;if(u===xa)return me(d,N(c)?{signal:`${c.signal}/2`}:c/2)}else if(Ri(s)){if(u===wc)return .5;if(u===xa)return l.offsetBandPaddingOuter}}}(e,t,n,i,r.scale,o),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:i})=>function(r,o,a,s){if(a==="x"&&s.xReverse!==void 0)return dt(r)&&o==="descending"?N(s.xReverse)?{signal:`!${s.xReverse.signal}`}:!s.xReverse:s.xReverse;if(dt(r)&&o==="descending")return!0}(t,C(e)?e.sort:void 0,n,i.scale),zero:({channel:e,fieldOrDatumDef:t,domain:n,markDef:i,scaleType:r,config:o,hasSecondaryRangeChannel:a})=>function(s,u,c,l,f,d,h){if(c&&c!=="unaggregated"&&dt(f)){if(P(c)){const p=c[0],g=c[c.length-1];if(ae(p)&&p<=0&&ae(g)&&g>=0)return!0}return!1}if(s==="size"&&u.type==="quantitative"&&!ci(f))return!0;if((!C(u)||!u.bin)&&U([...Vt,...jp],s)){const{orient:p,type:g}=l;return(!U(["bar","area","line","trail"],g)||!(p==="horizontal"&&s==="y"||p==="vertical"&&s==="x"))&&(!(!U(["bar","area"],g)||h)||(d==null?void 0:d.zero))}return!1}(e,t,n,i,r,o.scale,a)};function Qd(e){le(e)?function(t){const n=t.component.scales;for(const i of Qo){const r=n[i];if(!r)continue;const o=t0(i,t);r.setWithExplicit("range",o)}}(e):Kd(e,"range")}function Kd(e,t){const n=e.component.scales;for(const i of e.children)t==="range"?Qd(i):Xd(i,t);for(const i of D(n)){let r;for(const o of e.children){const a=o.component.scales[i];a&&(r=$n(r,a.getWithExplicit(t),t,"scale",tf((s,u)=>t==="range"&&s.step&&u.step?s.step-u.step:0)))}n[i].setWithExplicit(t,r)}}function i0(e,t,n,i,r=!1){const o=function(c,l,f,d){var h;switch(l.type){case"nominal":case"ordinal":if(ai(c)||Ko(c)==="discrete")return c==="shape"&&l.type==="ordinal"&&k(oa(c,"ordinal")),"ordinal";if(Jo(c))return"band";if(he(c)||Ri(c)){if(U(["rect","bar","image","rule","tick"],f.type)||d)return"band"}else if(f.type==="arc"&&c in Xo)return"band";return _n(f[Ue(c)])||fi(l)&&((h=l.axis)!=null&&h.tickBand)?"band":"point";case"temporal":return ai(c)?"time":Ko(c)==="discrete"?(k(oa(c,"temporal")),"ordinal"):C(l)&&l.timeUnit&&$e(l.timeUnit).utc?"utc":Jo(c)?"band":"time";case"quantitative":return ai(c)?C(l)&&te(l.bin)?"bin-ordinal":"linear":Ko(c)==="discrete"?(k(oa(c,"quantitative")),"ordinal"):Jo(c)?"band":"linear";case"geojson":return}throw new Error(tc(l.type))}(t,n,i,r),{type:a}=e;return kt(t)?a!==void 0?function(c,l,f=!1){if(!kt(c))return!1;switch(c){case ue:case xe:case cn:case ri:case Qe:case st:return!!Et(l)||l==="band"||l==="point"&&!f;case ln:return U(["linear","band"],l);case Ht:case pn:case Gt:case fn:case dn:case kn:return Et(l)||ci(l)||U(["band","point","ordinal"],l);case Le:case Ft:case Dt:return l!=="band";case mn:case qe:return l==="ordinal"||ci(l)}}(t,a)?C(n)&&(s=a,u=n.type,!(U([ya,va],u)?s===void 0||we(s):u===si?U([ba,Br,void 0],s):u!==Nn||kc(s)||ci(s)||s===void 0))?(k(function(c,l){return`FieldDef does not work with "${c}" scale. We are using "${l}" scale instead.`}(a,o)),o):a:(k(function(c,l,f){return`Channel "${c}" does not work with "${l}" scale. We are using "${f}" scale instead.`}(t,a,o)),o):o:null;var s,u}function Zd(e){le(e)?e.component.scales=function(t){const{encoding:n,mark:i,markDef:r}=t,o={};for(const a of Qo){const s=ye(n[a]);if(s&&i===Oc&&a===qe&&s.type===ui)continue;let u=s&&s.scale;if(s&&u!==null&&u!==!1){u??(u={});const c=i0(u,a,s,r,ll(n,a));o[a]=new qd(t.scaleName(`${a}`,!0),{value:c,explicit:u.type===c})}}return o}(e):e.component.scales=function(t){var n;const i=t.component.scales={},r={},o=t.component.resolve;for(const a of t.children){Zd(a);for(const s of D(a.component.scales))if((n=o.scale)[s]??(n[s]=yd(s,t)),o.scale[s]==="shared"){const u=r[s],c=a.component.scales[s].getWithExplicit("type");u?gm(u.value,c.value)?r[s]=$n(u,c,"type","scale",r0):(o.scale[s]="independent",delete r[s]):r[s]=c}}for(const a of D(r)){const s=t.scaleName(a,!0),u=r[a];i[a]=new qd(s,u);for(const c of t.children){const l=c.component.scales[a];l&&(c.renameScale(l.get("name"),s),l.merged=!0)}}return i}(e)}const r0=tf((e,t)=>Fc(e)-Fc(t));class Ys{constructor(){this.nameMap={}}rename(t,n){this.nameMap[t]=n}has(t){return this.nameMap[t]!==void 0}get(t){for(;this.nameMap[t]&&t!==this.nameMap[t];)t=this.nameMap[t];return t}}function le(e){return(e==null?void 0:e.type)==="unit"}function Ve(e){return(e==null?void 0:e.type)==="facet"}function Xs(e){return(e==null?void 0:e.type)==="concat"}function Fi(e){return(e==null?void 0:e.type)==="layer"}class Js{constructor(t,n,i,r,o,a,s){this.type=n,this.parent=i,this.config=o,this.parent=i,this.config=o,this.view=Ce(s),this.name=t.name??r,this.title=yn(t.title)?{text:t.title}:t.title?Ce(t.title):void 0,this.scaleNameMap=i?i.scaleNameMap:new Ys,this.projectionNameMap=i?i.projectionNameMap:new Ys,this.signalNameMap=i?i.signalNameMap:new Ys,this.data=t.data,this.description=t.description,this.transforms=(t.transform??[]).map(u=>ns(u)?{filter:Zn(u.filter,fm)}:u),this.layout=n==="layer"||n==="unit"?{}:function(u,c,l){const f=l[c],d={},{spacing:h,columns:p}=f;h!==void 0&&(d.spacing=h),p!==void 0&&(Mr(u)&&!Hi(u.facet)||Ya(u))&&(d.columns=p),Jr(u)&&(d.columns=1);for(const g of Hm)if(u[g]!==void 0)if(g==="spacing"){const m=u[g];d[g]=ae(m)?m:{row:m.row??h,column:m.column??h}}else d[g]=u[g];return d}(t,n,o),this.component={data:{sources:i?i.component.data.sources:[],outputNodes:i?i.component.data.outputNodes:{},outputNodeRefCounts:i?i.component.data.outputNodeRefCounts:{},isFaceted:Mr(t)||(i==null?void 0:i.component.data.isFaceted)&&t.data===void 0},layoutSize:new on,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...a?M(a):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){(function(t,{ignoreRange:n}={}){Zd(t),jd(t);for(const i of $m)Xd(t,i);n||Qd(t)})(this)}parseProjection(){Bd(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){Ad(this)}assembleEncodeFromView(t){const{style:n,...i}=t,r={};for(const o of D(i)){const a=i[o];a!==void 0&&(r[o]=re(a))}return r}assembleGroupEncodeEntry(t){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),t||(this.description&&(n.description=re(this.description)),this.type!=="unit"&&this.type!=="layer")?Q(n)?void 0:n:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...n}}assembleLayout(){if(!this.layout)return;const{spacing:t,...n}=this.layout,{component:i,config:r}=this,o=function(a,s){const u={};for(const c of Ze){const l=a[c];if(l!=null&&l.facetFieldDef){const{titleAnchor:f,titleOrient:d}=ho(["titleAnchor","titleOrient"],l.facetFieldDef.header,s,c),h=mo(c,d),p=kg(f,h);p!==void 0&&(u[h]=p)}}return Q(u)?void 0:u}(i.layoutHeaders,r);return{padding:t,...this.assembleDefaultLayout(),...n,...o?{titleBand:o}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:t}=this.component;let n=[];for(const i of Ze)t[i].title&&n.push($g(this,i));for(const i of Bs)n=n.concat(wg(this,i));return n}assembleAxes(){return function(t,n){const{x:i=[],y:r=[]}=t;return[...i.map(o=>or(o,"grid",n)),...r.map(o=>or(o,"grid",n)),...i.map(o=>or(o,"main",n)),...r.map(o=>or(o,"main",n))].filter(o=>o)}(this.component.axes,this.config)}assembleLegends(){return Cd(this)}assembleProjections(){return Pg(this)}assembleTitle(){const{encoding:t,...n}=this.title??{},i={...ju(this.config.title).nonMarkTitleProperties,...n,...t?{encode:{update:t}}:{}};if(i.text)return U(["unit","layer"],this.type)?U(["middle",void 0],i.anchor)&&(i.frame??(i.frame="group")):i.anchor??(i.anchor="start"),Q(i)?void 0:i}assembleGroup(t=[]){const n={};(t=t.concat(this.assembleSignals())).length>0&&(n.signals=t);const i=this.assembleLayout();i&&(n.layout=i),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const r=!this.parent||Ve(this.parent)?Rd(this):[];r.length>0&&(n.scales=r);const o=this.assembleAxes();o.length>0&&(n.axes=o);const a=this.assembleLegends();return a.length>0&&(n.legends=a),n}getName(t){return se((this.name?`${this.name}_`:"")+t)}getDataName(t){return this.getName(ce[t].toLowerCase())}requestDataName(t){const n=this.getDataName(t),i=this.component.data.outputNodeRefCounts;return i[n]=(i[n]||0)+1,n}getSizeSignalRef(t){if(Ve(this.parent)){const n=wr(hd(t)),i=this.component.scales[n];if(i&&!i.merged){const r=i.get("type"),o=i.get("range");if(we(r)&&Bn(o)){const a=i.get("name"),s=Vs(yo(this,n));return s?{signal:md(a,i,S({aggregate:"distinct",field:s},{expr:"datum"}))}:(k(na(n)),null)}}}return{signal:this.signalNameMap.get(this.getName(t))}}lookupDataSource(t){const n=this.component.data.outputNodes[t];return n?n.getSource():t}getSignalName(t){return this.signalNameMap.get(t)}renameSignal(t,n){this.signalNameMap.rename(t,n)}renameScale(t,n){this.scaleNameMap.rename(t,n)}renameProjection(t,n){this.projectionNameMap.rename(t,n)}scaleName(t,n){return n?this.getName(t):Cu(t)&&kt(t)&&this.component.scales[t]||this.scaleNameMap.has(this.getName(t))?this.scaleNameMap.get(this.getName(t)):void 0}projectionName(t){return t?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(t){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const n=this.component.scales[t];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(t):void 0}getScaleType(t){const n=this.getScaleComponent(t);return n?n.get("type"):void 0}getSelectionComponent(t,n){let i=this.component.selection[t];if(!i&&this.parent&&(i=this.parent.getSelectionComponent(t,n)),!i)throw new Error(`Cannot find a selection named "${n}".`);return i}hasAxisOrientSignalRef(){var t,n;return((t=this.component.axes.x)==null?void 0:t.some(i=>i.hasOrientSignalRef()))||((n=this.component.axes.y)==null?void 0:n.some(i=>i.hasOrientSignalRef()))}}class ep extends Js{vgField(t,n={}){const i=this.fieldDef(t);if(i)return S(i,n)}reduceFieldDef(t,n){return function(i,r,o,a){return i?D(i).reduce((s,u)=>{const c=i[u];return P(c)?c.reduce((l,f)=>r.call(a,l,f,u),s):r.call(a,s,c,u)},o):o}(this.getMapping(),(i,r,o)=>{const a=ht(r);return a?t(i,a,o):i},n)}forEachFieldDef(t,n){Ma(this.getMapping(),(i,r)=>{const o=ht(i);o&&t(o,r)},n)}}class wo extends Y{clone(){return new wo(null,M(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=M(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??"value",i[1]??"density"];const r=this.transform.resolve??"shared";this.transform.resolve=r}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${I(this.transform)}`}assemble(){const{density:t,...n}=this.transform,i={type:"kde",field:t,...n};return i.resolve=this.transform.resolve,i}}class Fo extends Y{clone(){return new Fo(null,M(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=M(n)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${I(this.transform)}`}assemble(){const{extent:t,param:n}=this.transform;return{type:"extent",field:t,signal:n}}}class Do extends Y{clone(){return new Do(this.parent,M(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=M(n);const{flatten:i,as:r=[]}=this.transform;this.transform.as=i.map((o,a)=>r[a]??o)}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${I(this.transform)}`}assemble(){const{flatten:t,as:n}=this.transform;return{type:"flatten",fields:t,as:n}}}class Ao extends Y{clone(){return new Ao(null,M(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=M(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??"key",i[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${I(this.transform)}`}assemble(){const{fold:t,as:n}=this.transform;return{type:"fold",fields:t,as:n}}}class Si extends Y{clone(){return new Si(null,M(this.fields),this.geojson,this.signal)}static parseAll(t,n){if(n.component.projection&&!n.component.projection.isFit)return t;let i=0;for(const r of[[ct,ut],[Ke,lt]]){const o=r.map(a=>{const s=ye(n.encoding[a]);return C(s)?s.field:zt(s)?{expr:`${s.datum}`}:mt(s)?{expr:`${s.value}`}:void 0});(o[0]||o[1])&&(t=new Si(t,o,null,n.getName("geojson_"+i++)))}if(n.channelHasField(qe)){const r=n.typedFieldDef(qe);r.type===ui&&(t=new Si(t,null,r.field,n.getName("geojson_"+i++)))}return t}constructor(t,n,i,r){super(t),this.fields=n,this.geojson=i,this.signal=r}dependentFields(){const t=(this.fields??[]).filter(R);return new Set([...this.geojson?[this.geojson]:[],...t])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${I(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 lr extends Y{clone(){return new lr(null,this.projection,M(this.fields),M(this.as))}constructor(t,n,i,r){super(t),this.projection=n,this.fields=i,this.as=r}static parseAll(t,n){if(!n.projectionName())return t;for(const i of[[ct,ut],[Ke,lt]]){const r=i.map(a=>{const s=ye(n.encoding[a]);return C(s)?s.field:zt(s)?{expr:`${s.datum}`}:mt(s)?{expr:`${s.value}`}:void 0}),o=i[0]===Ke?"2":"";(r[0]||r[1])&&(t=new lr(t,n.projectionName(),r,[n.getName(`x${o}`),n.getName(`y${o}`)]))}return t}dependentFields(){return new Set(this.fields.filter(R))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${I(this.fields)} ${I(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Vn extends Y{clone(){return new Vn(null,M(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(t){const{start:n=0,stop:i,step:r}=t;return{signal:`sequence(${[n,i,...r?[r]:[]].join(",")})`}}static makeFromTransform(t,n){return new Vn(t,n)}static makeFromEncoding(t,n){const i=n.encoding,r=i.x,o=i.y;if(C(r)&&C(o)){const a=r.impute?r:o.impute?o:void 0;if(a===void 0)return;const s=r.impute?o:o.impute?r:void 0,{method:u,value:c,frame:l,keyvals:f}=a.impute,d=pl(n.mark,i);return new Vn(t,{impute:a.field,key:s.field,...u?{method:u}:{},...c!==void 0?{value:c}:{},...l?{frame:l}:{},...f!==void 0?{keyvals:f}:{},...d.length?{groupby:d}:{}})}return null}hash(){return`Impute ${I(this.transform)}`}assemble(){const{impute:t,key:n,keyvals:i,method:r,groupby:o,value:a,frame:s=[null,null]}=this.transform,u={type:"impute",field:t,key:n,...i?{keyvals:(c=i,A(c,"stop")?this.processSequence(i):i)}:{},method:"value",...o?{groupby:o}:{},value:r&&r!=="value"?null:a};var c;return r&&r!=="value"?[u,{type:"window",as:[`imputed_${t}_value`],ops:[r],fields:[t],frame:s,ignorePeers:!1,...o?{groupby:o}:{}},{type:"formula",expr:`datum.${t} === null ? datum.imputed_${t}_value : datum.${t}`,as:t}]:[u]}}class ko extends Y{clone(){return new ko(null,M(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=M(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??n.on,i[1]??n.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${I(this.transform)}`}assemble(){const{loess:t,on:n,...i}=this.transform;return{type:"loess",x:n,y:t,...i}}}class fr extends Y{clone(){return new fr(null,M(this.transform),this.secondary)}constructor(t,n,i){super(t),this.transform=n,this.secondary=i}static make(t,n,i,r){const o=n.component.data.sources,{from:a}=i;let s=null;if(function(u){return A(u,"data")}(a)){let u=rp(a.data,o);u||(u=new In(a.data),o.push(u));const c=n.getName(`lookup_${r}`);s=new We(u,c,ce.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[c]=s}else if(function(u){return A(u,"param")}(a)){const u=a.param;let c;i={as:u,...i};try{c=n.getSelectionComponent(se(u),u)}catch{throw new Error(`Lookups can only be performed on selection parameters. "${u}" is a variable parameter.`)}if(s=c.materialized,!s)throw new Error(function(l){return`Cannot define and lookup the "${l}" selection in the same view. Try moving the lookup into a second, layered view?`}(u))}return new fr(t,i,s.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?pe(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${I({transform:this.transform,secondary:this.secondary})}`}assemble(){let t;if(this.transform.from.fields)t={values:this.transform.from.fields,...this.transform.as?{as:pe(this.transform.as)}:{}};else{let n=this.transform.as;R(n)||(k('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.'),n="_lookup"),t={as:[n]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...t,...this.transform.default?{default:this.transform.default}:{}}}}class Co extends Y{clone(){return new Co(null,M(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=M(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??"prob",i[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${I(this.transform)}`}assemble(){const{quantile:t,...n}=this.transform;return{type:"quantile",field:t,...n}}}class So extends Y{clone(){return new So(null,M(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=M(n);const i=this.transform.as??[void 0,void 0];this.transform.as=[i[0]??n.on,i[1]??n.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${I(this.transform)}`}assemble(){const{regression:t,on:n,...i}=this.transform;return{type:"regression",x:n,y:t,...i}}}class Eo extends Y{clone(){return new Eo(null,M(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=$t((this.transform.groupby??[]).concat(t),n=>n)}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${I(this.transform)}`}assemble(){const{pivot:t,value:n,groupby:i,limit:r,op:o}=this.transform;return{type:"pivot",field:t,value:n,...r!==void 0?{limit:r}:{},...o!==void 0?{op:o}:{},...i!==void 0?{groupby:i}:{}}}}class Bo extends Y{clone(){return new Bo(null,M(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${I(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function tp(e){let t=0;return function n(i,r){if(i instanceof In&&!i.isGenerator&&!gi(i.data)&&(e.push(r),r={name:null,source:r.name,transform:[]}),i instanceof Pe&&(i.parent instanceof In&&!r.source?(r.format={...r.format,parse:i.assembleFormatParse()},r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof wi)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());switch((i instanceof sr||i instanceof ur||i instanceof Ci||i instanceof Di||i instanceof ki||i instanceof lr||i instanceof xt||i instanceof fr||i instanceof Ai||i instanceof Gn||i instanceof Ao||i instanceof Do||i instanceof wo||i instanceof ko||i instanceof Co||i instanceof So||i instanceof Dn||i instanceof Bo||i instanceof Eo||i instanceof Fo)&&r.transform.push(i.assemble()),(i instanceof Tt||i instanceof _t||i instanceof Vn||i instanceof an||i instanceof Si)&&r.transform.push(...i.assemble()),i instanceof We&&(r.source&&r.transform.length===0?i.setSource(r.source):i.parent instanceof We?i.setSource(r.name):(r.name||(r.name="data_"+t++),i.setSource(r.name),i.numChildren()===1&&(e.push(r),r={name:null,source:r.name,transform:[]}))),i.numChildren()){case 0:i instanceof We&&(!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 a of i.children)n(a,{name:null,source:o,transform:[]});break}}}}function o0(e){return e==="top"||e==="left"||N(e)?"header":"footer"}function a0(e,t){var a;const{facet:n,config:i,child:r,component:o}=e;if(e.channelHasField(t)){const s=n[t],u=$i("title",null,i,t);let c=di(s,i,{allowDisabling:!0,includeDefault:u===void 0||!!u});r.component.layoutHeaders[t].title&&(c=P(c)?c.join(", "):c,c+=` / ${r.component.layoutHeaders[t].title}`,r.component.layoutHeaders[t].title=null);const l=$i("labelOrient",s.header,i,t),f=s.header!==null&&me((a=s.header)==null?void 0:a.labels,i.header.labels,!0),d=U(["bottom","right"],l)?"footer":"header";o.layoutHeaders[t]={title:s.header!==null?c:null,facetFieldDef:s,[d]:t==="facet"?[]:[np(e,t,f)]}}}function np(e,t,n){const i=t==="row"?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):void 0,axes:[]}}function ip(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:i,resolve:r}=e.component;if(r.axis[t]=Ns(r,t),r.axis[t]==="shared"){const o=t==="x"?"column":"row",a=i[o];for(const s of n.component.axes[t]){const u=o0(s.get("orient"));a[u]??(a[u]=[np(e,o,!1)]);const c=or(s,"main",e.config,{header:!0});c&&a[u][0].axes.push(c),s.mainExtracted=!0}}}}function Qs(e){for(const t of e.children)t.parseLayoutSize()}function vo(e,t){const n=hd(t),i=wr(n),r=e.component.resolve,o=e.component.layoutSize;let a;for(const s of e.children){const u=s.component.layoutSize.getWithExplicit(n),c=r.scale[i]??yd(i,e);if(c==="independent"&&u.value==="step"){a=void 0;break}if(a){if(c==="independent"&&a.value!==u.value){a=void 0;break}a=$n(a,u,n,"")}else a=u}if(a){for(const s of e.children)e.renameSignal(s.getName(n),e.getName(t)),s.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(t,a)}else o.setWithExplicit(t,{explicit:!1,value:void 0})}function s0(e,t){const n=t==="width"?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const o=r.get("type"),a=r.get("range");if(we(o)){const s=Qr(i.view,t);return Bn(a)||Ot(s)?"step":s}return Ja(i.view,t)}if(e.hasProjection||e.mark==="arc")return Ja(i.view,t);{const o=Qr(i.view,t);return Ot(o)?o.step:o}}function Ks(e,t,n){return S(t,{suffix:`by_${S(e)}`,...n})}class cr extends ep{constructor(t,n,i,r){super(t,"facet",n,i,r,t.resolve),this.child=tu(t.spec,this,this.getName("child"),void 0,r),this.children=[this.child],this.facet=this.initFacet(t.facet)}initFacet(t){if(!Hi(t))return{facet:this.initFacetFieldDef(t,"facet")};const n=D(t),i={};for(const r of n){if(![qt,Ut].includes(r)){k(kr(r,"facet"));break}const o=t[r];if(o.field===void 0){k(ra(o,r));break}i[r]=this.initFacetFieldDef(o,r)}return i}initFacetFieldDef(t,n){const i=ja(t,n);return i.header?i.header=Ce(i.header):i.header===null&&(i.header=null),i}channelHasField(t){return A(this.facet,t)}fieldDef(t){return this.facet[t]}parseData(){this.component.data=bo(this),this.child.parseData()}parseLayoutSize(){Qs(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection,Object.values(this.component.selection).some(t=>Nt(t))&&aa(ia)}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(t){for(const n of Ze)a0(t,n);ip(t,"x"),ip(t,"y")}(this)}assembleSelectionTopLevelSignals(t){return this.child.assembleSelectionTopLevelSignals(t)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(t){return this.child.assembleSelectionData(t)}getHeaderLayoutMixins(){const t={};for(const n of Ze)for(const i of zs){const r=this.component.layoutHeaders[n],o=r[i],{facetFieldDef:a}=r;if(a){const s=$i("titleOrient",a.header,this.config,n);if(["right","bottom"].includes(s)){const u=mo(n,s);t.titleAnchor??(t.titleAnchor={}),t.titleAnchor[u]="end"}}if(o!=null&&o[0]){const s=n==="row"?"height":"width",u=i==="header"?"headerBand":"footerBand";n==="facet"||this.child.component.layoutSize.get(s)||(t[u]??(t[u]={}),t[u][n]=.5),r.title&&(t.offset??(t.offset={}),t.offset[n==="row"?"rowTitle":"columnTitle"]=10)}}return t}assembleDefaultLayout(){const{column:t,row:n}=this.facet,i=t?this.columnDistinctSignal():n?1:void 0;let r="all";return(n||this.component.resolve.scale.x!=="independent")&&(t||this.component.resolve.scale.y!=="independent")||(r="none"),{...this.getHeaderLayoutMixins(),...i?{columns:i}:{},bounds:"full",align:r}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof cr))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(t){return this.parent&&this.parent instanceof cr?{...this.channelHasField("column")?{encode:{update:{columns:{field:S(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(t)}:super.assembleGroup(t)}getCardinalityAggregateForChild(){const t=[],n=[],i=[];if(this.child instanceof cr){if(this.child.channelHasField("column")){const r=S(this.child.facet.column);t.push(r),n.push("distinct"),i.push(`distinct_${r}`)}}else for(const r of Vt){const o=this.child.component.scales[r];if(o&&!o.merged){const a=o.get("type"),s=o.get("range");if(we(a)&&Bn(s)){const u=Vs(yo(this.child,r));u?(t.push(u),n.push("distinct"),i.push(`distinct_${u}`)):k(na(r))}}}return{fields:t,ops:n,as:i}}assembleFacet(){const{name:t,data:n}=this.component.data.facetRoot,{row:i,column:r}=this.facet,{fields:o,ops:a,as:s}=this.getCardinalityAggregateForChild(),u=[];for(const l of Ze){const f=this.facet[l];if(f){u.push(S(f));const{bin:d,sort:h}=f;if(te(d)&&u.push(S(f,{binSuffix:"end"})),Jt(h)){const{field:p,op:g=jr}=h,m=Ks(f,h);i&&r?(o.push(m),a.push("max"),s.push(m)):(o.push(p),a.push(g),s.push(m))}else if(P(h)){const p=xi(f,l);o.push(p),a.push("max"),s.push(p)}}}const c=!!i&&!!r;return{name:t,data:n,groupby:u,...c||o.length>0?{aggregate:{...c?{cross:c}:{},...o.length?{fields:o,ops:a,as:s}:{}}}:{}}}facetSortFields(t){const{facet:n}=this,i=n[t];return i?Jt(i.sort)?[Ks(i,i.sort,{expr:"datum"})]:P(i.sort)?[xi(i,t,{expr:"datum"})]:[S(i,{expr:"datum"})]:[]}facetSortOrder(t){const{facet:n}=this,i=n[t];if(i){const{sort:r}=i;return[(Jt(r)?r.order:!P(r)&&r)||"ascending"]}return[]}assembleLabelTitle(){var r;const{facet:t,config:n}=this;if(t.facet)return Os(t.facet,"facet",n);const i={row:["top","bottom"],column:["left","right"]};for(const o of Bs)if(t[o]){const a=$i("labelOrient",(r=t[o])==null?void 0:r.header,n,o);if(i[o].includes(a))return Os(t[o],o,n)}}assembleMarks(){const{child:t}=this,n=function(a){const s=[],u=tp(s);for(const c of a.children)u(c,{source:a.name,name:null,transform:[]});return s}(this.component.data.facetRoot),i=t.assembleGroupEncodeEntry(!1),r=this.assembleLabelTitle()||t.assembleTitle(),o=t.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...r?{title:r}:{},...o?{style:o}:{},from:{facet:this.assembleFacet()},sort:{field:Ze.map(a=>this.facetSortFields(a)).flat(),order:Ze.map(a=>this.facetSortOrder(a)).flat()},...n.length>0?{data:n}:{},...i?{encode:{update:i}}:{},...t.assembleGroup(Nh(this,[]))}]}getMapping(){return this.facet}}function rp(e,t){var n,i,r,o;for(const a of t){const s=a.data;if(e.name&&a.hasName()&&e.name!==a.dataName)continue;const u=(n=e.format)==null?void 0:n.mesh,c=(i=s.format)==null?void 0:i.feature;if(u&&c)continue;const l=(r=e.format)==null?void 0:r.feature;if((l||c)&&l!==c)continue;const f=(o=s.format)==null?void 0:o.mesh;if(!u&&!f||u===f){if(Ji(e)&&Ji(s)){if(He(e.values,s.values))return a}else if(gi(e)&&gi(s)){if(e.url===s.url)return a}else if(nf(e)&&e.name===a.dataName)return a}}return null}function bo(e){var g;let t=function(m,y){if(m.data||!m.parent){if(m.data===null){const b=new In({values:[]});return y.push(b),b}const x=rp(m.data,y);if(x)return wn(m.data)||(x.data.format=mu({},m.data.format,x.data.format)),!x.hasName()&&m.data.name&&(x.dataName=m.data.name),x;{const b=new In(m.data);return y.push(b),b}}return m.parent.component.data.facetRoot?m.parent.component.data.facetRoot:m.parent.component.data.main}(e,e.component.data.sources);const{outputNodes:n,outputNodeRefCounts:i}=e.component.data,r=e.data,o=!(r&&(wn(r)||gi(r)||Ji(r)))&&e.parent?e.parent.component.data.ancestorParse.clone():new Sh;wn(r)?(rf(r)?t=new ur(t,r.sequence):os(r)&&(t=new sr(t,r.graticule)),o.parseNothing=!0):((g=r==null?void 0:r.format)==null?void 0:g.parse)===null&&(o.parseNothing=!0),t=Pe.makeExplicit(t,e,o)??t,t=new Dn(t);const a=e.parent&&Fi(e.parent);(le(e)||Ve(e))&&a&&(t=Tt.makeFromEncoding(t,e)??t),e.transforms.length>0&&(t=function(m,y,x){let b=0;for(const v of y.transforms){let w,F;if(gh(v))F=m=new ki(m,v),w="derived";else if(ns(v)){const E=jg(v);F=m=Pe.makeWithAncestors(m,{},E,x)??m,m=new Di(m,y,v.filter)}else if(Yl(v))F=m=Tt.makeFromTransform(m,v,y),w="number";else if(vh(v))w="date",x.getWithExplicit(v.field).value===void 0&&(m=new Pe(m,{[v.field]:w}),x.set(v.field,w,!1)),F=m=_t.makeFromTransform(m,v);else if(bh(v))F=m=xt.makeFromTransform(m,v),w="number",ys(y)&&(m=new Dn(m));else if(Vl(v))F=m=fr.make(m,y,v,b++),w="derived";else if(ph(v))F=m=new Ai(m,v),w="number";else if(mh(v))F=m=new Gn(m,v),w="number";else if(xh(v))F=m=an.makeFromTransform(m,v),w="derived";else if($h(v))F=m=new Ao(m,v),w="derived";else if(wh(v))F=m=new Fo(m,v),w="derived";else if(hh(v))F=m=new Do(m,v),w="derived";else if(sh(v))F=m=new Eo(m,v),w="derived";else if(dh(v))m=new Bo(m,v);else if(yh(v))F=m=Vn.makeFromTransform(m,v),w="derived";else if(uh(v))F=m=new wo(m,v),w="derived";else if(ch(v))F=m=new Co(m,v),w="derived";else if(lh(v))F=m=new So(m,v),w="derived";else{if(!fh(v)){k(Kp(v));continue}F=m=new ko(m,v),w="derived"}if(F&&w!==void 0)for(const E of F.producedFields()??[])x.set(E,w,!1)}return m}(t,e,o));const s=function(m){const y={};if(le(m)&&m.component.selection)for(const x of D(m.component.selection)){const b=m.component.selection[x];for(const v of b.project.items)!v.channel&&ii(v.field)>1&&(y[v.field]="flatten")}return y}(e),u=Mg(e);t=Pe.makeWithAncestors(t,{},{...s,...u},o)??t,le(e)&&(t=Si.parseAll(t,e),t=lr.parseAll(t,e)),(le(e)||Ve(e))&&(a||(t=Tt.makeFromEncoding(t,e)??t),t=_t.makeFromEncoding(t,e)??t,t=ki.parseAllForSortIndex(t,e));const c=t=xo(ce.Raw,e,t);if(le(e)){const m=xt.makeFromEncoding(t,e);m&&(t=m,ys(e)&&(t=new Dn(t))),t=Vn.makeFromEncoding(t,e)??t,t=an.makeFromEncoding(t,e)??t}let l,f;if(le(e)){const{markDef:m,mark:y,config:x}=e,b=Z("invalid",m,x),{marks:v,scales:w}=f=af({invalid:b,isPath:vn(y)});v!==w&&w==="include-invalid-values"&&(l=t=xo(ce.PreFilterInvalid,e,t)),v==="exclude-invalid-values"&&(t=Ci.make(t,e,f)??t)}const d=t=xo(ce.Main,e,t);let h;if(le(e)&&f){const{marks:m,scales:y}=f;m==="include-invalid-values"&&y==="exclude-invalid-values"&&(t=Ci.make(t,e,f)??t,h=t=xo(ce.PostFilterInvalid,e,t))}le(e)&&function(m,y){for(const[x,b]of un(m.component.selection??{})){const v=m.getName(`lookup_${x}`);m.component.data.outputNodes[v]=b.materialized=new We(new Di(y,m,{param:x}),v,ce.Lookup,m.component.data.outputNodeRefCounts)}}(e,d);let p=null;if(Ve(e)){const m=e.getName("facet");t=function(y,x){const{row:b,column:v}=x;if(b&&v){let w=null;for(const F of[b,v])if(Jt(F.sort)){const{field:E,op:B=jr}=F.sort;y=w=new Gn(y,{joinaggregate:[{op:B,field:E,as:Ks(F,F.sort,{forAs:!0})}],groupby:[S(F)]})}return w}return null}(t,e.facet)??t,p=new wi(t,e,m,d.getSource()),n[m]=p}return{...e.component.data,outputNodes:n,outputNodeRefCounts:i,raw:c,main:d,facetRoot:p,ancestorParse:o,preFilterInvalid:l,postFilterInvalid:h}}function xo(e,t,n){const{outputNodes:i,outputNodeRefCounts:r}=t.component.data,o=t.getDataName(e),a=new We(n,o,e,r);return i[o]=a,a}class u0 extends Js{constructor(t,n,i,r){var o,a,s,u;super(t,"concat",n,i,r,t.resolve),((a=(o=t.resolve)==null?void 0:o.axis)==null?void 0:a.x)!=="shared"&&((u=(s=t.resolve)==null?void 0:s.axis)==null?void 0:u.y)!=="shared"||k("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(t).map((c,l)=>tu(c,this,this.getName(`concat_${l}`),void 0,r))}parseData(){this.component.data=bo(this);for(const t of this.children)t.parseData()}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of D(t.component.selection))this.component.selection[n]=t.component.selection[n]}Object.values(this.component.selection).some(t=>Nt(t))&&aa(ia)}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){for(const t of this.children)t.parseAxesAndHeaders()}getChildren(t){return Jr(t)?t.vconcat:Xa(t)?t.hconcat:t.concat}parseLayoutSize(){(function(t){Qs(t);const n=t.layout.columns===1?"width":"childWidth",i=t.layout.columns===void 0?"height":"childHeight";vo(t,n),vo(t,i)})(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,i)=>i.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.forEach(t=>t.assembleSignals()),[]}assembleLayoutSignals(){const t=Ps(this);for(const n of this.children)t.push(...n.assembleLayoutSignals());return t}assembleSelectionData(t){return this.children.reduce((n,i)=>i.assembleSelectionData(n),t)}assembleMarks(){return this.children.map(t=>{const n=t.assembleTitle(),i=t.assembleGroupStyle(),r=t.assembleGroupEncodeEntry(!1);return{type:"group",name:t.getName("group"),...n?{title:n}:{},...i?{style:i}:{},...r?{encode:{update:r}}:{},...t.assembleGroup()}})}assembleGroupStyle(){}assembleDefaultLayout(){const t=this.layout.columns;return{...t!=null?{columns:t}:{},bounds:"full",align:"each"}}}const c0={disable:1,gridScale:1,scale:1,...al,labelExpr:1,encode:1},op=D(c0);class nu extends on{constructor(t={},n={},i=!1){super(),this.explicit=t,this.implicit=n,this.mainExtracted=i}clone(){return new nu(M(this.explicit),M(this.implicit),this.mainExtracted)}hasAxisPart(t){return t==="axis"||(t==="grid"||t==="title"?!!this.get(t):!((n=this.get(t))===!1||n===null));var n}hasOrientSignalRef(){return N(this.explicit.orient)}}const l0={bottom:"top",top:"bottom",left:"right",right:"left"};function f0(e,t){if(!e)return t.map(n=>n.clone());{if(e.length!==t.length)return;const n=e.length;for(let i=0;i<n;i++){const r=e[i],o=t[i];if(!!r!=!!o)return;if(r&&o){const a=r.getWithExplicit("orient"),s=o.getWithExplicit("orient");if(a.explicit&&s.explicit&&a.value!==s.value)return;e[i]=d0(r,o)}}}return e}function d0(e,t){for(const n of op){const i=$n(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",(r,o)=>{switch(n){case"title":return Gu(r,o);case"gridScale":return{explicit:r.explicit,value:me(r.value,o.value)}}return Zr(r,o,n,"axis")});e.setWithExplicit(n,i)}return e}function p0(e,t,n,i,r){if(t==="disable")return n!==void 0;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(N(n.labelAngle)?n.labelAngle:Ti(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===cd(i,r))return!0}return e===n[t]}const m0=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function h0(e,t){var y,x;let n=t.axis(e);const i=new nu,r=ye(t.encoding[e]),{mark:o,config:a}=t,s=(n==null?void 0:n.orient)||((y=a[e==="x"?"axisX":"axisY"])==null?void 0:y.orient)||((x=a.axis)==null?void 0:x.orient)||function(b){return b==="x"?"bottom":"left"}(e),u=t.getScaleComponent(e).get("type"),c=function(b,v,w,F){const E=v==="band"?["axisDiscrete","axisBand"]:v==="point"?["axisDiscrete","axisPoint"]:kc(v)?["axisQuantitative"]:v==="time"||v==="utc"?["axisTemporal"]:[],B=b==="x"?"axisX":"axisY",O=N(w)?"axisOrient":`axis${_i(w)}`,T=[...E,...E.map(j=>B+j.substr(4))],z=["axis",O,B];return{vlOnlyAxisConfig:od(T,F,b,w),vgAxisConfig:od(z,F,b,w),axisConfigStyle:xg([...z,...T],F)}}(e,u,s,t.config),l=n!==void 0?!n:Ss("disable",a.style,n==null?void 0:n.style,c).configValue;if(i.set("disable",l,n!==void 0),l)return i;n=n||{};const f=function(b,v,w,F,E){const B=v==null?void 0:v.labelAngle;if(B!==void 0)return N(B)?B:Ti(B);{const{configValue:O}=Ss("labelAngle",F,v==null?void 0:v.style,E);return O!==void 0?Ti(O):w!==ue||!U([va,ya],b.type)||C(b)&&b.timeUnit?void 0:270}}(r,n,e,a.style,c),d=qc(n.formatType,r,u),h=Lc(r,r.type,n.format,n.formatType,a,!0),p={fieldOrDatumDef:r,axis:n,channel:e,model:t,scaleType:u,orient:s,labelAngle:f,format:h,formatType:d,mark:o,config:a};for(const b of op){const v=b in ad?ad[b](p):sl(b)?n[b]:void 0,w=v!==void 0,F=p0(v,b,n,t,e);if(w&&F)i.set(b,v,F);else{const{configValue:E,configFrom:B}=sl(b)&&b!=="values"?Ss(b,a.style,n.style,c):{},O=E!==void 0;w&&!O?i.set(b,v,F):(B!=="vgAxisConfig"||m0.has(b)&&O||Xi(E)||N(E))&&i.set(b,E,!1)}}const g=n.encoding??{},m=ol.reduce((b,v)=>{if(!i.hasAxisPart(v))return b;const w=gd(g[v]??{},t),F=v==="labels"?function(E,B,O){const{encoding:T,config:z}=E,j=ye(T[B])??ye(T[At(B)]),ve=E.axis(B)||{},{format:ne,formatType:ie}=ve;if(jn(ie))return{text:pt({fieldOrDatumDef:j,field:"datum.value",format:ne,formatType:ie,config:z}),...O};if(ne===void 0&&ie===void 0&&z.customFormatTypes){if(li(j)==="quantitative"){if(fi(j)&&j.stack==="normalize"&&z.normalizedNumberFormatType)return{text:pt({fieldOrDatumDef:j,field:"datum.value",format:z.normalizedNumberFormat,formatType:z.normalizedNumberFormatType,config:z}),...O};if(z.numberFormatType)return{text:pt({fieldOrDatumDef:j,field:"datum.value",format:z.numberFormat,formatType:z.numberFormatType,config:z}),...O}}if(li(j)==="temporal"&&z.timeFormatType&&C(j)&&!j.timeUnit)return{text:pt({fieldOrDatumDef:j,field:"datum.value",format:z.timeFormat,formatType:z.timeFormatType,config:z}),...O}}return O}(t,e,w):w;return F===void 0||Q(F)||(b[v]={update:F}),b},{});return Q(m)||i.set("encode",m,!!n.encoding||n.labelAngle!==void 0),i}function Zs(e,t){const{config:n}=e;return{...et(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Te("x",e,{defaultPos:"mid"}),...Te("y",e,{defaultPos:"mid"}),...Se("size",e),...Se("angle",e),...g0(e,n,t)}}function g0(e,t,n){return n?{shape:{value:n}}:Se("shape",e)}const y0={vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return e.encoding.x||e.encoding.y||e.encoding.latitude||e.encoding.longitude?{...et(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...ro("x",e,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"}),...ro("y",e,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"}),...Se("size",e,{vgChannel:"strokeWidth"})}:{}}};function v0(e,t,n){if(Z("align",e,n)===void 0)return"center"}function b0(e,t,n){if(Z("baseline",e,n)===void 0)return"middle"}const x0={vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,i=n.orient,r=i==="horizontal"?"x":"y",o=i==="horizontal"?"y":"x",a=i==="horizontal"?"height":"width";return{...et(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...en(e,r),...Te(o,e,{defaultPos:"mid",vgChannel:o==="y"?"yc":"xc"}),[a]:re(Z("thickness",n,t))}}},$o={arc:{vgMark:"arc",encodeEntry:e=>({...et(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Te("x",e,{defaultPos:"mid"}),...Te("y",e,{defaultPos:"mid"}),...en(e,"radius"),...en(e,"theta")})},area:{vgMark:"area",encodeEntry:e=>({...et(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...ro("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="horizontal"}),...ro("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="vertical"}),...hs(e)})},bar:{vgMark:"rect",encodeEntry:e=>({...et(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...en(e,"x"),...en(e,"y")})},circle:{vgMark:"symbol",encodeEntry:e=>Zs(e,"circle")},geoshape:{vgMark:"shape",encodeEntry:e=>({...et(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&&C(n)&&n.type===ui?{field:S(n,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:e=>({...et(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...en(e,"x"),...en(e,"y"),...ps(e,"url")})},line:{vgMark:"line",encodeEntry:e=>({...et(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...Te("x",e,{defaultPos:"mid"}),...Te("y",e,{defaultPos:"mid"}),...Se("size",e,{vgChannel:"strokeWidth"}),...hs(e)})},point:{vgMark:"symbol",encodeEntry:e=>Zs(e)},rect:{vgMark:"rect",encodeEntry:e=>({...et(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...en(e,"x"),...en(e,"y")})},rule:y0,square:{vgMark:"symbol",encodeEntry:e=>Zs(e,"square")},text:{vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return{...et(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...Te("x",e,{defaultPos:"mid"}),...Te("y",e,{defaultPos:"mid"}),...ps(e),...Se("size",e,{vgChannel:"fontSize"}),...Se("angle",e),...Sf("align",v0(e.markDef,n,t)),...Sf("baseline",b0(e.markDef,n,t)),...Te("radius",e,{defaultPos:null}),...Te("theta",e,{defaultPos:null})}}},tick:x0,trail:{vgMark:"trail",encodeEntry:e=>({...et(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...Te("x",e,{defaultPos:"mid"}),...Te("y",e,{defaultPos:"mid"}),...Se("size",e),...hs(e)})}};function $0(e){if(U([Pr,zr,Dm],e.mark)){const t=pl(e.mark,e.encoding);if(t.length>0)return function(n,i){return[{name:n.getName("pathgroup"),type:"group",from:{facet:{name:ap+n.requestDataName(ce.Main),data:n.requestDataName(ce.Main),groupby:i}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:eu(n,{fromPrefix:ap})}]}(e,t)}else if(e.mark===Or){const t=Zo.some(n=>Z(n,e.markDef,e.config));if(e.stack&&!e.fieldDef("size")&&t)return function(n){var l;const[i]=eu(n,{fromPrefix:sp}),r=n.scaleName(n.stack.fieldChannel),o=(f={})=>n.vgField(n.stack.fieldChannel,f),a=(f,d)=>`${f}(${[o({prefix:"min",suffix:"start",expr:d}),o({prefix:"max",suffix:"start",expr:d}),o({prefix:"min",suffix:"end",expr:d}),o({prefix:"max",suffix:"end",expr:d})].map(h=>`scale('${r}',${h})`).join(",")})`;let s,u;n.stack.fieldChannel==="x"?(s={...ei(i.encode.update,["y","yc","y2","height",...Zo]),x:{signal:a("min","datum")},x2:{signal:a("max","datum")},clip:{value:!0}},u={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},i.encode.update={...Re(i.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(s={...ei(i.encode.update,["x","xc","x2","width"]),y:{signal:a("min","datum")},y2:{signal:a("max","datum")},clip:{value:!0}},u={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},i.encode.update={...Re(i.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const f of Zo){const d=Ct(f,n.markDef,n.config);i.encode.update[f]?(s[f]=i.encode.update[f],delete i.encode.update[f]):d&&(s[f]=re(d)),d&&(i.encode.update[f]={value:0})}const c=[];if(((l=n.stack.groupbyChannels)==null?void 0:l.length)>0)for(const f of n.stack.groupbyChannels){const d=n.fieldDef(f),h=S(d);h&&c.push(h),(d!=null&&d.bin||d!=null&&d.timeUnit)&&c.push(S(d,{binSuffix:"end"}))}return s=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((f,d)=>{if(i.encode.update[d])return{...f,[d]:i.encode.update[d]};{const h=Ct(d,n.markDef,n.config);return h!==void 0?{...f,[d]:re(h)}:f}},s),s.stroke&&(s.strokeForeground={value:!0},s.strokeOffset={value:0}),[{type:"group",from:{facet:{data:n.requestDataName(ce.Main),name:sp+n.requestDataName(ce.Main),groupby:c,aggregate:{fields:[o({suffix:"start"}),o({suffix:"start"}),o({suffix:"end"}),o({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:s},marks:[{type:"group",encode:{update:u},marks:[i]}]}]}(e)}return eu(e)}const ap="faceted_path_",sp="stack_group_";function eu(e,t={fromPrefix:""}){const{mark:n,markDef:i,encoding:r,config:o}=e,a=me(i.clip,function(h){const p=h.getScaleComponent("x"),g=h.getScaleComponent("y");return!(!(p!=null&&p.get("selectionExtent"))&&!(g!=null&&g.get("selectionExtent")))||void 0}(e),function(h){const p=h.component.projection;return!(!p||p.isFit)||void 0}(e)),s=qu(i),u=r.key,c=function(h){const{encoding:p,stack:g,mark:m,markDef:y,config:x}=h,b=p.order;if(!(!P(b)&&mt(b)&&jo(b.value)||!b&&jo(Z("order",y,x)))){if((P(b)||C(b))&&!g)return Wu(b,{expr:"datum"});if(vn(m)){const v=y.orient==="horizontal"?"y":"x";if(C(p[v]))return{field:v}}}}(e),l=function(h){if(!h.component.selection)return null;const p=D(h.component.selection).length;let g=p,m=h.parent;for(;m&&g===0;)g=D(m.component.selection).length,m=m.parent;return g?{interactive:p>0||h.mark==="geoshape"||!!h.encoding.tooltip||!!h.markDef.tooltip}:null}(e),f=Z("aria",i,o),d=$o[n].postEncodingTransform?$o[n].postEncodingTransform(e):null;return[{name:e.getName("marks"),type:$o[n].vgMark,...a?{clip:a}:{},...s?{style:s}:{},...u?{key:u.field}:{},...c?{sort:c}:{},...l||{},...f===!1?{aria:f}:{},from:{data:t.fromPrefix+e.requestDataName(ce.Main)},encode:{update:$o[n].encodeEntry(e)},...d?{transform:d}:{}}]}class up extends ep{constructor(t,n,i,r={},o){super(t,"unit",n,i,o,void 0,zl(t)?t.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[],this.correctDataNames=c=>{var l,f,d;return(l=c.from)!=null&&l.data&&(c.from.data=this.lookupDataSource(c.from.data),"time"in this.encoding&&(c.from.data=c.from.data+ff)),(d=(f=c.from)==null?void 0:f.facet)!=null&&d.data&&(c.from.facet.data=this.lookupDataSource(c.from.facet.data)),c};const a=Bt(t.mark)?{...t.mark}:{type:t.mark},s=a.type;a.filled===void 0&&(a.filled=function(c,l,{graticule:f}){if(f)return!1;const d=Ct("filled",c,l),h=c.type;return me(d,h!==Nr&&h!==Pr&&h!==_r)}(a,o,{graticule:t.data&&os(t.data)}));const u=this.encoding=function(c,l,f,d){const h={};for(const p of D(c))Cu(p)||k(em(p));for(let p of _p){if(!c[p])continue;const g=c[p];if(Ri(p)){const m=Np(p),y=h[m];if(C(y)&&dm(y.type)&&C(g)&&!y.timeUnit){k(Zp(m));continue}}if(p!=="angle"||l!=="arc"||c.theta||(k("Arc marks uses theta channel rather than angle, replacing angle with theta."),p=Qe),Tm(c,p,l)){if(p===Ht&&l==="line"){const m=ht(c[p]);if(m!=null&&m.aggregate){k("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}}if(p===Le&&(f?"fill"in c:"stroke"in c))k(nc("encoding",{fill:"fill"in c,stroke:"stroke"in c}));else if(p===Mi||p===oi&&!P(g)&&!mt(g)||p===Cn&&P(g)){if(g){if(p===oi){const m=c[p];if(Xc(m)){h[p]=m;continue}}h[p]=pe(g).reduce((m,y)=>(C(y)?m.push(ja(y,p)):k(ra(y,p)),m),[])}}else{if(p===Cn&&g===null)h[p]=null;else if(!(C(g)||zt(g)||mt(g)||Gi(g)||N(g))){k(ra(g,p));continue}h[p]=nl(g,p,d)}}else k(kr(p,l))}return h}(t.encoding||{},s,a.filled,o);this.markDef=Rl(a,u,o),this.size=function({encoding:c,size:l}){for(const f of Vt){const d=Ue(f);Ot(l[d])&&xn(c[f])&&(delete l[d],k(rc(d)))}return l}({encoding:u,size:zl(t)?{...r,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}:r}),this.stack=Ml(this.markDef,u),this.specifiedScales=this.initScales(s,u),this.specifiedAxes=this.initAxes(u),this.specifiedLegends=this.initLegends(u),this.specifiedProjection=t.projection,this.selection=(t.params??[]).filter(c=>Va(c))}get hasProjection(){const{encoding:t}=this,n=this.mark===Oc,i=t&&Sp.some(r=>L(t[r]));return n||i}scaleDomain(t){const n=this.specifiedScales[t];return n?n.domain:void 0}axis(t){return this.specifiedAxes[t]}legend(t){return this.specifiedLegends[t]}initScales(t,n){return Qo.reduce((i,r)=>{const o=ye(n[r]);return o&&(i[r]=this.initScale(o.scale??{})),i},{})}initScale(t){const{domain:n,range:i}=t,r=Ce(t);return P(n)&&(r.domain=n.map(Ge)),P(i)&&(r.range=i.map(Ge)),r}initAxes(t){return Vt.reduce((n,i)=>{const r=t[i];if(L(r)||i===ue&&L(t.x2)||i===xe&&L(t.y2)){const o=L(r)?r.axis:void 0;n[i]=o&&this.initAxis({...o})}return n},{})}initAxis(t){const n=D(t),i={};for(const r of n){const o=t[r];i[r]=Xi(o)?Mu(o):Ge(o)}return i}initLegends(t){return Ou.reduce((n,i)=>{const r=ye(t[i]);if(r&&function(o){switch(o){case Le:case Ft:case Dt:case Ht:case qe:case Gt:case pn:case mn:return!0;case fn:case dn:case kn:case ln:return!1}}(i)){const o=r.legend;n[i]=o&&Ce(o)}return n},{})}parseData(){this.component.data=bo(this)}parseLayoutSize(){(function(t){const{size:n,component:i}=t;for(const r of Vt){const o=Ue(r);if(n[o]){const a=n[o];i.layoutSize.set(o,Ot(a)?"step":a,!0)}else{const a=s0(t,o);i.layoutSize.set(o,a,!1)}}})(this)}parseSelections(){this.component.selection=function(t,n){const i={},r=t.config.selection;if(!n||!n.length)return i;let o=0;for(const a of n){const s=se(a.name),u=a.select,c=R(u)?u:u.type,l=H(u)?M(u):{type:c},f=r[c];for(const p in f)p!=="fields"&&p!=="encodings"&&(p==="mark"&&(l.mark={...f.mark,...l.mark}),l[p]!==void 0&&l[p]!==!0||(l[p]=M(f[p]??l[p])));const d=i[s]={...l,name:s,type:c,init:a.value,bind:a.bind,events:R(l.on)?Kn(l.on,"scope"):pe(M(l.on))};if(Nt(d)&&(o++,o>1)){delete i[s];continue}const h=M(a);for(const p of so)p.defined(d)&&p.parse&&p.parse(t,d,h)}return o>1&&k("Multiple timer selections in one unit spec are not supported. Ignoring all but the first."),i}(this,this.selection)}parseMarkGroup(){this.component.mark=$0(this)}parseAxesAndHeaders(){var t;this.component.axes=(t=this,Vt.reduce((n,i)=>(t.component.scales[i]&&(n[i]=[h0(i,t)]),n),{}))}assembleSelectionTopLevelSignals(t){return function(n,i){let r=!1;for(const o of Ae(n.component.selection??{})){const a=o.name,s=W(a+qn);if(i.filter(u=>u.name===a).length===0){const u=o.resolve==="global"?"union":o.resolve,c=o.type==="point"?", true, true)":")";i.push({name:o.name,update:`${Rf}(${s}, ${W(u)}${c}`})}r=!0;for(const u of so)u.defined(o)&&u.topLevelSignals&&(i=u.topLevelSignals(n,o,i))}return r&&i.filter(o=>o.name==="unit").length===0&&i.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),ls(i)}(this,t)}assembleSignals(){return[...rd(this),...Ph(this,[])]}assembleSelectionData(t){return function(n,i){const r=[],o=[],a=Un(n,{escape:!1});for(const s of Ae(n.component.selection??{})){const u={name:s.name+qn};if(s.project.hasSelectionId&&(u.transform=[{type:"collect",sort:{field:gt}}]),s.init){const c=s.project.items.map(mf);u.values=s.project.hasSelectionId?s.init.map(l=>({unit:a,[gt]:Ln(l,!1)[0]})):s.init.map(l=>({unit:a,fields:c,values:Ln(l,!1)}))}if([...r,...i].filter(c=>c.name===s.name+qn).length||r.push(u),Nt(s)&&i.length){const c=n.lookupDataSource(n.getDataName(ce.Main)),l=i.find(d=>d.name===c),f=l.transform.find(d=>d.type==="filter"&&d.expr.includes("vlSelectionTest"));if(f){l.transform=l.transform.filter(h=>h!==f);const d={name:l.name+ff,source:l.name,transform:[f]};o.push(d)}}}return r.concat(i,o)}(this,t)}assembleLayout(){return null}assembleLayoutSignals(){return Ps(this)}assembleMarks(){let t=this.component.mark??[];return this.parent&&Fi(this.parent)||(t=hf(this,t)),t.map(this.correctDataNames)}assembleGroupStyle(){const{style:t}=this.view||{};return t!==void 0?t:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(t){return Rn(this.encoding,t)}fieldDef(t){return ht(this.encoding[t])}typedFieldDef(t){const n=this.fieldDef(t);return _e(n)?n:null}}class iu extends Js{constructor(t,n,i,r,o){super(t,"layer",n,i,o,t.resolve,t.view);const a={...r,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}};this.children=t.layer.map((s,u)=>{if(Kr(s))return new iu(s,this,this.getName(`layer_${u}`),a,o);if(Qt(s))return new up(s,this,this.getName(`layer_${u}`),a,o);throw new Error(ta(s))})}parseData(){this.component.data=bo(this);for(const t of this.children)t.parseData()}parseLayoutSize(){var t;Qs(t=this),vo(t,"width"),vo(t,"height")}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of D(t.component.selection))this.component.selection[n]=t.component.selection[n]}Object.values(this.component.selection).some(t=>Nt(t))&&aa(ia)}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){(function(t){const{axes:n,resolve:i}=t.component,r={top:0,bottom:0,right:0,left:0};for(const o of t.children){o.parseAxesAndHeaders();for(const a of D(o.component.axes))i.axis[a]=Ns(t.component.resolve,a),i.axis[a]==="shared"&&(n[a]=f0(n[a],o.component.axes[a]),n[a]||(i.axis[a]="independent",delete n[a]))}for(const o of Vt){for(const a of t.children)if(a.component.axes[o]){if(i.axis[o]==="independent"){n[o]=(n[o]??[]).concat(a.component.axes[o]);for(const s of a.component.axes[o]){const{value:u,explicit:c}=s.getWithExplicit("orient");if(!N(u)){if(r[u]>0&&!c){const l=l0[u];r[u]>r[l]&&s.set("orient",l,!1)}r[u]++}}}delete a.component.axes[o]}if(i.axis[o]==="independent"&&n[o]&&n[o].length>1)for(const[a,s]of(n[o]||[]).entries())a>0&&s.get("grid")&&!s.explicit.grid&&(s.implicit.grid=!1)}})(this)}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,i)=>i.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleSignals()),rd(this))}assembleLayoutSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleLayoutSignals()),Ps(this))}assembleSelectionData(t){return this.children.reduce((n,i)=>i.assembleSelectionData(n),t)}assembleGroupStyle(){const t=new Set;for(const i of this.children)for(const r of pe(i.assembleGroupStyle()))t.add(r);const n=Array.from(t);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let t=super.assembleTitle();if(t)return t;for(const n of this.children)if(t=n.assembleTitle(),t)return t}assembleLayout(){return null}assembleMarks(){return function(t,n){for(const i of t.children)le(i)&&(n=hf(i,n));return n}(this,this.children.flatMap(t=>t.assembleMarks()))}assembleLegends(){return this.children.reduce((t,n)=>t.concat(n.assembleLegends()),Cd(this))}}function tu(e,t,n,i,r){if(Mr(e))return new cr(e,t,n,r);if(Kr(e))return new iu(e,t,n,i,r);if(Qt(e))return new up(e,t,n,i,r);if(function(o){return Jr(o)||Xa(o)||Ya(o)}(e))return new u0(e,t,n,r);throw new Error(ta(e))}function w0(e,t={}){var n;t.logger&&(n=t.logger,qi=n),t.fieldTitle&&tl(t.fieldTitle);try{const i=Tl(du(t.config,e.config)),r=Kl(e,i),o=tu(r,null,"",void 0,i);return o.parse(),function(s,u){Ws(s.sources);let c=0,l=0;for(let f=0;f<5&&Td(s,u,!0);f++)c++;s.sources.map(qs);for(let f=0;f<5&&Td(s,u,!1);f++)l++;Ws(s.sources),Math.max(c,l)===5&&k("Maximum optimization runs(5) reached.")}(o.component.data,o),{spec:function(s,u,c={},l){const f=s.config?Qm(s.config):void 0,d=function(w,F){const E=[],B=tp(E);let O=0;for(const z of w.sources){z.hasName()||(z.dataName="source_"+O++);const j=z.assemble();B(z,j)}for(const z of E)z.transform.length===0&&delete z.transform;let T=0;for(const[z,j]of E.entries())(j.transform??[]).length!==0||j.source||E.splice(T++,0,E.splice(z,1)[0]);for(const z of E)for(const j of z.transform??[])j.type==="lookup"&&(j.from=w.outputNodes[j.from].getSource());for(const z of E)z.name in F&&(z.values=F[z.name]);return E}(s.component.data,c),h=s.assembleSelectionData(d),p=s.assembleProjections(),g=s.assembleTitle(),m=s.assembleGroupStyle(),y=s.assembleGroupEncodeEntry(!0);let x=s.assembleLayoutSignals();x=x.filter(w=>w.name!=="width"&&w.name!=="height"||w.value===void 0||(u[w.name]=+w.value,!1));const{params:b,...v}=u;return{$schema:"https://vega.github.io/schema/vega/v5.json",...s.description?{description:s.description}:{},...v,...g?{title:g}:{},...m?{style:m}:{},...y?{encode:{update:y}}:{},data:h,...p.length>0?{projections:p}:{},...s.assembleGroup([...x,...s.assembleSelectionTopLevelSignals([]),...El(b)]),...f?{config:f}:{},...l?{usermeta:l}:{}}}(o,function(s,u,c,l){const f=l.component.layoutSize.get("width"),d=l.component.layoutSize.get("height");if(u===void 0?(u={type:"pad"},l.hasAxisOrientSignalRef()&&(u.resize=!0)):R(u)&&(u={type:u}),f&&d&&(h=u.type,["fit","fit-x","fit-y"].includes(h))){if(f==="step"&&d==="step")k(Xu()),u.type="pad";else if(f==="step"||d==="step"){const p=f==="step"?"width":"height";k(Xu(wr(p)));const g=p==="width"?"height":"width";u.type=function(m){return m?`fit-${wr(m)}`:"fit"}(g)}}var h;return{...D(u).length===1&&u.type?u.type==="pad"?{}:{autosize:u.type}:{autosize:u},...ef(c,!1),...ef(s,!0)}}(e,r.autosize,i,o),e.datasets,e.usermeta),normalized:r}}finally{t.logger&&(qi=uc),t.fieldTitle&&tl(Zc)}}export{pu as A,Kl as B,Ti as C,Re as D,ei as E,Lo as F,ni as G,An as H,Je as I,Cp as J,hu as K,ti as L,Be as M,K as N,_i as O,$t as P,vu as Q,Ae as R,se as S,Fr as T,Ou as U,ii as a,Uo as b,w0 as c,V as d,U as e,He as f,hr as g,M as h,un as i,Mo as j,qo as k,gu as l,me as m,Ro as n,A as o,I as p,bu as q,Pi as r,Q as s,Ap as t,xu as u,jo as v,gr as w,D as x,Ni as y,mu as z};