streamlit-nightly 1.46.2.dev20250708__py3-none-any.whl → 1.46.2.dev20250710__py3-none-any.whl

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 (80) hide show
  1. streamlit/elements/vega_charts.py +8 -0
  2. streamlit/elements/widgets/chat.py +35 -5
  3. streamlit/runtime/secrets.py +4 -8
  4. streamlit/static/index.html +1 -1
  5. streamlit/static/manifest.json +214 -214
  6. streamlit/static/static/js/{ErrorOutline.esm.CO5UETnI.js → ErrorOutline.esm.DcxmqjUD.js} +1 -1
  7. streamlit/static/static/js/{FileDownload.esm.BodlLZ2E.js → FileDownload.esm.jHGWeFoc.js} +1 -1
  8. streamlit/static/static/js/{FileHelper.BJWG5mWZ.js → FileHelper.Zrnryqu0.js} +1 -1
  9. streamlit/static/static/js/{FormClearHelper.Bfl6Fb0k.js → FormClearHelper.BYxFNamA.js} +1 -1
  10. streamlit/static/static/js/{Hooks.BZNasbgB.js → Hooks.Bf489OB5.js} +1 -1
  11. streamlit/static/static/js/{InputInstructions.D9_advjq.js → InputInstructions.BOAAgTvb.js} +1 -1
  12. streamlit/static/static/js/{ProgressBar.BOxvIdHT.js → ProgressBar.CHyAN4g4.js} +1 -1
  13. streamlit/static/static/js/{RenderInPortalIfExists.B-maQ3lr.js → RenderInPortalIfExists.BnEeVRFq.js} +1 -1
  14. streamlit/static/static/js/{Toolbar.BulWrSVh.js → Toolbar.CXl8zpFb.js} +1 -1
  15. streamlit/static/static/js/{base-input.oeeD4NYL.js → base-input.Df0b6Qry.js} +1 -1
  16. streamlit/static/static/js/{checkbox.BqkhIzEX.js → checkbox._czeraZi.js} +1 -1
  17. streamlit/static/static/js/{createSuper.bxk9uEsc.js → createSuper.ZqMAxMzx.js} +1 -1
  18. streamlit/static/static/js/{data-grid-overlay-editor.BFUaa7qj.js → data-grid-overlay-editor.Bok03B1i.js} +1 -1
  19. streamlit/static/static/js/{downloader.CkJ9l-mW.js → downloader.C4jTgaKc.js} +1 -1
  20. streamlit/static/static/js/{es6.CwBeRZxt.js → es6.Do-e8HO9.js} +2 -2
  21. streamlit/static/static/js/{iframeResizer.contentWindow.B4xDykub.js → iframeResizer.contentWindow.mWYZgJrl.js} +1 -1
  22. streamlit/static/static/js/{index.CFoM9W4u.js → index.-qN84VXE.js} +1 -1
  23. streamlit/static/static/js/{index.um9CUbiU.js → index.35y_AzR4.js} +1 -1
  24. streamlit/static/static/js/{index.FerMd1cU.js → index.B1l9OvXj.js} +1 -1
  25. streamlit/static/static/js/index.BF_sb0WL.js +73 -0
  26. streamlit/static/static/js/{index.BHzjJ3JF.js → index.BIEGVO6Q.js} +5 -5
  27. streamlit/static/static/js/{index.DQXLgrs8.js → index.BPbIttLy.js} +1 -1
  28. streamlit/static/static/js/{index.BffMV8Pv.js → index.BVdmv4f9.js} +1 -1
  29. streamlit/static/static/js/{index.zT8XLZtx.js → index.BnBtCCi7.js} +1 -1
  30. streamlit/static/static/js/{index.D3TXItBH.js → index.Bys870gz.js} +1 -1
  31. streamlit/static/static/js/{index.DgSLJq20.js → index.BzF3lrfB.js} +1 -1
  32. streamlit/static/static/js/{index.Bejef4Pk.js → index.C3rroFP9.js} +3 -3
  33. streamlit/static/static/js/{index.D4WIU5V6.js → index.CF7mP-ZJ.js} +1 -1
  34. streamlit/static/static/js/{index.B0vAXwMf.js → index.Ca2H30nP.js} +1 -1
  35. streamlit/static/static/js/{index.BNmqvLux.js → index.Ci7nbB2g.js} +1 -1
  36. streamlit/static/static/js/{index.aAeBp5Oj.js → index.CjIM7ERG.js} +1 -1
  37. streamlit/static/static/js/{index.BAyahmk4.js → index.CoYJofEx.js} +1 -1
  38. streamlit/static/static/js/{index.BPKHA8Id.js → index.CqLB334S.js} +1 -1
  39. streamlit/static/static/js/{index.DFRMOZ8C.js → index.DFXciakO.js} +173 -173
  40. streamlit/static/static/js/{index.BGGyfLIH.js → index.DGHrEEt1.js} +1 -1
  41. streamlit/static/static/js/{index.VY0EoknV.js → index.DHdGt5Y8.js} +1 -1
  42. streamlit/static/static/js/{index.C795t44A.js → index.DLiM-whD.js} +1 -1
  43. streamlit/static/static/js/{index.BdnKKSPg.js → index.DTxuG-7x.js} +1 -1
  44. streamlit/static/static/js/{index.JlbLrYBv.js → index.D_0R5OBc.js} +7 -7
  45. streamlit/static/static/js/{index.CIeZ4fAx.js → index.DcO57awd.js} +1 -1
  46. streamlit/static/static/js/{index.CL4vTLmN.js → index.DmGoE186.js} +1 -1
  47. streamlit/static/static/js/{index.BTHnpf1I.js → index.DmjIEMLZ.js} +1 -1
  48. streamlit/static/static/js/{index.CfqX1ZBe.js → index.DsGIFS7a.js} +1 -1
  49. streamlit/static/static/js/{index.D-8V3tc4.js → index.GgXBejJs.js} +1 -1
  50. streamlit/static/static/js/{index.Ba65H8D9.js → index.MiKM7bk8.js} +1 -1
  51. streamlit/static/static/js/{index.BP1DQKkm.js → index.QaE_KRXJ.js} +1 -1
  52. streamlit/static/static/js/{index.BypmpIBL.js → index.dGEV5Rcv.js} +1 -1
  53. streamlit/static/static/js/{index.B6ClyDWN.js → index.eyf91ITY.js} +1 -1
  54. streamlit/static/static/js/{index.Dl-ChXDk.js → index.fAtLaEj3.js} +1 -1
  55. streamlit/static/static/js/{index.oJk4Ge1s.js → index.kBQMwU6d.js} +1 -1
  56. streamlit/static/static/js/{index.BxVKLNUY.js → index.mvbBbK3q.js} +1 -1
  57. streamlit/static/static/js/{index.CIEFJvy6.js → index.rOGHN7Ug.js} +1 -1
  58. streamlit/static/static/js/{index.CGqm8hCs.js → index.rvtw60Rz.js} +1 -1
  59. streamlit/static/static/js/{input.C3tznRn_.js → input.CbSNLKWI.js} +1 -1
  60. streamlit/static/static/js/{memory.OHbOX5Ru.js → memory.jXCvhbgc.js} +1 -1
  61. streamlit/static/static/js/{mergeWith._KN0v5Xp.js → mergeWith.DrPpfkW2.js} +1 -1
  62. streamlit/static/static/js/{number-overlay-editor.BKok-OUE.js → number-overlay-editor.DcUxabQJ.js} +1 -1
  63. streamlit/static/static/js/{possibleConstructorReturn.BfCdE8Gx.js → possibleConstructorReturn.CzPR4xGM.js} +1 -1
  64. streamlit/static/static/js/{sandbox.BeWP76j9.js → sandbox.Bd0m3BOh.js} +1 -1
  65. streamlit/static/static/js/{timepicker.C8LfA2ZU.js → timepicker.CpLBXuBk.js} +1 -1
  66. streamlit/static/static/js/{toConsumableArray.BHlwNsw4.js → toConsumableArray.D_piEkI9.js} +1 -1
  67. streamlit/static/static/js/{uniqueId.Ds4mfmXu.js → uniqueId.wDqRFq8o.js} +1 -1
  68. streamlit/static/static/js/{useBasicWidgetState.Ds5amAnj.js → useBasicWidgetState.rpbnEZqG.js} +1 -1
  69. streamlit/static/static/js/{useOnInputChange.CnPrmPV-.js → useOnInputChange.DLCh37tX.js} +1 -1
  70. streamlit/static/static/js/{useTextInputAutoExpand.DRi3Jfhk.js → useTextInputAutoExpand.Ba7vlWvW.js} +1 -1
  71. streamlit/static/static/js/{withFullScreenWrapper.DtwYvNjS.js → withFullScreenWrapper.Cqo3BmOl.js} +1 -1
  72. streamlit/watcher/event_based_path_watcher.py +3 -2
  73. streamlit/watcher/polling_path_watcher.py +2 -1
  74. {streamlit_nightly-1.46.2.dev20250708.dist-info → streamlit_nightly-1.46.2.dev20250710.dist-info}/METADATA +1 -1
  75. {streamlit_nightly-1.46.2.dev20250708.dist-info → streamlit_nightly-1.46.2.dev20250710.dist-info}/RECORD +79 -79
  76. streamlit/static/static/js/index.D-sXGL7m.js +0 -73
  77. {streamlit_nightly-1.46.2.dev20250708.data → streamlit_nightly-1.46.2.dev20250710.data}/scripts/streamlit.cmd +0 -0
  78. {streamlit_nightly-1.46.2.dev20250708.dist-info → streamlit_nightly-1.46.2.dev20250710.dist-info}/WHEEL +0 -0
  79. {streamlit_nightly-1.46.2.dev20250708.dist-info → streamlit_nightly-1.46.2.dev20250710.dist-info}/entry_points.txt +0 -0
  80. {streamlit_nightly-1.46.2.dev20250708.dist-info → streamlit_nightly-1.46.2.dev20250710.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- import{J as p8,s as g8,H as at,aK as m8,aL as y8,aM as Va,aN as Sh,N as b8,z as x8,r as Rt,M as Cx,av as v8,ar as E8,an as GA,ao as HA,X as w8,aO as A8,O as VA,aE as YA,l as Dk,aH as S8,aP as C8,C as $8,j as bm,aQ as _8}from"./index.JlbLrYBv.js";import{S as XA,T as F8}from"./Toolbar.BulWrSVh.js";import{w as k8,E as D8}from"./withFullScreenWrapper.DtwYvNjS.js";import{m as T8}from"./mergeWith._KN0v5Xp.js";import{a as zc,n as M8,b as O8,c as eg,t as ra,p as R8,d as N8,e as L8,i as us,f as tg,g as KA,l as rl,h as $x,j as ng,k as JA,m as No,o as Cu,q as P8,r as ls,s as I8,u as z8,v as B8,w as U8}from"./threshold.DjX0wlsa.js";import{f as j8,a as hy,b as Tk,c as q8,R as ig,r as Mk,d as _x,e as Fx,C as kx,g as QA,h as ZA,i as rg,j as py,n as en,k as bf,l as W8,m as G8,o as H8,p as V8,q as Y8,s as X8,t as K8,u as J8,v as Q8,w as Z8,x as e9,y as Ch}from"./value.CgPGBV_l.js";import{P as t9,i as n9,a as i9,b as r9,p as Dx,T as o9,n as s9,t as a9,d as u9}from"./timer.CAwTRJ_g.js";import{u as l9}from"./FormClearHelper.Bfl6Fb0k.js";const c9=e=>({"#vg-tooltip-element":{visibility:"hidden",position:"fixed",fontFamily:e.genericFonts.bodyFont,color:e.colors.bodyText,border:`${e.sizes.borderWidth} solid ${e.colors.borderColor}`,backgroundColor:p8(e.colors.bgColor,.05),fontSize:e.fontSizes.twoSm,boxShadow:"rgb(0 0 0 / 16%) 0px 1px 4px",maxWidth:e.sizes.maxChartTooltipWidth,padding:`${e.spacing.xs} ${e.spacing.md}`,borderRadius:e.radii.default,zIndex:e.zIndices.popup,"&.visible":{visibility:"visible"},h2:{marginTop:e.spacing.none,marginBottom:e.spacing.sm,fontSize:e.fontSizes.sm},td:{border:"none"},table:{borderSpacing:0,tr:{border:"none",td:{overflow:"hidden",textOverflow:"ellipsis",paddingTop:e.spacing.threeXS,paddingBottom:e.spacing.threeXS},"td.key":{maxWidth:`calc((${e.sizes.maxChartTooltipWidth} - 2 * ${e.spacing.md}) * 0.4)`,textAlign:"right",color:e.colors.fadedText60,whiteSpace:"nowrap",paddingRight:e.spacing.twoXS},"td.value":{maxWidth:`calc((${e.sizes.maxChartTooltipWidth} - 2 * ${e.spacing.md}) * 0.6)`,textAlign:"left",display:"-webkit-box",WebkitLineClamp:"5",WebkitBoxOrient:"vertical",lineClamp:"5",wordWrap:"break-word"}}}}}),f9=g8("div",{target:"e1d0pwhz0"})(({theme:e,useContainerWidth:t,isFullScreen:n})=>({width:t||n?"100%":"auto",height:n?"100%":"auto","&.vega-embed":{position:"relative",display:"inline-block",boxSizing:"border-box","details:not([open]) > :not(summary)":{display:"none !important"},"details[open] summary":{opacity:.7},"&:hover summary, .vega-embed:focus summary":{background:"transparent"},"&:hover summary, &:focus-within summary":{opacity:"1 !important",transition:"opacity 0.2s ease"},"&.has-actions":{paddingRight:0},".vega-actions":{position:"absolute",display:"flex",flexDirection:"column",paddingBottom:e.spacing.sm,paddingTop:e.spacing.sm,zIndex:e.zIndices.popup,top:`calc(${e.iconSizes.md} + 2 * ${e.spacing.xs} + ${e.spacing.xs})`,right:0,backgroundColor:e.colors.bgColor,boxShadow:"rgb(0 0 0 / 16%) 0px 4px 16px",border:`${e.sizes.borderWidth} solid ${e.colors.fadedText10}`,animationDuration:"0.15s",animationName:"scale-in",animationTimingFunction:"cubic-bezier(0.2, 0, 0.13, 1.5)",textAlign:"left",borderRadius:e.radii.default,a:{fontFamily:e.genericFonts.bodyFont,fontWeight:e.fontWeights.normal,fontSize:e.fontSizes.md,margin:0,padding:`${e.spacing.twoXS} ${e.spacing.twoXL}`,color:e.colors.bodyText,whiteSpace:"nowrap",textDecoration:"none"},"a:hover, a:focus":{backgroundColor:e.colors.darkenedBgMix15,color:e.colors.bodyText},":before":{content:"none"},":after":{content:"none"}},"@keyframes scale-in":{from:{opacity:0,transform:"scale(0.6)"},to:{opacity:1,transform:"scale(1)"}},".chart-wrapper":{"&.fit-x":{width:"100%"},"&.fit-y":{height:"100%"}},summary:{position:"absolute",top:0,right:0,opacity:0,listStyle:"none",cursor:"pointer",display:"list-item",padding:e.spacing.xs,height:"auto",zIndex:e.zIndices.menuButton,border:"none",boxShadow:"none",borderRadius:e.radii.default,color:e.colors.fadedText10,backgroundColor:"transparent",transition:"opacity 300ms 150ms,transform 300ms 150ms",lineHeight:0,"&::-webkit-details-marker":{display:"none"},"&:active, &:focus-visible, &:hover":{border:"none",boxShadow:"none",color:e.colors.bodyText,opacity:"1 !important",background:e.colors.darkenedBgMix15},svg:{width:e.iconSizes.md,height:e.iconSizes.md}}}}));function eS(e,t){const n={font:t.genericFonts.bodyFont,background:t.colors.bgColor,fieldTitle:"verbal",autosize:{type:"fit",contains:"padding"},title:{align:"left",anchor:"start",color:t.colors.headingColor,titleFontStyle:"normal",fontWeight:t.fontWeights.bold,fontSize:at(t.fontSizes.md),orient:"top",offset:26},header:{titleFontWeight:t.fontWeights.normal,titleFontSize:at(t.fontSizes.md),titleColor:Va(t),titleFontStyle:"normal",labelFontSize:at(t.fontSizes.twoSm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),labelFontStyle:"normal"},axis:{labelFontSize:at(t.fontSizes.twoSm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),labelFontStyle:"normal",titleFontWeight:t.fontWeights.normal,titleFontSize:at(t.fontSizes.sm),titleColor:Va(t),titleFontStyle:"normal",ticks:!1,gridColor:Sh(t),domain:!1,domainWidth:1,domainColor:Sh(t),labelFlush:!0,labelFlushOffset:1,labelBound:!1,labelLimit:100,titlePadding:at(t.spacing.lg),labelPadding:at(t.spacing.lg),labelSeparation:at(t.spacing.twoXS),labelOverlap:!0},legend:{labelFontSize:at(t.fontSizes.sm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),titleFontSize:at(t.fontSizes.sm),titleFontWeight:t.fontWeights.normal,titleFontStyle:"normal",titleColor:Va(t),titlePadding:5,labelPadding:at(t.spacing.lg),columnPadding:at(t.spacing.sm),rowPadding:at(t.spacing.twoXS),padding:7,symbolStrokeWidth:at(t.spacing.twoXS)},range:{category:t.colors.chartCategoricalColors,diverging:y8(t),ramp:t.colors.chartSequentialColors,heatmap:t.colors.chartSequentialColors},view:{columns:1,strokeWidth:0,stroke:"transparent",continuousHeight:at(t.sizes.defaultChartHeight),continuousWidth:at(t.sizes.defaultChartWidth)},concat:{columns:1},facet:{columns:1},mark:{tooltip:{content:"encoding"},color:m8(t)},bar:{binSpacing:at(t.spacing.twoXS),discreteBandSize:{band:.85}},axisDiscrete:{grid:!1},axisXPoint:{grid:!1},axisTemporal:{grid:!1},axisXBand:{grid:!1}};return e?T8({},n,e,(i,r)=>Array.isArray(r)?r:void 0):n}function d9(e,t){const{colors:n,fontSizes:i,genericFonts:r}=t,o={labelFont:r.bodyFont,titleFont:r.bodyFont,labelFontSize:at(i.twoSm),titleFontSize:at(i.twoSm)},s={background:n.bgColor,axis:{labelColor:n.bodyText,titleColor:n.bodyText,gridColor:Sh(t),...o},legend:{labelColor:n.bodyText,titleColor:n.bodyText,...o},title:{color:n.bodyText,subtitleColor:n.bodyText,...o},header:{labelColor:n.bodyText,titleColor:n.bodyText,...o},view:{stroke:Sh(t),continuousHeight:at(t.sizes.defaultChartHeight),continuousWidth:at(t.sizes.defaultChartWidth)},mark:{tooltip:!0}};return e?b8({},s,e):s}const h9=20;function p9(e){"params"in e&&"encoding"in e&&e.params.forEach(t=>{"select"in t&&(["interval","point"].includes(t.select)&&(t.select={type:t.select}),"type"in t.select&&t.select.type==="point"&&!("encodings"in t.select)&&Cx(t.select.encodings)&&(t.select.encodings=Object.keys(e.encoding)))})}const g9=(e,t,n,i,r,o,s,a)=>{const u=JSON.parse(e);if(n==="streamlit"?u.config=eS(u.config,r):u.usermeta?.embedOptions?.theme==="streamlit"?(u.config=eS(u.config,r),u.usermeta.embedOptions.theme=void 0):u.config=d9(u.config,r),u.title&&(typeof u.title=="string"&&(u.title={text:u.title}),u.title.limit=u.title.limit??Math.max(s-40,0)),o?(u.width=s,u.height=a,"vconcat"in u&&u.vconcat.forEach(l=>{l.width=s})):t&&(u.width=s,"vconcat"in u&&u.vconcat.forEach(l=>{l.width=s})),u.padding||(u.padding={}),Cx(u.padding.bottom)&&(u.padding.bottom=h9),u.datasets)throw new Error("Datasets should not be passed as part of the spec");return i.length>0&&p9(u),u},m9=(e,t,n,i)=>{const r=x8(),{id:o,formId:s,spec:a,data:u,datasets:l,useContainerWidth:c,vegaLiteTheme:f,selectionMode:d}=e,h=Rt.useMemo(()=>d,[JSON.stringify(d)]),p=Rt.useMemo(()=>g9(a,c,f,h,r,t,n||0,i),[a,c,f,h,r,t,n,i]);return{id:o,formId:s,vegaLiteTheme:f,spec:p,selectionMode:h,data:u,datasets:l,useContainerWidth:c}};function yo(e,t,n){return e.fields=t||[],e.fname=n,e}function y9(e){return e==null?null:e.fname}function Ok(e){return e==null?null:e.fields}function Rk(e){return e.length===1?b9(e[0]):x9(e)}const b9=e=>function(t){return t[e]},x9=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function Jd(e){throw Error(e)}function Tx(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||Jd("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&Jd("Access path missing closing bracket: "+e),i&&Jd("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Mx(e,t,n){const i=Tx(e);return e=i.length===1?i[0]:e,yo((n&&n.get||Rk)(i),[e],t||e)}const v9=Mx("id"),Ox=yo(e=>e,[],"identity"),E9=yo(()=>0,[],"zero"),w9=yo(()=>1,[],"one"),Nk=yo(()=>!0,[],"true"),A9=yo(()=>!1,[],"false");function S9(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const Lk=0,Pk=1,Ik=2,zk=3,Bk=4;function C9(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:S9,i=e||Lk;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Pk&&n(t||"error","ERROR",arguments),this},warn(){return i>=Ik&&n(t||"warn","WARN",arguments),this},info(){return i>=zk&&n(t||"log","INFO",arguments),this},debug(){return i>=Bk&&n(t||"log","DEBUG",arguments),this}}}var og=Array.isArray;function oa(e){return e===Object(e)}const tS=e=>e!=="__proto__";function Rx(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=$9(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;sg(i,o,r[o],s)}return i},{})}function sg(e,t,n,i){if(!tS(t))return;let r,o;if(oa(n)&&!og(n)){o=oa(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?sg(o,r,n[r]):tS(r)&&(o[r]=n[r])}else e[t]=n}function $9(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function ol(e){return e[e.length-1]}function Nx(e){return e==null||e===""?null:+e}const Uk=e=>t=>e*Math.exp(t),jk=e=>t=>Math.log(e*t),qk=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),Wk=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,$h=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function ag(e,t,n,i){const r=n(e[0]),o=n(ol(e)),s=(o-r)*t;return[i(r-s),i(o-s)]}function _9(e,t){return ag(e,t,Nx,Ox)}function F9(e,t){var n=Math.sign(e[0]);return ag(e,t,jk(n),Uk(n))}function k9(e,t,n){return ag(e,t,$h(n),$h(1/n))}function D9(e,t,n){return ag(e,t,qk(n),Wk(n))}function ug(e,t,n,i,r){const o=i(e[0]),s=i(ol(e)),a=t!=null?i(t):(o+s)/2;return[r(a+(o-a)*n),r(a+(s-a)*n)]}function T9(e,t,n){return ug(e,t,n,Nx,Ox)}function M9(e,t,n){const i=Math.sign(e[0]);return ug(e,t,n,jk(i),Uk(i))}function O9(e,t,n,i){return ug(e,t,n,$h(i),$h(1/i))}function R9(e,t,n,i){return ug(e,t,n,qk(i),Wk(i))}function N9(e){return 1+~~(new Date(e).getMonth()/3)}function L9(e){return 1+~~(new Date(e).getUTCMonth()/3)}function Bc(e){return e!=null?og(e)?e:[e]:[]}function P9(e,t,n){let i=e[0],r=e[1],o;return r<i&&(o=r,r=i,i=o),o=r-i,o>=n-t?[t,n]:[i=Math.min(Math.max(i,t),n-o),i+o]}function lg(e){return typeof e=="function"}const I9="descending";function z9(e,t,n){n=n||{},t=Bc(t)||[];const i=[],r=[],o={},s=n.comparator||B9;return Bc(e).forEach((a,u)=>{a!=null&&(i.push(t[u]===I9?-1:1),r.push(a=lg(a)?a:Mx(a,null,n)),(Ok(a)||[]).forEach(l=>o[l]=1))}),r.length===0?null:yo(s(r,i),Object.keys(o))}const Lx=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),B9=(e,t)=>e.length===1?U9(e[0],t[0]):j9(e,t,e.length),U9=(e,t)=>function(n,i){return Lx(e(n),e(i))*t},j9=(e,t,n)=>(t.push(0),function(i,r){let o,s=0,a=-1;for(;s===0&&++a<n;)o=e[a],s=Lx(o(i),o(r));return s*t[a]});function q9(e){return lg(e)?e:()=>e}function W9(e,t){let n;return i=>{n&&clearTimeout(n),n=setTimeout(()=>(t(i),n=null),e)}}function Px(e){for(let t,n,i=1,r=arguments.length;i<r;++i){t=arguments[i];for(n in t)e[n]=t[n]}return e}function G9(e,t){let n=0,i,r,o,s;if(e&&(i=e.length))if(t==null){for(r=e[n];n<i&&(r==null||r!==r);r=e[++n]);for(o=s=r;n<i;++n)r=e[n],r!=null&&(r<o&&(o=r),r>s&&(s=r))}else{for(r=t(e[n]);n<i&&(r==null||r!==r);r=t(e[++n]));for(o=s=r;n<i;++n)r=t(e[n]),r!=null&&(r<o&&(o=r),r>s&&(s=r))}return[o,s]}function H9(e,t){const n=e.length;let i=-1,r,o,s,a,u;if(t==null){for(;++i<n;)if(o=e[i],o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=e[i],o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}else{for(;++i<n;)if(o=t(e[i],i,e),o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=t(e[i],i,e),o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}return[a,u]}const V9=Object.prototype.hasOwnProperty;function Hr(e,t){return V9.call(e,t)}const hd={};function Y9(e){let t={},n;function i(o){return Hr(t,o)&&t[o]!==hd}const r={size:0,empty:0,object:t,has:i,get(o){return i(o)?t[o]:void 0},set(o,s){return i(o)||(++r.size,t[o]===hd&&--r.empty),t[o]=s,this},delete(o){return i(o)&&(--r.size,++r.empty,t[o]=hd),this},clear(){r.size=r.empty=0,r.object=t={}},test(o){return arguments.length?(n=o,r):n},clean(){const o={};let s=0;for(const a in t){const u=t[a];u!==hd&&(!n||!n(u))&&(o[a]=u,++s)}r.size=s,r.empty=0,r.object=t=o}};return e&&Object.keys(e).forEach(o=>{r.set(o,e[o])}),r}function X9(e,t,n,i,r,o){if(!n&&n!==0)return o;const s=+n;let a=e[0],u=ol(e),l;u<a&&(l=a,a=u,u=l),l=Math.abs(t-a);const c=Math.abs(u-t);return l<c&&l<=s?i:c<=s?r:o}function K9(e,t,n){const i=e.prototype=Object.create(t.prototype);return Object.defineProperty(i,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),Px(i,n)}function J9(e,t,n,i){let r=t[0],o=t[t.length-1],s;return r>o&&(s=r,r=o,o=s),n=n===void 0||n,i=i===void 0||i,(n?r<=e:r<e)&&(i?e<=o:e<o)}function Gk(e){return typeof e=="boolean"}function Hk(e){return Object.prototype.toString.call(e)==="[object Date]"}function Q9(e){return e&&lg(e[Symbol.iterator])}function Vk(e){return typeof e=="number"}function Z9(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function to(e){return typeof e=="string"}function eP(e,t,n){e&&(e=t?Bc(e).map(a=>a.replace(/\\(.)/g,"$1")):Bc(e));const i=e&&e.length,r=n&&n.get||Rk,o=a=>r(t?[a]:Tx(a));let s;if(!i)s=function(){return""};else if(i===1){const a=o(e[0]);s=function(u){return""+a(u)}}else{const a=e.map(o);s=function(u){let l=""+a[0](u),c=0;for(;++c<i;)l+="|"+a[c](u);return l}}return yo(s,e,"key")}function tP(e,t){const n=e[0],i=ol(e),r=+t;return r?r===1?i:n+r*(i-n):n}const nP=1e4;function iP(e){e=+e||nP;let t,n,i;const r=()=>{t={},n={},i=0},o=(s,a)=>(++i>e&&(n=t,t={},i=1),t[s]=a);return r(),{clear:r,has:s=>Hr(t,s)||Hr(n,s),get:s=>Hr(t,s)?t[s]:Hr(n,s)?o(s,n[s]):void 0,set:(s,a)=>Hr(t,s)?t[s]=a:o(s,a)}}function rP(e,t,n,i){const r=t.length,o=n.length;if(!o)return t;if(!r)return n;const s=i||new t.constructor(r+o);let a=0,u=0,l=0;for(;a<r&&u<o;++l)s[l]=e(t[a],n[u])>0?n[u++]:t[a++];for(;a<r;++a,++l)s[l]=t[a];for(;u<o;++u,++l)s[l]=n[u];return s}function ec(e,t){let n="";for(;--t>=0;)n+=e;return n}function oP(e,t,n,i){const r=n||" ",o=e+"",s=t-o.length;return s<=0?o:i==="left"?ec(r,s)+o:i==="center"?ec(r,~~(s/2))+o+ec(r,Math.ceil(s/2)):o+ec(r,s)}function sP(e){return e&&ol(e)-e[0]||0}function gu(e){return og(e)?"["+e.map(gu)+"]":oa(e)||to(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function aP(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const uP=e=>Vk(e)||Hk(e)?e:Date.parse(e);function lP(e,t){return t=t||uP,e==null||e===""?null:t(e)}function cP(e){return e==null||e===""?null:e+""}function fP(e){const t={},n=e.length;for(let i=0;i<n;++i)t[e[i]]=!0;return t}function dP(e,t,n,i){const r=i??"…",o=e+"",s=o.length,a=Math.max(0,t-r.length);return s<=t?o:n==="left"?r+o.slice(s-a):n==="center"?o.slice(0,Math.ceil(a/2))+r+o.slice(s-~~(a/2)):o.slice(0,a)+r}function hP(e,t,n){if(e)if(t){const i=e.length;for(let r=0;r<i;++r){const o=t(e[r]);o&&n(o,r,e)}}else e.forEach(n)}function ri(e,t,n){return e.fields=t||[],e.fname=n,e}function lt(e){return e==null?null:e.fname}function xn(e){return e==null?null:e.fields}function Yk(e){return e.length===1?pP(e[0]):gP(e)}const pP=e=>function(t){return t[e]},gP=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function L(e){throw Error(e)}function Ix(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||L("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&L("Access path missing closing bracket: "+e),i&&L("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Li(e,t,n){const i=Ix(e);return e=i.length===1?i[0]:e,ri((n&&n.get||Yk)(i),[e],t||e)}const cg=Li("id"),Ln=ri(e=>e,[],"identity"),zs=ri(()=>0,[],"zero"),xf=ri(()=>1,[],"one"),Pi=ri(()=>!0,[],"true"),As=ri(()=>!1,[],"false");function mP(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const yP=0,Xk=1,bP=2,xP=3,vP=4;function EP(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:mP,i=e||yP;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Xk&&n("error","ERROR",arguments),this},warn(){return i>=bP&&n("warn","WARN",arguments),this},info(){return i>=xP&&n("log","INFO",arguments),this},debug(){return i>=vP&&n("log","DEBUG",arguments),this}}}var Z=Array.isArray;function me(e){return e===Object(e)}const nS=e=>e!=="__proto__";function wP(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=AP(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;Kk(i,o,r[o],s)}return i},{})}function Kk(e,t,n,i){if(!nS(t))return;let r,o;if(me(n)&&!Z(n)){o=me(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?Kk(o,r,n[r]):nS(r)&&(o[r]=n[r])}else e[t]=n}function AP(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function $e(e){return e[e.length-1]}function mn(e){return e==null||e===""?null:+e}const Jk=e=>t=>e*Math.exp(t),Qk=e=>t=>Math.log(e*t),Zk=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),eD=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,_h=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function fg(e,t,n,i){const r=n(e[0]),o=n($e(e)),s=(o-r)*t;return[i(r-s),i(o-s)]}function SP(e,t){return fg(e,t,mn,Ln)}function CP(e,t){var n=Math.sign(e[0]);return fg(e,t,Qk(n),Jk(n))}function $P(e,t,n){return fg(e,t,_h(n),_h(1/n))}function _P(e,t,n){return fg(e,t,Zk(n),eD(n))}function dg(e,t,n,i,r){const o=i(e[0]),s=i($e(e)),a=t!=null?i(t):(o+s)/2;return[r(a+(o-a)*n),r(a+(s-a)*n)]}function tD(e,t,n){return dg(e,t,n,mn,Ln)}function nD(e,t,n){const i=Math.sign(e[0]);return dg(e,t,n,Qk(i),Jk(i))}function gy(e,t,n,i){return dg(e,t,n,_h(i),_h(1/i))}function iD(e,t,n,i){return dg(e,t,n,Zk(i),eD(i))}function FP(e){return 1+~~(new Date(e).getMonth()/3)}function kP(e){return 1+~~(new Date(e).getUTCMonth()/3)}function se(e){return e!=null?Z(e)?e:[e]:[]}function DP(e,t,n){let i=e[0],r=e[1],o;return r<i&&(o=r,r=i,i=o),o=r-i,o>=n-t?[t,n]:[i=Math.min(Math.max(i,t),n-o),i+o]}function be(e){return typeof e=="function"}const TP="descending";function rD(e,t,n){n=n||{},t=se(t)||[];const i=[],r=[],o={},s=n.comparator||MP;return se(e).forEach((a,u)=>{a!=null&&(i.push(t[u]===TP?-1:1),r.push(a=be(a)?a:Li(a,null,n)),(xn(a)||[]).forEach(l=>o[l]=1))}),r.length===0?null:ri(s(r,i),Object.keys(o))}const hg=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),MP=(e,t)=>e.length===1?OP(e[0],t[0]):RP(e,t,e.length),OP=(e,t)=>function(n,i){return hg(e(n),e(i))*t},RP=(e,t,n)=>(t.push(0),function(i,r){let o,s=0,a=-1;for(;s===0&&++a<n;)o=e[a],s=hg(o(i),o(r));return s*t[a]});function wn(e){return be(e)?e:()=>e}function oD(e,t){let n;return i=>{n&&clearTimeout(n),n=setTimeout(()=>(t(i),n=null),e)}}function ye(e){for(let t,n,i=1,r=arguments.length;i<r;++i){t=arguments[i];for(n in t)e[n]=t[n]}return e}function lo(e,t){let n=0,i,r,o,s;if(e&&(i=e.length))if(t==null){for(r=e[n];n<i&&(r==null||r!==r);r=e[++n]);for(o=s=r;n<i;++n)r=e[n],r!=null&&(r<o&&(o=r),r>s&&(s=r))}else{for(r=t(e[n]);n<i&&(r==null||r!==r);r=t(e[++n]));for(o=s=r;n<i;++n)r=t(e[n]),r!=null&&(r<o&&(o=r),r>s&&(s=r))}return[o,s]}function NP(e,t){const n=e.length;let i=-1,r,o,s,a,u;if(t==null){for(;++i<n;)if(o=e[i],o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=e[i],o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}else{for(;++i<n;)if(o=t(e[i],i,e),o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=t(e[i],i,e),o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}return[a,u]}function le(e,t){return Object.hasOwn(e,t)}const pd={};function vf(e){let t={},n;function i(o){return le(t,o)&&t[o]!==pd}const r={size:0,empty:0,object:t,has:i,get(o){return i(o)?t[o]:void 0},set(o,s){return i(o)||(++r.size,t[o]===pd&&--r.empty),t[o]=s,this},delete(o){return i(o)&&(--r.size,++r.empty,t[o]=pd),this},clear(){r.size=r.empty=0,r.object=t={}},test(o){return arguments.length?(n=o,r):n},clean(){const o={};let s=0;for(const a in t){const u=t[a];u!==pd&&(!n||!n(u))&&(o[a]=u,++s)}r.size=s,r.empty=0,r.object=t=o}};return e&&Object.keys(e).forEach(o=>{r.set(o,e[o])}),r}function LP(e,t,n,i,r,o){if(!n&&n!==0)return o;const s=+n;let a=e[0],u=$e(e),l;u<a&&(l=a,a=u,u=l),l=Math.abs(t-a);const c=Math.abs(u-t);return l<c&&l<=s?i:c<=s?r:o}function G(e,t,n){const i=e.prototype=Object.create(t.prototype);return Object.defineProperty(i,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),ye(i,n)}function tc(e,t,n,i){let r=t[0],o=t[t.length-1],s;return r>o&&(s=r,r=o,o=s),n=n===void 0||n,i=i===void 0||i,(n?r<=e:r<e)&&(i?e<=o:e<o)}function PP(e){return typeof e=="boolean"}function Ys(e){return Object.prototype.toString.call(e)==="[object Date]"}function IP(e){return e&&be(e[Symbol.iterator])}function sa(e){return typeof e=="number"}function sD(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Ke(e){return typeof e=="string"}function aD(e,t,n){e&&(e=t?se(e).map(a=>a.replace(/\\(.)/g,"$1")):se(e));const i=e&&e.length,r=n&&n.get||Yk,o=a=>r(t?[a]:Ix(a));let s;if(!i)s=function(){return""};else if(i===1){const a=o(e[0]);s=function(u){return""+a(u)}}else{const a=e.map(o);s=function(u){let l=""+a[0](u),c=0;for(;++c<i;)l+="|"+a[c](u);return l}}return ri(s,e,"key")}function zP(e,t){const n=e[0],i=$e(e),r=+t;return r?r===1?i:n+r*(i-n):n}const BP=1e4;function UP(e){e=+e||BP;let t,n,i;const r=()=>{t={},n={},i=0},o=(s,a)=>(++i>e&&(n=t,t={},i=1),t[s]=a);return r(),{clear:r,has:s=>le(t,s)||le(n,s),get:s=>le(t,s)?t[s]:le(n,s)?o(s,n[s]):void 0,set:(s,a)=>le(t,s)?t[s]=a:o(s,a)}}function jP(e,t,n,i){const r=t.length,o=n.length;if(!o)return t;if(!r)return n;const s=i||new t.constructor(r+o);let a=0,u=0,l=0;for(;a<r&&u<o;++l)s[l]=e(t[a],n[u])>0?n[u++]:t[a++];for(;a<r;++a,++l)s[l]=t[a];for(;u<o;++u,++l)s[l]=n[u];return s}function gd(e,t){let n="";for(;--t>=0;)n+=e;return n}function qP(e,t,n,i){const r=n||" ",o=e+"",s=t-o.length;return s<=0?o:i==="left"?gd(r,s)+o:i==="center"?gd(r,~~(s/2))+o+gd(r,Math.ceil(s/2)):o+gd(r,s)}function pg(e){return e&&$e(e)-e[0]||0}function re(e){return Z(e)?"["+e.map(re)+"]":me(e)||Ke(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function uD(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const WP=e=>sa(e)||Ys(e)?e:Date.parse(e);function lD(e,t){return t=t||WP,e==null||e===""?null:t(e)}function cD(e){return e==null||e===""?null:e+""}function yr(e){const t={},n=e.length;for(let i=0;i<n;++i)t[e[i]]=!0;return t}function GP(e,t,n,i){const r=i??"…",o=e+"",s=o.length,a=Math.max(0,t-r.length);return s<=t?o:n==="left"?r+o.slice(s-a):n==="center"?o.slice(0,Math.ceil(a/2))+r+o.slice(s-~~(a/2)):o.slice(0,a)+r}function Ls(e,t,n){if(e)if(t){const i=e.length;for(let r=0;r<i;++r){const o=t(e[r]);o&&n(o,r,e)}}else e.forEach(n)}var iS={},xm={},vm=34,kl=10,Em=13;function fD(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function HP(e,t){var n=fD(e);return function(i,r){return t(n(i),r,e)}}function rS(e){var t=Object.create(null),n=[];return e.forEach(function(i){for(var r in i)r in t||n.push(t[r]=r)}),n}function Fn(e,t){var n=e+"",i=n.length;return i<t?new Array(t-i+1).join(0)+n:n}function VP(e){return e<0?"-"+Fn(-e,6):e>9999?"+"+Fn(e,6):Fn(e,4)}function YP(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),i=e.getUTCSeconds(),r=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":VP(e.getUTCFullYear())+"-"+Fn(e.getUTCMonth()+1,2)+"-"+Fn(e.getUTCDate(),2)+(r?"T"+Fn(t,2)+":"+Fn(n,2)+":"+Fn(i,2)+"."+Fn(r,3)+"Z":i?"T"+Fn(t,2)+":"+Fn(n,2)+":"+Fn(i,2)+"Z":n||t?"T"+Fn(t,2)+":"+Fn(n,2)+"Z":"")}function XP(e){var t=new RegExp('["'+e+`
1
+ import{J as p8,s as g8,H as at,aK as m8,aL as y8,aM as Va,aN as Sh,N as b8,z as x8,r as Rt,M as Cx,av as v8,ar as E8,an as GA,ao as HA,X as w8,aO as A8,O as VA,aE as YA,l as Dk,aH as S8,aP as C8,C as $8,j as bm,aQ as _8}from"./index.D_0R5OBc.js";import{S as XA,T as F8}from"./Toolbar.CXl8zpFb.js";import{w as k8,E as D8}from"./withFullScreenWrapper.Cqo3BmOl.js";import{m as T8}from"./mergeWith.DrPpfkW2.js";import{a as zc,n as M8,b as O8,c as eg,t as ra,p as R8,d as N8,e as L8,i as us,f as tg,g as KA,l as rl,h as $x,j as ng,k as JA,m as No,o as Cu,q as P8,r as ls,s as I8,u as z8,v as B8,w as U8}from"./threshold.DjX0wlsa.js";import{f as j8,a as hy,b as Tk,c as q8,R as ig,r as Mk,d as _x,e as Fx,C as kx,g as QA,h as ZA,i as rg,j as py,n as en,k as bf,l as W8,m as G8,o as H8,p as V8,q as Y8,s as X8,t as K8,u as J8,v as Q8,w as Z8,x as e9,y as Ch}from"./value.CgPGBV_l.js";import{P as t9,i as n9,a as i9,b as r9,p as Dx,T as o9,n as s9,t as a9,d as u9}from"./timer.CAwTRJ_g.js";import{u as l9}from"./FormClearHelper.BYxFNamA.js";const c9=e=>({"#vg-tooltip-element":{visibility:"hidden",position:"fixed",fontFamily:e.genericFonts.bodyFont,color:e.colors.bodyText,border:`${e.sizes.borderWidth} solid ${e.colors.borderColor}`,backgroundColor:p8(e.colors.bgColor,.05),fontSize:e.fontSizes.twoSm,boxShadow:"rgb(0 0 0 / 16%) 0px 1px 4px",maxWidth:e.sizes.maxChartTooltipWidth,padding:`${e.spacing.xs} ${e.spacing.md}`,borderRadius:e.radii.default,zIndex:e.zIndices.popup,"&.visible":{visibility:"visible"},h2:{marginTop:e.spacing.none,marginBottom:e.spacing.sm,fontSize:e.fontSizes.sm},td:{border:"none"},table:{borderSpacing:0,tr:{border:"none",td:{overflow:"hidden",textOverflow:"ellipsis",paddingTop:e.spacing.threeXS,paddingBottom:e.spacing.threeXS},"td.key":{maxWidth:`calc((${e.sizes.maxChartTooltipWidth} - 2 * ${e.spacing.md}) * 0.4)`,textAlign:"right",color:e.colors.fadedText60,whiteSpace:"nowrap",paddingRight:e.spacing.twoXS},"td.value":{maxWidth:`calc((${e.sizes.maxChartTooltipWidth} - 2 * ${e.spacing.md}) * 0.6)`,textAlign:"left",display:"-webkit-box",WebkitLineClamp:"5",WebkitBoxOrient:"vertical",lineClamp:"5",wordWrap:"break-word"}}}}}),f9=g8("div",{target:"e1d0pwhz0"})(({theme:e,useContainerWidth:t,isFullScreen:n})=>({width:t||n?"100%":"auto",height:n?"100%":"auto","&.vega-embed":{position:"relative",display:"inline-block",boxSizing:"border-box","details:not([open]) > :not(summary)":{display:"none !important"},"details[open] summary":{opacity:.7},"&:hover summary, .vega-embed:focus summary":{background:"transparent"},"&:hover summary, &:focus-within summary":{opacity:"1 !important",transition:"opacity 0.2s ease"},"&.has-actions":{paddingRight:0},".vega-actions":{position:"absolute",display:"flex",flexDirection:"column",paddingBottom:e.spacing.sm,paddingTop:e.spacing.sm,zIndex:e.zIndices.popup,top:`calc(${e.iconSizes.md} + 2 * ${e.spacing.xs} + ${e.spacing.xs})`,right:0,backgroundColor:e.colors.bgColor,boxShadow:"rgb(0 0 0 / 16%) 0px 4px 16px",border:`${e.sizes.borderWidth} solid ${e.colors.fadedText10}`,animationDuration:"0.15s",animationName:"scale-in",animationTimingFunction:"cubic-bezier(0.2, 0, 0.13, 1.5)",textAlign:"left",borderRadius:e.radii.default,a:{fontFamily:e.genericFonts.bodyFont,fontWeight:e.fontWeights.normal,fontSize:e.fontSizes.md,margin:0,padding:`${e.spacing.twoXS} ${e.spacing.twoXL}`,color:e.colors.bodyText,whiteSpace:"nowrap",textDecoration:"none"},"a:hover, a:focus":{backgroundColor:e.colors.darkenedBgMix15,color:e.colors.bodyText},":before":{content:"none"},":after":{content:"none"}},"@keyframes scale-in":{from:{opacity:0,transform:"scale(0.6)"},to:{opacity:1,transform:"scale(1)"}},".chart-wrapper":{"&.fit-x":{width:"100%"},"&.fit-y":{height:"100%"}},summary:{position:"absolute",top:0,right:0,opacity:0,listStyle:"none",cursor:"pointer",display:"list-item",padding:e.spacing.xs,height:"auto",zIndex:e.zIndices.menuButton,border:"none",boxShadow:"none",borderRadius:e.radii.default,color:e.colors.fadedText10,backgroundColor:"transparent",transition:"opacity 300ms 150ms,transform 300ms 150ms",lineHeight:0,"&::-webkit-details-marker":{display:"none"},"&:active, &:focus-visible, &:hover":{border:"none",boxShadow:"none",color:e.colors.bodyText,opacity:"1 !important",background:e.colors.darkenedBgMix15},svg:{width:e.iconSizes.md,height:e.iconSizes.md}}}}));function eS(e,t){const n={font:t.genericFonts.bodyFont,background:t.colors.bgColor,fieldTitle:"verbal",autosize:{type:"fit",contains:"padding"},title:{align:"left",anchor:"start",color:t.colors.headingColor,titleFontStyle:"normal",fontWeight:t.fontWeights.bold,fontSize:at(t.fontSizes.md),orient:"top",offset:26},header:{titleFontWeight:t.fontWeights.normal,titleFontSize:at(t.fontSizes.md),titleColor:Va(t),titleFontStyle:"normal",labelFontSize:at(t.fontSizes.twoSm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),labelFontStyle:"normal"},axis:{labelFontSize:at(t.fontSizes.twoSm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),labelFontStyle:"normal",titleFontWeight:t.fontWeights.normal,titleFontSize:at(t.fontSizes.sm),titleColor:Va(t),titleFontStyle:"normal",ticks:!1,gridColor:Sh(t),domain:!1,domainWidth:1,domainColor:Sh(t),labelFlush:!0,labelFlushOffset:1,labelBound:!1,labelLimit:100,titlePadding:at(t.spacing.lg),labelPadding:at(t.spacing.lg),labelSeparation:at(t.spacing.twoXS),labelOverlap:!0},legend:{labelFontSize:at(t.fontSizes.sm),labelFontWeight:t.fontWeights.normal,labelColor:Va(t),titleFontSize:at(t.fontSizes.sm),titleFontWeight:t.fontWeights.normal,titleFontStyle:"normal",titleColor:Va(t),titlePadding:5,labelPadding:at(t.spacing.lg),columnPadding:at(t.spacing.sm),rowPadding:at(t.spacing.twoXS),padding:7,symbolStrokeWidth:at(t.spacing.twoXS)},range:{category:t.colors.chartCategoricalColors,diverging:y8(t),ramp:t.colors.chartSequentialColors,heatmap:t.colors.chartSequentialColors},view:{columns:1,strokeWidth:0,stroke:"transparent",continuousHeight:at(t.sizes.defaultChartHeight),continuousWidth:at(t.sizes.defaultChartWidth)},concat:{columns:1},facet:{columns:1},mark:{tooltip:{content:"encoding"},color:m8(t)},bar:{binSpacing:at(t.spacing.twoXS),discreteBandSize:{band:.85}},axisDiscrete:{grid:!1},axisXPoint:{grid:!1},axisTemporal:{grid:!1},axisXBand:{grid:!1}};return e?T8({},n,e,(i,r)=>Array.isArray(r)?r:void 0):n}function d9(e,t){const{colors:n,fontSizes:i,genericFonts:r}=t,o={labelFont:r.bodyFont,titleFont:r.bodyFont,labelFontSize:at(i.twoSm),titleFontSize:at(i.twoSm)},s={background:n.bgColor,axis:{labelColor:n.bodyText,titleColor:n.bodyText,gridColor:Sh(t),...o},legend:{labelColor:n.bodyText,titleColor:n.bodyText,...o},title:{color:n.bodyText,subtitleColor:n.bodyText,...o},header:{labelColor:n.bodyText,titleColor:n.bodyText,...o},view:{stroke:Sh(t),continuousHeight:at(t.sizes.defaultChartHeight),continuousWidth:at(t.sizes.defaultChartWidth)},mark:{tooltip:!0}};return e?b8({},s,e):s}const h9=20;function p9(e){"params"in e&&"encoding"in e&&e.params.forEach(t=>{"select"in t&&(["interval","point"].includes(t.select)&&(t.select={type:t.select}),"type"in t.select&&t.select.type==="point"&&!("encodings"in t.select)&&Cx(t.select.encodings)&&(t.select.encodings=Object.keys(e.encoding)))})}const g9=(e,t,n,i,r,o,s,a)=>{const u=JSON.parse(e);if(n==="streamlit"?u.config=eS(u.config,r):u.usermeta?.embedOptions?.theme==="streamlit"?(u.config=eS(u.config,r),u.usermeta.embedOptions.theme=void 0):u.config=d9(u.config,r),u.title&&(typeof u.title=="string"&&(u.title={text:u.title}),u.title.limit=u.title.limit??Math.max(s-40,0)),o?(u.width=s,u.height=a,"vconcat"in u&&u.vconcat.forEach(l=>{l.width=s})):t&&(u.width=s,"vconcat"in u&&u.vconcat.forEach(l=>{l.width=s})),u.padding||(u.padding={}),Cx(u.padding.bottom)&&(u.padding.bottom=h9),u.datasets)throw new Error("Datasets should not be passed as part of the spec");return i.length>0&&p9(u),u},m9=(e,t,n,i)=>{const r=x8(),{id:o,formId:s,spec:a,data:u,datasets:l,useContainerWidth:c,vegaLiteTheme:f,selectionMode:d}=e,h=Rt.useMemo(()=>d,[JSON.stringify(d)]),p=Rt.useMemo(()=>g9(a,c,f,h,r,t,n||0,i),[a,c,f,h,r,t,n,i]);return{id:o,formId:s,vegaLiteTheme:f,spec:p,selectionMode:h,data:u,datasets:l,useContainerWidth:c}};function yo(e,t,n){return e.fields=t||[],e.fname=n,e}function y9(e){return e==null?null:e.fname}function Ok(e){return e==null?null:e.fields}function Rk(e){return e.length===1?b9(e[0]):x9(e)}const b9=e=>function(t){return t[e]},x9=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function Jd(e){throw Error(e)}function Tx(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||Jd("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&Jd("Access path missing closing bracket: "+e),i&&Jd("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Mx(e,t,n){const i=Tx(e);return e=i.length===1?i[0]:e,yo((n&&n.get||Rk)(i),[e],t||e)}const v9=Mx("id"),Ox=yo(e=>e,[],"identity"),E9=yo(()=>0,[],"zero"),w9=yo(()=>1,[],"one"),Nk=yo(()=>!0,[],"true"),A9=yo(()=>!1,[],"false");function S9(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const Lk=0,Pk=1,Ik=2,zk=3,Bk=4;function C9(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:S9,i=e||Lk;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Pk&&n(t||"error","ERROR",arguments),this},warn(){return i>=Ik&&n(t||"warn","WARN",arguments),this},info(){return i>=zk&&n(t||"log","INFO",arguments),this},debug(){return i>=Bk&&n(t||"log","DEBUG",arguments),this}}}var og=Array.isArray;function oa(e){return e===Object(e)}const tS=e=>e!=="__proto__";function Rx(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=$9(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;sg(i,o,r[o],s)}return i},{})}function sg(e,t,n,i){if(!tS(t))return;let r,o;if(oa(n)&&!og(n)){o=oa(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?sg(o,r,n[r]):tS(r)&&(o[r]=n[r])}else e[t]=n}function $9(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function ol(e){return e[e.length-1]}function Nx(e){return e==null||e===""?null:+e}const Uk=e=>t=>e*Math.exp(t),jk=e=>t=>Math.log(e*t),qk=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),Wk=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,$h=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function ag(e,t,n,i){const r=n(e[0]),o=n(ol(e)),s=(o-r)*t;return[i(r-s),i(o-s)]}function _9(e,t){return ag(e,t,Nx,Ox)}function F9(e,t){var n=Math.sign(e[0]);return ag(e,t,jk(n),Uk(n))}function k9(e,t,n){return ag(e,t,$h(n),$h(1/n))}function D9(e,t,n){return ag(e,t,qk(n),Wk(n))}function ug(e,t,n,i,r){const o=i(e[0]),s=i(ol(e)),a=t!=null?i(t):(o+s)/2;return[r(a+(o-a)*n),r(a+(s-a)*n)]}function T9(e,t,n){return ug(e,t,n,Nx,Ox)}function M9(e,t,n){const i=Math.sign(e[0]);return ug(e,t,n,jk(i),Uk(i))}function O9(e,t,n,i){return ug(e,t,n,$h(i),$h(1/i))}function R9(e,t,n,i){return ug(e,t,n,qk(i),Wk(i))}function N9(e){return 1+~~(new Date(e).getMonth()/3)}function L9(e){return 1+~~(new Date(e).getUTCMonth()/3)}function Bc(e){return e!=null?og(e)?e:[e]:[]}function P9(e,t,n){let i=e[0],r=e[1],o;return r<i&&(o=r,r=i,i=o),o=r-i,o>=n-t?[t,n]:[i=Math.min(Math.max(i,t),n-o),i+o]}function lg(e){return typeof e=="function"}const I9="descending";function z9(e,t,n){n=n||{},t=Bc(t)||[];const i=[],r=[],o={},s=n.comparator||B9;return Bc(e).forEach((a,u)=>{a!=null&&(i.push(t[u]===I9?-1:1),r.push(a=lg(a)?a:Mx(a,null,n)),(Ok(a)||[]).forEach(l=>o[l]=1))}),r.length===0?null:yo(s(r,i),Object.keys(o))}const Lx=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),B9=(e,t)=>e.length===1?U9(e[0],t[0]):j9(e,t,e.length),U9=(e,t)=>function(n,i){return Lx(e(n),e(i))*t},j9=(e,t,n)=>(t.push(0),function(i,r){let o,s=0,a=-1;for(;s===0&&++a<n;)o=e[a],s=Lx(o(i),o(r));return s*t[a]});function q9(e){return lg(e)?e:()=>e}function W9(e,t){let n;return i=>{n&&clearTimeout(n),n=setTimeout(()=>(t(i),n=null),e)}}function Px(e){for(let t,n,i=1,r=arguments.length;i<r;++i){t=arguments[i];for(n in t)e[n]=t[n]}return e}function G9(e,t){let n=0,i,r,o,s;if(e&&(i=e.length))if(t==null){for(r=e[n];n<i&&(r==null||r!==r);r=e[++n]);for(o=s=r;n<i;++n)r=e[n],r!=null&&(r<o&&(o=r),r>s&&(s=r))}else{for(r=t(e[n]);n<i&&(r==null||r!==r);r=t(e[++n]));for(o=s=r;n<i;++n)r=t(e[n]),r!=null&&(r<o&&(o=r),r>s&&(s=r))}return[o,s]}function H9(e,t){const n=e.length;let i=-1,r,o,s,a,u;if(t==null){for(;++i<n;)if(o=e[i],o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=e[i],o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}else{for(;++i<n;)if(o=t(e[i],i,e),o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=t(e[i],i,e),o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}return[a,u]}const V9=Object.prototype.hasOwnProperty;function Hr(e,t){return V9.call(e,t)}const hd={};function Y9(e){let t={},n;function i(o){return Hr(t,o)&&t[o]!==hd}const r={size:0,empty:0,object:t,has:i,get(o){return i(o)?t[o]:void 0},set(o,s){return i(o)||(++r.size,t[o]===hd&&--r.empty),t[o]=s,this},delete(o){return i(o)&&(--r.size,++r.empty,t[o]=hd),this},clear(){r.size=r.empty=0,r.object=t={}},test(o){return arguments.length?(n=o,r):n},clean(){const o={};let s=0;for(const a in t){const u=t[a];u!==hd&&(!n||!n(u))&&(o[a]=u,++s)}r.size=s,r.empty=0,r.object=t=o}};return e&&Object.keys(e).forEach(o=>{r.set(o,e[o])}),r}function X9(e,t,n,i,r,o){if(!n&&n!==0)return o;const s=+n;let a=e[0],u=ol(e),l;u<a&&(l=a,a=u,u=l),l=Math.abs(t-a);const c=Math.abs(u-t);return l<c&&l<=s?i:c<=s?r:o}function K9(e,t,n){const i=e.prototype=Object.create(t.prototype);return Object.defineProperty(i,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),Px(i,n)}function J9(e,t,n,i){let r=t[0],o=t[t.length-1],s;return r>o&&(s=r,r=o,o=s),n=n===void 0||n,i=i===void 0||i,(n?r<=e:r<e)&&(i?e<=o:e<o)}function Gk(e){return typeof e=="boolean"}function Hk(e){return Object.prototype.toString.call(e)==="[object Date]"}function Q9(e){return e&&lg(e[Symbol.iterator])}function Vk(e){return typeof e=="number"}function Z9(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function to(e){return typeof e=="string"}function eP(e,t,n){e&&(e=t?Bc(e).map(a=>a.replace(/\\(.)/g,"$1")):Bc(e));const i=e&&e.length,r=n&&n.get||Rk,o=a=>r(t?[a]:Tx(a));let s;if(!i)s=function(){return""};else if(i===1){const a=o(e[0]);s=function(u){return""+a(u)}}else{const a=e.map(o);s=function(u){let l=""+a[0](u),c=0;for(;++c<i;)l+="|"+a[c](u);return l}}return yo(s,e,"key")}function tP(e,t){const n=e[0],i=ol(e),r=+t;return r?r===1?i:n+r*(i-n):n}const nP=1e4;function iP(e){e=+e||nP;let t,n,i;const r=()=>{t={},n={},i=0},o=(s,a)=>(++i>e&&(n=t,t={},i=1),t[s]=a);return r(),{clear:r,has:s=>Hr(t,s)||Hr(n,s),get:s=>Hr(t,s)?t[s]:Hr(n,s)?o(s,n[s]):void 0,set:(s,a)=>Hr(t,s)?t[s]=a:o(s,a)}}function rP(e,t,n,i){const r=t.length,o=n.length;if(!o)return t;if(!r)return n;const s=i||new t.constructor(r+o);let a=0,u=0,l=0;for(;a<r&&u<o;++l)s[l]=e(t[a],n[u])>0?n[u++]:t[a++];for(;a<r;++a,++l)s[l]=t[a];for(;u<o;++u,++l)s[l]=n[u];return s}function ec(e,t){let n="";for(;--t>=0;)n+=e;return n}function oP(e,t,n,i){const r=n||" ",o=e+"",s=t-o.length;return s<=0?o:i==="left"?ec(r,s)+o:i==="center"?ec(r,~~(s/2))+o+ec(r,Math.ceil(s/2)):o+ec(r,s)}function sP(e){return e&&ol(e)-e[0]||0}function gu(e){return og(e)?"["+e.map(gu)+"]":oa(e)||to(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function aP(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const uP=e=>Vk(e)||Hk(e)?e:Date.parse(e);function lP(e,t){return t=t||uP,e==null||e===""?null:t(e)}function cP(e){return e==null||e===""?null:e+""}function fP(e){const t={},n=e.length;for(let i=0;i<n;++i)t[e[i]]=!0;return t}function dP(e,t,n,i){const r=i??"…",o=e+"",s=o.length,a=Math.max(0,t-r.length);return s<=t?o:n==="left"?r+o.slice(s-a):n==="center"?o.slice(0,Math.ceil(a/2))+r+o.slice(s-~~(a/2)):o.slice(0,a)+r}function hP(e,t,n){if(e)if(t){const i=e.length;for(let r=0;r<i;++r){const o=t(e[r]);o&&n(o,r,e)}}else e.forEach(n)}function ri(e,t,n){return e.fields=t||[],e.fname=n,e}function lt(e){return e==null?null:e.fname}function xn(e){return e==null?null:e.fields}function Yk(e){return e.length===1?pP(e[0]):gP(e)}const pP=e=>function(t){return t[e]},gP=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function L(e){throw Error(e)}function Ix(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||L("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&L("Access path missing closing bracket: "+e),i&&L("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Li(e,t,n){const i=Ix(e);return e=i.length===1?i[0]:e,ri((n&&n.get||Yk)(i),[e],t||e)}const cg=Li("id"),Ln=ri(e=>e,[],"identity"),zs=ri(()=>0,[],"zero"),xf=ri(()=>1,[],"one"),Pi=ri(()=>!0,[],"true"),As=ri(()=>!1,[],"false");function mP(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const yP=0,Xk=1,bP=2,xP=3,vP=4;function EP(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:mP,i=e||yP;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Xk&&n("error","ERROR",arguments),this},warn(){return i>=bP&&n("warn","WARN",arguments),this},info(){return i>=xP&&n("log","INFO",arguments),this},debug(){return i>=vP&&n("log","DEBUG",arguments),this}}}var Z=Array.isArray;function me(e){return e===Object(e)}const nS=e=>e!=="__proto__";function wP(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=AP(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;Kk(i,o,r[o],s)}return i},{})}function Kk(e,t,n,i){if(!nS(t))return;let r,o;if(me(n)&&!Z(n)){o=me(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?Kk(o,r,n[r]):nS(r)&&(o[r]=n[r])}else e[t]=n}function AP(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function $e(e){return e[e.length-1]}function mn(e){return e==null||e===""?null:+e}const Jk=e=>t=>e*Math.exp(t),Qk=e=>t=>Math.log(e*t),Zk=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),eD=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,_h=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function fg(e,t,n,i){const r=n(e[0]),o=n($e(e)),s=(o-r)*t;return[i(r-s),i(o-s)]}function SP(e,t){return fg(e,t,mn,Ln)}function CP(e,t){var n=Math.sign(e[0]);return fg(e,t,Qk(n),Jk(n))}function $P(e,t,n){return fg(e,t,_h(n),_h(1/n))}function _P(e,t,n){return fg(e,t,Zk(n),eD(n))}function dg(e,t,n,i,r){const o=i(e[0]),s=i($e(e)),a=t!=null?i(t):(o+s)/2;return[r(a+(o-a)*n),r(a+(s-a)*n)]}function tD(e,t,n){return dg(e,t,n,mn,Ln)}function nD(e,t,n){const i=Math.sign(e[0]);return dg(e,t,n,Qk(i),Jk(i))}function gy(e,t,n,i){return dg(e,t,n,_h(i),_h(1/i))}function iD(e,t,n,i){return dg(e,t,n,Zk(i),eD(i))}function FP(e){return 1+~~(new Date(e).getMonth()/3)}function kP(e){return 1+~~(new Date(e).getUTCMonth()/3)}function se(e){return e!=null?Z(e)?e:[e]:[]}function DP(e,t,n){let i=e[0],r=e[1],o;return r<i&&(o=r,r=i,i=o),o=r-i,o>=n-t?[t,n]:[i=Math.min(Math.max(i,t),n-o),i+o]}function be(e){return typeof e=="function"}const TP="descending";function rD(e,t,n){n=n||{},t=se(t)||[];const i=[],r=[],o={},s=n.comparator||MP;return se(e).forEach((a,u)=>{a!=null&&(i.push(t[u]===TP?-1:1),r.push(a=be(a)?a:Li(a,null,n)),(xn(a)||[]).forEach(l=>o[l]=1))}),r.length===0?null:ri(s(r,i),Object.keys(o))}const hg=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0),MP=(e,t)=>e.length===1?OP(e[0],t[0]):RP(e,t,e.length),OP=(e,t)=>function(n,i){return hg(e(n),e(i))*t},RP=(e,t,n)=>(t.push(0),function(i,r){let o,s=0,a=-1;for(;s===0&&++a<n;)o=e[a],s=hg(o(i),o(r));return s*t[a]});function wn(e){return be(e)?e:()=>e}function oD(e,t){let n;return i=>{n&&clearTimeout(n),n=setTimeout(()=>(t(i),n=null),e)}}function ye(e){for(let t,n,i=1,r=arguments.length;i<r;++i){t=arguments[i];for(n in t)e[n]=t[n]}return e}function lo(e,t){let n=0,i,r,o,s;if(e&&(i=e.length))if(t==null){for(r=e[n];n<i&&(r==null||r!==r);r=e[++n]);for(o=s=r;n<i;++n)r=e[n],r!=null&&(r<o&&(o=r),r>s&&(s=r))}else{for(r=t(e[n]);n<i&&(r==null||r!==r);r=t(e[++n]));for(o=s=r;n<i;++n)r=t(e[n]),r!=null&&(r<o&&(o=r),r>s&&(s=r))}return[o,s]}function NP(e,t){const n=e.length;let i=-1,r,o,s,a,u;if(t==null){for(;++i<n;)if(o=e[i],o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=e[i],o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}else{for(;++i<n;)if(o=t(e[i],i,e),o!=null&&o>=o){r=s=o;break}if(i===n)return[-1,-1];for(a=u=i;++i<n;)o=t(e[i],i,e),o!=null&&(r>o&&(r=o,a=i),s<o&&(s=o,u=i))}return[a,u]}function le(e,t){return Object.hasOwn(e,t)}const pd={};function vf(e){let t={},n;function i(o){return le(t,o)&&t[o]!==pd}const r={size:0,empty:0,object:t,has:i,get(o){return i(o)?t[o]:void 0},set(o,s){return i(o)||(++r.size,t[o]===pd&&--r.empty),t[o]=s,this},delete(o){return i(o)&&(--r.size,++r.empty,t[o]=pd),this},clear(){r.size=r.empty=0,r.object=t={}},test(o){return arguments.length?(n=o,r):n},clean(){const o={};let s=0;for(const a in t){const u=t[a];u!==pd&&(!n||!n(u))&&(o[a]=u,++s)}r.size=s,r.empty=0,r.object=t=o}};return e&&Object.keys(e).forEach(o=>{r.set(o,e[o])}),r}function LP(e,t,n,i,r,o){if(!n&&n!==0)return o;const s=+n;let a=e[0],u=$e(e),l;u<a&&(l=a,a=u,u=l),l=Math.abs(t-a);const c=Math.abs(u-t);return l<c&&l<=s?i:c<=s?r:o}function G(e,t,n){const i=e.prototype=Object.create(t.prototype);return Object.defineProperty(i,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),ye(i,n)}function tc(e,t,n,i){let r=t[0],o=t[t.length-1],s;return r>o&&(s=r,r=o,o=s),n=n===void 0||n,i=i===void 0||i,(n?r<=e:r<e)&&(i?e<=o:e<o)}function PP(e){return typeof e=="boolean"}function Ys(e){return Object.prototype.toString.call(e)==="[object Date]"}function IP(e){return e&&be(e[Symbol.iterator])}function sa(e){return typeof e=="number"}function sD(e){return Object.prototype.toString.call(e)==="[object RegExp]"}function Ke(e){return typeof e=="string"}function aD(e,t,n){e&&(e=t?se(e).map(a=>a.replace(/\\(.)/g,"$1")):se(e));const i=e&&e.length,r=n&&n.get||Yk,o=a=>r(t?[a]:Ix(a));let s;if(!i)s=function(){return""};else if(i===1){const a=o(e[0]);s=function(u){return""+a(u)}}else{const a=e.map(o);s=function(u){let l=""+a[0](u),c=0;for(;++c<i;)l+="|"+a[c](u);return l}}return ri(s,e,"key")}function zP(e,t){const n=e[0],i=$e(e),r=+t;return r?r===1?i:n+r*(i-n):n}const BP=1e4;function UP(e){e=+e||BP;let t,n,i;const r=()=>{t={},n={},i=0},o=(s,a)=>(++i>e&&(n=t,t={},i=1),t[s]=a);return r(),{clear:r,has:s=>le(t,s)||le(n,s),get:s=>le(t,s)?t[s]:le(n,s)?o(s,n[s]):void 0,set:(s,a)=>le(t,s)?t[s]=a:o(s,a)}}function jP(e,t,n,i){const r=t.length,o=n.length;if(!o)return t;if(!r)return n;const s=i||new t.constructor(r+o);let a=0,u=0,l=0;for(;a<r&&u<o;++l)s[l]=e(t[a],n[u])>0?n[u++]:t[a++];for(;a<r;++a,++l)s[l]=t[a];for(;u<o;++u,++l)s[l]=n[u];return s}function gd(e,t){let n="";for(;--t>=0;)n+=e;return n}function qP(e,t,n,i){const r=n||" ",o=e+"",s=t-o.length;return s<=0?o:i==="left"?gd(r,s)+o:i==="center"?gd(r,~~(s/2))+o+gd(r,Math.ceil(s/2)):o+gd(r,s)}function pg(e){return e&&$e(e)-e[0]||0}function re(e){return Z(e)?"["+e.map(re)+"]":me(e)||Ke(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function uD(e){return e==null||e===""?null:!e||e==="false"||e==="0"?!1:!!e}const WP=e=>sa(e)||Ys(e)?e:Date.parse(e);function lD(e,t){return t=t||WP,e==null||e===""?null:t(e)}function cD(e){return e==null||e===""?null:e+""}function yr(e){const t={},n=e.length;for(let i=0;i<n;++i)t[e[i]]=!0;return t}function GP(e,t,n,i){const r=i??"…",o=e+"",s=o.length,a=Math.max(0,t-r.length);return s<=t?o:n==="left"?r+o.slice(s-a):n==="center"?o.slice(0,Math.ceil(a/2))+r+o.slice(s-~~(a/2)):o.slice(0,a)+r}function Ls(e,t,n){if(e)if(t){const i=e.length;for(let r=0;r<i;++r){const o=t(e[r]);o&&n(o,r,e)}}else e.forEach(n)}var iS={},xm={},vm=34,kl=10,Em=13;function fD(e){return new Function("d","return {"+e.map(function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'}).join(",")+"}")}function HP(e,t){var n=fD(e);return function(i,r){return t(n(i),r,e)}}function rS(e){var t=Object.create(null),n=[];return e.forEach(function(i){for(var r in i)r in t||n.push(t[r]=r)}),n}function Fn(e,t){var n=e+"",i=n.length;return i<t?new Array(t-i+1).join(0)+n:n}function VP(e){return e<0?"-"+Fn(-e,6):e>9999?"+"+Fn(e,6):Fn(e,4)}function YP(e){var t=e.getUTCHours(),n=e.getUTCMinutes(),i=e.getUTCSeconds(),r=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":VP(e.getUTCFullYear())+"-"+Fn(e.getUTCMonth()+1,2)+"-"+Fn(e.getUTCDate(),2)+(r?"T"+Fn(t,2)+":"+Fn(n,2)+":"+Fn(i,2)+"."+Fn(r,3)+"Z":i?"T"+Fn(t,2)+":"+Fn(n,2)+":"+Fn(i,2)+"Z":n||t?"T"+Fn(t,2)+":"+Fn(n,2)+"Z":"")}function XP(e){var t=new RegExp('["'+e+`
2
2
  \r]`),n=e.charCodeAt(0);function i(f,d){var h,p,g=r(f,function(m,y){if(h)return h(m,y-1);p=m,h=d?HP(m,d):fD(m)});return g.columns=p||[],g}function r(f,d){var h=[],p=f.length,g=0,m=0,y,b=p<=0,x=!1;f.charCodeAt(p-1)===kl&&--p,f.charCodeAt(p-1)===Em&&--p;function v(){if(b)return xm;if(x)return x=!1,iS;var A,E=g,S;if(f.charCodeAt(E)===vm){for(;g++<p&&f.charCodeAt(g)!==vm||f.charCodeAt(++g)===vm;);return(A=g)>=p?b=!0:(S=f.charCodeAt(g++))===kl?x=!0:S===Em&&(x=!0,f.charCodeAt(g)===kl&&++g),f.slice(E+1,A-1).replace(/""/g,'"')}for(;g<p;){if((S=f.charCodeAt(A=g++))===kl)x=!0;else if(S===Em)x=!0,f.charCodeAt(g)===kl&&++g;else if(S!==n)continue;return f.slice(E,A)}return b=!0,f.slice(E,p)}for(;(y=v())!==xm;){for(var w=[];y!==iS&&y!==xm;)w.push(y),y=v();d&&(w=d(w,m++))==null||h.push(w)}return h}function o(f,d){return f.map(function(h){return d.map(function(p){return c(h[p])}).join(e)})}function s(f,d){return d==null&&(d=rS(f)),[d.map(c).join(e)].concat(o(f,d)).join(`
3
3
  `)}function a(f,d){return d==null&&(d=rS(f)),o(f,d).join(`
4
4
  `)}function u(f){return f.map(l).join(`
@@ -12,7 +12,7 @@ import{J as p8,s as g8,H as at,aK as m8,aL as y8,aM as Va,aN as Sh,N as b8,z as
12
12
  : v !== v && u === u ? ${i} : `}var VZ={operator:(e,t)=>jl(e,["_"],t.code),parameter:(e,t)=>jl(e,["datum","_"],t.code),event:(e,t)=>jl(e,["event"],t.code),handler:(e,t)=>{const n=`var datum=event.item&&event.item.datum;return ${t.code};`;return jl(e,["_","event"],n)},encode:(e,t)=>{const{marktype:n,channels:i}=t;let r="var o=item,datum=o.datum,m=0,$;";for(const o in i){const s="o["+re(o)+"]";r+=`$=${i[o].code};if(${s}!==$)${s}=$,m=1;`}return r+=qZ(i,n),r+="return m;",jl(e,["item","_"],r)},codegen:{get(e){const t=`[${e.map(re).join("][")}]`,n=Function("_",`return _${t};`);return n.path=t,n},comparator(e,t){let n;const i=(o,s)=>{const a=t[s];let u,l;return o.path?(u=`a${o.path}`,l=`b${o.path}`):((n=n||{})["f"+s]=o,u=`this.f${s}(a)`,l=`this.f${s}(b)`),HZ(u,l,-a,a)},r=Function("a","b","var u, v; return "+e.map(i).join("")+"0;");return n?r.bind(n):r}}};function YZ(e){const t=this;WZ(e.type)||!e.type?t.operator(e,e.update?t.operatorExpression(e.update):null):t.transform(e,e.type)}function XZ(e){const t=this;if(e.params){const n=t.get(e.id);n||L("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}}function KZ(e,t){t=t||{};const n=this;for(const i in e){const r=e[i];t[i]=Z(r)?r.map(o=>V$(o,n,t)):V$(r,n,t)}return t}function V$(e,t,n){if(!e||!me(e))return e;for(let i=0,r=Y$.length,o;i<r;++i)if(o=Y$[i],le(e,o.key))return o.parse(e,t,n);return e}var Y$=[{key:"$ref",parse:JZ},{key:"$key",parse:ZZ},{key:"$expr",parse:QZ},{key:"$field",parse:eee},{key:"$encode",parse:nee},{key:"$compare",parse:tee},{key:"$context",parse:iee},{key:"$subflow",parse:ree},{key:"$tupleid",parse:oee}];function JZ(e,t){return t.get(e.$ref)||L("Operator not defined: "+e.$ref)}function QZ(e,t,n){e.$params&&t.parseParameters(e.$params,n);const i="e:"+e.$expr.code;return t.fn[i]||(t.fn[i]=ri(t.parameterExpression(e.$expr),e.$fields))}function ZZ(e,t){const n="k:"+e.$key+"_"+!!e.$flat;return t.fn[n]||(t.fn[n]=aD(e.$key,e.$flat,t.expr.codegen))}function eee(e,t){if(!e.$field)return null;const n="f:"+e.$field+"_"+e.$name;return t.fn[n]||(t.fn[n]=Li(e.$field,e.$name,t.expr.codegen))}function tee(e,t){const n="c:"+e.$compare+"_"+e.$order,i=se(e.$compare).map(r=>r&&r.$tupleid?te:r);return t.fn[n]||(t.fn[n]=rD(i,e.$order,t.expr.codegen))}function nee(e,t){const n=e.$encode,i={};for(const r in n){const o=n[r];i[r]=ri(t.encodeExpression(o.$expr),o.$fields),i[r].output=o.$output}return i}function iee(e,t){return t}function ree(e,t){const n=e.$subflow;return function(i,r,o){const s=t.fork().parse(n),a=s.get(n.operators[0].id),u=s.signals.parent;return u&&u.set(o),a.detachSubflow=()=>t.detach(s),a}}function oee(){return te}function see(e){var t=this,n=e.filter!=null?t.eventExpression(e.filter):void 0,i=e.stream!=null?t.get(e.stream):void 0,r;e.source?i=t.events(e.source,e.type,n):e.merge&&(r=e.merge.map(o=>t.get(o)),i=r[0].merge.apply(r[0],r.slice(1))),e.between&&(r=e.between.map(o=>t.get(o)),i=i.between(r[0],r[1])),e.filter&&(i=i.filter(n)),e.throttle!=null&&(i=i.throttle(+e.throttle)),e.debounce!=null&&(i=i.debounce(+e.debounce)),i==null&&L("Invalid stream definition: "+JSON.stringify(e)),e.consume&&i.consume(!0),t.stream(e,i)}function aee(e){var t=this,n=me(n=e.source)?n.$ref:n,i=t.get(n),r=null,o=e.update,s=void 0;i||L("Source not defined: "+e.source),r=e.target&&e.target.$expr?t.eventExpression(e.target.$expr):t.get(e.target),o&&o.$expr&&(o.$params&&(s=t.parseParameters(o.$params)),o=t.handlerExpression(o.$expr)),t.update(e,i,r,o,s)}const uee={skip:!0};function lee(e){var t=this,n={};if(e.signals){var i=n.signals={};Object.keys(t.signals).forEach(o=>{const s=t.signals[o];e.signals(o,s)&&(i[o]=s.value)})}if(e.data){var r=n.data={};Object.keys(t.data).forEach(o=>{const s=t.data[o];e.data(o,s)&&(r[o]=s.input.value)})}return t.subcontext&&e.recurse!==!1&&(n.subcontext=t.subcontext.map(o=>o.getState(e))),n}function cee(e){var t=this,n=t.dataflow,i=e.data,r=e.signals;Object.keys(r||{}).forEach(o=>{n.update(t.signals[o],r[o],uee)}),Object.keys(i||{}).forEach(o=>{n.pulse(t.data[o].input,n.changeset().remove(Pi).insert(i[o]))}),(e.subcontext||[]).forEach((o,s)=>{const a=t.subcontext[s];a&&a.setState(o)})}function _R(e,t,n,i){return new FR(e,t,n,i)}function FR(e,t,n,i){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=i||VZ,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function X$(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}FR.prototype=X$.prototype={fork(){const e=new X$(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter(n=>n!==e);const t=Object.keys(e.nodes);for(const n of t)e.nodes[n]._targets=null;for(const n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){const n=this,i=n.dataflow,r=e.value;if(n.set(e.id,t),GZ(e.type)&&r&&(r.$ingest?i.ingest(t,r.$ingest,r.$format):r.$request?i.preload(t,r.$request,r.$format):i.pulse(t,i.changeset().insert(r))),e.root&&(n.root=t),e.parent){let o=n.get(e.parent.$ref);o?(i.connect(o,[t]),t.targets().add(o)):(n.unresolved=n.unresolved||[]).push(()=>{o=n.get(e.parent.$ref),i.connect(o,[t]),t.targets().add(o)})}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(const o in e.data){const s=n.data[o]||(n.data[o]={});e.data[o].forEach(a=>s[a]=t)}},resolve(){return(this.unresolved||[]).forEach(e=>e()),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[WE(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,i,r){this.dataflow.on(t,n,i,r,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:UZ,parseOperator:YZ,parseOperatorParameters:XZ,parseParameters:KZ,parseStream:see,parseUpdate:aee,getState:lee,setState:cee};function fee(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),kR(t,e.description()))}function kR(e,t){e&&(t==null?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}function dee(e){e.add(null,t=>(e._background=t.bg,e._resize=1,t.bg),{bg:e._signals.background})}const y1="default";function hee(e){const t=e._signals.cursor||(e._signals.cursor=e.add({user:y1,item:null}));e.on(e.events("view","pointermove"),t,(n,i)=>{const r=t.value,o=r?Ke(r)?r:r.user:y1,s=i.item&&i.item.cursor||null;return r&&o===r.user&&s==r.item?r:{user:o,item:s}}),e.add(null,function(n){let i=n.cursor,r=this.value;return Ke(i)||(r=i.item,i=i.user),Mb(e,i&&i!==y1?i:r||i),r},{cursor:t})}function Mb(e,t){const n=e.globalCursor()?typeof document<"u"&&document.body:e.container();if(n)return t==null?n.style.removeProperty("cursor"):n.style.cursor=t}function Dp(e,t){var n=e._runtime.data;return le(n,t)||L("Unrecognized data set: "+t),n[t]}function pee(e,t){return arguments.length<2?Dp(this,e).values.value:c0.call(this,e,Ta().remove(Pi).insert(t))}function c0(e,t){d3(t)||L("Second argument to changes must be a changeset.");const n=Dp(this,e);return n.modified=!0,this.pulse(n.input,t)}function gee(e,t){return c0.call(this,e,Ta().insert(t))}function mee(e,t){return c0.call(this,e,Ta().remove(t))}function DR(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function TR(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function f0(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}function yee(e){var t=f0(e),n=DR(e),i=TR(e);e._renderer.background(e.background()),e._renderer.resize(n,i,t),e._handler.origin(t),e._resizeListeners.forEach(r=>{try{r(n,i)}catch(o){e.error(o)}})}function bee(e,t,n){var i=e._renderer,r=i&&i.canvas(),o,s,a;return r&&(a=f0(e),s=t.changedTouches?t.changedTouches[0]:t,o=Jg(s,r),o[0]-=a[0],o[1]-=a[1]),t.dataflow=e,t.item=n,t.vega=xee(e,n,o),t}function xee(e,t,n){const i=t?t.mark.marktype==="group"?t:t.mark.group:null;function r(s){var a=i,u;if(s){for(u=t;u;u=u.mark.group)if(u.mark.name===s){a=u;break}}return a&&a.mark&&a.mark.interactive?a:{}}function o(s){if(!s)return n;Ke(s)&&(s=r(s));const a=n.slice();for(;s;)a[0]-=s.x||0,a[1]-=s.y||0,s=s.mark&&s.mark.group;return a}return{view:wn(e),item:wn(t||{}),group:r,xy:o,x:s=>o(s)[0],y:s=>o(s)[1]}}const K$="view",vee="timer",Eee="window",wee={trap:!1};function Aee(e){const t=ye({defaults:{}},e),n=(i,r)=>{r.forEach(o=>{Z(i[o])&&(i[o]=yr(i[o]))})};return n(t.defaults,["prevent","allow"]),n(t,["view","window","selector"]),t}function MR(e,t,n,i){e._eventListeners.push({type:n,sources:se(t),handler:i})}function See(e,t){var n=e._eventConfig.defaults,i=n.prevent,r=n.allow;return i===!1||r===!0?!1:i===!0||r===!1?!0:i?i[t]:r?!r[t]:e.preventDefault()}function Pd(e,t,n){const i=e._eventConfig&&e._eventConfig[t];return i===!1||me(i)&&!i[n]?(e.warn(`Blocked ${t} ${n} event listener.`),!1):!0}function Cee(e,t,n){var i=this,r=new Cg(n),o=function(l,c){i.runAsync(null,()=>{e===K$&&See(i,t)&&l.preventDefault(),r.receive(bee(i,l,c))})},s;if(e===vee)Pd(i,"timer",t)&&i.timer(o,t);else if(e===K$)Pd(i,"view",t)&&i.addEventListener(t,o,wee);else if(e===Eee?Pd(i,"window",t)&&typeof window<"u"&&(s=[window]):typeof document<"u"&&Pd(i,"selector",t)&&(s=Array.from(document.querySelectorAll(e))),!s)i.warn("Can not resolve event source: "+e);else{for(var a=0,u=s.length;a<u;++a)s[a].addEventListener(t,o);MR(i,s,t,o)}return r}function J$(e){return e.item}function Q$(e){return e.item.mark.source}function Z$(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function $ee(e,t){return e=[e||"hover"],t=[t||"update",e[0]],this.on(this.events("view","pointerover",J$),Q$,Z$(e)),this.on(this.events("view","pointerout",J$),Q$,Z$(t)),this}function _ee(){var e=this._tooltip,t=this._timers,n=this._handler.handlers(),i=this._eventListeners,r,o,s,a,u;for(r=t.length;--r>=0;)t[r].stop();for(r=i.length;--r>=0;)for(s=i[r],o=s.sources.length;--o>=0;)s.sources[o].removeEventListener(s.type,s.handler);for(e&&e.call(this,this._handler,null,null,null),r=n.length;--r>=0;)u=n[r].type,a=n[r].handler,this._handler.off(u,a);return this}function Qn(e,t,n){const i=document.createElement(e);for(const r in t)i.setAttribute(r,t[r]);return n!=null&&(i.textContent=n),i}const Fee="vega-bind",kee="vega-bind-name",Dee="vega-bind-radio";function Tee(e,t,n){if(!t)return;const i=n.param;let r=n.state;return r||(r=n.state={elements:null,active:!1,set:null,update:s=>{s!=e.signal(i.signal)&&e.runAsync(null,()=>{r.source=!0,e.signal(i.signal,s)})}},i.debounce&&(r.update=oD(i.debounce,r.update))),(i.input==null&&i.element?Mee:Ree)(r,t,i,e),r.active||(e.on(e._signals[i.signal],null,()=>{r.source?r.source=!1:r.set(e.signal(i.signal))}),r.active=!0),r}function Mee(e,t,n,i){const r=n.event||"input",o=()=>e.update(t.value);i.signal(n.signal,t.value),t.addEventListener(r,o),MR(i,t,r,o),e.set=s=>{t.value=s,t.dispatchEvent(Oee(r))}}function Oee(e){return typeof Event<"u"?new Event(e):{type:e}}function Ree(e,t,n,i){const r=i.signal(n.signal),o=Qn("div",{class:Fee}),s=n.input==="radio"?o:o.appendChild(Qn("label"));s.appendChild(Qn("span",{class:kee},n.name||n.signal)),t.appendChild(o);let a=Nee;switch(n.input){case"checkbox":a=Lee;break;case"select":a=Pee;break;case"radio":a=Iee;break;case"range":a=zee;break}a(e,s,n,r)}function Nee(e,t,n,i){const r=Qn("input");for(const o in n)o!=="signal"&&o!=="element"&&r.setAttribute(o==="input"?"type":o,n[o]);r.setAttribute("name",n.signal),r.value=i,t.appendChild(r),r.addEventListener("input",()=>e.update(r.value)),e.elements=[r],e.set=o=>r.value=o}function Lee(e,t,n,i){const r={type:"checkbox",name:n.signal};i&&(r.checked=!0);const o=Qn("input",r);t.appendChild(o),o.addEventListener("change",()=>e.update(o.checked)),e.elements=[o],e.set=s=>o.checked=!!s||null}function Pee(e,t,n,i){const r=Qn("select",{name:n.signal}),o=n.labels||[];n.options.forEach((s,a)=>{const u={value:s};Tp(s,i)&&(u.selected=!0),r.appendChild(Qn("option",u,(o[a]||s)+""))}),t.appendChild(r),r.addEventListener("change",()=>{e.update(n.options[r.selectedIndex])}),e.elements=[r],e.set=s=>{for(let a=0,u=n.options.length;a<u;++a)if(Tp(n.options[a],s)){r.selectedIndex=a;return}}}function Iee(e,t,n,i){const r=Qn("span",{class:Dee}),o=n.labels||[];t.appendChild(r),e.elements=n.options.map((s,a)=>{const u={type:"radio",name:n.signal,value:s};Tp(s,i)&&(u.checked=!0);const l=Qn("input",u);l.addEventListener("change",()=>e.update(s));const c=Qn("label",{},(o[a]||s)+"");return c.prepend(l),r.appendChild(c),l}),e.set=s=>{const a=e.elements,u=a.length;for(let l=0;l<u;++l)Tp(a[l].value,s)&&(a[l].checked=!0)}}function zee(e,t,n,i){i=i!==void 0?i:(+n.max+ +n.min)/2;const r=n.max!=null?n.max:Math.max(100,+i)||100,o=n.min||Math.min(0,r,+i)||0,s=n.step||ra(o,r,100),a=Qn("input",{type:"range",name:n.signal,min:o,max:r,step:s});a.value=i;const u=Qn("span",{},+i);t.appendChild(a),t.appendChild(u);const l=()=>{u.textContent=a.value,e.update(+a.value)};a.addEventListener("input",l),a.addEventListener("change",l),e.elements=[a],e.set=c=>{a.value=c,u.textContent=c}}function Tp(e,t){return e===t||e+""==t+""}function OR(e,t,n,i,r,o){return t=t||new i(e.loader()),t.initialize(n,DR(e),TR(e),f0(e),r,o).background(e.background())}function GE(e,t){return t?function(){try{t.apply(this,arguments)}catch(n){e.error(n)}}:null}function Bee(e,t,n,i){const r=new i(e.loader(),GE(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,f0(e),e);return t&&t.handlers().forEach(o=>{r.on(o.type,o.handler)}),r}function Uee(e,t){const n=this,i=n._renderType,r=n._eventConfig.bind,o=Qg(i);e=n._el=e?b1(n,e,!0):null,fee(n),o||n.error("Unrecognized renderer type: "+i);const s=o.handler||Lf,a=e?o.renderer:o.headless;return n._renderer=a?OR(n,n._renderer,e,a):null,n._handler=Bee(n,n._handler,e,s),n._redraw=!0,e&&r!=="none"&&(t=t?n._elBind=b1(n,t,!0):e.appendChild(Qn("form",{class:"vega-bindings"})),n._bind.forEach(u=>{u.param.element&&r!=="container"&&(u.element=b1(n,u.param.element,!!u.param.input))}),n._bind.forEach(u=>{Tee(n,u.element||t,u)})),n}function b1(e,t,n){if(typeof t=="string")if(typeof document<"u"){if(t=document.querySelector(t),!t)return e.error("Signal bind element not found: "+t),null}else return e.error("DOM document instance not found."),null;if(t&&n)try{t.textContent=""}catch(i){t=null,e.error(i)}return t}const ql=e=>+e||0,jee=e=>({top:e,bottom:e,left:e,right:e});function e_(e){return me(e)?{top:ql(e.top),bottom:ql(e.bottom),left:ql(e.left),right:ql(e.right)}:jee(ql(e))}async function HE(e,t,n,i){const r=Qg(t),o=r&&r.headless;return o||L("Unrecognized renderer type: "+t),await e.runAsync(),OR(e,null,null,o,n,i).renderAsync(e._scenegraph.root)}async function qee(e,t){e!==zo.Canvas&&e!==zo.SVG&&e!==zo.PNG&&L("Unrecognized image type: "+e);const n=await HE(this,e,t);return e===zo.SVG?Wee(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")}function Wee(e,t){const n=new Blob([e],{type:t});return window.URL.createObjectURL(n)}async function Gee(e,t){return(await HE(this,zo.Canvas,e,t)).canvas()}async function Hee(e){return(await HE(this,zo.SVG,e)).svg()}function Vee(e,t,n){return _R(e,Du,rf,n).parse(t)}function Yee(e){var t=this._runtime.scales;return le(t,e)||L("Unrecognized scale or projection: "+e),t[e].value}var RR="width",NR="height",VE="padding",t_={skip:!0};function LR(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===VE?i.left+i.right:0)}function PR(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===VE?i.top+i.bottom:0)}function Xee(e){var t=e._signals,n=t[RR],i=t[NR],r=t[VE];function o(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,a=>{e._width=a.size,e._viewWidth=LR(e,a.size),o()},{size:n}),e._resizeHeight=e.add(null,a=>{e._height=a.size,e._viewHeight=PR(e,a.size),o()},{size:i});const s=e.add(null,o,{pad:r});e._resizeWidth.rank=n.rank+1,e._resizeHeight.rank=i.rank+1,s.rank=r.rank+1}function Kee(e,t,n,i,r,o){this.runAfter(s=>{let a=0;s._autosize=0,s.width()!==n&&(a=1,s.signal(RR,n,t_),s._resizeWidth.skip(!0)),s.height()!==i&&(a=1,s.signal(NR,i,t_),s._resizeHeight.skip(!0)),s._viewWidth!==e&&(s._resize=1,s._viewWidth=e),s._viewHeight!==t&&(s._resize=1,s._viewHeight=t),(s._origin[0]!==r[0]||s._origin[1]!==r[1])&&(s._resize=1,s._origin=r),a&&s.run("enter"),o&&s.runAfter(u=>u.resize())},!1,1)}function Jee(e){return this._runtime.getState(e||{data:Qee,signals:Zee,recurse:!0})}function Qee(e,t){return t.modified&&Z(t.input.value)&&!e.startsWith("_:vega:_")}function Zee(e,t){return!(e==="parent"||t instanceof Du.proxy)}function ete(e){return this.runAsync(null,t=>{t._trigger=!1,t._runtime.setState(e)},t=>{t._trigger=!0}),this}function tte(e,t){function n(i){e({timestamp:Date.now(),elapsed:i})}this._timers.push(CY(n,t))}function nte(e,t,n,i){const r=e.element();r&&r.setAttribute("title",ite(i))}function ite(e){return e==null?"":Z(e)?IR(e):me(e)&&!Ys(e)?rte(e):e+""}function rte(e){return Object.keys(e).map(t=>{const n=e[t];return t+": "+(Z(n)?IR(n):zR(n))}).join(`
13
13
  `)}function IR(e){return"["+e.map(zR).join(", ")+"]"}function zR(e){return Z(e)?"[…]":me(e)&&!Ys(e)?"{…}":e}function ote(){if(this.renderer()==="canvas"&&this._renderer._canvas){let e=null;const t=()=>{e?.();const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",t),e=()=>{n.removeEventListener("change",t)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};t()}}function BR(e,t){const n=this;if(t=t||{},mu.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),t.logLevel!=null&&n.logLevel(t.logLevel),t.locale||e.locale){const o=ye({},e.locale,t.locale);n.locale(n3(o.number,o.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||zo.Canvas,n._scenegraph=new PM;const i=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||nte,n._redraw=!0,n._handler=new Lf().scene(i),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=Aee(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const r=Vee(n,e,t.expr);n._runtime=r,n._signals=r.signals,n._bind=(e.bindings||[]).map(o=>({state:null,param:ye({},o)})),r.root&&r.root.set(i),i.source=r.data.root.input,n.pulse(r.data.root.input,n.changeset().insert(i.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=LR(n,n._width),n._viewHeight=PR(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,Xee(n),dee(n),hee(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind),t.watchPixelRatio&&n._watchPixelRatio()}function Id(e,t){return le(e._signals,t)?e._signals[t]:L("Unrecognized signal name: "+re(t))}function UR(e,t){const n=(e._targets||[]).filter(i=>i._update&&i._update.handler===t);return n.length?n[0]:null}function n_(e,t,n,i){let r=UR(n,i);return r||(r=GE(e,()=>i(t,n.value)),r.handler=i,e.on(n,null,r)),e}function i_(e,t,n){const i=UR(t,n);return i&&t._targets.remove(i),e}G(BR,mu,{async evaluate(e,t,n){if(await mu.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,yee(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(i){this.error(i)}return n&&Zd(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=e!=null?e+"":null;return t!==this._desc&&kR(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const i=Id(this,e);return arguments.length===1?i.value:this.update(i,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",e_(e)):e_(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(Qg(e)||L("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(mu.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(Id(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:Kee,addEventListener(e,t,n){let i=t;return n&&n.trap===!1||(i=GE(this,t),i.raw=t),this._handler.on(e,i),this},removeEventListener(e,t){for(var n=this._handler.handlers(e),i=n.length,r,o;--i>=0;)if(o=n[i].type,r=n[i].handler,e===o&&(t===r||t===r.raw)){this._handler.off(o,r);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.includes(e)||t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return n_(this,e,Id(this,e),t)},removeSignalListener(e,t){return i_(this,Id(this,e),t)},addDataListener(e,t){return n_(this,e,Dp(this,e).values,t)},removeDataListener(e,t){return i_(this,Dp(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=Mb(this,null);this._globalCursor=!!e,t&&Mb(this,t)}return this}else return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:tte,events:Cee,finalize:_ee,hover:$ee,data:pee,change:c0,insert:gee,remove:mee,scale:Yee,initialize:Uee,toImageURL:qee,toCanvas:Gee,toSVG:Hee,getState:Jee,setState:ete,_watchPixelRatio:ote});const ste="view",Mp="[",Op="]",jR="{",qR="}",ate=":",WR=",",ute="@",lte=">",cte=/[[\]{}]/,fte={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let GR,HR;function ds(e,t,n){return GR=t||ste,HR=n||fte,VR(e.trim()).map(Ob)}function dte(e){return HR[e]}function Rc(e,t,n,i,r){const o=e.length;let s=0,a;for(;t<o;++t){if(a=e[t],!s&&a===n)return t;r&&r.indexOf(a)>=0?--s:i&&i.indexOf(a)>=0&&++s}return t}function VR(e){const t=[],n=e.length;let i=0,r=0;for(;r<n;)r=Rc(e,r,WR,Mp+jR,Op+qR),t.push(e.substring(i,r).trim()),i=++r;if(t.length===0)throw"Empty event selector: "+e;return t}function Ob(e){return e[0]==="["?hte(e):pte(e)}function hte(e){const t=e.length;let n=1,i;if(n=Rc(e,n,Op,Mp,Op),n===t)throw"Empty between selector: "+e;if(i=VR(e.substring(1,n)),i.length!==2)throw"Between selector must have two elements: "+e;if(e=e.slice(n+1).trim(),e[0]!==lte)throw"Expected '>' after between selector: "+e;i=i.map(Ob);const r=Ob(e.slice(1).trim());return r.between?{between:i,stream:r}:(r.between=i,r)}function pte(e){const t={source:GR},n=[];let i=[0,0],r=0,o=0,s=e.length,a=0,u,l;if(e[s-1]===qR){if(a=e.lastIndexOf(jR),a>=0){try{i=gte(e.substring(a+1,s-1))}catch{throw"Invalid throttle specification: "+e}e=e.slice(0,a).trim(),s=e.length}else throw"Unmatched right brace: "+e;a=0}if(!s)throw e;if(e[0]===ute&&(r=++a),u=Rc(e,a,ate),u<s&&(n.push(e.substring(o,u).trim()),o=a=++u),a=Rc(e,a,Mp),a===s)n.push(e.substring(o,s).trim());else if(n.push(e.substring(o,a).trim()),l=[],o=++a,o===s)throw"Unmatched left bracket: "+e;for(;a<s;){if(a=Rc(e,a,Op),a===s)throw"Unmatched left bracket: "+e;if(l.push(e.substring(o,a).trim()),a<s-1&&e[++a]!==Mp)throw"Expected left bracket: "+e;o=++a}if(!(s=n.length)||cte.test(n[s-1]))throw"Invalid event selector: "+e;return s>1?(t.type=n[1],r?t.markname=n[0].slice(1):dte(n[0])?t.marktype=n[0]:t.source=n[0]):t.type=n[0],t.type.slice(-1)==="!"&&(t.consume=!0,t.type=t.type.slice(0,-1)),l!=null&&(t.filter=l),i[0]&&(t.throttle=i[0]),i[1]&&(t.debounce=i[1]),t}function gte(e){const t=e.split(WR);if(!e.length||t.length>2)throw e;return t.map(n=>{const i=+n;if(i!==i)throw e;return i})}function mte(e){return me(e)?e:{type:e||"pad"}}const Wl=e=>+e||0,yte=e=>({top:e,bottom:e,left:e,right:e});function bte(e){return me(e)?e.signal?e:{top:Wl(e.top),bottom:Wl(e.bottom),left:Wl(e.left),right:Wl(e.right)}:yte(Wl(e))}const $t=e=>me(e)&&!Z(e)?ye({},e):{value:e};function r_(e,t,n,i){return n!=null?(me(n)&&!Z(n)||Z(n)&&n.length&&me(n[0])?e.update[t]=n:e[i||"enter"][t]={value:n},1):0}function Wt(e,t,n){for(const i in t)r_(e,i,t[i]);for(const i in n)r_(e,i,n[i],"update")}function pl(e,t,n){for(const i in t)n&&le(n,i)||(e[i]=ye(e[i]||{},t[i]));return e}function au(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const YE="mark",XE="frame",KE="scope",xte="axis",vte="axis-domain",Ete="axis-grid",wte="axis-label",Ate="axis-tick",Ste="axis-title",Cte="legend",$te="legend-band",_te="legend-entry",Fte="legend-gradient",YR="legend-label",kte="legend-symbol",Dte="legend-title",Tte="title",Mte="title-text",Ote="title-subtitle";function Rte(e,t,n,i,r){const o={},s={};let a,u,l,c;u="lineBreak",t==="text"&&r[u]!=null&&!au(u,e)&&x1(o,u,r[u]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),c=n===XE?r.group:n===YE?ye({},r.mark,r[t]):null;for(u in c)l=au(u,e)||(u==="fill"||u==="stroke")&&(au("fill",e)||au("stroke",e)),l||x1(o,u,c[u]);se(i).forEach(f=>{const d=r.style&&r.style[f];for(const h in d)au(h,e)||x1(o,h,d[h])}),e=ye({},e);for(u in o)c=o[u],c.signal?(a=a||{})[u]=c:s[u]=c;return e.enter=ye(s,e.enter),a&&(e.update=ye(a,e.update)),e}function x1(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const XR=e=>Ke(e)?re(e):e.signal?`(${e.signal})`:KR(e);function d0(e){if(e.gradient!=null)return Lte(e);let t=e.signal?`(${e.signal})`:e.color?Nte(e.color):e.field!=null?KR(e.field):e.value!==void 0?re(e.value):void 0;return e.scale!=null&&(t=Pte(e,t)),t===void 0&&(t=null),e.exponent!=null&&(t=`pow(${t},${mh(e.exponent)})`),e.mult!=null&&(t+=`*${mh(e.mult)}`),e.offset!=null&&(t+=`+${mh(e.offset)}`),e.round&&(t=`round(${t})`),t}const zd=(e,t,n,i)=>`(${e}(${[t,n,i].map(d0).join(",")})+'')`;function Nte(e){return e.c?zd("hcl",e.h,e.c,e.l):e.h||e.s?zd("hsl",e.h,e.s,e.l):e.l||e.a?zd("lab",e.l,e.a,e.b):e.r||e.g||e.b?zd("rgb",e.r,e.g,e.b):null}function Lte(e){const t=[e.start,e.stop,e.count].map(n=>n==null?null:re(n));for(;t.length&&$e(t)==null;)t.pop();return t.unshift(XR(e.gradient)),`gradient(${t.join(",")})`}function mh(e){return me(e)?"("+d0(e)+")":e}function KR(e){return JR(me(e)?e:{datum:e})}function JR(e){let t,n,i;if(e.signal)t="datum",i=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(i=e.parent,t+=".datum"):i=e.group}else e.datum?(t="datum",i=e.datum):L("Invalid field reference: "+re(e));return e.signal||(i=Ke(i)?Ix(i).map(re).join("]["):JR(i)),t+"["+i+"]"}function Pte(e,t){const n=XR(e.scale);return e.range!=null?t=`lerp(_range(${n}), ${+e.range})`:(t!==void 0&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(+e.band==1?"":"*"+mh(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),t==null&&(t="0")),t}function Ite(e){let t="";return e.forEach(n=>{const i=d0(n);t+=n.test?`(${n.test})?${i}:`:i}),$e(t)===":"&&(t+="null"),t}function QR(e,t,n,i,r,o){const s={};o=o||{},o.encoders={$encode:s},e=Rte(e,t,n,i,r.config);for(const a in e)s[a]=zte(e[a],t,o,r);return o}function zte(e,t,n,i){const r={},o={};for(const s in e)e[s]!=null&&(r[s]=Ute(Bte(e[s]),i,n,o));return{$expr:{marktype:t,channels:r},$fields:Object.keys(o),$output:Object.keys(e)}}function Bte(e){return Z(e)?Ite(e):d0(e)}function Ute(e,t,n,i){const r=wr(e,t);return r.$fields.forEach(o=>i[o]=1),ye(n,r.$params),r.$expr}const jte="outer",qte=["value","update","init","react","bind"];function o_(e,t){L(e+' for "outer" push: '+re(t))}function ZR(e,t){const n=e.name;if(e.push===jte)t.signals[n]||o_("No prior signal definition",n),qte.forEach(i=>{e[i]!==void 0&&o_("Invalid property ",i)});else{const i=t.addSignal(n,e.value);e.react===!1&&(i.react=!1),e.bind&&t.addBinding(n,e.bind)}}function Rb(e,t,n,i){this.id=-1,this.type=e,this.value=t,this.params=n,i&&(this.parent=i)}function h0(e,t,n,i){return new Rb(e,t,n,i)}function Rp(e,t){return h0("operator",e,t)}function ee(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function of(e,t){return t?{$field:e,$name:t}:{$field:e}}const Nb=of("key");function s_(e,t){return{$compare:e,$order:t}}function Wte(e,t){const n={$key:e};return t&&(n.$flat=!0),n}const Gte="ascending",Hte="descending";function Vte(e){return me(e)?(e.order===Hte?"-":"+")+p0(e.op,e.field):""}function p0(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const JE="scope",Lb="view";function vt(e){return e&&e.signal}function Yte(e){return e&&e.expr}function yh(e){if(vt(e))return!0;if(me(e)){for(const t in e)if(yh(e[t]))return!0}return!1}function _i(e,t){return e??t}function Qs(e){return e&&e.signal||e}const a_="timer";function sf(e,t){return(e.merge?Kte:e.stream?Jte:e.type?Qte:L("Invalid stream specification: "+re(e)))(e,t)}function Xte(e){return e===JE?Lb:e||Lb}function Kte(e,t){const n=e.merge.map(r=>sf(r,t)),i=QE({merge:n},e,t);return t.addStream(i).id}function Jte(e,t){const n=sf(e.stream,t),i=QE({stream:n},e,t);return t.addStream(i).id}function Qte(e,t){let n;e.type===a_?(n=t.event(a_,e.throttle),e={between:e.between,filter:e.filter}):n=t.event(Xte(e.source),e.type);const i=QE({stream:n},e,t);return Object.keys(i).length===1?n:t.addStream(i).id}function QE(e,t,n){let i=t.between;return i&&(i.length!==2&&L('Stream "between" parameter must have 2 entries: '+re(t)),e.between=[sf(i[0],n),sf(i[1],n)]),i=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&i.push(Zte(t.marktype,t.markname,t.markrole)),t.source===JE&&i.push("inScope(event.item)"),i.length&&(e.filter=wr("("+i.join(")&&(")+")",n).$expr),(i=t.throttle)!=null&&(e.throttle=+i),(i=t.debounce)!=null&&(e.debounce=+i),t.consume&&(e.consume=!0),e}function Zte(e,t,n){const i="event.item";return i+(e&&e!=="*"?"&&"+i+".mark.marktype==='"+e+"'":"")+(n?"&&"+i+".mark.role==='"+n+"'":"")+(t?"&&"+i+".mark.name==='"+t+"'":"")}const ene={code:"_.$value",ast:{type:"Identifier",value:"value"}};function tne(e,t,n){const i=e.encode,r={target:n};let o=e.events,s=e.update,a=[];o||L("Signal update missing events specification."),Ke(o)&&(o=ds(o,t.isSubscope()?JE:Lb)),o=se(o).filter(u=>u.signal||u.scale?(a.push(u),0):1),a.length>1&&(a=[ine(a)]),o.length&&a.push(o.length>1?{merge:o}:o[0]),i!=null&&(s&&L("Signal encode and update are mutually exclusive."),s="encode(item(),"+re(i)+")"),r.update=Ke(s)?wr(s,t):s.expr!=null?wr(s.expr,t):s.value!=null?s.value:s.signal!=null?{$expr:ene,$params:{$value:t.signalRef(s.signal)}}:L("Invalid signal update specification."),e.force&&(r.options={force:!0}),a.forEach(u=>t.addUpdate(ye(nne(u,t),r)))}function nne(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):sf(e,t)}}function ine(e){return{signal:"["+e.map(t=>t.scale?'scale("'+t.scale+'")':t.signal)+"]"}}function rne(e,t){const n=t.getSignal(e.name);let i=e.update;e.init&&(i?L("Signals can not include both init and update expressions."):(i=e.init,n.initonly=!0)),i&&(i=wr(i,t),n.update=i.$expr,n.params=i.$params),e.on&&e.on.forEach(r=>tne(r,t,n.id))}const qe=e=>(t,n,i)=>h0(e,n,t||void 0,i),eN=qe("aggregate"),one=qe("axisticks"),tN=qe("bound"),Gi=qe("collect"),u_=qe("compare"),sne=qe("datajoin"),nN=qe("encode"),ane=qe("expression"),une=qe("facet"),lne=qe("field"),cne=qe("key"),fne=qe("legendentries"),dne=qe("load"),hne=qe("mark"),pne=qe("multiextent"),gne=qe("multivalues"),mne=qe("overlap"),yne=qe("params"),iN=qe("prefacet"),bne=qe("projection"),xne=qe("proxy"),vne=qe("relay"),rN=qe("render"),Ene=qe("scale"),Ra=qe("sieve"),wne=qe("sortitems"),oN=qe("viewlayout"),Ane=qe("values");let Sne=0;const sN={min:"min",max:"max",count:"sum"};function Cne(e,t){const n=e.type||"linear";XT(n)||L("Unrecognized scale type: "+re(n)),t.addScale(e.name,{type:n,domain:void 0})}function $ne(e,t){const n=t.getScale(e.name).params;let i;n.domain=aN(e.domain,e,t),e.range!=null&&(n.range=lN(e,t,n)),e.interpolate!=null&&Lne(e.interpolate,n),e.nice!=null&&(n.nice=Nne(e.nice,t)),e.bins!=null&&(n.bins=Rne(e.bins,t));for(i in e)le(n,i)||i==="name"||(n[i]=fi(e[i],t))}function fi(e,t){return me(e)?e.signal?t.signalRef(e.signal):L("Unsupported object: "+re(e)):e}function bh(e,t){return e.signal?t.signalRef(e.signal):e.map(n=>fi(n,t))}function g0(e){L("Can not find data set: "+re(e))}function aN(e,t,n){if(!e){(t.domainMin!=null||t.domainMax!=null)&&L("No scale domain defined for domainMin/domainMax to override.");return}return e.signal?n.signalRef(e.signal):(Z(e)?_ne:e.fields?kne:Fne)(e,t,n)}function _ne(e,t,n){return e.map(i=>fi(i,n))}function Fne(e,t,n){const i=n.getData(e.data);return i||g0(e.data),Ru(t.type)?i.valuesRef(n,e.field,uN(e.sort,!1)):QT(t.type)?i.domainRef(n,e.field):i.extentRef(n,e.field)}function kne(e,t,n){const i=e.data,r=e.fields.reduce((o,s)=>(s=Ke(s)?{data:i,field:s}:Z(s)||s.signal?Dne(s,n):s,o.push(s),o),[]);return(Ru(t.type)?Tne:QT(t.type)?Mne:One)(e,n,r)}function Dne(e,t){const n="_:vega:_"+Sne++,i=Gi({});if(Z(e))i.value={$ingest:e};else if(e.signal){const r="setdata("+re(n)+","+e.signal+")";i.params.input=t.signalRef(r)}return t.addDataPipeline(n,[i,Ra({})]),{data:n,field:"data"}}function Tne(e,t,n){const i=uN(e.sort,!0);let r,o;const s=n.map(l=>{const c=t.getData(l.data);return c||g0(l.data),c.countsRef(t,l.field,i)}),a={groupby:Nb,pulse:s};i&&(r=i.op||"count",o=i.field?p0(r,i.field):"count",a.ops=[sN[r]],a.fields=[t.fieldRef(o)],a.as=[o]),r=t.add(eN(a));const u=t.add(Gi({pulse:ee(r)}));return o=t.add(Ane({field:Nb,sort:t.sortRef(i),pulse:ee(u)})),ee(o)}function uN(e,t){return e&&(!e.field&&!e.op?me(e)?e.field="key":e={field:"key"}:!e.field&&e.op!=="count"?L("No field provided for sort aggregate op: "+e.op):t&&e.field&&e.op&&!sN[e.op]&&L("Multiple domain scales can not be sorted using "+e.op)),e}function Mne(e,t,n){const i=n.map(r=>{const o=t.getData(r.data);return o||g0(r.data),o.domainRef(t,r.field)});return ee(t.add(gne({values:i})))}function One(e,t,n){const i=n.map(r=>{const o=t.getData(r.data);return o||g0(r.data),o.extentRef(t,r.field)});return ee(t.add(pne({extents:i})))}function Rne(e,t){return e.signal||Z(e)?bh(e,t):t.objectProperty(e)}function Nne(e,t){return e.signal?t.signalRef(e.signal):me(e)?{interval:fi(e.interval),step:fi(e.step)}:fi(e)}function Lne(e,t){t.interpolate=fi(e.type||e),e.gamma!=null&&(t.interpolateGamma=fi(e.gamma))}function lN(e,t,n){const i=t.config.range;let r=e.range;if(r.signal)return t.signalRef(r.signal);if(Ke(r)){if(i&&le(i,r))return e=ye({},e,{range:i[r]}),lN(e,t,n);r==="width"?r=[0,{signal:"width"}]:r==="height"?r=Ru(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:L("Unrecognized scale range value: "+re(r))}else if(r.scheme){n.scheme=Z(r.scheme)?bh(r.scheme,t):fi(r.scheme,t),r.extent&&(n.schemeExtent=bh(r.extent,t)),r.count&&(n.schemeCount=fi(r.count,t));return}else if(r.step){n.rangeStep=fi(r.step,t);return}else{if(Ru(e.type)&&!Z(r))return aN(r,e,t);Z(r)||L("Unsupported range type: "+re(r))}return r.map(o=>(Z(o)?bh:fi)(o,t))}function Pne(e,t){const n=t.config.projection||{},i={};for(const r in e)r!=="name"&&(i[r]=Pb(e[r],r,t));for(const r in n)i[r]==null&&(i[r]=Pb(n[r],r,t));t.addProjection(e.name,i)}function Pb(e,t,n){return Z(e)?e.map(i=>Pb(i,t,n)):me(e)?e.signal?n.signalRef(e.signal):t==="fit"?e:L("Unsupported parameter object: "+re(e)):e}const Hi="top",gl="left",ml="right",ns="bottom",cN="center",Ine="vertical",zne="start",Bne="middle",Une="end",Ib="index",ZE="label",jne="offset",ju="perc",qne="perc2",hi="value",Gf="guide-label",ew="guide-title",Wne="group-title",Gne="group-subtitle",l_="symbol",xh="gradient",zb="discrete",Bb="size",Hne="shape",Vne="fill",Yne="stroke",Xne="strokeWidth",Kne="strokeDash",Jne="opacity",tw=[Bb,Hne,Vne,Yne,Xne,Kne,Jne],Hf={name:1,style:1,interactive:1},Ce={value:0},pi={value:1},m0="group",fN="rect",nw="rule",Qne="symbol",Na="text";function af(e){return e.type=m0,e.interactive=e.interactive||!1,e}function qn(e,t){const n=(i,r)=>_i(e[i],_i(t[i],r));return n.isVertical=i=>Ine===_i(e.direction,t.direction||(i?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>_i(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>_i(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>_i(e.columns,_i(t.columns,+n.isVertical(!0))),n}function dN(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function Zne(e,t,n){const i=t.config.style[n];return i&&i[e]}function y0(e,t,n){return`item.anchor === '${zne}' ? ${e} : item.anchor === '${Une}' ? ${t} : ${n}`}const iw=y0(re(gl),re(ml),re(cN));function eie(e){const t=e("tickBand");let n=e("tickOffset"),i,r;return t?t.signal?(i={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},r={signal:`(${t.signal}) === 'extent'`},me(n)||(n={signal:`(${t.signal}) === 'extent' ? 0 : ${n}`})):t==="extent"?(i=1,r=!0,n=0):(i=.5,r=!1):(i=e("bandPosition"),r=e("tickExtra")),{extra:r,band:i,offset:n}}function hN(e,t){return t?e?me(e)?Object.assign({},e,{offset:hN(e.offset,t)}):{value:e,offset:t}:t:e}function ii(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=pl(e.encode,t,Hf)):e.interactive=!1,e}function tie(e,t,n,i){const r=qn(e,n),o=r.isVertical(),s=r.gradientThickness(),a=r.gradientLength();let u,l,c,f,d;o?(l=[0,1],c=[0,0],f=s,d=a):(l=[0,0],c=[1,0],f=a,d=s);const h={enter:u={opacity:Ce,x:Ce,y:Ce,width:$t(f),height:$t(d)},update:ye({},u,{opacity:pi,fill:{gradient:t,start:l,stop:c}}),exit:{opacity:Ce}};return Wt(h,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),ii({type:fN,role:Fte,encode:h},i)}function nie(e,t,n,i,r){const o=qn(e,n),s=o.isVertical(),a=o.gradientThickness(),u=o.gradientLength();let l,c,f,d,h="";s?(l="y",f="y2",c="x",d="width",h="1-"):(l="x",f="x2",c="y",d="height");const p={opacity:Ce,fill:{scale:t,field:hi}};p[l]={signal:h+"datum."+ju,mult:u},p[c]=Ce,p[f]={signal:h+"datum."+qne,mult:u},p[d]=$t(a);const g={enter:p,update:ye({},p,{opacity:pi}),exit:{opacity:Ce}};return Wt(g,{stroke:o("gradientStrokeColor"),strokeWidth:o("gradientStrokeWidth")},{opacity:o("gradientOpacity")}),ii({type:fN,role:$te,key:hi,from:r,encode:g},i)}const iie=`datum.${ju}<=0?"${gl}":datum.${ju}>=1?"${ml}":"${cN}"`,rie=`datum.${ju}<=0?"${ns}":datum.${ju}>=1?"${Hi}":"${Bne}"`;function c_(e,t,n,i){const r=qn(e,t),o=r.isVertical(),s=$t(r.gradientThickness()),a=r.gradientLength();let u=r("labelOverlap"),l,c,f,d,h="";const p={enter:l={opacity:Ce},update:c={opacity:pi,text:{field:ZE}},exit:{opacity:Ce}};return Wt(p,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:_i(e.labelLimit,t.gradientLabelLimit)}),o?(l.align={value:"left"},l.baseline=c.baseline={signal:rie},f="y",d="x",h="1-"):(l.align=c.align={signal:iie},l.baseline={value:"top"},f="x",d="y"),l[f]=c[f]={signal:h+"datum."+ju,mult:a},l[d]=c[d]=s,s.offset=_i(e.labelOffset,t.gradientLabelOffset)||0,u=u?{separation:r("labelSeparation"),method:u,order:"datum."+Ib}:void 0,ii({type:Na,role:YR,style:Gf,key:hi,from:i,encode:p,overlap:u},n)}function oie(e,t,n,i,r){const o=qn(e,t),s=n.entries,a=!!(s&&s.interactive),u=s?s.name:void 0,l=o("clipHeight"),c=o("symbolOffset"),f={data:"value"},d=`(${r}) ? datum.${jne} : datum.${Bb}`,h=l?$t(l):{field:Bb},p=`datum.${Ib}`,g=`max(1, ${r})`;let m,y,b,x,v;h.mult=.5,m={enter:y={opacity:Ce,x:{signal:d,mult:.5,offset:c},y:h},update:b={opacity:pi,x:y.x,y:y.y},exit:{opacity:Ce}};let w=null,A=null;e.fill||(w=t.symbolBaseFillColor,A=t.symbolBaseStrokeColor),Wt(m,{fill:o("symbolFillColor",w),shape:o("symbolType"),size:o("symbolSize"),stroke:o("symbolStrokeColor",A),strokeDash:o("symbolDash"),strokeDashOffset:o("symbolDashOffset"),strokeWidth:o("symbolStrokeWidth")},{opacity:o("symbolOpacity")}),tw.forEach(_=>{e[_]&&(b[_]=y[_]={scale:e[_],field:hi})});const E=ii({type:Qne,role:kte,key:hi,from:f,clip:l?!0:void 0,encode:m},n.symbols),S=$t(c);S.offset=o("labelOffset"),m={enter:y={opacity:Ce,x:{signal:d,offset:S},y:h},update:b={opacity:pi,text:{field:ZE},x:y.x,y:y.y},exit:{opacity:Ce}},Wt(m,{align:o("labelAlign"),baseline:o("labelBaseline"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontStyle:o("labelFontStyle"),fontWeight:o("labelFontWeight"),limit:o("labelLimit")});const C=ii({type:Na,role:YR,style:Gf,key:hi,from:f,encode:m},n.labels);return m={enter:{noBound:{value:!l},width:Ce,height:l?$t(l):Ce,opacity:Ce},exit:{opacity:Ce},update:b={opacity:pi,row:{signal:null},column:{signal:null}}},o.isVertical(!0)?(x=`ceil(item.mark.items.length / ${g})`,b.row.signal=`${p}%${x}`,b.column.signal=`floor(${p} / ${x})`,v={field:["row",p]}):(b.row.signal=`floor(${p} / ${g})`,b.column.signal=`${p} % ${g}`,v={field:p}),b.column.signal=`(${r})?${b.column.signal}:${p}`,i={facet:{data:i,name:"value",groupby:Ib}},af({role:KE,from:i,encode:pl(m,s,Hf),marks:[E,C],name:u,interactive:a,sort:v})}function sie(e,t){const n=qn(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const rw='item.orient === "left"',ow='item.orient === "right"',b0=`(${rw} || ${ow})`,aie=`datum.vgrad && ${b0}`,uie=y0('"top"','"bottom"','"middle"'),lie=y0('"right"','"left"','"center"'),cie=`datum.vgrad && ${ow} ? (${lie}) : (${b0} && !(datum.vgrad && ${rw})) ? "left" : ${iw}`,fie=`item._anchor || (${b0} ? "middle" : "start")`,die=`${aie} ? (${rw} ? -90 : 90) : 0`,hie=`${b0} ? (datum.vgrad ? (${ow} ? "bottom" : "top") : ${uie}) : "top"`;function pie(e,t,n,i){const r=qn(e,t),o={enter:{opacity:Ce},update:{opacity:pi,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Ce}};return Wt(o,{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:fie},angle:{signal:die},align:{signal:cie},baseline:{signal:hie},text:e.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")}),ii({type:Na,role:Dte,style:ew,from:i,encode:o},n)}function gie(e,t){let n;return me(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+f_(e.path)+")":e.sphere&&(n="geoShape("+f_(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function f_(e){return me(e)&&e.signal?e.signal:re(e)}function pN(e){const t=e.role||"";return t.startsWith("axis")||t.startsWith("legend")||t.startsWith("title")?t:e.type===m0?KE:t||YE}function mie(e){return{marktype:e.type,name:e.name||void 0,role:e.role||pN(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function yie(e,t){return e&&e.signal?t.signalRef(e.signal):e!==!1}function sw(e,t){const n=g3(e.type);n||L("Unrecognized transform type: "+re(e.type));const i=h0(n.type.toLowerCase(),null,gN(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(i)),i.metadata=n.metadata||{},i}function gN(e,t,n){const i={},r=e.params.length;for(let o=0;o<r;++o){const s=e.params[o];i[s.name]=bie(s,t,n)}return i}function bie(e,t,n){const i=e.type,r=t[e.name];if(i==="index")return xie(e,t,n);if(r===void 0){e.required&&L("Missing required "+re(t.type)+" parameter: "+re(e.name));return}else{if(i==="param")return vie(e,t,n);if(i==="projection")return n.projectionRef(t[e.name])}return e.array&&!vt(r)?r.map(o=>d_(e,o,n)):d_(e,r,n)}function d_(e,t,n){const i=e.type;if(vt(t))return p_(i)?L("Expression references can not be signals."):v1(i)?n.fieldRef(t):g_(i)?n.compareRef(t):n.signalRef(t.signal);{const r=e.expr||v1(i);return r&&Eie(t)?n.exprRef(t.expr,t.as):r&&wie(t)?of(t.field,t.as):p_(i)?wr(t,n):Aie(i)?ee(n.getData(t).values):v1(i)?of(t):g_(i)?n.compareRef(t):t}}function xie(e,t,n){return Ke(t.from)||L('Lookup "from" parameter must be a string literal.'),n.getData(t.from).lookupRef(n,t.key)}function vie(e,t,n){const i=t[e.name];return e.array?(Z(i)||L("Expected an array of sub-parameters. Instead: "+re(i)),i.map(r=>h_(e,r,n))):h_(e,i,n)}function h_(e,t,n){const i=e.params.length;let r;for(let s=0;s<i;++s){r=e.params[s];for(const a in r.key)if(r.key[a]!==t[a]){r=null;break}if(r)break}r||L("Unsupported parameter: "+re(t));const o=ye(gN(r,t,n),r.key);return ee(n.add(yne(o)))}const Eie=e=>e&&e.expr,wie=e=>e&&e.field,Aie=e=>e==="data",p_=e=>e==="expr",v1=e=>e==="field",g_=e=>e==="compare";function Sie(e,t,n){let i,r,o,s,a;return e?(i=e.facet)&&(t||L("Only group marks can be faceted."),i.field!=null?s=a=vh(i,n):(e.data?a=ee(n.getData(e.data).aggregate):(o=sw(ye({type:"aggregate",groupby:se(i.groupby)},i.aggregate),n),o.params.key=n.keyRef(i.groupby),o.params.pulse=vh(i,n),s=a=ee(n.add(o))),r=n.keyRef(i.groupby,!0))):s=ee(n.add(Gi(null,[{}]))),s||(s=vh(e,n)),{key:r,pulse:s,parent:a}}function vh(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:ee(t.getData(e.data).output)}function ga(e,t,n,i,r){this.scope=e,this.input=t,this.output=n,this.values=i,this.aggregate=r,this.index={}}ga.fromEntries=function(e,t){const n=t.length,i=t[n-1],r=t[n-2];let o=t[0],s=null,a=1;for(o&&o.type==="load"&&(o=t[1]),e.add(t[0]);a<n;++a)t[a].params.pulse=ee(t[a-1]),e.add(t[a]),t[a].type==="aggregate"&&(s=t[a]);return new ga(e,o,r,i,s)};function mN(e){return Ke(e)?e:null}function m_(e,t,n){const i=p0(n.op,n.field);let r;if(t.ops){for(let o=0,s=t.as.length;o<s;++o)if(t.as[o]===i)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((r=n.op.signal)?e.signalRef(r):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(i))}function Gl(e,t,n,i,r,o,s){const a=t[n]||(t[n]={}),u=Vte(o);let l=mN(r),c,f;if(l!=null&&(e=t.scope,l=l+(u?"|"+u:""),c=a[l]),!c){const d=o?{field:Nb,pulse:t.countsRef(e,r,o)}:{field:e.fieldRef(r),pulse:ee(t.output)};u&&(d.sort=e.sortRef(o)),f=e.add(h0(i,void 0,d)),s&&(t.index[r]=f),c=ee(f),l!=null&&(a[l]=c)}return c}ga.prototype={countsRef(e,t,n){const i=this,r=i.counts||(i.counts={}),o=mN(t);let s,a,u;return o!=null&&(e=i.scope,s=r[o]),s?n&&n.field&&m_(e,s.agg.params,n):(u={groupby:e.fieldRef(t,"key"),pulse:ee(i.output)},n&&n.field&&m_(e,u,n),a=e.add(eN(u)),s=e.add(Gi({pulse:ee(a)})),s={agg:a,ref:ee(s)},o!=null&&(r[o]=s)),s.ref},tuplesRef(){return ee(this.values)},extentRef(e,t){return Gl(e,this,"extent","extent",t,!1)},domainRef(e,t){return Gl(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return Gl(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return Gl(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return Gl(e,this,"indata","tupleindex",t,!0,!0)}};function Cie(e,t,n){const i=e.from.facet,r=i.name,o=vh(i,t);let s;i.name||L("Facet must have a name: "+re(i)),i.data||L("Facet must reference a data set: "+re(i)),i.field?s=t.add(iN({field:t.fieldRef(i.field),pulse:o})):i.groupby?s=t.add(une({key:t.keyRef(i.groupby),group:ee(t.proxy(n.parent)),pulse:o})):L("Facet must specify groupby or field: "+re(i));const a=t.fork(),u=a.add(Gi()),l=a.add(Ra({pulse:ee(u)}));a.addData(r,new ga(a,u,u,l)),a.addSignal("parent",null),s.params.subflow={$subflow:a.parse(e).toRuntime()}}function $ie(e,t,n){const i=t.add(iN({pulse:n.pulse})),r=t.fork();r.add(Ra()),r.addSignal("parent",null),i.params.subflow={$subflow:r.parse(e).toRuntime()}}function yN(e,t,n){const i=e.remove,r=e.insert,o=e.toggle,s=e.modify,a=e.values,u=t.add(Rp()),l="if("+e.trigger+',modify("'+n+'",'+[r,i,o,s,a].map(f=>f??"null").join(",")+"),0)",c=wr(l,t);u.update=c.$expr,u.params=c.$params}function x0(e,t){const n=pN(e),i=e.type===m0,r=e.from&&e.from.facet,o=e.overlap;let s=e.layout||n===KE||n===XE,a,u,l,c,f,d,h;const p=n===YE||s||r,g=Sie(e.from,i,t);u=t.add(sne({key:g.key||(e.key?of(e.key):void 0),pulse:g.pulse,clean:!i}));const m=ee(u);u=l=t.add(Gi({pulse:m})),u=t.add(hne({markdef:mie(e),interactive:yie(e.interactive,t),clip:gie(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:ee(u)}));const y=ee(u);u=c=t.add(nN(QR(e.encode,e.type,n,e.style,t,{mod:!1,pulse:y}))),u.params.parent=t.encode(),e.transform&&e.transform.forEach(A=>{const E=sw(A,t),S=E.metadata;(S.generates||S.changes)&&L("Mark transforms should not generate new data."),S.nomod||(c.params.mod=!0),E.params.pulse=ee(u),t.add(u=E)}),e.sort&&(u=t.add(wne({sort:t.compareRef(e.sort),pulse:ee(u)})));const b=ee(u);(r||s)&&(s=t.add(oN({layout:t.objectProperty(e.layout),legends:t.legends,mark:y,pulse:b})),d=ee(s));const x=t.add(tN({mark:y,pulse:d||b}));h=ee(x),i&&(p&&(a=t.operators,a.pop(),s&&a.pop()),t.pushState(b,d||h,m),r?Cie(e,t,g):p?$ie(e,t,g):t.parse(e),t.popState(),p&&(s&&a.push(s),a.push(x))),o&&(h=_ie(o,h,t));const v=t.add(rN({pulse:h})),w=t.add(Ra({pulse:ee(v)},void 0,t.parent()));e.name!=null&&(f=e.name,t.addData(f,new ga(t,l,v,w)),e.on&&e.on.forEach(A=>{(A.insert||A.remove||A.toggle)&&L("Marks only support modify triggers."),yN(A,t,f)}))}function _ie(e,t,n){const i=e.method,r=e.bound,o=e.separation,s={separation:vt(o)?n.signalRef(o.signal):o,method:vt(i)?n.signalRef(i.signal):i,pulse:t};if(e.order&&(s.sort=n.compareRef({field:e.order})),r){const a=r.tolerance;s.boundTolerance=vt(a)?n.signalRef(a.signal):+a,s.boundScale=n.scaleRef(r.scale),s.boundOrient=r.orient}return ee(n.add(mne(s)))}function Fie(e,t){const n=t.config.legend,i=e.encode||{},r=qn(e,n),o=i.legend||{},s=o.name||void 0,a=o.interactive,u=o.style,l={};let c=0,f,d,h;tw.forEach(x=>e[x]?(l[x]=e[x],c=c||e[x]):0),c||L("Missing valid scale for legend.");const p=kie(e,t.scaleType(c)),g={title:e.title!=null,scales:l,type:p,vgrad:p!=="symbol"&&r.isVertical()},m=ee(t.add(Gi(null,[g]))),y={enter:{x:{value:0},y:{value:0}}},b=ee(t.add(fne(d={type:p,scale:t.scaleRef(c),count:t.objectProperty(r("tickCount")),limit:t.property(r("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return p===xh?(h=[tie(e,c,n,i.gradient),c_(e,n,i.labels,b)],d.count=d.count||t.signalRef(`max(2,2*floor((${Qs(r.gradientLength())})/100))`)):p===zb?h=[nie(e,c,n,i.gradient,b),c_(e,n,i.labels,b)]:(f=sie(e,n),h=[oie(e,n,i,b,Qs(f.columns))],d.size=Mie(e,t,h[0].marks)),h=[af({role:_te,from:m,encode:y,marks:h,layout:f,interactive:a})],g.title&&h.push(pie(e,n,i.title,m)),x0(af({role:Cte,from:m,encode:pl(Tie(r,e,n),o,Hf),marks:h,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:s,interactive:a,style:u}),t)}function kie(e,t){let n=e.type||l_;return!e.type&&Die(e)===1&&(e.fill||e.stroke)&&(n=u2(t)?xh:My(t)?zb:l_),n!==xh?n:My(t)?zb:xh}function Die(e){return tw.reduce((t,n)=>t+(e[n]?1:0),0)}function Tie(e,t,n){const i={enter:{},update:{}};return Wt(i,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),i}function Mie(e,t,n){const i=Qs(y_("size",e,n)),r=Qs(y_("strokeWidth",e,n)),o=Qs(Oie(n[1].encode,t,Gf));return wr(`max(ceil(sqrt(${i})+${r}),${o})`,t)}function y_(e,t,n){return t[e]?`scale("${t[e]}",datum)`:dN(e,n[0].encode)}function Oie(e,t,n){return dN("fontSize",e)||Zne("fontSize",t,n)}const Rie=`item.orient==="${gl}"?-90:item.orient==="${ml}"?90:0`;function Nie(e,t){e=Ke(e)?{text:e}:e;const n=qn(e,t.config.title),i=e.encode||{},r=i.group||{},o=r.name||void 0,s=r.interactive,a=r.style,u=[],l={},c=ee(t.add(Gi(null,[l])));return u.push(Iie(e,n,Lie(e),c)),e.subtitle&&u.push(zie(e,n,i.subtitle,c)),x0(af({role:Tte,from:c,encode:Pie(n,r),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:o,interactive:s,style:a}),t)}function Lie(e){const t=e.encode;return t&&t.title||ye({name:e.name,interactive:e.interactive,style:e.style},t)}function Pie(e,t){const n={enter:{},update:{}};return Wt(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:iw},angle:{signal:Rie},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),pl(n,t,Hf)}function Iie(e,t,n,i){const r={value:0},o=e.text,s={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return Wt(s,{text:o,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),ii({type:Na,role:Mte,style:Wne,from:i,encode:s},n)}function zie(e,t,n,i){const r={value:0},o=e.subtitle,s={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return Wt(s,{text:o,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),ii({type:Na,role:Ote,style:Gne,from:i,encode:s},n)}function Bie(e,t){const n=[];e.transform&&e.transform.forEach(i=>{n.push(sw(i,t))}),e.on&&e.on.forEach(i=>{yN(i,t,e.name)}),t.addDataPipeline(e.name,Uie(e,t,n))}function Uie(e,t,n){const i=[];let r=null,o=!1,s=!1,a,u,l,c,f;for(e.values?vt(e.values)||yh(e.format)?(i.push(b_(t,e)),i.push(r=$s())):i.push(r=$s({$ingest:e.values,$format:e.format})):e.url?yh(e.url)||yh(e.format)?(i.push(b_(t,e)),i.push(r=$s())):i.push(r=$s({$request:e.url,$format:e.format})):e.source&&(r=a=se(e.source).map(d=>ee(t.getData(d).output)),i.push(null)),u=0,l=n.length;u<l;++u)c=n[u],f=c.metadata,!r&&!f.source&&i.push(r=$s()),i.push(c),f.generates&&(s=!0),f.modifies&&!s&&(o=!0),f.source?r=c:f.changes&&(r=null);return a&&(l=a.length-1,i[0]=vne({derive:o,pulse:l?a:a[0]}),(o||l)&&i.splice(1,0,$s())),r||i.push($s()),i.push(Ra({})),i}function $s(e){const t=Gi({},e);return t.metadata={source:!0},t}function b_(e,t){return dne({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}const bN=e=>e===ns||e===Hi,v0=(e,t,n)=>vt(e)?Gie(e.signal,t,n):e===gl||e===Hi?t:n,_t=(e,t,n)=>vt(e)?qie(e.signal,t,n):bN(e)?t:n,Ri=(e,t,n)=>vt(e)?Wie(e.signal,t,n):bN(e)?n:t,xN=(e,t,n)=>vt(e)?Hie(e.signal,t,n):e===Hi?{value:t}:{value:n},jie=(e,t,n)=>vt(e)?Vie(e.signal,t,n):e===ml?{value:t}:{value:n},qie=(e,t,n)=>vN(`${e} === '${Hi}' || ${e} === '${ns}'`,t,n),Wie=(e,t,n)=>vN(`${e} !== '${Hi}' && ${e} !== '${ns}'`,t,n),Gie=(e,t,n)=>aw(`${e} === '${gl}' || ${e} === '${Hi}'`,t,n),Hie=(e,t,n)=>aw(`${e} === '${Hi}'`,t,n),Vie=(e,t,n)=>aw(`${e} === '${ml}'`,t,n),vN=(e,t,n)=>(t=t!=null?$t(t):t,n=n!=null?$t(n):n,x_(t)&&x_(n)?(t=t?t.signal||re(t.value):null,n=n?n.signal||re(n.value):null,{signal:`${e} ? (${t}) : (${n})`}):[ye({test:e},t)].concat(n||[])),x_=e=>e==null||Object.keys(e).length===1,aw=(e,t,n)=>({signal:`${e} ? (${hu(t)}) : (${hu(n)})`}),Yie=(e,t,n,i,r)=>({signal:(i!=null?`${e} === '${gl}' ? (${hu(i)}) : `:"")+(n!=null?`${e} === '${ns}' ? (${hu(n)}) : `:"")+(r!=null?`${e} === '${ml}' ? (${hu(r)}) : `:"")+(t!=null?`${e} === '${Hi}' ? (${hu(t)}) : `:"")+"(null)"}),hu=e=>vt(e)?e.signal:e==null?null:re(e),Xie=(e,t)=>t===0?0:vt(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},xu=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function nu(e,t,n,i){let r;if(t&&le(t,e))return t[e];if(le(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":r="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":r=e[5].toLowerCase()+e.slice(6)}return i[ew][r]}else if(e.startsWith("label")){switch(e){case"labelColor":r="fill";break;case"labelFont":case"labelFontSize":r=e[5].toLowerCase()+e.slice(6)}return i[Gf][r]}return null}function v_(e){const t={};for(const n of e)if(n)for(const i in n)t[i]=1;return Object.keys(t)}function Kie(e,t){var n=t.config,i=n.style,r=n.axis,o=t.scaleType(e.scale)==="band"&&n.axisBand,s=e.orient,a,u,l;if(vt(s)){const f=v_([n.axisX,n.axisY]),d=v_([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);a={};for(l of f)a[l]=_t(s,nu(l,n.axisX,r,i),nu(l,n.axisY,r,i));u={};for(l of d)u[l]=Yie(s.signal,nu(l,n.axisTop,r,i),nu(l,n.axisBottom,r,i),nu(l,n.axisLeft,r,i),nu(l,n.axisRight,r,i))}else a=s===Hi||s===ns?n.axisX:n.axisY,u=n["axis"+s[0].toUpperCase()+s.slice(1)];return a||u||o?ye({},r,a,u,o):r}function Jie(e,t,n,i){const r=qn(e,t),o=e.orient;let s,a;const u={enter:s={opacity:Ce},update:a={opacity:pi},exit:{opacity:Ce}};Wt(u,{stroke:r("domainColor"),strokeCap:r("domainCap"),strokeDash:r("domainDash"),strokeDashOffset:r("domainDashOffset"),strokeWidth:r("domainWidth"),strokeOpacity:r("domainOpacity")});const l=E_(e,0),c=E_(e,1);return s.x=a.x=_t(o,l,Ce),s.x2=a.x2=_t(o,c),s.y=a.y=Ri(o,l,Ce),s.y2=a.y2=Ri(o,c),ii({type:nw,role:vte,from:i,encode:u},n)}function E_(e,t){return{scale:e.scale,range:t}}function Qie(e,t,n,i,r){const o=qn(e,t),s=e.orient,a=e.gridScale,u=v0(s,1,-1),l=Zie(e.offset,u);let c,f,d;const h={enter:c={opacity:Ce},update:d={opacity:pi},exit:f={opacity:Ce}};Wt(h,{stroke:o("gridColor"),strokeCap:o("gridCap"),strokeDash:o("gridDash"),strokeDashOffset:o("gridDashOffset"),strokeOpacity:o("gridOpacity"),strokeWidth:o("gridWidth")});const p={scale:e.scale,field:hi,band:r.band,extra:r.extra,offset:r.offset,round:o("tickRound")},g=_t(s,{signal:"height"},{signal:"width"}),m=a?{scale:a,range:0,mult:u,offset:l}:{value:0,offset:l},y=a?{scale:a,range:1,mult:u,offset:l}:ye(g,{mult:u,offset:l});return c.x=d.x=_t(s,p,m),c.y=d.y=Ri(s,p,m),c.x2=d.x2=Ri(s,y),c.y2=d.y2=_t(s,y),f.x=_t(s,p),f.y=Ri(s,p),ii({type:nw,role:Ete,key:hi,from:i,encode:h},n)}function Zie(e,t){if(t!==1)if(!me(e))e=vt(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);else{let n=e=ye({},e);for(;n.mult!=null;)if(me(n.mult))n=n.mult=ye({},n.mult);else return n.mult=vt(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n.mult=t}return e}function ere(e,t,n,i,r,o){const s=qn(e,t),a=e.orient,u=v0(a,-1,1);let l,c,f;const d={enter:l={opacity:Ce},update:f={opacity:pi},exit:c={opacity:Ce}};Wt(d,{stroke:s("tickColor"),strokeCap:s("tickCap"),strokeDash:s("tickDash"),strokeDashOffset:s("tickDashOffset"),strokeOpacity:s("tickOpacity"),strokeWidth:s("tickWidth")});const h=$t(r);h.mult=u;const p={scale:e.scale,field:hi,band:o.band,extra:o.extra,offset:o.offset,round:s("tickRound")};return f.y=l.y=_t(a,Ce,p),f.y2=l.y2=_t(a,h),c.x=_t(a,p),f.x=l.x=Ri(a,Ce,p),f.x2=l.x2=Ri(a,h),c.y=Ri(a,p),ii({type:nw,role:Ate,key:hi,from:i,encode:d},n)}function E1(e,t,n,i,r){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+i+","+r+")"}}function tre(e,t,n,i,r,o){const s=qn(e,t),a=e.orient,u=e.scale,l=v0(a,-1,1),c=Qs(s("labelFlush")),f=Qs(s("labelFlushOffset")),d=s("labelAlign"),h=s("labelBaseline");let p=c===0||!!c,g;const m=$t(r);m.mult=l,m.offset=$t(s("labelPadding")||0),m.offset.mult=l;const y={scale:u,field:hi,band:.5,offset:hN(o.offset,s("labelOffset"))},b=_t(a,p?E1(u,c,'"left"','"right"','"center"'):{value:"center"},jie(a,"left","right")),x=_t(a,xN(a,"bottom","top"),p?E1(u,c,'"top"','"bottom"','"middle"'):{value:"middle"}),v=E1(u,c,`-(${f})`,f,0);p=p&&f;const w={opacity:Ce,x:_t(a,y,m),y:Ri(a,y,m)},A={enter:w,update:g={opacity:pi,text:{field:ZE},x:w.x,y:w.y,align:b,baseline:x},exit:{opacity:Ce,x:w.x,y:w.y}};Wt(A,{dx:!d&&p?_t(a,v):null,dy:!h&&p?Ri(a,v):null}),Wt(A,{angle:s("labelAngle"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontWeight:s("labelFontWeight"),fontStyle:s("labelFontStyle"),limit:s("labelLimit"),lineHeight:s("labelLineHeight")},{align:d,baseline:h});const E=s("labelBound");let S=s("labelOverlap");return S=S||E?{separation:s("labelSeparation"),method:S,order:"datum.index",bound:E?{scale:u,orient:a,tolerance:E}:null}:void 0,g.align!==b&&(g.align=xu(g.align,b)),g.baseline!==x&&(g.baseline=xu(g.baseline,x)),ii({type:Na,role:wte,style:Gf,key:hi,from:i,encode:A,overlap:S},n)}function nre(e,t,n,i){const r=qn(e,t),o=e.orient,s=v0(o,-1,1);let a,u;const l={enter:a={opacity:Ce,anchor:$t(r("titleAnchor",null)),align:{signal:iw}},update:u=ye({},a,{opacity:pi,text:$t(e.title)}),exit:{opacity:Ce}},c={signal:`lerp(range("${e.scale}"), ${y0(0,1,.5)})`};return u.x=_t(o,c),u.y=Ri(o,c),a.angle=_t(o,Ce,Xie(s,90)),a.baseline=_t(o,xN(o,ns,Hi),{value:ns}),u.angle=a.angle,u.baseline=a.baseline,Wt(l,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")}),ire(r,o,l,n),l.update.align=xu(l.update.align,a.align),l.update.angle=xu(l.update.angle,a.angle),l.update.baseline=xu(l.update.baseline,a.baseline),ii({type:Na,role:Ste,style:ew,from:i,encode:l},n)}function ire(e,t,n,i){const r=(a,u)=>a!=null?(n.update[u]=xu($t(a),n.update[u]),!1):!au(u,i),o=r(e("titleX"),"x"),s=r(e("titleY"),"y");n.enter.auto=s===o?$t(s):_t(t,$t(s),$t(o))}function rre(e,t){const n=Kie(e,t),i=e.encode||{},r=i.axis||{},o=r.name||void 0,s=r.interactive,a=r.style,u=qn(e,n),l=eie(u),c={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:e.title!=null},f=ee(t.add(Gi({},[c]))),d=ee(t.add(one({scale:t.scaleRef(e.scale),extra:t.property(l.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),h=[];let p;return c.grid&&h.push(Qie(e,n,i.grid,d,l)),c.ticks&&(p=u("tickSize"),h.push(ere(e,n,i.ticks,d,p,l))),c.labels&&(p=c.ticks?p:0,h.push(tre(e,n,i.labels,d,p,l))),c.domain&&h.push(Jie(e,n,i.domain,f)),c.title&&h.push(nre(e,n,i.title,f)),x0(af({role:xte,from:f,encode:pl(ore(u,e),r,Hf),marks:h,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:o,interactive:s,style:a}),t)}function ore(e,t){const n={enter:{},update:{}};return Wt(n,{orient:e("orient"),offset:e("offset")||0,position:_i(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function EN(e,t,n){const i=se(e.signals),r=se(e.scales);return n||i.forEach(o=>ZR(o,t)),se(e.projections).forEach(o=>Pne(o,t)),r.forEach(o=>Cne(o,t)),se(e.data).forEach(o=>Bie(o,t)),r.forEach(o=>$ne(o,t)),(n||i).forEach(o=>rne(o,t)),se(e.axes).forEach(o=>rre(o,t)),se(e.marks).forEach(o=>x0(o,t)),se(e.legends).forEach(o=>Fie(o,t)),e.title&&Nie(e.title,t),t.parseLambdas(),t}const sre=e=>pl({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e);function are(e,t){const n=t.config,i=ee(t.root=t.add(Rp())),r=ure(e,n);r.forEach(l=>ZR(l,t)),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;const o=t.add(Gi()),s=t.add(nN(QR(sre(e.encode),m0,XE,e.style,t,{pulse:ee(o)}))),a=t.add(oN({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:i,pulse:ee(s)}));t.operators.pop(),t.pushState(ee(s),ee(a),null),EN(e,t,r),t.operators.push(a);let u=t.add(tN({mark:i,pulse:ee(a)}));return u=t.add(rN({pulse:ee(u)})),u=t.add(Ra({pulse:ee(u)})),t.addData("root",new ga(t,o,o,u)),t}function Hl(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function ure(e,t){const n=s=>_i(e[s],t[s]),i=[Hl("background",n("background")),Hl("autosize",mte(n("autosize"))),Hl("padding",bte(n("padding"))),Hl("width",n("width")||0),Hl("height",n("height")||0)],r=i.reduce((s,a)=>(s[a.name]=a,s),{}),o={};return se(e.signals).forEach(s=>{le(r,s.name)?s=ye(r[s.name],s):i.push(s),o[s.name]=s}),se(t.signals).forEach(s=>{!le(o,s.name)&&!le(r,s.name)&&i.push(s)}),i}function wN(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function w_(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}wN.prototype=w_.prototype={parse(e){return EN(e,this)},fork(){return new w_(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach(t=>{t.$ref=e.id}),e.refs=null),e},proxy(e){const t=e instanceof Rb?ee(e):e;return this.add(xne({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;this.root&&(this.root.root=!0);for(e in this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(i,r,o){let s,a;i&&(s=i.data||(i.data={}),a=s[r]||(s[r]=[]),a.push(o))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const i in t.index)n(t.index[i],e,"index:"+i)}return this},pushState(e,t,n){this._encode.push(ee(this.add(Ra({pulse:e})))),this._parent.push(t),this._lookup.push(n?ee(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return $e(this._parent)},encode(){return $e(this._encode)},lookup(){return $e(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(Ke(e))return of(e,t);e.signal||L("Unsupported field reference: "+re(e));const n=e.signal;let i=this.field[n];if(!i){const r={name:this.signalRef(n)};t&&(r.as=t),this.field[n]=i=ee(this.add(lne(r)))}return i},compareRef(e){let t=!1;const n=o=>vt(o)?(t=!0,this.signalRef(o.signal)):Yte(o)?(t=!0,this.exprRef(o.expr)):o,i=se(e.field).map(n),r=se(e.order).map(n);return t?ee(this.add(u_({fields:i,orders:r}))):s_(i,r)},keyRef(e,t){let n=!1;const i=o=>vt(o)?(n=!0,ee(r[o.signal])):o,r=this.signals;return e=se(e).map(i),n?ee(this.add(cne({fields:e,flat:t}))):Wte(e,t)},sortRef(e){if(!e)return e;const t=p0(e.op,e.field),n=e.order||Gte;return n.signal?ee(this.add(u_({fields:t,orders:this.signalRef(n.signal)}))):s_(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const i=this.id();this.streams.push({id:i,source:e,type:t}),this.events[n]=i}return this.events[n]},hasOwnSignal(e){return le(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&L("Duplicate signal name: "+re(e));const n=t instanceof Rb?t:this.add(Rp(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||L("Unrecognized signal name: "+re(e)),this.signals[e]},signalRef(e){return this.signals[e]?ee(this.signals[e]):(le(this.lambdas,e)||(this.lambdas[e]=this.add(Rp(null))),ee(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){const i=e[t],r=wr(i,this),o=this.lambdas[i];o.params=r.$params,o.update=r.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return!e||!me(e)?e:this.signalRef(e.signal||uw(e))},exprRef(e,t){const n={expr:wr(e,this)};return t&&(n.expr.$name=t),ee(this.add(ane(n)))},addBinding(e,t){this.bindings||L("Nested signals do not support binding: "+re(e)),this.bindings.push(ye({signal:e},t))},addScaleProj(e,t){le(this.scales,e)&&L("Duplicate scale or projection name: "+re(e)),this.scales[e]=this.add(t)},addScale(e,t){this.addScaleProj(e,Ene(t))},addProjection(e,t){this.addScaleProj(e,bne(t))},getScale(e){return this.scales[e]||L("Unrecognized scale name: "+re(e)),this.scales[e]},scaleRef(e){return ee(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,t){return le(this.data,e)&&L("Duplicate data set name: "+re(e)),this.data[e]=t},getData(e){return this.data[e]||L("Undefined data set name: "+re(e)),this.data[e]},addDataPipeline(e,t){return le(this.data,e)&&L("Duplicate data set name: "+re(e)),this.addData(e,ga.fromEntries(this,t))}};function uw(e){return(Z(e)?lre:cre)(e)}function lre(e){const t=e.length;let n="[";for(let i=0;i<t;++i){const r=e[i];n+=(i>0?",":"")+(me(r)?r.signal||uw(r):re(r))}return n+"]"}function cre(e){let t="{",n=0,i,r;for(i in e)r=e[i],t+=(++n>1?",":"")+re(i)+":"+(me(r)?r.signal||uw(r):re(r));return t+"}"}function fre(){const e="sans-serif",i="#4c78a8",r="#000",o="#888",s="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:i},area:{fill:i},image:null,line:{stroke:i,strokeWidth:2},path:{stroke:i},rect:{fill:i},rule:{stroke:r},shape:{stroke:i},symbol:{fill:i,size:64},text:{fill:r,font:e,fontSize:11},trail:{fill:i,size:2},style:{"guide-label":{fill:r,font:e,fontSize:10},"guide-title":{fill:r,font:e,fontSize:11,fontWeight:"bold"},"group-title":{fill:r,font:e,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:r,font:e,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:s},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:o,grid:!1,gridWidth:1,gridColor:s,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:o,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:s,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:o,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}function dre(e,t,n){return me(e)||L("Input Vega specification must be an object."),t=wP(fre(),t,e.config),are(e,new wN(t,n)).toRuntime()}var hre="5.33.0";Px(Du,BB,zG,yH,nY,qY,mK,XX,bK,jK,QK,oJ);const pre=Object.freeze(Object.defineProperty({__proto__:null,Bounds:gt,CanvasHandler:Lf,CanvasRenderer:Jh,DATE:In,DAY:Zt,DAYOFYEAR:vr,Dataflow:mu,Debug:Bk,Error:Pk,EventStream:Cg,Gradient:hM,GroupItem:Wg,HOURS:ei,Handler:O2,HybridHandler:r5,HybridRenderer:qy,Info:zk,Item:qg,MILLISECONDS:Ii,MINUTES:ti,MONTH:nn,Marks:ni,MultiPulse:Kx,None:Lk,Operator:Ge,Parameters:Sg,Pulse:Ho,QUARTER:Pn,RenderType:zo,Renderer:Nf,ResourceLoader:vM,SECONDS:gi,SVGHandler:GM,SVGRenderer:z2,SVGStringRenderer:i5,Scenegraph:PM,TIME_UNITS:Bx,Transform:M,View:BR,WEEK:bt,Warn:Ik,YEAR:jt,accessor:yo,accessorFields:Ok,accessorName:y9,array:Bc,ascending:Lx,bandwidthNRD:ev,bin:b3,bootstrapCI:x3,boundClip:p5,boundContext:Tf,boundItem:Iy,boundMark:OM,boundStroke:bo,changeset:Ta,clampRange:P9,codegenExpression:hR,compare:z9,constant:q9,cumulativeLogNormal:sv,cumulativeNormal:_g,cumulativeUniform:cv,dayofyear:CD,debounce:W9,defaultLocale:Gx,definition:g3,densityLogNormal:ov,densityNormal:tv,densityUniform:lv,domChild:yt,domClear:ai,domCreate:Po,domFind:M2,dotbin:v3,error:Jd,expressionFunction:ht,extend:Px,extent:G9,extentIndex:H9,falsy:A9,fastmap:Y9,field:Mx,flush:X9,font:Xg,fontFamily:Rf,fontSize:_r,format:Qd,formatLocale:Th,formats:Yx,hasOwnProperty:Hr,id:v9,identity:Ox,inferType:r3,inferTypes:o3,ingest:Oe,inherits:K9,inrange:J9,interpolate:l2,interpolateColors:Ug,interpolateRange:ZT,intersect:c5,intersectBoxLine:lu,intersectPath:y2,intersectPoint:b2,intersectRule:wM,isArray:og,isBoolean:Gk,isDate:Hk,isFunction:lg,isIterable:Q9,isNumber:Vk,isObject:oa,isRegExp:Z9,isString:to,isTuple:wg,key:eP,lerp:tP,lineHeight:Zo,loader:vg,locale:n3,logger:C9,lruCache:iP,markup:I2,merge:rP,mergeConfig:Rx,multiLineOffset:k2,one:w9,pad:oP,panLinear:_9,panLog:F9,panPow:k9,panSymlog:D9,parse:dre,parseExpression:cR,parseSelector:ds,path:Dx,pathCurves:p2,pathEqual:g5,pathParse:Nu,pathRectangle:mM,pathRender:Vc,pathSymbols:gM,pathTrail:yM,peek:ol,point:Jg,projection:rE,quantileLogNormal:av,quantileNormal:Fg,quantileUniform:fv,quantiles:Qx,quantizeInterpolator:eM,quarter:N9,quartiles:Zx,get random(){return mi},randomInteger:Wz,randomKDE:iv,randomLCG:qz,randomLogNormal:w3,randomMixture:A3,randomNormal:nv,randomUniform:S3,read:u3,regressionConstant:dv,regressionExp:$3,regressionLinear:hv,regressionLoess:k3,regressionLog:C3,regressionPoly:F3,regressionPow:_3,regressionQuad:pv,renderModule:Qg,repeat:ec,resetDefaultLocale:B7,resetSVGClipId:xM,resetSVGDefIds:iG,responseType:a3,runtimeContext:_R,sampleCurve:Dg,sampleLogNormal:rv,sampleNormal:$g,sampleUniform:uv,scale:Me,sceneEqual:B2,sceneFromJSON:NM,scenePickVisit:qh,sceneToJSON:RM,sceneVisit:zi,sceneZOrder:x2,scheme:c2,serializeXML:ZM,setHybridRendererOptions:ZW,setRandom:Uz,span:sP,splitAccessPath:Tx,stringValue:gu,textMetrics:Jn,timeBin:jD,timeFloor:MD,timeFormatLocale:qc,timeInterval:ul,timeOffset:ND,timeSequence:ID,timeUnitSpecifier:SD,timeUnits:Ux,toBoolean:aP,toDate:lP,toNumber:Nx,toSet:fP,toString:cP,transform:m3,transforms:Du,truncate:dP,truthy:Nk,tupleid:te,typeParsers:_y,utcFloor:OD,utcInterval:ll,utcOffset:LD,utcSequence:zD,utcdayofyear:FD,utcquarter:L9,utcweek:kD,version:hre,visitArray:hP,week:$D,writeConfig:sg,zero:E9,zoomLinear:T9,zoomLog:M9,zoomPow:O9,zoomSymlog:R9},Symbol.toStringTag,{value:"Module"})),gre=/("(?:[^\\"]|\\.)*")|[:,]/g;function w1(e,t={}){const n=JSON.stringify([1],void 0,t.indent===void 0?2:t.indent).slice(2,-3),i=n===""?1/0:t.maxLength===void 0?80:t.maxLength;let{replacer:r}=t;return function o(s,a,u){s&&typeof s.toJSON=="function"&&(s=s.toJSON());const l=JSON.stringify(s,r);if(l===void 0)return l;const c=i-a.length-u;if(l.length<=c){const f=l.replace(gre,(d,h)=>h||`${d} `);if(f.length<=c)return f}if(r!=null&&(s=JSON.parse(l),r=void 0),typeof s=="object"&&s!==null){const f=a+n,d=[];let h=0,p,g;if(Array.isArray(s)){p="[",g="]";const{length:m}=s;for(;h<m;h++)d.push(o(s[h],f,h===m-1?0:1)||"null")}else{p="{",g="}";const m=Object.keys(s),{length:y}=m;for(;h<y;h++){const b=m[h],x=`${JSON.stringify(b)}: `,v=o(s[b],f,x.length+(h===y-1?0:1));v!==void 0&&d.push(x+v)}}if(d.length>0)return[p,n+d.join(`,
14
14
  ${f}`),g].join(`
15
- ${a}`)}return l}(e,"",0)}function mre(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e.x,e.x=e.x2,e.x2=i),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(i=e.y,e.y=e.y2,e.y2=i),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}var yre={NaN:NaN,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,PI:Math.PI,SQRT1_2:Math.SQRT1_2,SQRT2:Math.SQRT2,MIN_VALUE:Number.MIN_VALUE,MAX_VALUE:Number.MAX_VALUE},bre={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<<t,">>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},xre={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const vre=Array.prototype.slice,_s=(e,t,n)=>{const i=n?n(t[0]):t[0];return i[e].apply(i,vre.call(t,1))},Ere=(e,t,n,i,r,o,s)=>new Date(e,t||0,n??1,i||0,r||0,o||0,s||0);var wre={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:Ere,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return _s("join",arguments)},indexof:function(){return _s("indexOf",arguments)},lastindexof:function(){return _s("lastIndexOf",arguments)},slice:function(){return _s("slice",arguments)},reverse:e=>e.slice().reverse(),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return _s("substring",arguments,String)},split:function(){return _s("split",arguments,String)},replace:function(){return _s("replace",arguments,String)},trim:e=>String(e).trim(),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const Are=["view","item","group","xy","x","y"],Ub=new Set([Function,eval,setTimeout,setInterval]);typeof setImmediate=="function"&&Ub.add(setImmediate);const Sre={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:n==="datum"?e.datum:n==="event"?e.event:n==="item"?e.item:yre[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,i=e(t.object);n&&(e.memberDepth+=1);const r=e(t.property);if(n&&(e.memberDepth-=1),Ub.has(i[r])){console.error(`Prevented interpretation of member "${r}" which could lead to insecure code execution`);return}return i[r]},CallExpression:(e,t)=>{const n=t.arguments;let i=t.callee.name;return i.startsWith("_")&&(i=i.slice(1)),i==="if"?e(n[0])?e(n[1]):e(n[2]):(e.fn[i]||wre[i]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>bre[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>xre[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce((n,i)=>{e.memberDepth+=1;const r=e(i.key);return e.memberDepth-=1,Ub.has(e(i.value))?console.error(`Prevented interpretation of property "${r}" which could lead to insecure code execution`):n[r]=e(i.value),n},{})};function Vl(e,t,n,i,r,o){const s=a=>Sre[a.type](s,a);return s.memberDepth=0,s.fn=Object.create(t),s.params=n,s.datum=i,s.event=r,s.item=o,Are.forEach(a=>s.fn[a]=function(){return r.vega[a](...arguments)}),s(e)}var Cre={operator(e,t){const n=t.ast,i=e.functions;return r=>Vl(n,i,r)},parameter(e,t){const n=t.ast,i=e.functions;return(r,o)=>Vl(n,i,o,r)},event(e,t){const n=t.ast,i=e.functions;return r=>Vl(n,i,void 0,void 0,r)},handler(e,t){const n=t.ast,i=e.functions;return(r,o)=>{const s=o.item&&o.item.datum;return Vl(n,i,r,s,o)}},encode(e,t){const{marktype:n,channels:i}=t,r=e.functions,o=n==="group"||n==="image"||n==="rect";return(s,a)=>{const u=s.datum;let l=0,c;for(const f in i)c=Vl(i[f].ast,r,a,u,void 0,s),s[f]!==c&&(s[f]=c,l=1);return n!=="rule"&&mre(s,i,o),l}}};const $re="5.23.0",_re={version:$re};function yl(e,t,n){return e.fields=t||[],e.fname=n,e}function Fre(e){return e.length===1?kre(e[0]):Dre(e)}const kre=e=>function(t){return t[e]},Dre=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function A1(e){throw Error(e)}function La(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||A1("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&A1("Access path missing closing bracket: "+e),i&&A1("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Tre(e,t,n){const i=La(e);return e=i.length===1?i[0]:e,yl(Fre(i),[e],e)}Tre("id");const Mre=yl(e=>e,[],"identity");yl(()=>0,[],"zero");yl(()=>1,[],"one");yl(()=>!0,[],"true");yl(()=>!1,[],"false");function Ore(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const Rre=0,Nre=1,AN=2,Lre=3,Pre=4;function Ire(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ore,i=e||Rre;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Nre&&n("error","ERROR",arguments),this},warn(){return i>=AN&&n("warn","WARN",arguments),this},info(){return i>=Lre&&n("log","INFO",arguments),this},debug(){return i>=Pre&&n("log","DEBUG",arguments),this}}}var X=Array.isArray;function Fe(e){return e===Object(e)}const A_=e=>e!=="__proto__";function SN(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=zre(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;E0(i,o,r[o],s)}return i},{})}function E0(e,t,n,i){if(!A_(t))return;let r,o;if(Fe(n)&&!X(n)){o=Fe(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?E0(o,r,n[r]):A_(r)&&(o[r]=n[r])}else e[t]=n}function zre(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function ct(e){return e!=null?X(e)?e:[e]:[]}function Bre(e){return typeof e=="function"}const Ure=Object.prototype.hasOwnProperty;function pt(e,t){return Ure.call(e,t)}function Vf(e){return typeof e=="boolean"}function Ze(e){return typeof e=="number"}function de(e){return typeof e=="string"}function _e(e){return X(e)?"["+e.map(_e)+"]":Fe(e)||de(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function lw(e){return U(e,"or")}function cw(e){return U(e,"and")}function fw(e){return U(e,"not")}function Eh(e,t){if(fw(e))Eh(e.not,t);else if(cw(e))for(const n of e.and)Eh(n,t);else if(lw(e))for(const n of e.or)Eh(n,t);else t(e)}function vu(e,t){return fw(e)?{not:vu(e.not,t)}:cw(e)?{and:e.and.map(n=>vu(n,t))}:lw(e)?{or:e.or.map(n=>vu(n,t))}:t(e)}const ce=structuredClone;function CN(e){throw new Error(e)}function qu(e,t){const n={};for(const i of t)pt(e,i)&&(n[i]=e[i]);return n}function Rn(e,t){const n={...e};for(const i of t)delete n[i];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>je(e)).join(",")})`};function Ae(e){if(Ze(e))return e;const t=de(e)?e:je(e);if(t.length<250)return t;let n=0;for(let i=0;i<t.length;i++){const r=t.charCodeAt(i);n=(n<<5)-n+r,n=n&n}return n}function jb(e){return e===!1||e===null}function we(e,t){return e.includes(t)}function Wu(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function dw(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function $N(e,...t){for(const n of t)jre(e,n??{});return e}function jre(e,t){for(const n of B(t))E0(e,n,t[n],!0)}function cr(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 qre(e,t){const n=B(e),i=B(t);if(n.length!==i.length)return!1;for(const r of n)if(e[r]!==t[r])return!1;return!0}function _N(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function hw(e,t){for(const n of e)if(t.has(n))return!0;return!1}function qb(e){const t=new Set;for(const n of e){const r=La(n).map((s,a)=>a===0?s:`[${s}]`),o=r.map((s,a)=>r.slice(0,a+1).join(""));for(const s of o)t.add(s)}return t}function pw(e,t){return e===void 0||t===void 0?!0:hw(qb(e),qb(t))}function Ue(e){return B(e).length===0}const B=Object.keys,qt=Object.values,is=Object.entries;function uf(e){return e===!0||e===!1}function Qe(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function Nc(e,t){return fw(e)?`!(${Nc(e.not,t)})`:cw(e)?`(${e.and.map(n=>Nc(n,t)).join(") && (")})`:lw(e)?`(${e.or.map(n=>Nc(n,t)).join(") || (")})`:t(e)}function Np(e,t){if(t.length===0)return!0;const n=t.shift();return n in e&&Np(e[n],t)&&delete e[n],Ue(e)}function Yf(e){return e.charAt(0).toUpperCase()+e.substr(1)}function gw(e,t="datum"){const n=La(e),i=[];for(let r=1;r<=n.length;r++){const o=`[${n.slice(0,r).map(_e).join("][")}]`;i.push(`${t}${o}`)}return i.join(" && ")}function FN(e,t="datum"){return`${t}[${_e(La(e).join("."))}]`}function Le(e){return`datum['${e.replaceAll("'","\\'")}']`}function Wre(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function bi(e){return`${La(e).map(Wre).join("\\.")}`}function ma(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function bl(e){return`${La(e).join(".")}`}function Gu(e){return e?La(e).length:0}function ft(...e){return e.find(t=>t!==void 0)}let kN=42;function DN(e){const t=++kN;return e?String(e)+t:t}function Gre(){kN=42}function TN(e){return MN(e)?e:`__${e}`}function MN(e){return e.startsWith("__")}function lf(e){if(e!==void 0)return(e%360+360)%360}function w0(e){return Ze(e)?!0:!isNaN(e)&&!isNaN(parseFloat(e))}const S_=Object.getPrototypeOf(structuredClone({}));function Xn(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(!Xn(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(!Xn(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!==S_.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==S_.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(!Xn(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function je(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 s=t.push(i)-1,a=Object.keys(i).sort();for(o="",r=0;r<a.length;r++){const u=a[r],l=n(i[u]);l&&(o&&(o+=","),o+=JSON.stringify(u)+":"+l)}return t.splice(s,1),`{${o}}`}(e)}function U(e,t){return Fe(e)&&pt(e,t)&&e[t]!==void 0}const ro="row",oo="column",A0="facet",et="x",Mt="y",Vi="x2",Tr="y2",hs="xOffset",xl="yOffset",Yi="radius",vo="radius2",Ei="theta",Eo="theta2",Xi="latitude",Ki="longitude",Ji="latitude2",xi="longitude2",ps="time",Bn="color",Mr="fill",Or="stroke",Un="shape",wo="size",Pa="angle",Ao="opacity",gs="fillOpacity",ms="strokeOpacity",ys="strokeWidth",bs="strokeDash",Xf="text",Hu="order",Kf="detail",S0="key",ya="tooltip",C0="href",$0="url",_0="description",Hre={x:1,y:1,x2:1,y2:1},ON={theta:1,theta2:1,radius:1,radius2:1};function RN(e){return pt(ON,e)}const mw={longitude:1,longitude2:1,latitude:1,latitude2:1};function NN(e){switch(e){case Xi:return"y";case Ji:return"y2";case Ki:return"x";case xi:return"x2"}}function LN(e){return pt(mw,e)}const Vre=B(mw),yw={...Hre,...ON,...mw,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 Eu(e){return e===Bn||e===Mr||e===Or}const PN={row:1,column:1,facet:1},di=B(PN),bw={...yw,...PN},Yre=B(bw),{order:nme,detail:ime,tooltip:rme,...Xre}=bw,{row:ome,column:sme,facet:ame,...Kre}=Xre;function Jre(e){return pt(Kre,e)}function IN(e){return pt(bw,e)}const Qre=[Vi,Tr,Ji,xi,Eo,vo];function zN(e){return Ia(e)!==e}function Ia(e){switch(e){case Vi:return et;case Tr:return Mt;case Ji:return Xi;case xi:return Ki;case Eo:return Ei;case vo:return Yi}return e}function rs(e){if(RN(e))switch(e){case Ei:return"startAngle";case Eo:return"endAngle";case Yi:return"outerRadius";case vo:return"innerRadius"}return e}function Rr(e){switch(e){case et:return Vi;case Mt:return Tr;case Xi:return Ji;case Ki:return xi;case Ei:return Eo;case Yi:return vo}}function jn(e){switch(e){case et:case Vi:return"width";case Mt:case Tr:return"height"}}function BN(e){switch(e){case et:return"xOffset";case Mt:return"yOffset";case Vi:return"x2Offset";case Tr:return"y2Offset";case Ei:return"thetaOffset";case Yi:return"radiusOffset";case Eo:return"theta2Offset";case vo:return"radius2Offset"}}function xw(e){switch(e){case et:return"xOffset";case Mt:return"yOffset"}}function Zre(e){switch(e){case"xOffset":return"x";case"yOffset":return"y"}}const eoe=B(yw),{x:ume,y:lme,x2:cme,y2:fme,xOffset:dme,yOffset:hme,latitude:pme,longitude:gme,latitude2:mme,longitude2:yme,theta:bme,theta2:xme,radius:vme,radius2:Eme,...vw}=yw,toe=B(vw),Ew={x:1,y:1},So=B(Ew);function dt(e){return pt(Ew,e)}const ww={theta:1,radius:1},noe=B(ww);function F0(e){return e==="width"?et:Mt}const UN={xOffset:1,yOffset:1};function Jf(e){return pt(UN,e)}const ioe={time:1};function S1(e){return e in ioe}const{text:wme,tooltip:Ame,href:Sme,url:Cme,description:$me,detail:_me,key:Fme,order:kme,...jN}=vw,roe=B(jN);function ooe(e){return pt(vw,e)}function soe(e){switch(e){case Bn:case Mr:case Or:case wo:case Un:case Ao:case ys:case bs:return!0;case gs:case ms:case Pa:case ps:return!1}}const qN={...Ew,...ww,...UN,...jN},Aw=B(qN);function Nr(e){return pt(qN,e)}function aoe(e,t){return loe(e)[t]}const WN={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:Dme,...uoe}=WN;function loe(e){switch(e){case Bn:case Mr:case Or:case _0:case Kf:case S0:case ya:case C0:case Hu:case Ao:case gs:case ms:case ys:case A0:case ro:case oo:return WN;case et:case Mt:case hs:case xl:case Xi:case Ki:case ps:return uoe;case Vi:case Tr:case Ji:case xi:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case wo:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case bs:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case Un:return{point:"always",geoshape:"always"};case Xf:return{text:"always"};case Pa:return{point:"always",square:"always",text:"always"};case $0:return{image:"always"};case Ei:return{text:"always",arc:"always"};case Yi:return{text:"always",arc:"always"};case Eo:case vo:return{arc:"always"}}}function C1(e){switch(e){case et:case Mt:case Ei:case Yi:case hs:case xl:case wo:case Pa:case ys:case Ao:case gs:case ms:case ps:case Vi:case Tr:case Eo:case vo:return;case A0:case ro:case oo:case Un:case bs:case Xf:case ya:case C0:case $0:case _0:return"discrete";case Bn:case Mr:case Or:return"flexible";case Xi:case Ki:case Ji:case xi:case Kf:case S0:case Hu:return}}const coe={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},foe={count:1,min:1,max:1};function po(e){return U(e,"argmin")}function xs(e){return U(e,"argmax")}function Sw(e){return de(e)&&pt(coe,e)}const doe=new Set(["count","valid","missing","distinct"]);function k0(e){return de(e)&&doe.has(e)}function hoe(e){return de(e)&&we(["min","max"],e)}const poe=new Set(["count","sum","distinct","valid","missing"]),goe=new Set(["mean","average","median","q1","q3","min","max"]);function GN(e){return Vf(e)&&(e=U0(e,void 0)),"bin"+B(e).map(t=>D0(e[t])?Qe(`_${t}_${is(e[t])}`):Qe(`_${t}_${e[t]}`)).join("")}function He(e){return e===!0||za(e)&&!e.binned}function Nt(e){return e==="binned"||za(e)&&e.binned===!0}function za(e){return Fe(e)}function D0(e){return U(e,"param")}function C_(e){switch(e){case ro:case oo:case wo:case Bn:case Mr:case Or:case ys:case Ao:case gs:case ms:case Un:return 6;case bs:return 4;default:return 10}}function Qf(e){return U(e,"expr")}function Lt(e,{level:t}={level:0}){const n=B(e||{}),i={};for(const r of n)i[r]=t===0?Vn(e[r]):Lt(e[r],{level:t-1});return i}function HN(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:s,color:a,subtitleColor:u,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...g}=e,m={...g,...a?{fill:a}:{}},y={...t?{anchor:t}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...o!==void 0?{angle:o}:{},...s!==void 0?{limit:s}:{}},b={...u?{subtitleColor:u}:{},...l?{subtitleFont:l}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}},x=qu(e,["align","baseline","dx","dy","limit"]);return{titleMarkConfig:m,subtitleMarkConfig:x,nonMarkTitleProperties:y,subtitle:b}}function Ro(e){return de(e)||X(e)&&de(e[0])}function Q(e){return U(e,"signal")}function Ba(e){return U(e,"step")}function moe(e){return X(e)?!1:U(e,"fields")&&!U(e,"data")}function yoe(e){return X(e)?!1:U(e,"fields")&&U(e,"data")}function eo(e){return X(e)?!1:U(e,"field")&&U(e,"data")}const boe={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},xoe=B(boe),voe={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Wb=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function VN(e){const t=X(e.condition)?e.condition.map($_):$_(e.condition);return{...Vn(e),condition:t}}function Vn(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function $_(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function Ye(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return Q(e)?e:e!==void 0?{value:e}:void 0}function Eoe(e){return Q(e)?e.signal:_e(e)}function __(e){return Q(e)?e.signal:_e(e.value)}function Mi(e){return Q(e)?e.signal:e==null?null:_e(e)}function woe(e,t,n){for(const i of n){const r=Ar(i,t.markDef,t.config);r!==void 0&&(e[i]=Ye(r))}return e}function YN(e){return[].concat(e.type,e.style??[])}function Be(e,t,n,i={}){const{vgChannel:r,ignoreVgConfig:o}=i;return r&&U(t,r)?t[r]:t[e]!==void 0?t[e]:o&&(!r||r===e)?void 0:Ar(e,t,n,i)}function Ar(e,t,n,{vgChannel:i}={}){const r=Gb(e,t,n.style);return ft(i?r:void 0,r,i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function Gb(e,t,n){return XN(e,YN(t),n)}function XN(e,t,n){t=ct(t);let i;for(const r of t){const o=n[r];U(o,e)&&(i=o[e])}return i}function KN(e,t){return ct(e).reduce((n,i)=>(n.field.push(H(i,t)),n.order.push(i.sort??"ascending"),n),{field:[],order:[]})}function JN(e,t){const n=[...e];return t.forEach(i=>{for(const r of n)if(Xn(r,i))return;n.push(i)}),n}function QN(e,t){return Xn(e,t)||!t?e:e?[...ct(e),...ct(t)].join(", "):t}function ZN(e,t){const n=e.value,i=t.value;if(n==null||i===null)return{explicit:e.explicit,value:null};if((Ro(n)||Q(n))&&(Ro(i)||Q(i)))return{explicit:e.explicit,value:QN(n,i)};if(Ro(n)||Q(n))return{explicit:e.explicit,value:n};if(Ro(i)||Q(i))return{explicit:e.explicit,value:i};if(!Ro(n)&&!Q(n)&&!Ro(i)&&!Q(i))return{explicit:e.explicit,value:JN(n,i)};throw new Error("It should never reach here")}function Cw(e){return`Invalid specification ${je(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const Aoe='Autosize "fit" only works for single views and layered views.';function F_(e){return`${e=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function k_(e){const t=e=="width"?"Width":"Height",n=e=="width"?"x":"y";return`${t} "container" only works well with autosize "fit" or "fit-${n}".`}function D_(e){return e?`Dropping "fit-${e}" because spec has discrete ${jn(e)}.`:'Dropping "fit" because spec has discrete size.'}function $w(e){return`Unknown field for ${e}. Cannot calculate view size.`}function T_(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Soe(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function Coe(e){return`The "nearest" transform is not supported for ${e} marks.`}function e6(e){return`Selection not supported for ${e} yet.`}function $oe(e){return`Cannot find a selection named "${e}".`}const _oe="Scale bindings are currently only supported for scales with unbinned, continuous domains.",Foe="Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc",koe="Legend bindings are only supported for selections over an individual field or encoding channel.";function Doe(e){return`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`}function Toe(e){return`Cannot define and lookup the "${e}" selection in the same view. Try moving the lookup into a second, layered view?`}const Moe="The same selection must be used to override scale domains in a layered view.",Ooe='Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.';function Roe(e){return`Unknown repeated value "${e}".`}function M_(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const Noe="Multiple timer selections in one unit spec are not supported. Ignoring all but the first.",_w="Animation involving facet, layer, or concat is currently unsupported.";function Loe(e){return`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${gu(e)}.`}function Poe(e,t,n,i){return(e.length?"Multiple ":"No ")+`matching ${gu(t)} encoding found for selection ${gu(n.param)}. Using "field": ${gu(i)}.`}const Ioe="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function zoe(e){return`Unrecognized parse "${e}".`}function O_(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}const Boe="Attempt to add the same child twice.";function Uoe(e){return`Ignoring an invalid transform: ${je(e)}.`}const joe='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function R_(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function qoe(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${je(t)} is overridden by a child projection ${je(n)}.`}const Woe="Arc marks uses theta channel rather than angle, replacing angle with theta.";function Goe(e){return`${e}Offset dropped because ${e} is continuous`}function Hoe(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${je(n)}}.`}function t6(e){return`Invalid field type "${e}".`}function Voe(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}function Yoe(e){return`Invalid aggregation operator "${e}".`}function n6(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 Xoe(e){return`Position range does not support relative band size for ${e}.`}function Hb(e,t){return`Dropping ${je(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}const Koe="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function T0(e,t,n){return`${e} dropped as it is incompatible with "${t}".`}function Joe(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function Qoe(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function Zoe(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function ese(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function $1(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}function tse(e){return`The ${e} for range marks cannot be an expression`}function nse(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function ise(e,t){return`Specified orient "${e}" overridden with "${t}".`}function rse(e){return`Cannot use the scale property "${e}" with non-color channel.`}function ose(e){return`Cannot use the relative band size with ${e} scale.`}function sse(e){return`Using unaggregated domain with raw field has no effect (${je(e)}).`}function ase(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function use(e){return`Unaggregated domain is currently unsupported for log scale (${je(e)}).`}function lse(e){return`Cannot apply size to non-oriented mark "${e}".`}function cse(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}function fse(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}function i6(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function r6(e){return`The step for "${e}" is dropped because the ${e==="width"?"x":"y"} is continuous.`}function dse(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${je(n)} and ${je(i)}). Using ${je(n)}.`}function hse(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${je(n)} and ${je(i)}). Using the union of the two domains.`}function pse(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}function gse(e){return`Dropping sort property ${je(e)} as unioned domains only support boolean or op "count", "min", and "max".`}const N_="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",mse="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.",yse="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.",bse="Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.";function xse(e){return`Cannot stack "${e}" if there is already "${e}2".`}function vse(e){return`Stack is applied to a non-linear scale (${e}).`}function Ese(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}").`}function Lp(e,t){return`Invalid ${e}: ${je(t)}.`}function wse(e){return`Dropping day from datetime ${je(e)} as day cannot be combined with other units.`}function Ase(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}function Sse(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}function Cse(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}function L_(e){return`1D error band does not support ${e}.`}function o6(e){return`Channel ${e} is required for "binned" bin.`}function $se(e){return`Channel ${e} should not be used with "binned" bin.`}function _se(e){return`Domain for ${e} is required for threshold scale.`}const s6=Ire(AN);let ba=s6;function Fse(e){return ba=e,ba}function kse(){return ba=s6,ba}function Fw(...e){ba.error(...e)}function j(...e){ba.warn(...e)}function Dse(...e){ba.debug(...e)}function Ua(e){if(e&&Fe(e)){for(const t of Dw)if(U(e,t))return!0}return!1}const a6=["january","february","march","april","may","june","july","august","september","october","november","december"],Tse=a6.map(e=>e.substr(0,3)),u6=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Mse=u6.map(e=>e.substr(0,3));function Ose(e){if(w0(e)&&(e=+e),Ze(e))return e>4&&j(Lp("quarter",e)),e-1;throw new Error(Lp("quarter",e))}function Rse(e){if(w0(e)&&(e=+e),Ze(e))return e-1;{const t=e.toLowerCase(),n=a6.indexOf(t);if(n!==-1)return n;const i=t.substr(0,3),r=Tse.indexOf(i);if(r!==-1)return r;throw new Error(Lp("month",e))}}function Nse(e){if(w0(e)&&(e=+e),Ze(e))return e%7;{const t=e.toLowerCase(),n=u6.indexOf(t);if(n!==-1)return n;const i=t.substr(0,3),r=Mse.indexOf(i);if(r!==-1)return r;throw new Error(Lp("day",e))}}function kw(e,t){const n=[];if(t&&e.day!==void 0&&B(e).length>1&&(j(wse(e)),e=ce(e),delete e.day),e.year!==void 0?n.push(e.year):n.push(2012),e.month!==void 0){const i=t?Rse(e.month):e.month;n.push(i)}else if(e.quarter!==void 0){const i=t?Ose(e.quarter):e.quarter;n.push(Ze(i)?i*3:`${i}*3`)}else n.push(0);if(e.date!==void 0)n.push(e.date);else if(e.day!==void 0){const i=t?Nse(e.day):e.day;n.push(Ze(i)?i+1:`${i}+1`)}else n.push(1);for(const i of["hours","minutes","seconds","milliseconds"]){const r=e[i];n.push(typeof r>"u"?0:r)}return n}function xa(e){const n=kw(e,!0).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function Lse(e){const n=kw(e,!1).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function Pse(e){const t=kw(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}const l6={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},Dw=B(l6);function Ise(e){return Hr(l6,e)}function ja(e){return Fe(e)?e.binned:c6(e)}function c6(e){return e&&e.startsWith("binned")}function Tw(e){return e.startsWith("utc")}function zse(e){return e.substring(3)}const Bse={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function M0(e){return Dw.filter(t=>d6(e,t))}function f6(e){const t=M0(e);return t[t.length-1]}function d6(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 Use(e,t,{end:n}={end:!1}){const i=gw(t),r=Tw(e)?"utc":"";function o(u){return u==="quarter"?`(${r}quarter(${i})-1)`:`${r}${u}(${i})`}let s;const a={};for(const u of Dw)d6(e,u)&&(a[u]=o(u),s=u);return n&&(a[s]+="+1"),Lse(a)}function h6(e){if(!e)return;const t=M0(e);return`timeUnitSpecifier(${je(t)}, ${je(Bse)})`}function jse(e,t,n){if(!e)return;const i=h6(e);return`${n||Tw(e)?"utc":"time"}Format(${t}, ${i})`}function kt(e){if(!e)return;let t;return de(e)?c6(e)?t={unit:e.substring(6),binned:!0}:t={unit:e}:Fe(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),Tw(t.unit)&&(t.utc=!0,t.unit=zse(t.unit)),t}function qse(e){const{utc:t,...n}=kt(e);return n.unit?(t?"utc":"")+B(n).map(i=>Qe(`${i==="unit"?"":`_${i}_`}${n[i]}`)).join(""):(t?"utc":"")+"timeunit"+B(n).map(i=>Qe(`_${i}_${n[i]}`)).join("")}function p6(e,t=n=>n){const n=kt(e),i=f6(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:s}=g6(i,n.step),a={...r,[s]:+r[s]+o};return`${t(xa(a))} - ${t(xa(r))}`}}const Wse={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function Gse(e){return Hr(Wse,e)}function g6(e,t=1){if(Gse(e))return{part:e,step:t};switch(e){case"day":case"dayofyear":return{part:"date",step:t};case"quarter":return{part:"month",step:t*3};case"week":return{part:"date",step:t*7}}}function Hse(e){return U(e,"param")}function Mw(e){return!!e?.field&&e.equal!==void 0}function Ow(e){return!!e?.field&&e.lt!==void 0}function Rw(e){return!!e?.field&&e.lte!==void 0}function Nw(e){return!!e?.field&&e.gt!==void 0}function Lw(e){return!!e?.field&&e.gte!==void 0}function Pw(e){if(e?.field){if(X(e.range)&&e.range.length===2)return!0;if(Q(e.range))return!0}return!1}function Iw(e){return!!e?.field&&(X(e.oneOf)||X(e.in))}function Vse(e){return!!e?.field&&e.valid!==void 0}function m6(e){return Iw(e)||Mw(e)||Pw(e)||Ow(e)||Nw(e)||Rw(e)||Lw(e)}function nr(e,t){return j0(e,{timeUnit:t,wrapTime:!0})}function Yse(e,t){return e.map(n=>nr(n,t))}function y6(e,t=!0){const{field:n}=e,i=kt(e.timeUnit),{unit:r,binned:o}=i||{},s=H(e,{expr:"datum"}),a=r?`time(${o?s:Use(r,n)})`:s;if(Mw(e))return`${a}===${nr(e.equal,r)}`;if(Ow(e)){const u=e.lt;return`${a}<${nr(u,r)}`}else if(Nw(e)){const u=e.gt;return`${a}>${nr(u,r)}`}else if(Rw(e)){const u=e.lte;return`${a}<=${nr(u,r)}`}else if(Lw(e)){const u=e.gte;return`${a}>=${nr(u,r)}`}else{if(Iw(e))return`indexof([${Yse(e.oneOf,r).join(",")}], ${a}) !== -1`;if(Vse(e))return O0(a,e.valid);if(Pw(e)){const{range:u}=Lt(e),l=Q(u)?{signal:`${u.signal}[0]`}:u[0],c=Q(u)?{signal:`${u.signal}[1]`}:u[1];if(l!==null&&c!==null&&t)return"inrange("+a+", ["+nr(l,r)+", "+nr(c,r)+"])";const f=[];return l!==null&&f.push(`${a} >= ${nr(l,r)}`),c!==null&&f.push(`${a} <= ${nr(c,r)}`),f.length>0?f.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${je(e)}`)}function O0(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function Xse(e){return m6(e)&&e.timeUnit?{...e,timeUnit:kt(e.timeUnit)}:e}const Zf={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Kse(e){return e==="quantitative"||e==="temporal"}function b6(e){return e==="ordinal"||e==="nominal"}const va=Zf.quantitative,zw=Zf.ordinal,Vu=Zf.temporal,Bw=Zf.nominal,vl=Zf.geojson;function Jse(e){if(e)switch(e=e.toLowerCase(),e){case"q":case va:return"quantitative";case"t":case Vu:return"temporal";case"o":case zw:return"ordinal";case"n":case Bw:return"nominal";case vl:return"geojson"}}const Pt={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",TIME:"time",UTC:"utc",POINT:"point",BAND:"band"},Vb={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 Qse(e,t){const n=Vb[e],i=Vb[t];return n===i||n==="ordinal-position"&&i==="time"||i==="ordinal-position"&&n==="time"}const Zse={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 P_(e){return Zse[e]}const x6=new Set(["linear","log","pow","sqrt","symlog"]),v6=new Set([...x6,"time","utc"]);function E6(e){return x6.has(e)}const w6=new Set(["quantile","quantize","threshold"]),eae=new Set([...v6,...w6,"sequential","identity"]),tae=new Set(["ordinal","bin-ordinal","point","band"]);function Dt(e){return tae.has(e)}function Bi(e){return eae.has(e)}function fr(e){return v6.has(e)}function Yu(e){return w6.has(e)}const nae={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};function iae(e){return!de(e)&&U(e,"name")}function A6(e){return U(e,"param")}function rae(e){return U(e,"unionWith")}function oae(e){return Fe(e)&&"field"in e}const sae={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},{type:Tme,domain:Mme,range:Ome,rangeMax:Rme,rangeMin:Nme,scheme:Lme,...aae}=sae,uae=B(aae);function Yb(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 fr(e)||e==="band"||e==="point";case"padding":case"rangeMin":case"rangeMax":return fr(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 fr(e);case"nice":return fr(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return Bi(e)&&!we(["log","time","utc","threshold","quantile"],e)}}function S6(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return Eu(e)?void 0:rse(t);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}}function lae(e,t){return we([zw,Bw],t)?e===void 0||Dt(e):t===Vu?we([Pt.TIME,Pt.UTC,void 0],e):t===va?E6(e)||Yu(e)||e===void 0:!0}function cae(e,t,n=!1){if(!Nr(e))return!1;switch(e){case et:case Mt:case hs:case xl:case Ei:case Yi:return fr(t)||t==="band"?!0:t==="point"?!n:!1;case ps:return we(["linear","band"],t);case wo:case ys:case Ao:case gs:case ms:case Pa:return fr(t)||Yu(t)||we(["band","point","ordinal"],t);case Bn:case Mr:case Or:return t!=="band";case bs:case Un:return t==="ordinal"||Yu(t)}}function fae(e){return Fe(e)&&"value"in e}const _n={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"},C6=_n.arc,R0=_n.area,N0=_n.bar,dae=_n.image,L0=_n.line,P0=_n.point,hae=_n.rect,Pp=_n.rule,$6=_n.text,Uw=_n.tick,pae=_n.trail,jw=_n.circle,qw=_n.square,_6=_n.geoshape;function vs(e){return["line","area","trail"].includes(e)}function cf(e){return["rect","bar","image","arc","tick"].includes(e)}const gae=new Set(B(_n));function Sr(e){return U(e,"type")}const mae=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],yae=["fill","fillOpacity"],bae=[...mae,...yae],xae={color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1},I_=B(xae),_1=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],vae={area:["line","point"],bar:_1,rect:_1,line:["point"],tick:["bandSize","thickness",..._1]},Eae={color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},wae={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},F6=B(wae);function Ea(e){return U(e,"band")}const Aae={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Sae=5,Ww={binSpacing:0,continuousBandSize:Sae,minBandSize:.25,timeUnitBandPosition:.5},Cae={...Ww,binSpacing:1},$ae={...Ww,thickness:1};function _ae(e){return Sr(e)?e.type:e}function k6(e,{isPath:t}){return e===void 0||e==="break-paths-show-path-domains"?t?"break-paths-show-domains":"filter":e===null?"show":e}function Gw({markDef:e,config:t,scaleChannel:n,scaleType:i,isCountAggregate:r}){if(!i||!Bi(i)||r)return"always-valid";const o=k6(Be("invalid",e,t),{isPath:vs(e.type)});return t.scale?.invalid?.[n]!==void 0?"show":o}function Fae(e){return e==="break-paths-filter-domains"||e==="break-paths-show-domains"}function D6({scaleName:e,scale:t,mode:n}){const i=`domain('${e}')`;if(!t||!e)return;const r=`${i}[0]`,o=`peek(${i})`,s=t.domainHasZero();return s==="definitely"?{scale:e,value:0}:s==="maybe"?{signal:`scale('${e}', inrange(0, ${i}) ? 0 : ${n==="zeroOrMin"?r:o})`}:{signal:`scale('${e}', ${n==="zeroOrMin"?r:o})`}}function T6({scaleChannel:e,channelDef:t,scale:n,scaleName:i,markDef:r,config:o}){const s=n?.get("type"),a=ji(t),u=k0(a?.aggregate),l=Gw({scaleChannel:e,markDef:r,config:o,scaleType:s,isCountAggregate:u});if(a&&l==="show"){const c=o.scale.invalid?.[e]??"zero-or-min";return{test:O0(H(a,{expr:"datum"}),!1),...kae(c,n,i)}}}function kae(e,t,n){if(fae(e)){const{value:i}=e;return Q(i)?{signal:i.signal}:{value:i}}return D6({scale:t,scaleName:n,mode:"zeroOrMin"})}function Hw(e){const{channel:t,channelDef:n,markDef:i,scale:r,scaleName:o,config:s}=e,a=Ia(t),u=Vw(e),l=T6({scaleChannel:a,channelDef:n,scale:r,scaleName:o,markDef:i,config:s});return l!==void 0?[l,u]:u}function Dae(e){const{datum:t}=e;return Ua(t)?xa(t):`${je(t)}`}function Zs(e,t,n,i){const r={};if(t&&(r.scale=t),Lr(e)){const{datum:o}=e;Ua(o)?r.signal=xa(o):Q(o)?r.signal=o.signal:Qf(o)?r.signal=o.expr:r.value=o}else r.field=H(e,n);if(i){const{offset:o,band:s}=i;o&&(r.offset=o),s&&(r.band=s)}return r}function Ip({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:i,startSuffix:r,endSuffix:o="end",bandPosition:s=.5}){const a=!Q(s)&&0<s&&s<1?"datum":void 0,u=H(t,{expr:a,suffix:r}),l=n!==void 0?H(n,{expr:a}):H(t,{suffix:o,expr:a}),c={};if(s===0||s===1){c.scale=e;const f=s===0?u:l;c.field=f}else{const f=Q(s)?`(1-${s.signal}) * ${u} + ${s.signal} * ${l}`:`${1-s} * ${u} + ${s} * ${l}`;c.signal=`scale("${e}", ${f})`}return i&&(c.offset=i),c}function Tae({scaleName:e,fieldDef:t}){const n=H(t,{expr:"datum"}),i=H(t,{expr:"datum",suffix:"end"});return`abs(scale("${e}", ${i}) - scale("${e}", ${n}))`}function Vw({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:s,stack:a,offset:u,defaultRef:l,bandPosition:c}){if(t){if(fe(t)){const f=s?.get("type");if(Cn(t)){c??(c=os({fieldDef:t,fieldDef2:n,markDef:i,config:r}));const{bin:d,timeUnit:h,type:p}=t;if(He(d)||c&&h&&p===Vu)return a?.impute?Zs(t,o,{binSuffix:"mid"},{offset:u}):c&&!Dt(f)?Ip({scaleName:o,fieldOrDatumDef:t,bandPosition:c,offset:u}):Zs(t,o,rd(t,e)?{binSuffix:"range"}:{},{offset:u});if(Nt(d)){if(q(n))return Ip({scaleName:o,fieldOrDatumDef:t,fieldOrDatumDef2:n,bandPosition:c,offset:u});j(o6(e===et?Vi:Tr))}}return Zs(t,o,Dt(f)?{binSuffix:"range"}:{},{offset:u,band:f==="band"?c??t.bandPosition??.5:void 0})}else if(Ui(t)){const f=t.value,d=u?{offset:u}:{};return{...Lc(e,f),...d}}}return Bre(l)&&(l=l()),l&&{...l,...u?{offset:u}:{}}}function Lc(e,t){return we(["x","x2"],e)&&t==="width"?{field:{group:"width"}}:we(["y","y2"],e)&&t==="height"?{field:{group:"height"}}:Ye(t)}function wa(e){return e&&e!=="number"&&e!=="time"}function M6(e,t,n){return`${e}(${t}${n?`, ${je(n)}`:""})`}const Mae=" – ";function Yw({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o}){if(wa(n))return Oi({fieldOrDatumDef:e,format:t,formatType:n,expr:i,config:o});const s=O6(e,i,r),a=Xu(e);if(t===void 0&&n===void 0&&o.customFormatTypes){if(a==="quantitative"){if(r&&o.normalizedNumberFormatType)return Oi({fieldOrDatumDef:e,format:o.normalizedNumberFormat,formatType:o.normalizedNumberFormatType,expr:i,config:o});if(o.numberFormatType)return Oi({fieldOrDatumDef:e,format:o.numberFormat,formatType:o.numberFormatType,expr:i,config:o})}if(a==="temporal"&&o.timeFormatType&&q(e)&&e.timeUnit===void 0)return Oi({fieldOrDatumDef:e,format:o.timeFormat,formatType:o.timeFormatType,expr:i,config:o})}if(Ju(e)){const u=Rae({field:s,timeUnit:q(e)?kt(e.timeUnit)?.unit:void 0,format:t,formatType:o.timeFormatType,rawTimeFormat:o.timeFormat,isUTCScale:qa(e)&&e.scale?.type===Pt.UTC});return u?{signal:u}:void 0}if(t=Xb({type:a,specifiedFormat:t,config:o,normalizeStack:r}),q(e)&&He(e.bin)){const u=H(e,{expr:i,binSuffix:"end"});return{signal:ed(s,u,t,n,o)}}else return t||Xu(e)==="quantitative"?{signal:`${L6(s,t)}`}:{signal:`isValid(${s}) ? ${s} : ""+${s}`}}function O6(e,t,n){return q(e)?n?`${H(e,{expr:t,suffix:"end"})}-${H(e,{expr:t,suffix:"start"})}`:H(e,{expr:t}):Dae(e)}function Oi({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o,field:s}){if(s??(s=O6(e,i,r)),s!=="datum.value"&&q(e)&&He(e.bin)){const a=H(e,{expr:i,binSuffix:"end"});return{signal:ed(s,a,t,n,o)}}return{signal:M6(n,s,t)}}function R6(e,t,n,i,r,o){if(!(de(i)&&wa(i))&&!(n===void 0&&i===void 0&&r.customFormatTypes&&Xu(e)==="quantitative"&&(r.normalizedNumberFormatType&&Ku(e)&&e.stack==="normalize"||r.numberFormatType))){if(Ku(e)&&e.stack==="normalize"&&r.normalizedNumberFormat)return Xb({type:"quantitative",config:r,normalizeStack:!0});if(Ju(e)){const s=q(e)?kt(e.timeUnit)?.unit:void 0;return s===void 0&&r.customFormatTypes&&r.timeFormatType?void 0:Oae({specifiedFormat:n,timeUnit:s,config:r,omitTimeFormatConfig:o})}return Xb({type:t,specifiedFormat:n,config:r})}}function N6(e,t,n){if(e&&(Q(e)||e==="number"||e==="time"))return e;if(Ju(t)&&n!=="time"&&n!=="utc")return q(t)&&kt(t?.timeUnit)?.utc?"utc":"time"}function Xb({type:e,specifiedFormat:t,config:n,normalizeStack:i}){if(de(t))return t;if(e===va)return i?n.normalizedNumberFormat:n.numberFormat}function Oae({specifiedFormat:e,timeUnit:t,config:n,omitTimeFormatConfig:i}){return e||(t?{signal:h6(t)}:i?void 0:n.timeFormat)}function L6(e,t){return`format(${e}, "${t||""}")`}function z_(e,t,n,i){return wa(n)?M6(n,e,t):L6(e,(de(t)?t:void 0)??i.numberFormat)}function ed(e,t,n,i,r){if(n===void 0&&i===void 0&&r.customFormatTypes&&r.numberFormatType)return ed(e,t,r.numberFormat,r.numberFormatType,r);const o=z_(e,n,i,r),s=z_(t,n,i,r);return`${O0(e,!1)} ? "null" : ${o} + "${Mae}" + ${s}`}function Rae({field:e,timeUnit:t,format:n,formatType:i,rawTimeFormat:r,isUTCScale:o}){return!t||n?!t&&i?`${i}(${e}, '${n}')`:(n=de(n)?n:r,`${o?"utc":"time"}Format(${e}, '${n}')`):jse(t,e,o)}const I0="min",Nae={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 B_(e){return pt(Nae,e)}function Lae(e){return U(e,"encoding")}function so(e){return e&&(e.op==="count"||U(e,"field"))}function P6(e){return e&&X(e)}function td(e){return U(e,"row")||U(e,"column")}function Xw(e){return U(e,"header")}function z0(e){return U(e,"facet")}function Pae(e){return U(e,"param")}function Iae(e){return!de(e)&&U(e,"repeat")}function U_(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return{...n?{timeUnit:n}:{},...i?{bin:i}:{},...r?{aggregate:r}:{},field:t}}function Kw(e){return U(e,"sort")}function os({fieldDef:e,fieldDef2:t,markDef:n,config:i}){if(fe(e)&&e.bandPosition!==void 0)return e.bandPosition;if(q(e)){const{timeUnit:r,bin:o}=e;if(r&&!t)return Ar("timeUnitBandPosition",n,i);if(He(o))return .5}}function I6({channel:e,fieldDef:t,fieldDef2:n,markDef:i,config:r,scaleType:o,useVlSizeChannel:s}){const a=jn(e),u=Be(s?"size":a,i,r,{vgChannel:a});if(u!==void 0)return u;if(q(t)){const{timeUnit:l,bin:c}=t;if(l&&!n)return{band:Ar("timeUnitBandSize",i,r)};if(He(c)&&!Dt(o))return{band:1}}if(cf(i.type))return o?Dt(o)?r[i.type]?.discreteBandSize||{band:1}:r[i.type]?.continuousBandSize:r[i.type]?.discreteBandSize}function z6(e,t,n,i){return He(e.bin)||e.timeUnit&&Cn(e)&&e.type==="temporal"?os({fieldDef:e,fieldDef2:t,markDef:n,config:i})!==void 0:!1}function B6(e){return U(e,"sort")&&!U(e,"field")}function nd(e){return U(e,"condition")}function B0(e){const t=e?.condition;return!!t&&!X(t)&&q(t)}function id(e){const t=e?.condition;return!!t&&!X(t)&&fe(t)}function zae(e){const t=e?.condition;return!!t&&(X(t)||Ui(t))}function q(e){return U(e,"field")||e?.aggregate==="count"}function Xu(e){return e?.type}function Lr(e){return U(e,"datum")}function Wo(e){return Cn(e)&&!Bp(e)||zp(e)}function j_(e){return Cn(e)&&e.type==="quantitative"&&!e.bin||zp(e)}function zp(e){return Lr(e)&&Ze(e.datum)}function fe(e){return q(e)||Lr(e)}function Cn(e){return e&&(U(e,"field")||e.aggregate==="count")&&U(e,"type")}function Ui(e){return U(e,"value")}function qa(e){return U(e,"scale")||U(e,"sort")}function Ku(e){return U(e,"axis")||U(e,"stack")||U(e,"impute")}function U6(e){return U(e,"legend")}function j6(e){return U(e,"format")||U(e,"formatType")}function Bae(e){return Rn(e,["legend","axis","header","scale"])}function Uae(e){return U(e,"op")}function H(e,t={}){let n=e.field;const i=t.prefix;let r=t.suffix,o="";if(qae(e))n=TN("count");else{let s;if(!t.nofn)if(Uae(e))s=e.op;else{const{bin:a,aggregate:u,timeUnit:l}=e;He(a)?(s=GN(a),r=(t.binSuffix??"")+(t.suffix??"")):u?xs(u)?(o=`["${n}"]`,n=`argmax_${u.argmax}`):po(u)?(o=`["${n}"]`,n=`argmin_${u.argmin}`):s=String(u):l&&!ja(l)&&(s=qse(l),r=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(t.suffix??""))}s&&(n=n?`${s}_${n}`:s)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?bl(n):t.expr?FN(n,t.expr)+o:bi(n)+o}function Bp(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return q(e)&&!!e.bin;case"temporal":return!1}throw new Error(t6(e.type))}function jae(e){return qa(e)&&Yu(e.scale?.type)}function qae(e){return e.aggregate==="count"}function Wae(e,t){const{field:n,bin:i,timeUnit:r,aggregate:o}=e;if(o==="count")return t.countTitle;if(He(i))return`${n} (binned)`;if(r&&!ja(r)){const s=kt(r)?.unit;if(s)return`${n} (${M0(s).join("-")})`}else if(o)return xs(o)?`${n} for max ${o.argmax}`:po(o)?`${n} for min ${o.argmin}`:`${Yf(o)} of ${n}`;return n}function Gae(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(xs(t))return`${r} for argmax(${t.argmax})`;if(po(t))return`${r} for argmin(${t.argmin})`;const o=i&&!ja(i)?kt(i):void 0,s=t||o?.unit||o?.maxbins&&"timeunit"||He(n)&&"bin";return s?`${s.toUpperCase()}(${r})`:r}const q6=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return Gae(e);default:return Wae(e,t)}};let W6=q6;function G6(e){W6=e}function Hae(){G6(q6)}function wu(e,t,{allowDisabling:n,includeDefault:i=!0}){const r=Jw(e)?.title;if(!q(e))return r??e.title;const o=e,s=i?Qw(o,t):void 0;return n?ft(r,o.title,s):r??o.title??s}function Jw(e){if(Ku(e)&&e.axis)return e.axis;if(U6(e)&&e.legend)return e.legend;if(Xw(e)&&e.header)return e.header}function Qw(e,t){return W6(e,t)}function Up(e){if(j6(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}else{const t=Jw(e)??{},{format:n,formatType:i}=t;return{format:n,formatType:i}}}function Vae(e,t){switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Kw(e)&&X(e.sort))return"ordinal";const{aggregate:n,bin:i,timeUnit:r}=e;if(r)return"temporal";if(i||n&&!xs(n)&&!po(n))return"quantitative";if(qa(e)&&e.scale?.type)switch(Vb[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function ji(e){if(q(e))return e;if(B0(e))return e.condition}function xt(e){if(fe(e))return e;if(id(e))return e.condition}function H6(e,t,n,i={}){if(de(e)||Ze(e)||Vf(e)){const r=de(e)?"string":Ze(e)?"number":"boolean";return j(Hoe(t,r,e)),{value:e}}return fe(e)?jp(e,t,n,i):id(e)?{...e,condition:jp(e.condition,t,n,i)}:e}function jp(e,t,n,i){if(j6(e)){const{format:r,formatType:o,...s}=e;if(wa(o)&&!n.customFormatTypes)return j(R_(t)),jp(s,t,n,i)}else{const r=Ku(e)?"axis":U6(e)?"legend":Xw(e)?"header":null;if(r&&e[r]){const{format:o,formatType:s,...a}=e[r];if(wa(s)&&!n.customFormatTypes)return j(R_(t)),jp({...e,[r]:a},t,n,i)}}return q(e)?Zw(e,t,i):Yae(e)}function Yae(e){let t=e.type;if(t)return e;const{datum:n}=e;return t=Ze(n)?"quantitative":de(n)?"nominal":Ua(n)?"temporal":void 0,{...e,type:t}}function Zw(e,t,{compositeMark:n=!1}={}){const{aggregate:i,timeUnit:r,bin:o,field:s}=e,a={...e};if(!n&&i&&!Sw(i)&&!xs(i)&&!po(i)&&(j(Yoe(i)),delete a.aggregate),r&&(a.timeUnit=kt(r)),s&&(a.field=`${s}`),He(o)&&(a.bin=U0(o,t)),Nt(o)&&!dt(t)&&j($se(t)),Cn(a)){const{type:u}=a,l=Jse(u);u!==l&&(a.type=l),u!=="quantitative"&&k0(i)&&(j(Voe(u,i)),a.type="quantitative")}else if(!zN(t)){const u=Vae(a,t);a.type=u}if(Cn(a)){const{compatible:u,warning:l}=Xae(a,t)||{};u===!1&&j(l)}if(Kw(a)&&de(a.sort)){const{sort:u}=a;if(B_(u))return{...a,sort:{encoding:u}};const l=u.substring(1);if(u.charAt(0)==="-"&&B_(l))return{...a,sort:{encoding:l,order:"descending"}}}if(Xw(a)){const{header:u}=a;if(u){const{orient:l,...c}=u;if(l)return{...a,header:{...c,labelOrient:u.labelOrient||l,titleOrient:u.titleOrient||l}}}}return a}function U0(e,t){return Vf(e)?{maxbins:C_(t)}:e==="binned"?{binned:!0}:!e.maxbins&&!e.step?{...e,maxbins:C_(t)}:e}const iu={compatible:!0};function Xae(e,t){const n=e.type;if(n==="geojson"&&t!=="shape")return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case ro:case oo:case A0:return Bp(e)?iu:{compatible:!1,warning:Qoe(t)};case et:case Mt:case hs:case xl:case Bn:case Mr:case Or:case Xf:case Kf:case S0:case ya:case C0:case $0:case Pa:case Ei:case Yi:case _0:return iu;case Ki:case xi:case Xi:case Ji:return n!==va?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:iu;case Ao:case gs:case ms:case ys:case wo:case Eo:case vo:case Vi:case Tr:case ps:return n==="nominal"&&!e.sort?{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`}:iu;case Un:case bs:return!Bp(e)&&!jae(e)?{compatible:!1,warning:Zoe(t)}:iu;case Hu:return e.type==="nominal"&&!("sort"in e)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:iu}}function Ju(e){const{formatType:t}=Up(e);return t==="time"||!t&&Kae(e)}function Kae(e){return e&&(e.type==="temporal"||q(e)&&!!e.timeUnit)}function j0(e,{timeUnit:t,type:n,wrapTime:i,undefinedIfExprNotRequired:r}){const o=t&&kt(t)?.unit;let s=o||n==="temporal",a;return Qf(e)?a=e.expr:Q(e)?a=e.signal:Ua(e)?(s=!0,a=xa(e)):(de(e)||Ze(e))&&s&&(a=`datetime(${je(e)})`,Ise(o)&&(Ze(e)&&e<1e4||de(e)&&isNaN(Date.parse(e)))&&(a=xa({[o]:e}))),a?i&&s?`time(${a})`:a:r?void 0:je(e)}function V6(e,t){const{type:n}=e;return t.map(i=>{const r=q(e)&&!ja(e.timeUnit)?e.timeUnit:void 0,o=j0(i,{timeUnit:r,type:n,undefinedIfExprNotRequired:!0});return o!==void 0?{signal:o}:i})}function rd(e,t){return He(e.bin)?Nr(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const q_={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 od(e){return e?.condition}const Y6=["domain","grid","labels","ticks","title"],Jae={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"},X6={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},Qae={...X6,style:1,labelExpr:1,encoding:1};function W_(e){return pt(Qae,e)}const Zae={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},K6=B(Zae);function Co(e){return U(e,"mark")}class q0{constructor(t,n){this.name=t,this.run=n}hasMatchingType(t){return Co(t)?_ae(t.mark)===this.name:!1}}function ea(e,t){const n=e&&e[t];return n?X(n)?Wu(n,i=>!!i.field):q(n)||B0(n):!1}function J6(e,t){const n=e&&e[t];return n?X(n)?Wu(n,i=>!!i.field):q(n)||Lr(n)||id(n):!1}function Q6(e,t){if(dt(t)){const n=e[t];if((q(n)||Lr(n))&&(b6(n.type)||q(n)&&n.timeUnit)){const i=xw(t);return J6(e,i)}}return!1}function Z6(e){return Wu(Yre,t=>{if(ea(e,t)){const n=e[t];if(X(n))return Wu(n,i=>!!i.aggregate);{const i=ji(n);return i&&!!i.aggregate}}return!1})}function e4(e,t){const n=[],i=[],r=[],o=[],s={};return eA(e,(a,u)=>{if(q(a)){const{field:l,aggregate:c,bin:f,timeUnit:d,...h}=a;if(c||d||f){const g=Jw(a)?.title;let m=H(a,{forAs:!0});const y={...g?[]:{title:wu(a,t,{allowDisabling:!0})},...h,field:m};if(c){let b;if(xs(c)?(b="argmax",m=H({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${m}.${l}`):po(c)?(b="argmin",m=H({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${m}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(b=c),b){const x={op:b,as:m};l&&(x.field=l),o.push(x)}}else if(n.push(m),Cn(a)&&He(f)){if(i.push({bin:f,field:l,as:m}),n.push(H(a,{binSuffix:"end"})),rd(a,u)&&n.push(H(a,{binSuffix:"range"})),dt(u)){const b={field:`${m}_end`};s[`${u}2`]=b}y.bin="binned",zN(u)||(y.type=va)}else if(d&&!ja(d)){r.push({timeUnit:d,field:l,as:m});const b=Cn(a)&&a.type!==Vu&&"time";b&&(u===Xf||u===ya?y.formatType=b:ooe(u)?y.legend={formatType:b,...y.legend}:dt(u)&&(y.axis={formatType:b,...y.axis}))}s[u]=y}else n.push(l),s[u]=e[u]}else s[u]=e[u]}),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:s}}function eue(e,t,n){const i=aoe(t,n);if(i){if(i==="binned"){const r=e[t===Vi?et:Mt];return!!(q(r)&&q(e[t])&&Nt(r.bin))}}else return!1;return!0}function tue(e,t,n,i){const r={};for(const o of B(e))IN(o)||j(Joe(o));for(let o of eoe){if(!e[o])continue;const s=e[o];if(Jf(o)){const a=Zre(o),u=r[a];if(q(u)&&Kse(u.type)&&q(s)&&!u.timeUnit){j(Goe(a));continue}}if(o==="angle"&&t==="arc"&&!e.theta&&(j(Woe),o=Ei),!eue(e,o,t)){j(T0(o,t));continue}if(o===wo&&t==="line"&&ji(e[o])?.aggregate){j(Koe);continue}if(o===Bn&&(n?"fill"in e:"stroke"in e)){j(n6("encoding",{fill:"fill"in e,stroke:"stroke"in e}));continue}if(o===Kf||o===Hu&&!X(s)&&!Ui(s)||o===ya&&X(s)){if(s){if(o===Hu){const a=e[o];if(B6(a)){r[o]=a;continue}}r[o]=ct(s).reduce((a,u)=>(q(u)?a.push(Zw(u,o)):j(Hb(u,o)),a),[])}}else{if(o===ya&&s===null)r[o]=null;else if(!q(s)&&!Lr(s)&&!Ui(s)&&!nd(s)&&!Q(s)){j(Hb(s,o));continue}r[o]=H6(s,o,i)}}return r}function W0(e,t){const n={};for(const i of B(e)){const r=H6(e[i],i,t,{compositeMark:!0});n[i]=r}return n}function nue(e){const t=[];for(const n of B(e))if(ea(e,n)){const i=e[n],r=ct(i);for(const o of r)q(o)?t.push(o):B0(o)&&t.push(o.condition)}return t}function eA(e,t,n){if(e)for(const i of B(e)){const r=e[i];if(X(r))for(const o of r)t.call(n,o,i);else t.call(n,r,i)}}function iue(e,t,n,i){return e?B(e).reduce((r,o)=>{const s=e[o];return X(s)?s.reduce((a,u)=>t.call(i,a,u,o),r):t.call(i,r,s,o)},n):n}function t4(e,t){return B(t).reduce((n,i)=>{switch(i){case et:case Mt:case C0:case _0:case $0:case Vi:case Tr:case hs:case xl:case Ei:case Eo:case Yi:case vo:case ps:case Xi:case Ki:case Ji:case xi:case Xf:case Un:case Pa:case ya:return n;case Hu:if(e==="line"||e==="trail")return n;case Kf:case S0:{const r=t[i];if(X(r)||q(r))for(const o of ct(r))o.aggregate||n.push(H(o,{}));return n}case wo:if(e==="trail")return n;case Bn:case Mr:case Or:case Ao:case gs:case ms:case bs:case ys:{const r=ji(t[i]);return r&&!r.aggregate&&n.push(H(r,{})),n}}},[])}function rue(e){const{tooltip:t,...n}=e;if(!t)return{filteredEncoding:n};let i,r;if(X(t)){for(const o of t)o.aggregate?(i||(i=[]),i.push(o)):(r||(r=[]),r.push(o));i&&(n.tooltip=i)}else t.aggregate?n.tooltip=t:r=t;return X(r)&&r.length===1&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}function Kb(e,t,n,i=!0){if("tooltip"in n)return{tooltip:n.tooltip};const r=e.map(({fieldPrefix:s,titlePrefix:a})=>{const u=i?` of ${tA(t)}`:"";return{field:s+t.field,type:t.type,title:Q(a)?{signal:`${a}"${escape(u)}"`}:a+u}}),o=nue(n).map(Bae);return{tooltip:[...r,...cr(o,Ae)]}}function tA(e){const{title:t,field:n}=e;return ft(t,n)}function nA(e,t,n,i,r){const{scale:o,axis:s}=n;return({partName:a,mark:u,positionPrefix:l,endPositionPrefix:c=void 0,extraEncoding:f={}})=>{const d=tA(n);return n4(e,a,r,{mark:u,encoding:{[t]:{field:`${l}_${n.field}`,type:n.type,...d!==void 0?{title:d}:{},...o!==void 0?{scale:o}:{},...s!==void 0?{axis:s}:{}},...de(c)?{[`${t}2`]:{field:`${c}_${n.field}`}}:{},...i,...f}})}}function n4(e,t,n,i){const{clip:r,color:o,opacity:s}=e,a=e.type;return e[t]||e[t]===void 0&&n[t]?[{...i,mark:{...n[t],...r?{clip:r}:{},...o?{color:o}:{},...s?{opacity:s}:{},...Sr(i.mark)?i.mark:{type:i.mark},style:`${a}-${String(t)}`,...Vf(e[t])?{}:e[t]}}]:[]}function i4(e,t,n){const{encoding:i}=e,r=t==="vertical"?"y":"x",o=i[r],s=i[`${r}2`],a=i[`${r}Error`],u=i[`${r}Error2`];return{continuousAxisChannelDef:Bd(o,n),continuousAxisChannelDef2:Bd(s,n),continuousAxisChannelDefError:Bd(a,n),continuousAxisChannelDefError2:Bd(u,n),continuousAxis:r}}function Bd(e,t){if(e?.aggregate){const{aggregate:n,...i}=e;return n!==t&&j(Cse(n,t)),i}else return e}function r4(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(Sr(n)&&n.orient)return n.orient;if(Wo(r)){if(Wo(o)){const s=q(r)&&r.aggregate,a=q(o)&&o.aggregate;if(!s&&a===t)return"vertical";if(!a&&s===t)return"horizontal";if(s===t&&a===t)throw new Error("Both x and y cannot have aggregate");return Ju(o)&&!Ju(r)?"horizontal":"vertical"}return"horizontal"}else{if(Wo(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}}const qp="boxplot",oue=["box","median","outliers","rule","ticks"],sue=new q0(qp,s4);function o4(e){return Ze(e)?"tukey":e}function s4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{mark:n,encoding:i,params:r,projection:o,...s}=e,a=Sr(n)?n:{type:n};r&&j(e6("boxplot"));const u=a.extent??t.boxplot.extent,l=Be("size",a,t),c=a.invalid,f=o4(u),{bins:d,timeUnits:h,transform:p,continuousAxisChannelDef:g,continuousAxis:m,groupby:y,aggregate:b,encodingWithoutContinuousAxis:x,ticksOrient:v,boxOrient:w,customTooltipWithoutAggregatedField:A}=aue(e,u,t),E=bl(g.field),{color:S,size:C,..._}=x,k=dd=>nA(a,m,g,dd,t.boxplot),N=k(_),T=k(x),F=(Fe(t.boxplot.box)?t.boxplot.box.color:t.mark.color)||"#4c78a8",$=k({..._,...C?{size:C}:{},color:{condition:{test:`${Le(`lower_box_${g.field}`)} >= ${Le(`upper_box_${g.field}`)}`,...S||{value:F}}}}),D=Kb([{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,x),P={type:"tick",color:"black",opacity:1,orient:v,invalid:c,aria:!1},z=f==="min-max"?D:Kb([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,x),I=[...N({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:z}),...N({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:z}),...N({partName:"ticks",mark:P,positionPrefix:"lower_whisker",extraEncoding:z}),...N({partName:"ticks",mark:P,positionPrefix:"upper_whisker",extraEncoding:z})],V=[...f!=="tukey"?I:[],...T({partName:"box",mark:{type:"bar",...l?{size:l}:{},orient:w,invalid:c,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:D}),...$({partName:"median",mark:{type:"tick",invalid:c,...Fe(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...l?{size:l}:{},orient:v,aria:!1},positionPrefix:"mid_box",extraEncoding:D})];if(f==="min-max")return{...s,transform:(s.transform??[]).concat(p),layer:V};const ue=Le(`lower_box_${g.field}`),ie=Le(`upper_box_${g.field}`),he=`(${ie} - ${ue})`,We=`${ue} - ${u} * ${he}`,pe=`${ie} + ${u} * ${he}`,Ht=Le(g.field),ws={joinaggregate:a4(g.field),groupby:y},_o={transform:[{filter:`(${We} <= ${Ht}) && (${Ht} <= ${pe})`},{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}`},...b],groupby:y}],layer:I},{tooltip:Y,...ge}=_,{scale:ve,axis:W}=g,Ot=tA(g),Ne=Rn(W,["title"]),Vt=n4(a,"outliers",t.boxplot,{transform:[{filter:`(${Ht} < ${We}) || (${Ht} > ${pe})`}],mark:"point",encoding:{[m]:{field:g.field,type:g.type,...Ot!==void 0?{title:Ot}:{},...ve!==void 0?{scale:ve}:{},...Ue(Ne)?{}:{axis:Ne}},...ge,...S?{color:S}:{},...A?{tooltip:A}:{}}})[0];let At;const Zi=[...d,...h,ws];return Vt?At={transform:Zi,layer:[Vt,_o]}:(At=_o,At.transform.unshift(...Zi)),{...s,layer:[At,{transform:p,layer:V}]}}function a4(e){const t=bl(e);return[{op:"q1",field:e,as:`lower_box_${t}`},{op:"q3",field:e,as:`upper_box_${t}`}]}function aue(e,t,n){const i=r4(e,qp),{continuousAxisChannelDef:r,continuousAxis:o}=i4(e,i,qp),s=r.field,a=bl(s),u=o4(t),l=[...a4(s),{op:"median",field:s,as:`mid_box_${a}`},{op:"min",field:s,as:(u==="min-max"?"lower_whisker_":"min_")+a},{op:"max",field:s,as:(u==="min-max"?"upper_whisker_":"max_")+a}],c=u==="min-max"||u==="tukey"?[]:[{calculate:`${Le(`upper_box_${a}`)} - ${Le(`lower_box_${a}`)}`,as:`iqr_${a}`},{calculate:`min(${Le(`upper_box_${a}`)} + ${Le(`iqr_${a}`)} * ${t}, ${Le(`max_${a}`)})`,as:`upper_whisker_${a}`},{calculate:`max(${Le(`lower_box_${a}`)} - ${Le(`iqr_${a}`)} * ${t}, ${Le(`min_${a}`)})`,as:`lower_whisker_${a}`}],{[o]:f,...d}=e.encoding,{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=rue(d),{bins:g,timeUnits:m,aggregate:y,groupby:b,encoding:x}=e4(p,n),v=i==="vertical"?"horizontal":"vertical",w=i,A=[...g,...m,{aggregate:[...y,...l],groupby:b},...c];return{bins:g,timeUnits:m,transform:A,groupby:b,aggregate:y,continuousAxisChannelDef:r,continuousAxis:o,encodingWithoutContinuousAxis:x,ticksOrient:v,boxOrient:w,customTooltipWithoutAggregatedField:h}}const iA="errorbar",uue=["ticks","rule"],lue=new q0(iA,u4);function u4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:s,markDef:a,outerSpec:u,tooltipEncoding:l}=l4(e,iA,t);delete o.size;const c=nA(a,r,i,o,t.errorbar),f=a.thickness,d=a.size,h={type:"tick",orient:s,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return{...u,transform:n,...p.length>1?{layer:p}:{...p[0]}}}function cue(e,t){const{encoding:n}=e;if(fue(n))return{orient:r4(e,t),inputType:"raw"};const i=due(n),r=hue(n),o=n.x,s=n.y;if(i){if(r)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const a=n.x2,u=n.y2;if(fe(a)&&fe(u))throw new Error(`${t} cannot have both x2 and y2`);if(fe(a)){if(Wo(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}else if(fe(u)){if(Wo(s))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")}else{const a=n.xError,u=n.xError2,l=n.yError,c=n.yError2;if(fe(u)&&!fe(a))throw new Error(`${t} cannot have xError2 without xError`);if(fe(c)&&!fe(l))throw new Error(`${t} cannot have yError2 without yError`);if(fe(a)&&fe(l))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(fe(a)){if(Wo(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(fe(l)){if(Wo(s))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function fue(e){return(fe(e.x)||fe(e.y))&&!fe(e.x2)&&!fe(e.y2)&&!fe(e.xError)&&!fe(e.xError2)&&!fe(e.yError)&&!fe(e.yError2)}function due(e){return fe(e.x2)||fe(e.y2)}function hue(e){return fe(e.xError)||fe(e.xError2)||fe(e.yError)||fe(e.yError2)}function l4(e,t,n){const{mark:i,encoding:r,params:o,projection:s,...a}=e,u=Sr(i)?i:{type:i};o&&j(e6(t));const{orient:l,inputType:c}=cue(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:g}=i4(e,l,t),{errorBarSpecificAggregate:m,postAggregateCalculates:y,tooltipSummary:b,tooltipTitleWithFieldName:x}=pue(u,f,d,h,p,c,t,n),{[g]:v,[g==="x"?"x2":"y2"]:w,[g==="x"?"xError":"yError"]:A,[g==="x"?"xError2":"yError2"]:E,...S}=r,{bins:C,timeUnits:_,aggregate:k,groupby:N,encoding:T}=e4(S,n),F=[...k,...m],$=c!=="raw"?[]:N,D=Kb(b,f,T,x);return{transform:[...a.transform??[],...C,..._,...F.length===0?[]:[{aggregate:F,groupby:$}],...y],groupby:$,continuousAxisChannelDef:f,continuousAxis:g,encodingWithoutContinuousAxis:T,ticksOrient:l==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:a,tooltipEncoding:D}}function pue(e,t,n,i,r,o,s,a){let u=[],l=[];const c=t.field;let f,d=!1;if(o==="raw"){const h=e.center?e.center:e.extent?e.extent==="iqr"?"median":"mean":a.errorbar.center,p=e.extent?e.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(p==="iqr")&&j(Sse(h,p,s)),p==="stderr"||p==="stdev")u=[{op:p,field:c,as:`extent_${c}`},{op:h,field:c,as:`center_${c}`}],l=[{calculate:`${Le(`center_${c}`)} + ${Le(`extent_${c}`)}`,as:`upper_${c}`},{calculate:`${Le(`center_${c}`)} - ${Le(`extent_${c}`)}`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:Yf(h)},{fieldPrefix:"upper_",titlePrefix:G_(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:G_(h,p,"-")}],d=!0;else{let g,m,y;p==="ci"?(g="mean",m="ci0",y="ci1"):(g="median",m="q1",y="q3"),u=[{op:m,field:c,as:`lower_${c}`},{op:y,field:c,as:`upper_${c}`},{op:g,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:wu({field:c,aggregate:y,type:"quantitative"},a,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:wu({field:c,aggregate:m,type:"quantitative"},a,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:wu({field:c,aggregate:g,type:"quantitative"},a,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&j(Ase(e.center,e.extent)),o==="aggregated-upper-lower"?(f=[],l=[{calculate:Le(n.field),as:`upper_${c}`},{calculate:Le(c),as:`lower_${c}`}]):o==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:c}],l=[{calculate:`${Le(c)} + ${Le(i.field)}`,as:`upper_${c}`}],r?l.push({calculate:`${Le(c)} + ${Le(r.field)}`,as:`lower_${c}`}):l.push({calculate:`${Le(c)} - ${Le(i.field)}`,as:`lower_${c}`}));for(const h of l)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:ma(ma(h.calculate,"datum['",""),"']","")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:u,tooltipSummary:f,tooltipTitleWithFieldName:d}}function G_(e,t,n){return`${Yf(e)} ${n} ${t}`}const rA="errorband",gue=["band","borders"],mue=new q0(rA,c4);function c4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:s,outerSpec:a,tooltipEncoding:u}=l4(e,rA,t),l=s,c=nA(l,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={...l.interpolate?{interpolate:l.interpolate}:{},...l.tension&&l.interpolate?{tension:l.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):l.interpolate?j(L_("interpolate")):l.tension&&j(L_("tension")),{...a,transform:n,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const f4={};function oA(e,t,n){const i=new q0(e,t);f4[e]={normalizer:i,parts:n}}function yue(){return B(f4)}oA(qp,s4,oue);oA(iA,u4,uue);oA(rA,c4,gue);const bue=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],d4={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"},h4={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"},xue=B(d4),vue=B(h4),Eue={header:1,headerRow:1,headerColumn:1,headerFacet:1},p4=B(Eue),g4=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],wue={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},Aue={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},qi="_vgsid_",Sue={point:{on:"click",fields:[qi],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 sA(e){return e==="legend"||!!e?.legend}function F1(e){return sA(e)&&Fe(e)}function aA(e){return!!e?.select}function m4(e){const t=[];for(const n of e||[]){if(aA(n))continue;const{expr:i,bind:r,...o}=n;if(r&&i){const s={...o,bind:r,init:i};t.push(s)}else{const s={...o,...i?{update:i}:{},...r?{bind:r}:{}};t.push(s)}}return t}function Cue(e){return G0(e)||lA(e)||uA(e)}function uA(e){return U(e,"concat")}function G0(e){return U(e,"vconcat")}function lA(e){return U(e,"hconcat")}function y4({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function Cr(e){return U(e,"step")}function H_(e){return U(e,"view")||U(e,"width")||U(e,"height")}const V_=20,$ue={align:1,bounds:1,center:1,columns:1,spacing:1},_ue=B($ue);function Fue(e,t,n){const i=n[t],r={},{spacing:o,columns:s}=i;o!==void 0&&(r.spacing=o),s!==void 0&&(z0(e)&&!td(e.facet)||uA(e))&&(r.columns=s),G0(e)&&(r.columns=1);for(const a of _ue)if(e[a]!==void 0)if(a==="spacing"){const u=e[a];r[a]=Ze(u)?u:{row:u.row??o,column:u.column??o}}else r[a]=e[a];return r}function Jb(e,t){return e[t]??e[t==="width"?"continuousWidth":"continuousHeight"]}function Qb(e,t){const n=Wp(e,t);return Cr(n)?n.step:b4}function Wp(e,t){const n=e[t]??e[t==="width"?"discreteWidth":"discreteHeight"];return ft(n,{step:e.step})}const b4=20,kue={continuousWidth:200,continuousHeight:200,step:b4},Due={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:kue,mark:Eae,arc:{},area:{},bar:Cae,circle:{},geoshape:{},image:{},line:{},point:{},rect:Ww,rule:{color:"black"},square:{},text:{color:"black"},tick:$ae,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:nae,projection:{},legend:wue,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:Sue,style:{},title:{},facet:{spacing:V_},concat:{spacing:V_},normalizedNumberFormat:".0%"},Ur=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Y_={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},X_={blue:Ur[0],orange:Ur[1],red:Ur[2],teal:Ur[3],green:Ur[4],yellow:Ur[5],purple:Ur[6],pink:Ur[7],brown:Ur[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 Tue(e={}){return{signals:[{name:"color",value:Fe(e)?{...X_,...e}:X_}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}function Mue(e){return{signals:[{name:"fontSize",value:Fe(e)?{...Y_,...e}:Y_}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}function Oue(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}function x4(e){const t=B(e||{}),n={};for(const i of t){const r=e[i];n[i]=od(r)?VN(r):Vn(r)}return n}function Rue(e){const t=B(e),n={};for(const i of t)n[i]=x4(e[i]);return n}const Nue=[...F6,...K6,...p4,"background","padding","legend","lineBreak","scale","style","title","view"];function v4(e={}){const{color:t,font:n,fontSize:i,selection:r,...o}=e,s=SN({},ce(Due),n?Oue(n):{},t?Tue(t):{},i?Mue(i):{},o||{});r&&E0(s,"selection",r,!0);const a=Rn(s,Nue);for(const u of["background","lineBreak","padding"])s[u]&&(a[u]=Vn(s[u]));for(const u of F6)s[u]&&(a[u]=Lt(s[u]));for(const u of K6)s[u]&&(a[u]=x4(s[u]));for(const u of p4)s[u]&&(a[u]=Lt(s[u]));if(s.legend&&(a.legend=Lt(s.legend)),s.scale){const{invalid:u,...l}=s.scale,c=Lt(u,{level:1});a.scale={...Lt(l),...B(c).length>0?{invalid:c}:{}}}return s.style&&(a.style=Rue(s.style)),s.title&&(a.title=Lt(s.title)),s.view&&(a.view=Lt(s.view)),a}const Lue=new Set(["view",...gae]),Pue=["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"],Iue={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...vae};function zue(e){e=ce(e);for(const t of Pue)delete e[t];if(e.axis)for(const t in e.axis)od(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of bue)delete e.legend[t];if(e.mark){for(const t of I_)delete e.mark[t];e.mark.tooltip&&Fe(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(m4(e.params)),delete e.params);for(const t of Lue){for(const i of I_)delete e[t][i];const n=Iue[t];if(n)for(const i of n)delete e[t][i];Uue(e,t)}for(const t of yue())delete e[t];Bue(e);for(const t in e)Fe(e[t])&&Ue(e[t])&&delete e[t];return Ue(e)?void 0:e}function Bue(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:i}=HN(e.title);Ue(t)||(e.style["group-title"]={...e.style["group-title"],...t}),Ue(n)||(e.style["group-subtitle"]={...e.style["group-subtitle"],...n}),Ue(i)?delete e.title:e.title=i}function Uue(e,t,n,i){const r=e[t];t==="view"&&(n="cell");const o={...r,...e.style[n??t]};Ue(o)||(e.style[n??t]=o),delete e[t]}function H0(e){return U(e,"layer")}function jue(e){return U(e,"repeat")}function que(e){return!X(e.repeat)&&U(e.repeat,"layer")}class cA{map(t,n){return z0(t)?this.mapFacet(t,n):jue(t)?this.mapRepeat(t,n):lA(t)?this.mapHConcat(t,n):G0(t)?this.mapVConcat(t,n):uA(t)?this.mapConcat(t,n):this.mapLayerOrUnit(t,n)}mapLayerOrUnit(t,n){if(H0(t))return this.mapLayer(t,n);if(Co(t))return this.mapUnit(t,n);throw new Error(Cw(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 Wue={zero:1,center:1,normalize:1};function Gue(e){return pt(Wue,e)}const Hue=new Set([C6,N0,R0,Pp,P0,jw,qw,L0,$6,Uw]),Vue=new Set([N0,R0,C6]);function ru(e){return q(e)&&Xu(e)==="quantitative"&&!e.bin}function K_(e,t,{orient:n,type:i}){const r=t==="x"?"y":"radius",o=t==="x"&&["bar","area"].includes(i),s=e[t],a=e[r];if(q(s)&&q(a))if(ru(s)&&ru(a)){if(s.stack)return t;if(a.stack)return r;const u=q(s)&&!!s.aggregate,l=q(a)&&!!a.aggregate;if(u!==l)return u?t:r;if(o){if(n==="vertical")return r;if(n==="horizontal")return t}}else{if(ru(s))return t;if(ru(a))return r}else{if(ru(s))return o&&n==="vertical"?void 0:t;if(ru(a))return o&&n==="horizontal"?void 0:r}}function Yue(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function E4(e,t){const n=Sr(e)?e:{type:e},i=n.type;if(!Hue.has(i))return null;const r=K_(t,"x",n)||K_(t,"theta",n);if(!r)return null;const o=t[r],s=q(o)?H(o,{}):void 0,a=Yue(r),u=[],l=new Set;if(t[a]){const g=t[a],m=q(g)?H(g,{}):void 0;m&&m!==s&&(u.push(a),l.add(m))}const c=a==="x"?"xOffset":"yOffset",f=t[c],d=q(f)?H(f,{}):void 0;d&&d!==s&&(u.push(c),l.add(d));const h=toe.reduce((g,m)=>{if(m!=="tooltip"&&ea(t,m)){const y=t[m];for(const b of ct(y)){const x=ji(b);if(x.aggregate)continue;const v=H(x,{});(!v||!l.has(v))&&g.push({channel:m,fieldDef:x})}}return g},[]);let p;return o.stack!==void 0?Vf(o.stack)?p=o.stack?"zero":null:p=o.stack:Vue.has(i)&&(p="zero"),!p||!Gue(p)||Z6(t)&&h.length===0?null:(o?.scale?.type&&o?.scale?.type!==Pt.LINEAR&&o?.stack&&j(vse(o.scale.type)),fe(t[Rr(r)])?(o.stack!==void 0&&j(xse(r)),null):(q(o)&&o.aggregate&&!poe.has(o.aggregate)&&j(Ese(o.aggregate)),{groupbyChannels:u,groupbyFields:l,fieldChannel:r,impute:o.impute===null?!1:vs(i),stackBy:h,offset:p}))}function w4(e,t,n){const i=Lt(e),r=Be("orient",i,n);if(i.orient=Que(i.type,t,r),r!==void 0&&r!==i.orient&&j(ise(i.orient,r)),i.type==="bar"&&i.orient){const u=Be("cornerRadiusEnd",i,n);if(u!==void 0){const l=i.orient==="horizontal"&&t.x2||i.orient==="vertical"&&t.y2?["cornerRadius"]:Aae[i.orient];for(const c of l)i[c]=u;i.cornerRadiusEnd!==void 0&&delete i.cornerRadiusEnd}}const o=Be("opacity",i,n),s=Be("fillOpacity",i,n);return o===void 0&&s===void 0&&(i.opacity=Kue(i.type,t)),Be("cursor",i,n)===void 0&&(i.cursor=Xue(i,t,n)),i}function Xue(e,t,n){return t.href||e.href||Be("href",e,n)?"pointer":e.cursor}function Kue(e,t){if(we([P0,Uw,jw,qw],e)&&!Z6(t))return .7}function Jue(e,t,{graticule:n}){if(n)return!1;const i=Ar("filled",e,t),r=e.type;return ft(i,r!==P0&&r!==L0&&r!==Pp)}function Que(e,t,n){switch(e){case P0:case jw:case qw:case $6:case hae:case dae:return}const{x:i,y:r,x2:o,y2:s}=t;switch(e){case N0:if(q(i)&&(Nt(i.bin)||q(r)&&r.aggregate&&!i.aggregate))return"vertical";if(q(r)&&(Nt(r.bin)||q(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(s||o){if(n)return n;if(!o)return(q(i)&&i.type===va&&!He(i.bin)||zp(i))&&q(r)&&Nt(r.bin)?"horizontal":"vertical";if(!s)return(q(r)&&r.type===va&&!He(r.bin)||zp(r))&&q(i)&&Nt(i.bin)?"vertical":"horizontal"}case Pp:if(o&&!(q(i)&&Nt(i.bin))&&s&&!(q(r)&&Nt(r.bin)))return;case R0:if(s)return q(r)&&Nt(r.bin)?"horizontal":"vertical";if(o)return q(i)&&Nt(i.bin)?"vertical":"horizontal";if(e===Pp){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case L0:case Uw:{const a=j_(i),u=j_(r);if(n)return n;if(a&&!u)return e!=="tick"?"horizontal":"vertical";if(!a&&u)return e!=="tick"?"vertical":"horizontal";if(a&&u)return"vertical";{const l=Cn(i)&&i.type===Vu,c=Cn(r)&&r.type===Vu;if(l&&!c)return"vertical";if(!l&&c)return"horizontal"}return}}return"vertical"}function Zue(e){const{point:t,line:n,...i}=e;return B(i).length>1?i:i.type}function ele(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:Rn(e[t],["point","line"])});return e}function k1(e,t={},n){return e.point==="transparent"?{opacity:0}:e.point?Fe(e.point)?e.point:{}:e.point!==void 0?null:t.point||n.shape?Fe(t.point)?t.point:{}:void 0}function J_(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 tle{constructor(){this.name="path-overlay"}hasMatchingType(t,n){if(Co(t)){const{mark:i,encoding:r}=t,o=Sr(i)?i:{type:i};switch(o.type){case"line":case"rule":case"trail":return!!k1(o,n[o.type],r);case"area":return!!k1(o,n[o.type],r)||!!J_(o,n[o.type])}}return!1}run(t,n,i){const{config:r}=n,{params:o,projection:s,mark:a,name:u,encoding:l,...c}=t,f=W0(l,r),d=Sr(a)?a:{type:a},h=k1(d,r[d.type],f),p=d.type==="area"&&J_(d,r[d.type]),g=[{name:u,...o?{params:o}:{},mark:Zue({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:Rn(f,["shape"])}],m=E4(w4(d,f,r),f);let y=f;if(m){const{fieldChannel:b,offset:x}=m;y={...f,[b]:{...f[b],...x?{stack:x}:{}}}}return y=Rn(y,["y2","x2"]),p&&g.push({...s?{projection:s}:{},mark:{type:"line",...qu(d,["clip","interpolate","tension","tooltip"]),...p},encoding:y}),h&&g.push({...s?{projection:s}:{},mark:{type:"point",opacity:1,filled:!0,...qu(d,["clip","tooltip"]),...h},encoding:y}),i({...c,layer:g},{...n,config:ele(r)})}}function nle(e,t){return t?td(e)?S4(e,t):A4(e,t):e}function D1(e,t){return t?S4(e,t):e}function Zb(e,t,n){const i=t[e];if(Iae(i)){if(i.repeat in n)return{...t,[e]:n[i.repeat]};j(Roe(i.repeat));return}return t}function A4(e,t){if(e=Zb("field",e,t),e!==void 0){if(e===null)return null;if(Kw(e)&&so(e.sort)){const n=Zb("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function Q_(e,t){if(q(e))return A4(e,t);{const n=Zb("datum",e,t);return n!==e&&!n.type&&(n.type="nominal"),n}}function Z_(e,t){if(fe(e)){const n=Q_(e,t);if(n)return n;if(nd(e))return{condition:e.condition}}else{if(id(e)){const n=Q_(e.condition,t);if(n)return{...e,condition:n};{const{condition:i,...r}=e;return r}}return e}}function S4(e,t){const n={};for(const i in e)if(U(e,i)){const r=e[i];if(X(r))n[i]=r.map(o=>Z_(o,t)).filter(o=>o);else{const o=Z_(r,t);o!==void 0&&(n[i]=o)}}return n}class ile{constructor(){this.name="RuleForRangedLine"}hasMatchingType(t){if(Co(t)){const{encoding:n,mark:i}=t;if(i==="line"||Sr(i)&&i.type==="line")for(const r of Qre){const o=Ia(r),s=n[o];if(n[r]&&(q(s)&&!Nt(s.bin)||Lr(s)))return!0}}return!1}run(t,n,i){const{encoding:r,mark:o}=t;return j(nse(!!r.x2,!!r.y2)),i({...t,mark:Fe(o)?{...o,type:"rule"}:"rule"},n)}}class rle extends cA{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[sue,lue,mue,new tle,new ile]}map(t,n){if(Co(t)){const i=ea(t.encoding,ro),r=ea(t.encoding,oo),o=ea(t.encoding,A0);if(i||r||o)return this.mapFacetedUnit(t,n)}return super.map(t,n)}mapUnit(t,n){const{parentEncoding:i,parentProjection:r}=n,o=D1(t.encoding,n.repeater),s={...t,...t.name?{name:[n.repeaterPrefix,t.name].filter(u=>u).join("_")}:{},...o?{encoding:o}:{}};if(i||r)return this.mapUnitWithParentEncodingOrProjection(s,n);const a=this.mapLayerOrUnit.bind(this);for(const u of this.nonFacetUnitNormalizers)if(u.hasMatchingType(s,n.config))return u.run(s,n,a);return s}mapRepeat(t,n){return que(t)?this.mapLayerRepeat(t,n):this.mapNonLayerRepeat(t,n)}mapLayerRepeat(t,n){const{repeat:i,spec:r,...o}=t,{row:s,column:a,layer:u}=i,{repeater:l={},repeaterPrefix:c=""}=n;return s||a?this.mapRepeat({...t,repeat:{...s?{row:s}:{},...a?{column:a}:{}},spec:{repeat:{layer:u},spec:r}},n):{...o,layer:u.map(f=>{const d={...l,layer:f},h=`${(r.name?`${r.name}_`:"")+c}child__layer_${Qe(f)}`,p=this.mapLayerOrUnit(r,{...n,repeater:d,repeaterPrefix:h});return p.name=h,p})}}mapNonLayerRepeat(t,n){const{repeat:i,spec:r,data:o,...s}=t;!X(i)&&t.columns&&(t=Rn(t,["columns"]),j(M_("repeat")));const a=[],{repeater:u={},repeaterPrefix:l=""}=n,c=!X(i)&&i.row||[u?u.row:null],f=!X(i)&&i.column||[u?u.column:null],d=X(i)&&i||[u?u.repeat:null];for(const p of d)for(const g of c)for(const m of f){const y={repeat:p,row:g,column:m,layer:u.layer},b=(r.name?`${r.name}_`:"")+l+"child__"+(X(i)?`${Qe(p)}`:(i.row?`row_${Qe(g)}`:"")+(i.column?`column_${Qe(m)}`:"")),x=this.map(r,{...n,repeater:y,repeaterPrefix:b});x.name=b,a.push(Rn(x,["data"]))}const h=X(i)?t.columns:i.column?i.column.length:1;return{data:r.data??o,align:"all",...s,columns:h,concat:a}}mapFacet(t,n){const{facet:i}=t;return td(i)&&t.columns&&(t=Rn(t,["columns"]),j(M_("facet"))),super.mapFacet(t,n)}mapUnitWithParentEncodingOrProjection(t,n){const{encoding:i,projection:r}=t,{parentEncoding:o,parentProjection:s,config:a}=n,u=tF({parentProjection:s,projection:r}),l=eF({parentEncoding:o,encoding:D1(i,n.repeater)});return this.mapUnit({...t,...u?{projection:u}:{},...l?{encoding:l}:{}},{config:a})}mapFacetedUnit(t,n){const{row:i,column:r,facet:o,...s}=t.encoding,{mark:a,width:u,projection:l,height:c,view:f,params:d,encoding:h,...p}=t,{facetMapping:g,layout:m}=this.getFacetMappingAndLayout({row:i,column:r,facet:o},n),y=D1(s,n.repeater);return this.mapFacet({...p,...m,facet:g,spec:{...u?{width:u}:{},...c?{height:c}:{},...f?{view:f}:{},...l?{projection:l}:{},mark:a,encoding:y,...d?{params:d}:{}}},n)}getFacetMappingAndLayout(t,n){const{row:i,column:r,facet:o}=t;if(i||r){o&&j(ese([...i?[ro]:[],...r?[oo]:[]]));const s={},a={};for(const u of[ro,oo]){const l=t[u];if(l){const{align:c,center:f,spacing:d,columns:h,...p}=l;s[u]=p;for(const g of["align","center","spacing"])l[g]!==void 0&&(a[g]??(a[g]={}),a[g][u]=l[g])}}return{facetMapping:s,layout:a}}else{const{align:s,center:a,spacing:u,columns:l,...c}=o;return{facetMapping:nle(c,n.repeater),layout:{...s?{align:s}:{},...a?{center:a}:{},...u?{spacing:u}:{},...l?{columns:l}:{}}}}}mapLayer(t,{parentEncoding:n,parentProjection:i,...r}){const{encoding:o,projection:s,...a}=t,u={...r,parentEncoding:eF({parentEncoding:n,encoding:o,layer:!0}),parentProjection:tF({parentProjection:i,projection:s})};return super.mapLayer({...a,...t.name?{name:[u.repeaterPrefix,t.name].filter(l=>l).join("_")}:{}},u)}}function eF({parentEncoding:e,encoding:t={},layer:n}){let i={};if(e){const r=new Set([...B(e),...B(t)]);for(const o of r){const s=t[o],a=e[o];if(fe(s)){const u={...a,...s};i[o]=u}else id(s)?i[o]={...s,condition:{...a,...s.condition}}:s||s===null?i[o]=s:(n||Ui(a)||Q(a)||fe(a)||X(a))&&(i[o]=a)}}else i=t;return!i||Ue(i)?void 0:i}function tF(e){const{parentProjection:t,projection:n}=e;return t&&n&&j(qoe({parentProjection:t,projection:n})),n??t}function fA(e){return U(e,"filter")}function ole(e){return U(e,"stop")}function C4(e){return U(e,"lookup")}function sle(e){return U(e,"data")}function ale(e){return U(e,"param")}function ule(e){return U(e,"pivot")}function lle(e){return U(e,"density")}function cle(e){return U(e,"quantile")}function fle(e){return U(e,"regression")}function dle(e){return U(e,"loess")}function hle(e){return U(e,"sample")}function ple(e){return U(e,"window")}function gle(e){return U(e,"joinaggregate")}function mle(e){return U(e,"flatten")}function yle(e){return U(e,"calculate")}function $4(e){return U(e,"bin")}function ble(e){return U(e,"impute")}function xle(e){return U(e,"timeUnit")}function vle(e){return U(e,"aggregate")}function Ele(e){return U(e,"stack")}function wle(e){return U(e,"fold")}function Ale(e){return U(e,"extent")&&!U(e,"density")&&!U(e,"regression")}function Sle(e){return e.map(t=>fA(t)?{filter:vu(t.filter,Xse)}:t)}class Cle extends cA{map(t,n){return n.emptySelections??(n.emptySelections={}),n.selectionPredicates??(n.selectionPredicates={}),t=nF(t,n),super.map(t,n)}mapLayerOrUnit(t,n){if(t=nF(t,n),t.encoding){const i={};for(const[r,o]of is(t.encoding))i[r]=_4(o,n);t={...t,encoding:i}}return super.mapLayerOrUnit(t,n)}mapUnit(t,n){const{selection:i,...r}=t;return i?{...r,params:is(i).map(([o,s])=>{const{init:a,bind:u,empty:l,...c}=s;c.type==="single"?(c.type="point",c.toggle=!1):c.type==="multi"&&(c.type="point"),n.emptySelections[o]=l!=="none";for(const f of qt(n.selectionPredicates[o]??{}))f.empty=l!=="none";return{name:o,value:a,select:c,bind:u}})}:t}}function nF(e,t){const{transform:n,...i}=e;if(n){const r=n.map(o=>{if(fA(o))return{filter:ex(o,t)};if($4(o)&&za(o.bin))return{...o,bin:F4(o.bin)};if(C4(o)){const{selection:s,...a}=o.from;return s?{...o,from:{param:s,...a}}:o}return o});return{...i,transform:r}}return e}function _4(e,t){const n=ce(e);if(q(n)&&za(n.bin)&&(n.bin=F4(n.bin)),qa(n)&&n.scale?.domain?.selection){const{selection:i,...r}=n.scale.domain;n.scale.domain={...r,...i?{param:i}:{}}}if(nd(n))if(X(n.condition))n.condition=n.condition.map(i=>{const{selection:r,param:o,test:s,...a}=i;return o?i:{...a,test:ex(i,t)}});else{const{selection:i,param:r,test:o,...s}=_4(n.condition,t);n.condition=r?n.condition:{...s,test:ex(n.condition,t)}}return n}function F4(e){const t=e.extent;if(t?.selection){const{selection:n,...i}=t;return{...e,extent:{...i,param:n}}}return e}function ex(e,t){const n=i=>vu(i,r=>{var o;const s=t.emptySelections[r]??!0,a={param:r,empty:s};return(o=t.selectionPredicates)[r]??(o[r]=[]),t.selectionPredicates[r].push(a),a});return e.selection?n(e.selection):vu(e.test||e.filter,i=>i.selection?n(i.selection):i)}class tx extends cA{map(t,n){const i=n.selections??[];if(t.params&&!Co(t)){const r=[];for(const o of t.params)aA(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 s of i)if(!s.views||!s.views.length)o.push(s);else for(const a of s.views)(de(a)&&(a===t.name||r.includes(a))||X(a)&&a.map(u=>r.indexOf(u)).every((u,l,c)=>u!==-1&&(l===0||u>c[l-1])))&&o.push(s);return o.length&&(t.params=o),t}}for(const e of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const t=tx.prototype[e];tx.prototype[e]=function(n,i){return t.call(this,n,$le(n,i))}}function $le(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function k4(e,t){t===void 0&&(t=v4(e.config));const n=Dle(e,t),{width:i,height:r}=e,o=Tle(n,{width:i,height:r,autosize:e.autosize},t);return{...n,...o?{autosize:o}:{}}}const _le=new rle,Fle=new Cle,kle=new tx;function Dle(e,t={}){const n={config:t};return kle.map(_le.map(Fle.map(e,n),n),n)}function iF(e){return de(e)?{type:e}:e??{}}function Tle(e,t,n){let{width:i,height:r}=t;const o=Co(e)||H0(e),s={};o?i=="container"&&r=="container"?(s.type="fit",s.contains="padding"):i=="container"?(s.type="fit-x",s.contains="padding"):r=="container"&&(s.type="fit-y",s.contains="padding"):(i=="container"&&(j(F_("width")),i=void 0),r=="container"&&(j(F_("height")),r=void 0));const a={type:"pad",...s,...n?iF(n.autosize):{},...iF(e.autosize)};if(a.type==="fit"&&!o&&(j(Aoe),a.type="pad"),i=="container"&&!(a.type=="fit"||a.type=="fit-x")&&j(k_("width")),r=="container"&&!(a.type=="fit"||a.type=="fit-y")&&j(k_("height")),!Xn(a,{type:"pad"}))return a}function Mle(e){return["fit","fit-x","fit-y"].includes(e)}function Ole(e){return e?`fit-${F0(e)}`:"fit"}const Rle=["background","padding"];function rF(e,t){const n={};for(const i of Rle)e&&e[i]!==void 0&&(n[i]=Vn(e[i]));return t&&(n.params=e.params),n}class $o{constructor(t={},n={}){this.explicit=t,this.implicit=n}clone(){return new $o(ce(this.explicit),ce(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(t){return ft(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 B(t.combine())){const i=t.getWithExplicit(n);this.setWithExplicit(n,i)}}}function or(e){return{explicit:!0,value:e}}function Wn(e){return{explicit:!1,value:e}}function D4(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:V0(t,n,i,r)}}function V0(e,t,n,i){return e.explicit&&t.explicit&&j(dse(n,i,e.value,t.value)),e}function ss(e,t,n,i,r=V0){return e===void 0||e.value===void 0?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:Xn(e.value,t.value)?e:r(e,t,n,i)}class Nle extends $o{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 Qu(e){return U(e,"url")}function ff(e){return U(e,"values")}function T4(e){return U(e,"name")&&!Qu(e)&&!ff(e)&&!Xo(e)}function Xo(e){return e&&(M4(e)||O4(e)||dA(e))}function M4(e){return U(e,"sequence")}function O4(e){return U(e,"sphere")}function dA(e){return U(e,"graticule")}var it;(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"})(it||(it={}));function R4({invalid:e,isPath:t}){switch(k6(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 Lle(e){const{marks:t,scales:n}=R4(e);return t===n?it.Main:n==="include-invalid-values"?it.PreFilterInvalid:it.PostFilterInvalid}class ze{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){if(this._children.includes(t)){j(Boe);return}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 Nn extends ze{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 ${DN()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(t){this._source=t}}function T1(e){return e.as!==void 0}function oF(e){return`${e}_end`}class pr extends ze{clone(){return new pr(null,ce(this.timeUnits))}constructor(t,n){super(t),this.timeUnits=n}static makeFromEncoding(t,n){const i=n.reduceFieldDef((r,o,s)=>{const{field:a,timeUnit:u}=o;if(u){let l;if(ja(u)){if(nt(n)){const{mark:c,markDef:f,config:d}=n,h=os({fieldDef:o,markDef:f,config:d});(cf(c)||h)&&(l={timeUnit:kt(u),field:a})}}else l={as:H(o,{forAs:!0}),field:a,timeUnit:u};if(nt(n)){const{mark:c,markDef:f,config:d}=n,h=os({fieldDef:o,markDef:f,config:d});cf(c)&&dt(s)&&h!==.5&&(l.rectBandPosition=h)}l&&(r[Ae(l)]=l)}return r},{});return Ue(i)?null:new pr(t,i)}static makeFromTransform(t,n){const{timeUnit:i,...r}={...n},o=kt(i),s={...r,timeUnit:o};return new pr(t,{[Ae(s)]:s})}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 is(this.timeUnits)){const o=T1(r)?r.as:`${r.field}_end`;t.has(o)||(n[i]=r)}this.timeUnits=n}producedFields(){return new Set(qt(this.timeUnits).map(t=>T1(t)?t.as:oF(t.field)))}dependentFields(){return new Set(qt(this.timeUnits).map(t=>t.field))}hash(){return`TimeUnit ${Ae(this.timeUnits)}`}assemble(){const t=[];for(const n of qt(this.timeUnits)){const{rectBandPosition:i}=n,r=kt(n.timeUnit);if(T1(n)){const{field:o,as:s}=n,{unit:a,utc:u,...l}=r,c=[s,`${s}_end`];t.push({field:bi(o),type:"timeunit",...a?{units:M0(a)}:{},...u?{timezone:"utc"}:{},...l,as:c}),t.push(...sF(c,i,r))}else if(n){const{field:o}=n,s=o.replaceAll("\\.","."),a=N4({timeUnit:r,field:s}),u=oF(s);t.push({type:"formula",expr:a,as:u}),t.push(...sF([s,u],i,r))}}return t}}const Y0="offsetted_rect_start",X0="offsetted_rect_end";function N4({timeUnit:e,field:t,reverse:n}){const{unit:i,utc:r}=e,o=f6(i),{part:s,step:a}=g6(o,e.step);return`${r?"utcOffset":"timeOffset"}('${s}', ${Le(t)}, ${n?-a:a})`}function sF([e,t],n,i){if(n!==void 0&&n!==.5){const r=Le(e),o=Le(t);return[{type:"formula",expr:aF([N4({timeUnit:i,field:e,reverse:!0}),r],n+.5),as:`${e}_${Y0}`},{type:"formula",expr:aF([r,o],n+.5),as:`${e}_${X0}`}]}return[]}function aF([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const sd="_tuple_fields";class Ple{constructor(...t){this.items=t,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const Ile={defined:()=>!0,parse:(e,t,n)=>{const i=t.name,r=t.project??(t.project=new Ple),o={},s={},a=new Set,u=(p,g)=>{const m=g==="visual"?p.channel:p.field;let y=Qe(`${i}_${m}`);for(let b=1;a.has(y);b++)y=Qe(`${i}_${m}_${b}`);return a.add(y),{[g]:y}},l=t.type,c=e.config.selection[l],f=n.value!==void 0?ct(n.value):null;let{fields:d,encodings:h}=Fe(n.select)?n.select:{};if(!d&&!h&&f){for(const p of f)if(Fe(p))for(const g of B(p))Jre(g)?(h||(h=[])).push(g):l==="interval"?(j(Ooe),h=c.encodings):(d??(d=[])).push(g)}!d&&!h&&(h=c.encodings,"fields"in c&&(d=c.fields));for(const p of h??[]){const g=e.fieldDef(p);if(g){let m=g.field;if(g.aggregate){j(Soe(p,g.aggregate));continue}else if(!m){j(T_(p));continue}if(g.timeUnit&&!ja(g.timeUnit)){m=e.vgField(p);const y={timeUnit:g.timeUnit,as:m,field:g.field};s[Ae(y)]=y}if(!o[m]){const y=l==="interval"&&Nr(p)&&Bi(e.getScaleComponent(p).get("type"))?"R":g.bin?"R-RE":"E",b={field:m,channel:p,type:y,index:r.items.length};b.signals={...u(b,"data"),...u(b,"visual")},r.items.push(o[m]=b),r.hasField[m]=o[m],r.hasSelectionId=r.hasSelectionId||m===qi,LN(p)?(b.geoChannel=p,b.channel=NN(p),r.hasChannel[b.channel]=o[m]):r.hasChannel[p]=o[m]}}else j(T_(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===qi}f&&(t.init=f.map(p=>r.items.map(g=>Fe(p)?p[g.geoChannel||g.channel]!==void 0?p[g.geoChannel||g.channel]:p[g.field]:p))),Ue(s)||(r.timeUnit=new pr(null,s))},signals:(e,t,n)=>{const i=t.name+sd;return n.filter(o=>o.name===i).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map(z4)})}},L4="_curr",wh="anim_value",uu="anim_clock",nx="eased_anim_clock",P4="min_extent",I4="max_range_extent",M1="last_tick_at",O1="is_playing",zle=1/60*1e3,Ble=(e,t)=>[{name:nx,update:uu},{name:`${e}_domain`,init:`domain('${t}')`},{name:P4,init:`extent(${e}_domain)[0]`},{name:I4,init:`extent(range('${t}'))[1]`},{name:wh,update:`invert('${t}', ${nx})`}],Ule={defined:e=>e.type==="point",topLevelSignals:(e,t,n)=>(gr(t)&&(n=n.concat([{name:uu,init:"0",on:[{events:{type:"timer",throttle:zle},update:`${O1} ? (${uu} + (now() - ${M1}) > ${I4} ? 0 : ${uu} + (now() - ${M1})) : ${uu}`}]},{name:M1,init:"now()",on:[{events:[{signal:uu},{signal:O1}],update:"now()"}]},{name:O1,init:"true"}])),n),signals:(e,t,n)=>{const i=t.name,r=i+sd,o=t.project,s="(item().isVoronoi ? datum.datum : datum)",a=qt(e.component.selection??{}).reduce((c,f)=>f.type==="interval"?c.concat(f.name+Au):c,[]).map(c=>`indexof(item().mark.name, '${c}') < 0`).join(" && "),u=`datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0${a?` && ${a}`:""}`;let l=`unit: ${ta(e)}, `;if(t.project.hasSelectionId)l+=`${qi}: ${s}[${_e(qi)}]`;else if(gr(t))l+=`fields: ${r}, values: [${wh} ? ${wh} : ${P4}]`;else{const c=o.items.map(f=>e.fieldDef(f.channel)?.bin?`[${s}[${_e(e.vgField(f.channel,{}))}], ${s}[${_e(e.vgField(f.channel,{binSuffix:"end"}))}]]`:`${s}[${_e(f.field)}]`).join(", ");l+=`fields: ${r}, values: [${c}]`}if(gr(t))return n.concat(Ble(t.name,e.scaleName(ps)),[{name:i+mo,on:[{events:[{signal:nx},{signal:wh}],update:`{${l}}`,force:!0}]}]);{const c=t.events;return n.concat([{name:i+mo,on:c?[{events:c,update:`${u} ? {${l}} : null`,force:!0}]:[]}])}}};function z4(e){const{signals:t,hasLegend:n,index:i,...r}=e;return r.field=bi(r.field),r}function Aa(e,t=!0,n=Mre){if(X(e)){const i=e.map(r=>Aa(r,t,n));return t?`[${i.join(", ")}]`:i}else if(Ua(e))return n(t?xa(e):Pse(e));return t?n(je(e)):e}function jle(e,t){for(const n of qt(e.component.selection??{})){const i=n.name;let r=`${i}${mo}, ${n.resolve==="global"?"true":`{unit: ${ta(e)}}`}`;for(const o of J0)o.defined(n)&&(o.signals&&(t=o.signals(e,n,t)),o.modifyExpr&&(r=o.modifyExpr(e,n,r)));t.push({name:i+gce,on:[{events:{signal:n.name+mo},update:`modify(${_e(n.name+Sa)}, ${r})`}]})}return hA(t)}function qle(e,t){if(e.component.selection&&B(e.component.selection).length){const n=_e(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:ds("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return hA(t)}function Wle(e,t){let n=!1;for(const i of qt(e.component.selection??{})){const r=i.name,o=_e(r+Sa);if(t.filter(a=>a.name===r).length===0){const a=i.resolve==="global"?"union":i.resolve,u=i.type==="point"?", true, true)":")";t.push({name:i.name,update:`${nL}(${o}, ${_e(a)}${u}`})}n=!0;for(const a of J0)a.defined(i)&&a.topLevelSignals&&(t=a.topLevelSignals(e,i,t))}return n&&t.filter(r=>r.name==="unit").length===0&&t.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),hA(t)}function Gle(e,t){const n=[],i=[],r=ta(e,{escape:!1});for(const o of qt(e.component.selection??{})){const s={name:o.name+Sa};if(o.project.hasSelectionId&&(s.transform=[{type:"collect",sort:{field:qi}}]),o.init){const u=o.project.items.map(z4);s.values=o.project.hasSelectionId?o.init.map(l=>({unit:r,[qi]:Aa(l,!1)[0]})):o.init.map(l=>({unit:r,fields:u,values:Aa(l,!1)}))}if([...n,...t].filter(u=>u.name===o.name+Sa).length||n.push(s),gr(o)&&t.length){const u=e.lookupDataSource(e.getDataName(it.Main)),l=t.find(f=>f.name===u),c=l.transform.find(f=>f.type==="filter"&&f.expr.includes("vlSelectionTest"));if(c){l.transform=l.transform.filter(d=>d!==c);const f={name:l.name+L4,source:l.name,transform:[c]};i.push(f)}}}return n.concat(t,i)}function B4(e,t){for(const n of qt(e.component.selection??{}))for(const i of J0)i.defined(n)&&i.marks&&(t=i.marks(e,n,t));return t}function Hle(e,t){for(const n of e.children)nt(n)&&(t=B4(n,t));return t}function Vle(e,t,n,i){const r=hL(e,t.param,t);return{signal:Bi(n.get("type"))&&X(i)&&i[0]>i[1]?`isValid(${r}) && reverse(${r})`:r}}function hA(e){return e.map(t=>(t.on&&!t.on.length&&delete t.on,t))}const ao={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(!Nr(r))continue;const o=e.getScaleComponent(r),s=o?o.get("type"):void 0;if(s=="sequential"&&j(Foe),!o||!Bi(s)){j(_oe);continue}o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter(s=>n.filter(a=>a.name===s.signals.data).length===0);if(!e.parent||rx(e)||i.length===0)return n;const r=n.find(s=>s.name===t.name);let o=r.update;if(o.includes(nL))r.update=`{${i.map(s=>`${_e(bi(s.field))}: ${s.signals.data}`).join(", ")}}`;else{for(const s of i){const a=`${_e(bi(s.field))}: ${s.signals.data}`;o.includes(a)||(o=`${o.substring(0,o.length-1)}, ${a}}`)}r.update=o}return n.concat(i.map(s=>({name:s.signals.data})))},signals:(e,t,n)=>{if(e.parent&&!rx(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 ix(e,t){return`domain(${_e(e.scaleName(t))})`}function rx(e){return e.parent&&Cl(e.parent)&&(!e.parent.parent||rx(e.parent.parent))}const Au="_brush",U4="_scale_trigger",Yl="geo_interval_init_tick",j4="_init",Yle="_center",Xle={defined:e=>e.type==="interval",parse:(e,t,n)=>{var i;if(e.hasProjection){const r={...oa(n.select)?n.select:{}};r.fields=[qi],r.encodings||(r.encodings=n.value?B(n.value):[Ki,Xi]),n.select={type:"interval",...r}}if(t.translate&&!ao.defined(t)){const r=`!event.item || event.item.mark.name !== ${_e(t.name+Au)}`;for(const o of t.events){if(!o.between){j(`${o} is not an ordered event stream for interval selections.`);continue}const s=ct((i=o.between[0]).filter??(i.filter=[]));s.includes(r)||s.push(r)}}},signals:(e,t,n)=>{const i=t.name,r=i+mo,o=qt(t.project.hasChannel).filter(a=>a.channel===et||a.channel===Mt),s=t.init?t.init[0]:null;if(n.push(...o.reduce((a,u)=>a.concat(Kle(e,t,u,s&&s[u.index])),[])),e.hasProjection){const a=_e(e.projectionName()),u=e.projectionName()+Yle,{x:l,y:c}=t.project.hasChannel,f=l&&l.signals.visual,d=c&&c.signals.visual,h=l?s&&s[l.index]:`${u}[0]`,p=c?s&&s[c.index]:`${u}[1]`,g=w=>e.getSizeSignalRef(w).signal,m=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":g("width")}, ${d?d+"[1]":g("height")}]]`;s&&(n.unshift({name:i+j4,init:`[scale(${a}, [${l?h[0]:h}, ${c?p[0]:p}]), scale(${a}, [${l?h[1]:h}, ${c?p[1]:p}])]`}),(!l||!c)&&(n.find(A=>A.name===u)||n.unshift({name:u,update:`invert(${a}, [${g("width")}/2, ${g("height")}/2])`})));const y=`intersect(${m}, {markname: ${_e(e.getName("marks"))}}, unit.mark)`,b=`{unit: ${ta(e)}}`,x=`vlSelectionTuples(${y}, ${b})`,v=o.map(w=>w.signals.visual);return n.concat({name:r,on:[{events:[...v.length?[{signal:v.join(" || ")}]:[],...s?[{signal:Yl}]:[]],update:x}]})}else{if(!ao.defined(t)){const l=i+U4,c=o.map(f=>{const d=f.channel,{data:h,visual:p}=f.signals,g=_e(e.scaleName(d)),m=e.getScaleComponent(d).get("type"),y=Bi(m)?"+":"";return`(!isArray(${h}) || (${y}invert(${g}, ${p})[0] === ${y}${h}[0] && ${y}invert(${g}, ${p})[1] === ${y}${h}[1]))`});c.length&&n.push({name:l,value:{},on:[{events:o.map(f=>({scale:e.scaleName(f.channel)})),update:c.join(" && ")+` ? ${l} : {}`}]})}const a=o.map(l=>l.signals.data),u=`unit: ${ta(e)}, fields: ${i+sd}, values`;return n.concat({name:r,...s?{init:`{${u}: ${Aa(s)}}`}:{},...a.length?{on:[{events:[{signal:a.join(" || ")}],update:`${a.join(" && ")} ? {${u}: [${a}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>(nt(e)&&e.hasProjection&&t.init&&(n.filter(r=>r.name===Yl).length||n.unshift({name:Yl,value:null,on:[{events:"timer{1}",update:`${Yl} === null ? {} : ${Yl}`}]})),n),marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,s=r?.signals.visual,a=o?.signals.visual,u=`data(${_e(t.name+Sa)})`;if(ao.defined(t)||!r&&!o)return n;const l={x:r!==void 0?{signal:`${s}[0]`}:{value:0},y:o!==void 0?{signal:`${a}[0]`}:{value:0},x2:r!==void 0?{signal:`${s}[1]`}:{field:{group:"width"}},y2:o!==void 0?{signal:`${a}[1]`}:{field:{group:"height"}}};if(t.resolve==="global")for(const m of B(l))l[m]=[{test:`${u}.length && ${u}[0].unit === ${ta(e)}`,...l[m]},{value:0}];const{fill:c,fillOpacity:f,cursor:d,...h}=t.mark,p=B(h).reduce((m,y)=>(m[y]=[{test:[r!==void 0&&`${s}[0] !== ${s}[1]`,o!==void 0&&`${a}[0] !== ${a}[1]`].filter(b=>b).join(" && "),value:h[y]},{value:null}],m),{}),g=d??(t.translate?"move":null);return[{name:`${i+Au}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:c},fillOpacity:{value:f}},update:l}},...n,{name:i+Au,type:"rect",clip:!0,encode:{enter:{...g?{cursor:{value:g}}:{},fill:{value:"transparent"}},update:{...l,...p}}}]}};function Kle(e,t,n,i){const r=!e.hasProjection,o=n.channel,s=n.signals.visual,a=_e(r?e.scaleName(o):e.projectionName()),u=d=>`scale(${a}, ${d})`,l=e.getSizeSignalRef(o===et?"width":"height").signal,c=`${o}(unit)`,f=t.events.reduce((d,h)=>[...d,{events:h.between[0],update:`[${c}, ${c}]`},{events:h,update:`[${s}[0], clamp(${c}, 0, ${l})]`}],[]);if(r){const d=n.signals.data,h=ao.defined(t),p=e.getScaleComponent(o),g=p?p.get("type"):void 0,m=i?{init:Aa(i,!0,u)}:{value:[]};return f.push({events:{signal:t.name+U4},update:Bi(g)?`[${u(`${d}[0]`)}, ${u(`${d}[1]`)}]`:"[0, 0]"}),h?[{name:d,on:[]}]:[{name:s,...m,on:f},{name:d,...i?{init:Aa(i)}:{},on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]}]}else{const d=o===et?0:1,h=t.name+j4,p=i?{init:`[${h}[0][${d}], ${h}[1][${d}]]`}:{value:[]};return[{name:s,...p,on:f}]}}function El({model:e,channelDef:t,vgChannel:n,invalidValueRef:i,mainRefFn:r}){const o=nd(t)&&t.condition;let s=[];o&&(s=ct(o).map(l=>{const c=r(l);if(Pae(l)){const{param:f,empty:d}=l;return{test:dL(e,{param:f,empty:d}),...c}}else return{test:Yp(e,l.test),...c}})),i!==void 0&&s.push(i);const a=r(t);return a!==void 0&&s.push(a),s.length>1||s.length===1&&s[0].test?{[n]:s}:s.length===1?{[n]:s[0]}:{}}function pA(e,t="text"){const n=e.encoding[t];return El({model:e,channelDef:n,vgChannel:t,mainRefFn:i=>K0(i,e.config),invalidValueRef:void 0})}function K0(e,t,n="datum"){if(e){if(Ui(e))return Ye(e.value);if(fe(e)){const{format:i,formatType:r}=Up(e);return Yw({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function q4(e,t={}){const{encoding:n,markDef:i,config:r,stack:o}=e,s=n.tooltip;if(X(s))return{tooltip:uF({tooltip:s},o,r,t)};{const a=t.reactiveGeom?"datum.datum":"datum";return El({model:e,channelDef:s,vgChannel:"tooltip",mainRefFn:l=>{const c=K0(l,r,a);if(c)return c;if(l===null)return;let f=Be("tooltip",i,r);if(f===!0&&(f={content:"encoding"}),de(f))return{value:f};if(Fe(f))return Q(f)?f:f.content==="encoding"?uF(n,o,r,t):{signal:a}},invalidValueRef:void 0})}}function W4(e,t,n,{reactiveGeom:i}={}){const r={...n,...n.tooltipFormat},o=new Set,s=i?"datum.datum":"datum",a=[];function u(c,f){const d=Ia(f),h=Cn(c)?c:{...c,type:e[d].type},p=h.title||Qw(h,r),g=ct(p).join(", ").replaceAll(/"/g,'\\"');let m;if(dt(f)){const y=f==="x"?"x2":"y2",b=ji(e[y]);if(Nt(h.bin)&&b){const x=H(h,{expr:s}),v=H(b,{expr:s}),{format:w,formatType:A}=Up(h);m=ed(x,v,w,A,r),o.add(y)}}if((dt(f)||f===Ei||f===Yi)&&t&&t.fieldChannel===f&&t.offset==="normalize"){const{format:y,formatType:b}=Up(h);m=Yw({fieldOrDatumDef:h,format:y,formatType:b,expr:s,config:r,normalizeStack:!0}).signal}m??(m=K0(h,r,s).signal),a.push({channel:f,key:g,value:m})}eA(e,(c,f)=>{q(c)?u(c,f):B0(c)&&u(c.condition,f)});const l={};for(const{channel:c,key:f,value:d}of a)!o.has(c)&&!l[f]&&(l[f]=d);return l}function uF(e,t,n,{reactiveGeom:i}={}){const r=W4(e,t,n,{reactiveGeom:i}),o=is(r).map(([s,a])=>`"${s}": ${a}`);return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function Jle(e){const{markDef:t,config:n}=e,i=Be("aria",t,n);return i===!1?{}:{...i?{aria:i}:{},...Qle(e),...Zle(e)}}function Qle(e){const{mark:t,markDef:n,config:i}=e;if(i.aria===!1)return{};const r=Be("ariaRoleDescription",n,i);return r!=null?{ariaRoleDescription:{value:r}}:pt(voe,t)?{}:{ariaRoleDescription:{value:t}}}function Zle(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return El({model:e,channelDef:o,vgChannel:"description",mainRefFn:u=>K0(u,e.config),invalidValueRef:void 0});const s=Be("description",n,i);if(s!=null)return{description:Ye(s)};if(i.aria===!1)return{};const a=W4(t,r,i);if(!Ue(a))return{description:{signal:is(a).map(([u,l],c)=>`"${c>0?"; ":""}${u}: " + (${l})`).join(" + ")}}}function It(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:s}=n;let{defaultRef:a,defaultValue:u}=n;const l=r[e];a===void 0&&(u??(u=Be(e,i,o,{vgChannel:s,ignoreVgConfig:!nd(l)})),u!==void 0&&(a=Ye(u)));const c={markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e)},f=T6({...c,scaleChannel:e,channelDef:l});return El({model:t,channelDef:l,vgChannel:s??e,invalidValueRef:f,mainRefFn:h=>Vw({...c,channel:e,channelDef:h,stack:null,defaultRef:a})})}function G4(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,s=t.filled??Be("filled",n,r),a=we(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,u=Be(s===!0?"color":void 0,n,r,{vgChannel:"fill"})??r.mark[s===!0&&"color"]??a,l=Be(s===!1?"color":void 0,n,r,{vgChannel:"stroke"})??r.mark[s===!1&&"color"],c=s?"fill":"stroke",f={...u?{fill:Ye(u)}:{},...l?{stroke:Ye(l)}:{}};return n.color&&(s?n.fill:n.stroke)&&j(n6("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...It("color",e,{vgChannel:c,defaultValue:s?u:l}),...It("fill",e,{defaultValue:i.fill?u:void 0}),...It("stroke",e,{defaultValue:i.stroke?l:void 0})}}function ece(e){const{encoding:t,mark:n}=e,i=t.order;return!vs(n)&&Ui(i)?El({model:e,channelDef:i,vgChannel:"zindex",mainRefFn:r=>Ye(r.value),invalidValueRef:void 0}):{}}function Zu({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,s=t[o],a=n[o];if((o==="xOffset"||o==="yOffset")&&a)return{offsetType:"encoding",offset:Vw({channel:o,channelDef:a,markDef:t,config:i?.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:Ye(s),bandPosition:r})};const u=t[o];return u?{offsetType:"visual",offset:u}:{}}function bn(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:s,stack:a}=t,u=r[e],l=r[Rr(e)],c=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=Zu({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),p=gA({model:t,defaultPos:n,channel:e,scaleName:c,scale:f}),g=!u&&dt(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:tce({channel:e,channelDef:u,channel2Def:l,markDef:o,config:s,scaleName:c,scale:f,stack:a,offset:d,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return g?{[i||e]:g}:void 0}function tce(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o,markDef:s}=e;if(fe(n)&&r&&t===r.fieldChannel){if(q(n)){let a=n.bandPosition;if(a===void 0&&s.type==="text"&&(t==="radius"||t==="theta")&&(a=.5),a!==void 0)return Ip({scaleName:i,fieldOrDatumDef:n,startSuffix:"start",bandPosition:a,offset:o})}return Zs(n,i,{suffix:"end"},{offset:o})}return Hw(e)}function gA({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:s}=e;return()=>{const a=Ia(n),u=rs(n),l=Be(n,o,s,{vgChannel:u});if(l!==void 0)return Lc(n,l);switch(t){case"zeroOrMin":return lF({scaleName:i,scale:r,mode:"zeroOrMin",mainChannel:a,config:s});case"zeroOrMax":return lF({scaleName:i,scale:r,mode:{zeroOrMax:{widthSignal:e.width.signal,heightSignal:e.height.signal}},mainChannel:a,config:s});case"mid":return{...e[jn(n)],mult:.5}}}}function lF({mainChannel:e,config:t,...n}){const i=D6(n),{mode:r}=n;if(i)return i;switch(e){case"radius":{if(r==="zeroOrMin")return{value:0};const{widthSignal:o,heightSignal:s}=r.zeroOrMax;return{signal:`min(${o},${s})/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 nce={left:"x",center:"xc",right:"x2"},ice={top:"y",middle:"yc",bottom:"y2"};function H4(e,t,n,i="middle"){if(e==="radius"||e==="theta")return rs(e);const r=e==="x"?"align":"baseline",o=Be(r,t,n);let s;return Q(o)?(j(tse(r)),s=void 0):s=o,e==="x"?nce[s||(i==="top"?"left":"center")]:ice[s||i]}function Gp(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?V4(e,t,{defaultPos:n,defaultPos2:i}):bn(e,t,{defaultPos:n})}function V4(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,s=Rr(e),a=jn(e),u=rce(t,i,s),l=u[a]?H4(e,r,o):rs(e);return{...bn(e,t,{defaultPos:n,vgChannel:l}),...u}}function rce(e,t,n){const{encoding:i,mark:r,markDef:o,stack:s,config:a}=e,u=Ia(n),l=jn(n),c=rs(n),f=i[u],d=e.scaleName(u),h=e.getScaleComponent(u),{offset:p}=n in i||n in o?Zu({channel:n,markDef:o,encoding:i,model:e}):Zu({channel:u,markDef:o,encoding:i,model:e});if(!f&&(n==="x2"||n==="y2")&&(i.latitude||i.longitude)){const m=jn(n),y=e.markDef[m];return y!=null?{[m]:{value:y}}:{[c]:{field:e.getName(n)}}}const g=oce({channel:n,channelDef:f,channel2Def:i[n],markDef:o,config:a,scaleName:d,scale:h,stack:s,offset:p,defaultRef:void 0});return g!==void 0?{[c]:g}:Ud(n,o)||Ud(n,{[n]:Gb(n,o,a.style),[l]:Gb(l,o,a.style)})||Ud(n,a[r])||Ud(n,a.mark)||{[c]:gA({model:e,defaultPos:t,channel:n,scaleName:d,scale:h})()}}function oce({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:s,stack:a,offset:u,defaultRef:l}){return fe(t)&&a&&e.charAt(0)===a.fieldChannel.charAt(0)?Zs(t,o,{suffix:"start"},{offset:u}):Hw({channel:e,channelDef:n,scaleName:o,scale:s,stack:a,markDef:i,config:r,offset:u,defaultRef:l})}function Ud(e,t){const n=jn(e),i=rs(e);if(t[i]!==void 0)return{[i]:Lc(e,t[i])};if(t[e]!==void 0)return{[i]:Lc(e,t[e])};if(t[n]){const r=t[n];if(Ea(r))j(Xoe(n));else return{[n]:Lc(e,r)}}}function go(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.type,s=Rr(t),a=jn(t),u=i[t],l=i[s],c=e.getScaleComponent(t),f=c?c.get("type"):void 0,d=r.orient,h=i[a]??i.size??Be("size",r,n,{vgChannel:a}),p=BN(t),g=o==="bar"&&(t==="x"?d==="vertical":d==="horizontal")||o==="tick"&&(t==="y"?d==="vertical":d==="horizontal");return q(u)&&(He(u.bin)||Nt(u.bin)||u.timeUnit&&!l)&&!(h&&!Ea(h))&&!i[p]&&!Dt(f)?uce({fieldDef:u,fieldDef2:l,channel:t,model:e}):(fe(u)&&Dt(f)||g)&&!l?ace(u,t,e):V4(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function sce(e,t,n,i,r,o,s){if(Ea(r))if(n){const u=n.get("type");if(u==="band"){let l=`bandwidth('${t}')`;r.band!==1&&(l=`${r.band} * ${l}`);const c=Ar("minBandSize",{type:s},i);return{signal:c?`max(${Mi(c)}, ${l})`:l}}else r.band!==1&&(j(ose(u)),r=void 0)}else return{mult:r.band,field:{group:e}};else{if(Q(r))return r;if(r)return{value:r}}if(n){const u=n.get("range");if(Ba(u)&&Ze(u.step))return{value:u.step-2}}if(!o){const{bandPaddingInner:u,barBandPaddingInner:l,rectBandPaddingInner:c,tickBandPaddingInner:f}=i.scale,d=ft(u,s==="tick"?f:s==="bar"?l:c);if(Q(d))return{signal:`(1 - (${d.signal})) * ${e}`};if(Ze(d))return{signal:`${1-d} * ${e}`}}return{value:Qb(i.view,e)-2}}function ace(e,t,n){const{markDef:i,encoding:r,config:o,stack:s}=n,a=i.orient,u=n.scaleName(t),l=n.getScaleComponent(t),c=jn(t),f=Rr(t),d=BN(t),h=n.scaleName(d),p=n.getScaleComponent(xw(t)),g=i.type==="tick"||a==="horizontal"&&t==="y"||a==="vertical"&&t==="x";let m;(r.size||i.size)&&(g?m=It("size",n,{vgChannel:c,defaultRef:Ye(i.size)}):j(lse(i.type)));const y=!!m,b=I6({channel:t,fieldDef:e,markDef:i,config:o,scaleType:(l||p)?.get("type"),useVlSizeChannel:g});m=m||{[c]:sce(c,h||u,p||l,o,b,!!e,i.type)};const x=(l||p)?.get("type")==="band"&&Ea(b)&&!y?"top":"middle",v=H4(t,i,o,x),w=v==="xc"||v==="yc",{offset:A,offsetType:E}=Zu({channel:t,markDef:i,encoding:r,model:n,bandPosition:w?.5:0}),S=Hw({channel:t,channelDef:e,markDef:i,config:o,scaleName:u,scale:l,stack:s,offset:A,defaultRef:gA({model:n,defaultPos:"mid",channel:t,scaleName:u,scale:l}),bandPosition:w?E==="encoding"?0:.5:Q(b)?{signal:`(1-${b})/2`}:Ea(b)?(1-b.band)/2:0});if(c)return{[v]:S,...m};{const C=rs(f),_=m[c],k=A?{..._,offset:A}:_;return{[v]:S,[C]:X(S)?[S[0],{...S[1],offset:k}]:{...S,offset:k}}}}function cF(e,t,n,i,r,o,s){if(RN(e))return 0;const a=e==="x"||e==="y2",u=a?-t/2:t/2;if(Q(n)||Q(r)||Q(i)||o){const l=Mi(n),c=Mi(r),f=Mi(i),d=Mi(o),p=o?`(${s} < ${d} ? ${a?"":"-"}0.5 * (${d} - (${s})) : ${u})`:u,g=f?`${f} + `:"",m=l?`(${l} ? -1 : 1) * `:"",y=c?`(${c} + ${p})`:p;return{signal:g+m+y}}else return r=r||0,i+(n?-r-u:+r+u)}function uce({fieldDef:e,fieldDef2:t,channel:n,model:i}){const{config:r,markDef:o,encoding:s}=i,a=i.getScaleComponent(n),u=i.scaleName(n),l=a?a.get("type"):void 0,c=a.get("reverse"),f=I6({channel:n,fieldDef:e,markDef:o,config:r,scaleType:l}),h=i.component.axes[n]?.[0]?.get("translate")??.5,p=dt(n)?Be("binSpacing",o,r)??0:0,g=Rr(n),m=rs(n),y=rs(g),b=Ar("minBandSize",o,r),{offset:x}=Zu({channel:n,markDef:o,encoding:s,model:i,bandPosition:0}),{offset:v}=Zu({channel:g,markDef:o,encoding:s,model:i,bandPosition:0}),w=Tae({fieldDef:e,scaleName:u}),A=cF(n,p,c,h,x,b,w),E=cF(g,p,c,h,v??x,b,w),S=Q(f)?{signal:`(1-${f.signal})/2`}:Ea(f)?(1-f.band)/2:.5,C=os({fieldDef:e,fieldDef2:t,markDef:o,config:r});if(He(e.bin)||e.timeUnit){const _=e.timeUnit&&C!==.5;return{[y]:fF({fieldDef:e,scaleName:u,bandPosition:S,offset:E,useRectOffsetField:_}),[m]:fF({fieldDef:e,scaleName:u,bandPosition:Q(S)?{signal:`1-${S.signal}`}:1-S,offset:A,useRectOffsetField:_})}}else if(Nt(e.bin)){const _=Zs(e,u,{},{offset:E});if(q(t))return{[y]:_,[m]:Zs(t,u,{},{offset:A})};if(za(e.bin)&&e.bin.step)return{[y]:_,[m]:{signal:`scale("${u}", ${H(e,{expr:"datum"})} + ${e.bin.step})`,offset:A}}}j(o6(g))}function fF({fieldDef:e,scaleName:t,bandPosition:n,offset:i,useRectOffsetField:r}){return Ip({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i,...r?{startSuffix:Y0,endSuffix:X0}:{}})}const lce=new Set(["aria","width","height"]);function wi(e,t){const{fill:n=void 0,stroke:i=void 0}=t.color==="include"?G4(e):{};return{...cce(e.markDef,t),...dF("fill",n),...dF("stroke",i),...It("opacity",e),...It("fillOpacity",e),...It("strokeOpacity",e),...It("strokeWidth",e),...It("strokeDash",e),...ece(e),...q4(e),...pA(e,"href"),...Jle(e)}}function dF(e,t){return t?{[e]:t}:{}}function cce(e,t){return xoe.reduce((n,i)=>(!lce.has(i)&&U(e,i)&&t[i]!=="ignore"&&(n[i]=Ye(e[i])),n),{})}function mA(e){const{config:t,markDef:n}=e,i=new Set;if(e.forEachFieldDef((r,o)=>{let s;if(!Nr(o)||!(s=e.getScaleType(o)))return;const a=k0(r.aggregate),u=Gw({scaleChannel:o,markDef:n,config:t,scaleType:s,isCountAggregate:a});if(Fae(u)){const l=e.vgField(o,{expr:"datum",binSuffix:e.stack?.impute?"mid":void 0});l&&i.add(l)}}),i.size>0)return{defined:{signal:[...i].map(o=>O0(o,!0)).join(" && ")}}}function hF(e,t){if(t!==void 0)return{[e]:Ye(t)}}const R1="voronoi",Y4={defined:e=>e.type==="point"&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(R1)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(vs(o))return j(Coe(o)),n;const s={name:e.getName(R1),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...q4(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 a=0,u=!1;return n.forEach((l,c)=>{const f=l.name??"";f===e.component.mark[0].name?a=c:f.includes(R1)&&(u=!0)}),u||n.splice(a+1,0,s),n}},X4={defined:e=>e.type==="point"&&e.resolve==="global"&&e.bind&&e.bind!=="scales"&&!sA(e.bind),parse:(e,t,n)=>iL(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,s=t.init&&t.init[0],a=Y4.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach((u,l)=>{const c=Qe(`${i}_${u.field}`);n.filter(d=>d.name===c).length||n.unshift({name:c,...s?{init:Aa(s[l])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${a}[${_e(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(l=>l.name===i+mo),s=i+sd,a=r.items.map(l=>Qe(`${i}_${l.field}`)),u=a.map(l=>`${l} !== null`).join(" && ");return a.length&&(o.update=`${u} ? {fields: ${s}, values: [${a.join(", ")}]} : null`),delete o.value,delete o.on,n}},Hp="_toggle",K4={defined:e=>e.type==="point"&&!gr(e)&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+Hp,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+mo,i=t.name+Hp;return`${i} ? null : ${n}, `+(t.resolve==="global"?`${i} ? null : true, `:`${i} ? null : {unit: ${ta(e)}}, `)+`${i} ? ${n} : null`}},fce={defined:e=>e.clear!==void 0&&e.clear!==!1&&!gr(e),parse:(e,t)=>{t.clear&&(t.clear=de(t.clear)?ds(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(X4.defined(t))for(const i of t.project.items){const r=n.findIndex(o=>o.name===Qe(`${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(s=>s.name===r.signals.visual);if(i(o,"[0, 0]"),o===-1){const s=n.findIndex(a=>a.name===r.signals.data);i(s,"null")}}else{let r=n.findIndex(o=>o.name===t.name+mo);i(r,"null"),K4.defined(t)&&(r=n.findIndex(o=>o.name===t.name+Hp),i(r,"false"))}return n}},J4={defined:e=>{const t=e.resolve==="global"&&e.bind&&sA(e.bind),n=e.project.items.length===1&&e.project.items[0].field!==qi;return t&&!n&&j(koe),t&&n},parse:(e,t,n)=>{const i=ce(n);if(i.select=de(i.select)?{type:i.select,toggle:t.toggle}:{...i.select,toggle:t.toggle},iL(t,i),oa(n.select)&&(n.select.on||n.select.clear)){const s='event.item && indexof(event.item.mark.role, "legend") < 0';for(const a of t.events)a.filter=ct(a.filter??[]),a.filter.includes(s)||a.filter.push(s)}const r=F1(t.bind)?t.bind.legend:"click",o=de(r)?ds(r,"view"):ct(r);t.bind={legend:{merge:o}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=F1(t.bind)&&t.bind.legend,o=s=>a=>{const u=ce(a);return u.markname=s,u};for(const s of t.project.items){if(!s.hasLegend)continue;const a=`${Qe(s.field)}_legend`,u=`${i}_${a}`;if(n.filter(c=>c.name===u).length===0){const c=r.merge.map(o(`${a}_symbols`)).concat(r.merge.map(o(`${a}_labels`))).concat(r.merge.map(o(`${a}_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(d=>d.name===i+mo),s=i+sd,a=r.items.filter(d=>d.hasLegend).map(d=>Qe(`${i}_${Qe(d.field)}_legend`)),l=`${a.map(d=>`${d} !== null`).join(" && ")} ? {fields: ${s}, values: [${a.join(", ")}]} : null`;t.events&&a.length>0?o.on.push({events:a.map(d=>({signal:d})),update:l}):a.length>0&&(o.update=l,delete o.value,delete o.on);const c=n.find(d=>d.name===i+Hp),f=F1(t.bind)&&t.bind.legend;return c&&(t.events?c.on.push({...c.on[0],events:f}):c.on[0].events=f),n}};function dce(e,t,n){const i=e.fieldDef(t)?.field;for(const r of qt(e.component.selection??{})){const o=r.project.hasField[i]??r.project.hasChannel[t];if(o&&J4.defined(r)){const s=n.get("selections")??[];s.push(r.name),n.set("selections",s,!1),o.hasLegend=!0}}}const Q4="_translate_anchor",Z4="_translate_delta",hce={defined:e=>e.type==="interval"&&e.translate,signals:(e,t,n)=>{const i=t.name,r=ao.defined(t),o=i+Q4,{x:s,y:a}=t.project.hasChannel;let u=ds(t.translate,"scope");return r||(u=u.map(l=>(l.between[0].markname=i+Au,l))),n.push({name:o,value:{},on:[{events:u.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(s!==void 0?`, extent_x: ${r?ix(e,et):`slice(${s.signals.visual})`}`:"")+(a!==void 0?`, extent_y: ${r?ix(e,Mt):`slice(${a.signals.visual})`}`:"")+"}"}]},{name:i+Z4,value:{},on:[{events:u,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),s!==void 0&&pF(e,t,s,"width",n),a!==void 0&&pF(e,t,a,"height",n),n}};function pF(e,t,n,i,r){const o=t.name,s=o+Q4,a=o+Z4,u=n.channel,l=ao.defined(t),c=r.find(w=>w.name===n.signals[l?"data":"visual"]),f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(u),h=d&&d.get("type"),p=d&&d.get("reverse"),g=l?u===et?p?"":"-":p?"-":"":"",m=`${s}.extent_${u}`,y=`${g}${a}.${u} / ${l?`${f}`:`span(${m})`}`,b=!l||!d?"panLinear":h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear",x=l?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":"",v=`${b}(${m}, ${y}${x})`;c.on.push({events:{signal:a},update:l?v:`clampRange(${v}, 0, ${f})`})}const eL="_zoom_anchor",tL="_zoom_delta",pce={defined:e=>e.type==="interval"&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=ao.defined(t),o=i+tL,{x:s,y:a}=t.project.hasChannel,u=_e(e.scaleName(et)),l=_e(e.scaleName(Mt));let c=ds(t.zoom,"scope");return r||(c=c.map(f=>(f.markname=i+Au,f))),n.push({name:i+eL,on:[{events:c,update:r?"{"+[u?`x: invert(${u}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),s!==void 0&&gF(e,t,s,"width",n),a!==void 0&&gF(e,t,a,"height",n),n}};function gF(e,t,n,i,r){const o=t.name,s=n.channel,a=ao.defined(t),u=r.find(b=>b.name===n.signals[a?"data":"visual"]),l=e.getSizeSignalRef(i).signal,c=e.getScaleComponent(s),f=c&&c.get("type"),d=a?ix(e,s):u.name,h=o+tL,p=`${o}${eL}.${s}`,g=!a||!c?"zoomLinear":f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear",m=a?f==="pow"?`, ${c.get("exponent")??1}`:f==="symlog"?`, ${c.get("constant")??1}`:"":"",y=`${g}(${d}, ${p}, ${h}${m})`;u.on.push({events:{signal:h},update:a?y:`clampRange(${y}, 0, ${l})`})}const Sa="_store",mo="_tuple",gce="_modify",nL="vlSelectionResolve",J0=[Ule,Xle,Ile,K4,X4,ao,J4,fce,hce,pce,Y4];function mce(e){let t=e.parent;for(;t&&!Zn(t);)t=t.parent;return t}function ta(e,{escape:t}={escape:!0}){let n=t?_e(e.name):e.name;const i=mce(e);if(i){const{facet:r}=i;for(const o of di)r[o]&&(n+=` + '__facet_${o}_' + (facet[${_e(i.vgField(o))}])`)}return n}function yA(e){return qt(e.component.selection??{}).reduce((t,n)=>t||n.project.hasSelectionId,!1)}function iL(e,t){(to(t.select)||!t.select.on)&&delete e.events,(to(t.select)||!t.select.clear)&&delete e.clear,(to(t.select)||!t.select.toggle)&&delete e.toggle}function gr(e){return e.events?.find(t=>"type"in t&&t.type==="timer")}const yce="RawCode",bce="Literal",xce="Property",vce="Identifier",Ece="ArrayExpression",wce="BinaryExpression",Ace="CallExpression",Sce="ConditionalExpression",Cce="LogicalExpression",$ce="MemberExpression",_ce="ObjectExpression",Fce="UnaryExpression";function Qi(e){this.type=e}Qi.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=kce(this),n=0,i=t.length;n<i;++n)if(t[n].visit(e))return 1};function kce(e){switch(e.type){case Ece:return e.elements;case wce:case Cce:return[e.left,e.right];case Ace:return[e.callee].concat(e.arguments);case Sce:return[e.test,e.consequent,e.alternate];case $ce:return[e.object,e.property];case _ce:return e.properties;case xce:return[e.key,e.value];case Fce:return[e.argument];case vce:case bce:case yce:default:return[]}}var Pr,J,R,sn,Ie,Q0=1,ad=2,Ca=3,Es=4,Z0=5,Wa=6,Dn=7,ud=8,Dce=9;Pr={};Pr[Q0]="Boolean";Pr[ad]="<end>";Pr[Ca]="Identifier";Pr[Es]="Keyword";Pr[Z0]="Null";Pr[Wa]="Numeric";Pr[Dn]="Punctuator";Pr[ud]="String";Pr[Dce]="RegularExpression";var Tce="ArrayExpression",Mce="BinaryExpression",Oce="CallExpression",Rce="ConditionalExpression",rL="Identifier",Nce="Literal",Lce="LogicalExpression",Pce="MemberExpression",Ice="ObjectExpression",zce="Property",Bce="UnaryExpression",Ft="Unexpected token %0",Uce="Unexpected number",jce="Unexpected string",qce="Unexpected identifier",Wce="Unexpected reserved word",Gce="Unexpected end of input",ox="Invalid regular expression",N1="Invalid regular expression: missing /",oL="Octal literals are not allowed in strict mode.",Hce="Duplicate data property in object literal not allowed in strict mode",Ut="ILLEGAL",df="Disabled.",Vce=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]"),Yce=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 em(e,t){if(!e)throw new Error("ASSERT: "+t)}function Gr(e){return e>=48&&e<=57}function bA(e){return"0123456789abcdefABCDEF".includes(e)}function Pc(e){return"01234567".includes(e)}function Xce(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 hf(e){return e===10||e===13||e===8232||e===8233}function ld(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&Vce.test(String.fromCharCode(e))}function Vp(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&Yce.test(String.fromCharCode(e))}const Kce={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 sL(){for(;R<sn;){const e=J.charCodeAt(R);if(Xce(e)||hf(e))++R;else break}}function sx(e){var t,n,i,r=0;for(n=e==="u"?4:2,t=0;t<n;++t)R<sn&&bA(J[R])?(i=J[R++],r=r*16+"0123456789abcdef".indexOf(i.toLowerCase())):De({},Ft,Ut);return String.fromCharCode(r)}function Jce(){var e,t,n,i;for(e=J[R],t=0,e==="}"&&De({},Ft,Ut);R<sn&&(e=J[R++],!!bA(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&De({},Ft,Ut),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,i=(t-65536&1023)+56320,String.fromCharCode(n,i))}function aL(){var e,t;for(e=J.charCodeAt(R++),t=String.fromCharCode(e),e===92&&(J.charCodeAt(R)!==117&&De({},Ft,Ut),++R,e=sx("u"),(!e||e==="\\"||!ld(e.charCodeAt(0)))&&De({},Ft,Ut),t=e);R<sn&&(e=J.charCodeAt(R),!!Vp(e));)++R,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),J.charCodeAt(R)!==117&&De({},Ft,Ut),++R,e=sx("u"),(!e||e==="\\"||!Vp(e.charCodeAt(0)))&&De({},Ft,Ut),t+=e);return t}function Qce(){var e,t;for(e=R++;R<sn;){if(t=J.charCodeAt(R),t===92)return R=e,aL();if(Vp(t))++R;else break}return J.slice(e,R)}function Zce(){var e,t,n;return e=R,t=J.charCodeAt(R)===92?aL():Qce(),t.length===1?n=Ca:Kce.hasOwnProperty(t)?n=Es:t==="null"?n=Z0:t==="true"||t==="false"?n=Q0:n=Ca,{type:n,value:t,start:e,end:R}}function L1(){var e=R,t=J.charCodeAt(R),n,i=J[R],r,o,s;switch(t){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++R,{type:Dn,value:String.fromCharCode(t),start:e,end:R};default:if(n=J.charCodeAt(R+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:Dn,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:R};case 33:case 61:return R+=2,J.charCodeAt(R)===61&&++R,{type:Dn,value:J.slice(e,R),start:e,end:R}}}if(s=J.substr(R,4),s===">>>=")return R+=4,{type:Dn,value:s,start:e,end:R};if(o=s.substr(0,3),o===">>>"||o==="<<="||o===">>=")return R+=3,{type:Dn,value:o,start:e,end:R};if(r=o.substr(0,2),i===r[1]&&"+-<>&|".includes(i)||r==="=>")return R+=2,{type:Dn,value:r,start:e,end:R};if(r==="//"&&De({},Ft,Ut),"<>=!+-*%&|^/".includes(i))return++R,{type:Dn,value:i,start:e,end:R};De({},Ft,Ut)}function efe(e){let t="";for(;R<sn&&bA(J[R]);)t+=J[R++];return t.length===0&&De({},Ft,Ut),ld(J.charCodeAt(R))&&De({},Ft,Ut),{type:Wa,value:parseInt("0x"+t,16),start:e,end:R}}function tfe(e){let t="0"+J[R++];for(;R<sn&&Pc(J[R]);)t+=J[R++];return(ld(J.charCodeAt(R))||Gr(J.charCodeAt(R)))&&De({},Ft,Ut),{type:Wa,value:parseInt(t,8),octal:!0,start:e,end:R}}function mF(){var e,t,n;if(n=J[R],em(Gr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=R,e="",n!=="."){if(e=J[R++],n=J[R],e==="0"){if(n==="x"||n==="X")return++R,efe(t);if(Pc(n))return tfe(t);n&&Gr(n.charCodeAt(0))&&De({},Ft,Ut)}for(;Gr(J.charCodeAt(R));)e+=J[R++];n=J[R]}if(n==="."){for(e+=J[R++];Gr(J.charCodeAt(R));)e+=J[R++];n=J[R]}if(n==="e"||n==="E")if(e+=J[R++],n=J[R],(n==="+"||n==="-")&&(e+=J[R++]),Gr(J.charCodeAt(R)))for(;Gr(J.charCodeAt(R));)e+=J[R++];else De({},Ft,Ut);return ld(J.charCodeAt(R))&&De({},Ft,Ut),{type:Wa,value:parseFloat(e),start:t,end:R}}function nfe(){var e="",t,n,i,r,o=!1;for(t=J[R],em(t==="'"||t==='"',"String literal must starts with a quote"),n=R,++R;R<sn;)if(i=J[R++],i===t){t="";break}else if(i==="\\")if(i=J[R++],!i||!hf(i.charCodeAt(0)))switch(i){case"u":case"x":J[R]==="{"?(++R,e+=Jce()):e+=sx(i);break;case"n":e+=`
15
+ ${a}`)}return l}(e,"",0)}function mre(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e.x,e.x=e.x2,e.x2=i),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(i=e.y,e.y=e.y2,e.y2=i),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}var yre={NaN:NaN,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,PI:Math.PI,SQRT1_2:Math.SQRT1_2,SQRT2:Math.SQRT2,MIN_VALUE:Number.MIN_VALUE,MAX_VALUE:Number.MAX_VALUE},bre={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<<t,">>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},xre={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const vre=Array.prototype.slice,_s=(e,t,n)=>{const i=n?n(t[0]):t[0];return i[e].apply(i,vre.call(t,1))},Ere=(e,t,n,i,r,o,s)=>new Date(e,t||0,n??1,i||0,r||0,o||0,s||0);var wre={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:Ere,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return _s("join",arguments)},indexof:function(){return _s("indexOf",arguments)},lastindexof:function(){return _s("lastIndexOf",arguments)},slice:function(){return _s("slice",arguments)},reverse:e=>e.slice().reverse(),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return _s("substring",arguments,String)},split:function(){return _s("split",arguments,String)},replace:function(){return _s("replace",arguments,String)},trim:e=>String(e).trim(),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const Are=["view","item","group","xy","x","y"],Ub=new Set([Function,eval,setTimeout,setInterval]);typeof setImmediate=="function"&&Ub.add(setImmediate);const Sre={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:n==="datum"?e.datum:n==="event"?e.event:n==="item"?e.item:yre[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,i=e(t.object);n&&(e.memberDepth+=1);const r=e(t.property);if(n&&(e.memberDepth-=1),Ub.has(i[r])){console.error(`Prevented interpretation of member "${r}" which could lead to insecure code execution`);return}return i[r]},CallExpression:(e,t)=>{const n=t.arguments;let i=t.callee.name;return i.startsWith("_")&&(i=i.slice(1)),i==="if"?e(n[0])?e(n[1]):e(n[2]):(e.fn[i]||wre[i]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>bre[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>xre[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce((n,i)=>{e.memberDepth+=1;const r=e(i.key);return e.memberDepth-=1,Ub.has(e(i.value))?console.error(`Prevented interpretation of property "${r}" which could lead to insecure code execution`):n[r]=e(i.value),n},{})};function Vl(e,t,n,i,r,o){const s=a=>Sre[a.type](s,a);return s.memberDepth=0,s.fn=Object.create(t),s.params=n,s.datum=i,s.event=r,s.item=o,Are.forEach(a=>s.fn[a]=function(){return r.vega[a](...arguments)}),s(e)}var Cre={operator(e,t){const n=t.ast,i=e.functions;return r=>Vl(n,i,r)},parameter(e,t){const n=t.ast,i=e.functions;return(r,o)=>Vl(n,i,o,r)},event(e,t){const n=t.ast,i=e.functions;return r=>Vl(n,i,void 0,void 0,r)},handler(e,t){const n=t.ast,i=e.functions;return(r,o)=>{const s=o.item&&o.item.datum;return Vl(n,i,r,s,o)}},encode(e,t){const{marktype:n,channels:i}=t,r=e.functions,o=n==="group"||n==="image"||n==="rect";return(s,a)=>{const u=s.datum;let l=0,c;for(const f in i)c=Vl(i[f].ast,r,a,u,void 0,s),s[f]!==c&&(s[f]=c,l=1);return n!=="rule"&&mre(s,i,o),l}}};const $re="5.23.0",_re={version:$re};function yl(e,t,n){return e.fields=t||[],e.fname=n,e}function Fre(e){return e.length===1?kre(e[0]):Dre(e)}const kre=e=>function(t){return t[e]},Dre=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function A1(e){throw Error(e)}function La(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||A1("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&A1("Access path missing closing bracket: "+e),i&&A1("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function Tre(e,t,n){const i=La(e);return e=i.length===1?i[0]:e,yl(Fre(i),[e],e)}Tre("id");const Mre=yl(e=>e,[],"identity");yl(()=>0,[],"zero");yl(()=>1,[],"one");yl(()=>!0,[],"true");yl(()=>!1,[],"false");function Ore(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const Rre=0,Nre=1,AN=2,Lre=3,Pre=4;function Ire(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ore,i=e||Rre;return{level(r){return arguments.length?(i=+r,this):i},error(){return i>=Nre&&n("error","ERROR",arguments),this},warn(){return i>=AN&&n("warn","WARN",arguments),this},info(){return i>=Lre&&n("log","INFO",arguments),this},debug(){return i>=Pre&&n("log","DEBUG",arguments),this}}}var X=Array.isArray;function Fe(e){return e===Object(e)}const A_=e=>e!=="__proto__";function SN(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((i,r)=>{for(const o in r)if(o==="signals")i.signals=zre(i.signals,r.signals);else{const s=o==="legend"?{layout:1}:o==="style"?!0:null;E0(i,o,r[o],s)}return i},{})}function E0(e,t,n,i){if(!A_(t))return;let r,o;if(Fe(n)&&!X(n)){o=Fe(e[t])?e[t]:e[t]={};for(r in n)i&&(i===!0||i[r])?E0(o,r,n[r]):A_(r)&&(o[r]=n[r])}else e[t]=n}function zre(e,t){if(e==null)return t;const n={},i=[];function r(o){n[o.name]||(n[o.name]=1,i.push(o))}return t.forEach(r),e.forEach(r),i}function ct(e){return e!=null?X(e)?e:[e]:[]}function Bre(e){return typeof e=="function"}const Ure=Object.prototype.hasOwnProperty;function pt(e,t){return Ure.call(e,t)}function Vf(e){return typeof e=="boolean"}function Ze(e){return typeof e=="number"}function de(e){return typeof e=="string"}function _e(e){return X(e)?"["+e.map(_e)+"]":Fe(e)||de(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function lw(e){return U(e,"or")}function cw(e){return U(e,"and")}function fw(e){return U(e,"not")}function Eh(e,t){if(fw(e))Eh(e.not,t);else if(cw(e))for(const n of e.and)Eh(n,t);else if(lw(e))for(const n of e.or)Eh(n,t);else t(e)}function vu(e,t){return fw(e)?{not:vu(e.not,t)}:cw(e)?{and:e.and.map(n=>vu(n,t))}:lw(e)?{or:e.or.map(n=>vu(n,t))}:t(e)}const ce=structuredClone;function CN(e){throw new Error(e)}function qu(e,t){const n={};for(const i of t)pt(e,i)&&(n[i]=e[i]);return n}function Rn(e,t){const n={...e};for(const i of t)delete n[i];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>je(e)).join(",")})`};function Ae(e){if(Ze(e))return e;const t=de(e)?e:je(e);if(t.length<250)return t;let n=0;for(let i=0;i<t.length;i++){const r=t.charCodeAt(i);n=(n<<5)-n+r,n=n&n}return n}function jb(e){return e===!1||e===null}function we(e,t){return e.includes(t)}function Wu(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function dw(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function $N(e,...t){for(const n of t)jre(e,n??{});return e}function jre(e,t){for(const n of B(t))E0(e,n,t[n],!0)}function cr(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 qre(e,t){const n=B(e),i=B(t);if(n.length!==i.length)return!1;for(const r of n)if(e[r]!==t[r])return!1;return!0}function _N(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function hw(e,t){for(const n of e)if(t.has(n))return!0;return!1}function qb(e){const t=new Set;for(const n of e){const r=La(n).map((s,a)=>a===0?s:`[${s}]`),o=r.map((s,a)=>r.slice(0,a+1).join(""));for(const s of o)t.add(s)}return t}function pw(e,t){return e===void 0||t===void 0?!0:hw(qb(e),qb(t))}function Ue(e){return B(e).length===0}const B=Object.keys,qt=Object.values,is=Object.entries;function uf(e){return e===!0||e===!1}function Qe(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function Nc(e,t){return fw(e)?`!(${Nc(e.not,t)})`:cw(e)?`(${e.and.map(n=>Nc(n,t)).join(") && (")})`:lw(e)?`(${e.or.map(n=>Nc(n,t)).join(") || (")})`:t(e)}function Np(e,t){if(t.length===0)return!0;const n=t.shift();return n in e&&Np(e[n],t)&&delete e[n],Ue(e)}function Yf(e){return e.charAt(0).toUpperCase()+e.substr(1)}function gw(e,t="datum"){const n=La(e),i=[];for(let r=1;r<=n.length;r++){const o=`[${n.slice(0,r).map(_e).join("][")}]`;i.push(`${t}${o}`)}return i.join(" && ")}function FN(e,t="datum"){return`${t}[${_e(La(e).join("."))}]`}function Le(e){return`datum['${e.replaceAll("'","\\'")}']`}function Wre(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function bi(e){return`${La(e).map(Wre).join("\\.")}`}function ma(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function bl(e){return`${La(e).join(".")}`}function Gu(e){return e?La(e).length:0}function ft(...e){return e.find(t=>t!==void 0)}let kN=42;function DN(e){const t=++kN;return e?String(e)+t:t}function Gre(){kN=42}function TN(e){return MN(e)?e:`__${e}`}function MN(e){return e.startsWith("__")}function lf(e){if(e!==void 0)return(e%360+360)%360}function w0(e){return Ze(e)?!0:!isNaN(e)&&!isNaN(parseFloat(e))}const S_=Object.getPrototypeOf(structuredClone({}));function Xn(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(!Xn(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(!Xn(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!==S_.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==S_.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(!Xn(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function je(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 s=t.push(i)-1,a=Object.keys(i).sort();for(o="",r=0;r<a.length;r++){const u=a[r],l=n(i[u]);l&&(o&&(o+=","),o+=JSON.stringify(u)+":"+l)}return t.splice(s,1),`{${o}}`}(e)}function U(e,t){return Fe(e)&&pt(e,t)&&e[t]!==void 0}const ro="row",oo="column",A0="facet",et="x",Mt="y",Vi="x2",Tr="y2",hs="xOffset",xl="yOffset",Yi="radius",vo="radius2",Ei="theta",Eo="theta2",Xi="latitude",Ki="longitude",Ji="latitude2",xi="longitude2",ps="time",Bn="color",Mr="fill",Or="stroke",Un="shape",wo="size",Pa="angle",Ao="opacity",gs="fillOpacity",ms="strokeOpacity",ys="strokeWidth",bs="strokeDash",Xf="text",Hu="order",Kf="detail",S0="key",ya="tooltip",C0="href",$0="url",_0="description",Hre={x:1,y:1,x2:1,y2:1},ON={theta:1,theta2:1,radius:1,radius2:1};function RN(e){return pt(ON,e)}const mw={longitude:1,longitude2:1,latitude:1,latitude2:1};function NN(e){switch(e){case Xi:return"y";case Ji:return"y2";case Ki:return"x";case xi:return"x2"}}function LN(e){return pt(mw,e)}const Vre=B(mw),yw={...Hre,...ON,...mw,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 Eu(e){return e===Bn||e===Mr||e===Or}const PN={row:1,column:1,facet:1},di=B(PN),bw={...yw,...PN},Yre=B(bw),{order:ime,detail:rme,tooltip:ome,...Xre}=bw,{row:sme,column:ame,facet:ume,...Kre}=Xre;function Jre(e){return pt(Kre,e)}function IN(e){return pt(bw,e)}const Qre=[Vi,Tr,Ji,xi,Eo,vo];function zN(e){return Ia(e)!==e}function Ia(e){switch(e){case Vi:return et;case Tr:return Mt;case Ji:return Xi;case xi:return Ki;case Eo:return Ei;case vo:return Yi}return e}function rs(e){if(RN(e))switch(e){case Ei:return"startAngle";case Eo:return"endAngle";case Yi:return"outerRadius";case vo:return"innerRadius"}return e}function Rr(e){switch(e){case et:return Vi;case Mt:return Tr;case Xi:return Ji;case Ki:return xi;case Ei:return Eo;case Yi:return vo}}function jn(e){switch(e){case et:case Vi:return"width";case Mt:case Tr:return"height"}}function BN(e){switch(e){case et:return"xOffset";case Mt:return"yOffset";case Vi:return"x2Offset";case Tr:return"y2Offset";case Ei:return"thetaOffset";case Yi:return"radiusOffset";case Eo:return"theta2Offset";case vo:return"radius2Offset"}}function xw(e){switch(e){case et:return"xOffset";case Mt:return"yOffset"}}function Zre(e){switch(e){case"xOffset":return"x";case"yOffset":return"y"}}const eoe=B(yw),{x:lme,y:cme,x2:fme,y2:dme,xOffset:hme,yOffset:pme,latitude:gme,longitude:mme,latitude2:yme,longitude2:bme,theta:xme,theta2:vme,radius:Eme,radius2:wme,...vw}=yw,toe=B(vw),Ew={x:1,y:1},So=B(Ew);function dt(e){return pt(Ew,e)}const ww={theta:1,radius:1},noe=B(ww);function F0(e){return e==="width"?et:Mt}const UN={xOffset:1,yOffset:1};function Jf(e){return pt(UN,e)}const ioe={time:1};function S1(e){return e in ioe}const{text:Ame,tooltip:Sme,href:Cme,url:$me,description:_me,detail:Fme,key:kme,order:Dme,...jN}=vw,roe=B(jN);function ooe(e){return pt(vw,e)}function soe(e){switch(e){case Bn:case Mr:case Or:case wo:case Un:case Ao:case ys:case bs:return!0;case gs:case ms:case Pa:case ps:return!1}}const qN={...Ew,...ww,...UN,...jN},Aw=B(qN);function Nr(e){return pt(qN,e)}function aoe(e,t){return loe(e)[t]}const WN={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:Tme,...uoe}=WN;function loe(e){switch(e){case Bn:case Mr:case Or:case _0:case Kf:case S0:case ya:case C0:case Hu:case Ao:case gs:case ms:case ys:case A0:case ro:case oo:return WN;case et:case Mt:case hs:case xl:case Xi:case Ki:case ps:return uoe;case Vi:case Tr:case Ji:case xi:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case wo:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case bs:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case Un:return{point:"always",geoshape:"always"};case Xf:return{text:"always"};case Pa:return{point:"always",square:"always",text:"always"};case $0:return{image:"always"};case Ei:return{text:"always",arc:"always"};case Yi:return{text:"always",arc:"always"};case Eo:case vo:return{arc:"always"}}}function C1(e){switch(e){case et:case Mt:case Ei:case Yi:case hs:case xl:case wo:case Pa:case ys:case Ao:case gs:case ms:case ps:case Vi:case Tr:case Eo:case vo:return;case A0:case ro:case oo:case Un:case bs:case Xf:case ya:case C0:case $0:case _0:return"discrete";case Bn:case Mr:case Or:return"flexible";case Xi:case Ki:case Ji:case xi:case Kf:case S0:case Hu:return}}const coe={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},foe={count:1,min:1,max:1};function po(e){return U(e,"argmin")}function xs(e){return U(e,"argmax")}function Sw(e){return de(e)&&pt(coe,e)}const doe=new Set(["count","valid","missing","distinct"]);function k0(e){return de(e)&&doe.has(e)}function hoe(e){return de(e)&&we(["min","max"],e)}const poe=new Set(["count","sum","distinct","valid","missing"]),goe=new Set(["mean","average","median","q1","q3","min","max"]);function GN(e){return Vf(e)&&(e=U0(e,void 0)),"bin"+B(e).map(t=>D0(e[t])?Qe(`_${t}_${is(e[t])}`):Qe(`_${t}_${e[t]}`)).join("")}function He(e){return e===!0||za(e)&&!e.binned}function Nt(e){return e==="binned"||za(e)&&e.binned===!0}function za(e){return Fe(e)}function D0(e){return U(e,"param")}function C_(e){switch(e){case ro:case oo:case wo:case Bn:case Mr:case Or:case ys:case Ao:case gs:case ms:case Un:return 6;case bs:return 4;default:return 10}}function Qf(e){return U(e,"expr")}function Lt(e,{level:t}={level:0}){const n=B(e||{}),i={};for(const r of n)i[r]=t===0?Vn(e[r]):Lt(e[r],{level:t-1});return i}function HN(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:s,color:a,subtitleColor:u,subtitleFont:l,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...g}=e,m={...g,...a?{fill:a}:{}},y={...t?{anchor:t}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...o!==void 0?{angle:o}:{},...s!==void 0?{limit:s}:{}},b={...u?{subtitleColor:u}:{},...l?{subtitleFont:l}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}},x=qu(e,["align","baseline","dx","dy","limit"]);return{titleMarkConfig:m,subtitleMarkConfig:x,nonMarkTitleProperties:y,subtitle:b}}function Ro(e){return de(e)||X(e)&&de(e[0])}function Q(e){return U(e,"signal")}function Ba(e){return U(e,"step")}function moe(e){return X(e)?!1:U(e,"fields")&&!U(e,"data")}function yoe(e){return X(e)?!1:U(e,"fields")&&U(e,"data")}function eo(e){return X(e)?!1:U(e,"field")&&U(e,"data")}const boe={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},xoe=B(boe),voe={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},Wb=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function VN(e){const t=X(e.condition)?e.condition.map($_):$_(e.condition);return{...Vn(e),condition:t}}function Vn(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function $_(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function Ye(e){if(Qf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return Q(e)?e:e!==void 0?{value:e}:void 0}function Eoe(e){return Q(e)?e.signal:_e(e)}function __(e){return Q(e)?e.signal:_e(e.value)}function Mi(e){return Q(e)?e.signal:e==null?null:_e(e)}function woe(e,t,n){for(const i of n){const r=Ar(i,t.markDef,t.config);r!==void 0&&(e[i]=Ye(r))}return e}function YN(e){return[].concat(e.type,e.style??[])}function Be(e,t,n,i={}){const{vgChannel:r,ignoreVgConfig:o}=i;return r&&U(t,r)?t[r]:t[e]!==void 0?t[e]:o&&(!r||r===e)?void 0:Ar(e,t,n,i)}function Ar(e,t,n,{vgChannel:i}={}){const r=Gb(e,t,n.style);return ft(i?r:void 0,r,i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function Gb(e,t,n){return XN(e,YN(t),n)}function XN(e,t,n){t=ct(t);let i;for(const r of t){const o=n[r];U(o,e)&&(i=o[e])}return i}function KN(e,t){return ct(e).reduce((n,i)=>(n.field.push(H(i,t)),n.order.push(i.sort??"ascending"),n),{field:[],order:[]})}function JN(e,t){const n=[...e];return t.forEach(i=>{for(const r of n)if(Xn(r,i))return;n.push(i)}),n}function QN(e,t){return Xn(e,t)||!t?e:e?[...ct(e),...ct(t)].join(", "):t}function ZN(e,t){const n=e.value,i=t.value;if(n==null||i===null)return{explicit:e.explicit,value:null};if((Ro(n)||Q(n))&&(Ro(i)||Q(i)))return{explicit:e.explicit,value:QN(n,i)};if(Ro(n)||Q(n))return{explicit:e.explicit,value:n};if(Ro(i)||Q(i))return{explicit:e.explicit,value:i};if(!Ro(n)&&!Q(n)&&!Ro(i)&&!Q(i))return{explicit:e.explicit,value:JN(n,i)};throw new Error("It should never reach here")}function Cw(e){return`Invalid specification ${je(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const Aoe='Autosize "fit" only works for single views and layered views.';function F_(e){return`${e=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function k_(e){const t=e=="width"?"Width":"Height",n=e=="width"?"x":"y";return`${t} "container" only works well with autosize "fit" or "fit-${n}".`}function D_(e){return e?`Dropping "fit-${e}" because spec has discrete ${jn(e)}.`:'Dropping "fit" because spec has discrete size.'}function $w(e){return`Unknown field for ${e}. Cannot calculate view size.`}function T_(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Soe(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function Coe(e){return`The "nearest" transform is not supported for ${e} marks.`}function e6(e){return`Selection not supported for ${e} yet.`}function $oe(e){return`Cannot find a selection named "${e}".`}const _oe="Scale bindings are currently only supported for scales with unbinned, continuous domains.",Foe="Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc",koe="Legend bindings are only supported for selections over an individual field or encoding channel.";function Doe(e){return`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`}function Toe(e){return`Cannot define and lookup the "${e}" selection in the same view. Try moving the lookup into a second, layered view?`}const Moe="The same selection must be used to override scale domains in a layered view.",Ooe='Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.';function Roe(e){return`Unknown repeated value "${e}".`}function M_(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const Noe="Multiple timer selections in one unit spec are not supported. Ignoring all but the first.",_w="Animation involving facet, layer, or concat is currently unsupported.";function Loe(e){return`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${gu(e)}.`}function Poe(e,t,n,i){return(e.length?"Multiple ":"No ")+`matching ${gu(t)} encoding found for selection ${gu(n.param)}. Using "field": ${gu(i)}.`}const Ioe="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function zoe(e){return`Unrecognized parse "${e}".`}function O_(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}const Boe="Attempt to add the same child twice.";function Uoe(e){return`Ignoring an invalid transform: ${je(e)}.`}const joe='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function R_(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function qoe(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${je(t)} is overridden by a child projection ${je(n)}.`}const Woe="Arc marks uses theta channel rather than angle, replacing angle with theta.";function Goe(e){return`${e}Offset dropped because ${e} is continuous`}function Hoe(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${je(n)}}.`}function t6(e){return`Invalid field type "${e}".`}function Voe(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}function Yoe(e){return`Invalid aggregation operator "${e}".`}function n6(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 Xoe(e){return`Position range does not support relative band size for ${e}.`}function Hb(e,t){return`Dropping ${je(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}const Koe="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function T0(e,t,n){return`${e} dropped as it is incompatible with "${t}".`}function Joe(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function Qoe(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function Zoe(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function ese(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function $1(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}function tse(e){return`The ${e} for range marks cannot be an expression`}function nse(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function ise(e,t){return`Specified orient "${e}" overridden with "${t}".`}function rse(e){return`Cannot use the scale property "${e}" with non-color channel.`}function ose(e){return`Cannot use the relative band size with ${e} scale.`}function sse(e){return`Using unaggregated domain with raw field has no effect (${je(e)}).`}function ase(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function use(e){return`Unaggregated domain is currently unsupported for log scale (${je(e)}).`}function lse(e){return`Cannot apply size to non-oriented mark "${e}".`}function cse(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}function fse(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}function i6(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function r6(e){return`The step for "${e}" is dropped because the ${e==="width"?"x":"y"} is continuous.`}function dse(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${je(n)} and ${je(i)}). Using ${je(n)}.`}function hse(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${je(n)} and ${je(i)}). Using the union of the two domains.`}function pse(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}function gse(e){return`Dropping sort property ${je(e)} as unioned domains only support boolean or op "count", "min", and "max".`}const N_="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",mse="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.",yse="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.",bse="Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.";function xse(e){return`Cannot stack "${e}" if there is already "${e}2".`}function vse(e){return`Stack is applied to a non-linear scale (${e}).`}function Ese(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}").`}function Lp(e,t){return`Invalid ${e}: ${je(t)}.`}function wse(e){return`Dropping day from datetime ${je(e)} as day cannot be combined with other units.`}function Ase(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}function Sse(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}function Cse(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}function L_(e){return`1D error band does not support ${e}.`}function o6(e){return`Channel ${e} is required for "binned" bin.`}function $se(e){return`Channel ${e} should not be used with "binned" bin.`}function _se(e){return`Domain for ${e} is required for threshold scale.`}const s6=Ire(AN);let ba=s6;function Fse(e){return ba=e,ba}function kse(){return ba=s6,ba}function Fw(...e){ba.error(...e)}function j(...e){ba.warn(...e)}function Dse(...e){ba.debug(...e)}function Ua(e){if(e&&Fe(e)){for(const t of Dw)if(U(e,t))return!0}return!1}const a6=["january","february","march","april","may","june","july","august","september","october","november","december"],Tse=a6.map(e=>e.substr(0,3)),u6=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Mse=u6.map(e=>e.substr(0,3));function Ose(e){if(w0(e)&&(e=+e),Ze(e))return e>4&&j(Lp("quarter",e)),e-1;throw new Error(Lp("quarter",e))}function Rse(e){if(w0(e)&&(e=+e),Ze(e))return e-1;{const t=e.toLowerCase(),n=a6.indexOf(t);if(n!==-1)return n;const i=t.substr(0,3),r=Tse.indexOf(i);if(r!==-1)return r;throw new Error(Lp("month",e))}}function Nse(e){if(w0(e)&&(e=+e),Ze(e))return e%7;{const t=e.toLowerCase(),n=u6.indexOf(t);if(n!==-1)return n;const i=t.substr(0,3),r=Mse.indexOf(i);if(r!==-1)return r;throw new Error(Lp("day",e))}}function kw(e,t){const n=[];if(t&&e.day!==void 0&&B(e).length>1&&(j(wse(e)),e=ce(e),delete e.day),e.year!==void 0?n.push(e.year):n.push(2012),e.month!==void 0){const i=t?Rse(e.month):e.month;n.push(i)}else if(e.quarter!==void 0){const i=t?Ose(e.quarter):e.quarter;n.push(Ze(i)?i*3:`${i}*3`)}else n.push(0);if(e.date!==void 0)n.push(e.date);else if(e.day!==void 0){const i=t?Nse(e.day):e.day;n.push(Ze(i)?i+1:`${i}+1`)}else n.push(1);for(const i of["hours","minutes","seconds","milliseconds"]){const r=e[i];n.push(typeof r>"u"?0:r)}return n}function xa(e){const n=kw(e,!0).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function Lse(e){const n=kw(e,!1).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function Pse(e){const t=kw(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}const l6={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},Dw=B(l6);function Ise(e){return Hr(l6,e)}function ja(e){return Fe(e)?e.binned:c6(e)}function c6(e){return e&&e.startsWith("binned")}function Tw(e){return e.startsWith("utc")}function zse(e){return e.substring(3)}const Bse={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function M0(e){return Dw.filter(t=>d6(e,t))}function f6(e){const t=M0(e);return t[t.length-1]}function d6(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 Use(e,t,{end:n}={end:!1}){const i=gw(t),r=Tw(e)?"utc":"";function o(u){return u==="quarter"?`(${r}quarter(${i})-1)`:`${r}${u}(${i})`}let s;const a={};for(const u of Dw)d6(e,u)&&(a[u]=o(u),s=u);return n&&(a[s]+="+1"),Lse(a)}function h6(e){if(!e)return;const t=M0(e);return`timeUnitSpecifier(${je(t)}, ${je(Bse)})`}function jse(e,t,n){if(!e)return;const i=h6(e);return`${n||Tw(e)?"utc":"time"}Format(${t}, ${i})`}function kt(e){if(!e)return;let t;return de(e)?c6(e)?t={unit:e.substring(6),binned:!0}:t={unit:e}:Fe(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),Tw(t.unit)&&(t.utc=!0,t.unit=zse(t.unit)),t}function qse(e){const{utc:t,...n}=kt(e);return n.unit?(t?"utc":"")+B(n).map(i=>Qe(`${i==="unit"?"":`_${i}_`}${n[i]}`)).join(""):(t?"utc":"")+"timeunit"+B(n).map(i=>Qe(`_${i}_${n[i]}`)).join("")}function p6(e,t=n=>n){const n=kt(e),i=f6(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:s}=g6(i,n.step),a={...r,[s]:+r[s]+o};return`${t(xa(a))} - ${t(xa(r))}`}}const Wse={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function Gse(e){return Hr(Wse,e)}function g6(e,t=1){if(Gse(e))return{part:e,step:t};switch(e){case"day":case"dayofyear":return{part:"date",step:t};case"quarter":return{part:"month",step:t*3};case"week":return{part:"date",step:t*7}}}function Hse(e){return U(e,"param")}function Mw(e){return!!e?.field&&e.equal!==void 0}function Ow(e){return!!e?.field&&e.lt!==void 0}function Rw(e){return!!e?.field&&e.lte!==void 0}function Nw(e){return!!e?.field&&e.gt!==void 0}function Lw(e){return!!e?.field&&e.gte!==void 0}function Pw(e){if(e?.field){if(X(e.range)&&e.range.length===2)return!0;if(Q(e.range))return!0}return!1}function Iw(e){return!!e?.field&&(X(e.oneOf)||X(e.in))}function Vse(e){return!!e?.field&&e.valid!==void 0}function m6(e){return Iw(e)||Mw(e)||Pw(e)||Ow(e)||Nw(e)||Rw(e)||Lw(e)}function nr(e,t){return j0(e,{timeUnit:t,wrapTime:!0})}function Yse(e,t){return e.map(n=>nr(n,t))}function y6(e,t=!0){const{field:n}=e,i=kt(e.timeUnit),{unit:r,binned:o}=i||{},s=H(e,{expr:"datum"}),a=r?`time(${o?s:Use(r,n)})`:s;if(Mw(e))return`${a}===${nr(e.equal,r)}`;if(Ow(e)){const u=e.lt;return`${a}<${nr(u,r)}`}else if(Nw(e)){const u=e.gt;return`${a}>${nr(u,r)}`}else if(Rw(e)){const u=e.lte;return`${a}<=${nr(u,r)}`}else if(Lw(e)){const u=e.gte;return`${a}>=${nr(u,r)}`}else{if(Iw(e))return`indexof([${Yse(e.oneOf,r).join(",")}], ${a}) !== -1`;if(Vse(e))return O0(a,e.valid);if(Pw(e)){const{range:u}=Lt(e),l=Q(u)?{signal:`${u.signal}[0]`}:u[0],c=Q(u)?{signal:`${u.signal}[1]`}:u[1];if(l!==null&&c!==null&&t)return"inrange("+a+", ["+nr(l,r)+", "+nr(c,r)+"])";const f=[];return l!==null&&f.push(`${a} >= ${nr(l,r)}`),c!==null&&f.push(`${a} <= ${nr(c,r)}`),f.length>0?f.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${je(e)}`)}function O0(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function Xse(e){return m6(e)&&e.timeUnit?{...e,timeUnit:kt(e.timeUnit)}:e}const Zf={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Kse(e){return e==="quantitative"||e==="temporal"}function b6(e){return e==="ordinal"||e==="nominal"}const va=Zf.quantitative,zw=Zf.ordinal,Vu=Zf.temporal,Bw=Zf.nominal,vl=Zf.geojson;function Jse(e){if(e)switch(e=e.toLowerCase(),e){case"q":case va:return"quantitative";case"t":case Vu:return"temporal";case"o":case zw:return"ordinal";case"n":case Bw:return"nominal";case vl:return"geojson"}}const Pt={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",TIME:"time",UTC:"utc",POINT:"point",BAND:"band"},Vb={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 Qse(e,t){const n=Vb[e],i=Vb[t];return n===i||n==="ordinal-position"&&i==="time"||i==="ordinal-position"&&n==="time"}const Zse={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 P_(e){return Zse[e]}const x6=new Set(["linear","log","pow","sqrt","symlog"]),v6=new Set([...x6,"time","utc"]);function E6(e){return x6.has(e)}const w6=new Set(["quantile","quantize","threshold"]),eae=new Set([...v6,...w6,"sequential","identity"]),tae=new Set(["ordinal","bin-ordinal","point","band"]);function Dt(e){return tae.has(e)}function Bi(e){return eae.has(e)}function fr(e){return v6.has(e)}function Yu(e){return w6.has(e)}const nae={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};function iae(e){return!de(e)&&U(e,"name")}function A6(e){return U(e,"param")}function rae(e){return U(e,"unionWith")}function oae(e){return Fe(e)&&"field"in e}const sae={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},{type:Mme,domain:Ome,range:Rme,rangeMax:Nme,rangeMin:Lme,scheme:Pme,...aae}=sae,uae=B(aae);function Yb(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 fr(e)||e==="band"||e==="point";case"padding":case"rangeMin":case"rangeMax":return fr(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 fr(e);case"nice":return fr(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return Bi(e)&&!we(["log","time","utc","threshold","quantile"],e)}}function S6(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return Eu(e)?void 0:rse(t);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}}function lae(e,t){return we([zw,Bw],t)?e===void 0||Dt(e):t===Vu?we([Pt.TIME,Pt.UTC,void 0],e):t===va?E6(e)||Yu(e)||e===void 0:!0}function cae(e,t,n=!1){if(!Nr(e))return!1;switch(e){case et:case Mt:case hs:case xl:case Ei:case Yi:return fr(t)||t==="band"?!0:t==="point"?!n:!1;case ps:return we(["linear","band"],t);case wo:case ys:case Ao:case gs:case ms:case Pa:return fr(t)||Yu(t)||we(["band","point","ordinal"],t);case Bn:case Mr:case Or:return t!=="band";case bs:case Un:return t==="ordinal"||Yu(t)}}function fae(e){return Fe(e)&&"value"in e}const _n={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"},C6=_n.arc,R0=_n.area,N0=_n.bar,dae=_n.image,L0=_n.line,P0=_n.point,hae=_n.rect,Pp=_n.rule,$6=_n.text,Uw=_n.tick,pae=_n.trail,jw=_n.circle,qw=_n.square,_6=_n.geoshape;function vs(e){return["line","area","trail"].includes(e)}function cf(e){return["rect","bar","image","arc","tick"].includes(e)}const gae=new Set(B(_n));function Sr(e){return U(e,"type")}const mae=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],yae=["fill","fillOpacity"],bae=[...mae,...yae],xae={color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1},I_=B(xae),_1=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],vae={area:["line","point"],bar:_1,rect:_1,line:["point"],tick:["bandSize","thickness",..._1]},Eae={color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},wae={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},F6=B(wae);function Ea(e){return U(e,"band")}const Aae={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},Sae=5,Ww={binSpacing:0,continuousBandSize:Sae,minBandSize:.25,timeUnitBandPosition:.5},Cae={...Ww,binSpacing:1},$ae={...Ww,thickness:1};function _ae(e){return Sr(e)?e.type:e}function k6(e,{isPath:t}){return e===void 0||e==="break-paths-show-path-domains"?t?"break-paths-show-domains":"filter":e===null?"show":e}function Gw({markDef:e,config:t,scaleChannel:n,scaleType:i,isCountAggregate:r}){if(!i||!Bi(i)||r)return"always-valid";const o=k6(Be("invalid",e,t),{isPath:vs(e.type)});return t.scale?.invalid?.[n]!==void 0?"show":o}function Fae(e){return e==="break-paths-filter-domains"||e==="break-paths-show-domains"}function D6({scaleName:e,scale:t,mode:n}){const i=`domain('${e}')`;if(!t||!e)return;const r=`${i}[0]`,o=`peek(${i})`,s=t.domainHasZero();return s==="definitely"?{scale:e,value:0}:s==="maybe"?{signal:`scale('${e}', inrange(0, ${i}) ? 0 : ${n==="zeroOrMin"?r:o})`}:{signal:`scale('${e}', ${n==="zeroOrMin"?r:o})`}}function T6({scaleChannel:e,channelDef:t,scale:n,scaleName:i,markDef:r,config:o}){const s=n?.get("type"),a=ji(t),u=k0(a?.aggregate),l=Gw({scaleChannel:e,markDef:r,config:o,scaleType:s,isCountAggregate:u});if(a&&l==="show"){const c=o.scale.invalid?.[e]??"zero-or-min";return{test:O0(H(a,{expr:"datum"}),!1),...kae(c,n,i)}}}function kae(e,t,n){if(fae(e)){const{value:i}=e;return Q(i)?{signal:i.signal}:{value:i}}return D6({scale:t,scaleName:n,mode:"zeroOrMin"})}function Hw(e){const{channel:t,channelDef:n,markDef:i,scale:r,scaleName:o,config:s}=e,a=Ia(t),u=Vw(e),l=T6({scaleChannel:a,channelDef:n,scale:r,scaleName:o,markDef:i,config:s});return l!==void 0?[l,u]:u}function Dae(e){const{datum:t}=e;return Ua(t)?xa(t):`${je(t)}`}function Zs(e,t,n,i){const r={};if(t&&(r.scale=t),Lr(e)){const{datum:o}=e;Ua(o)?r.signal=xa(o):Q(o)?r.signal=o.signal:Qf(o)?r.signal=o.expr:r.value=o}else r.field=H(e,n);if(i){const{offset:o,band:s}=i;o&&(r.offset=o),s&&(r.band=s)}return r}function Ip({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:i,startSuffix:r,endSuffix:o="end",bandPosition:s=.5}){const a=!Q(s)&&0<s&&s<1?"datum":void 0,u=H(t,{expr:a,suffix:r}),l=n!==void 0?H(n,{expr:a}):H(t,{suffix:o,expr:a}),c={};if(s===0||s===1){c.scale=e;const f=s===0?u:l;c.field=f}else{const f=Q(s)?`(1-${s.signal}) * ${u} + ${s.signal} * ${l}`:`${1-s} * ${u} + ${s} * ${l}`;c.signal=`scale("${e}", ${f})`}return i&&(c.offset=i),c}function Tae({scaleName:e,fieldDef:t}){const n=H(t,{expr:"datum"}),i=H(t,{expr:"datum",suffix:"end"});return`abs(scale("${e}", ${i}) - scale("${e}", ${n}))`}function Vw({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:s,stack:a,offset:u,defaultRef:l,bandPosition:c}){if(t){if(fe(t)){const f=s?.get("type");if(Cn(t)){c??(c=os({fieldDef:t,fieldDef2:n,markDef:i,config:r}));const{bin:d,timeUnit:h,type:p}=t;if(He(d)||c&&h&&p===Vu)return a?.impute?Zs(t,o,{binSuffix:"mid"},{offset:u}):c&&!Dt(f)?Ip({scaleName:o,fieldOrDatumDef:t,bandPosition:c,offset:u}):Zs(t,o,rd(t,e)?{binSuffix:"range"}:{},{offset:u});if(Nt(d)){if(q(n))return Ip({scaleName:o,fieldOrDatumDef:t,fieldOrDatumDef2:n,bandPosition:c,offset:u});j(o6(e===et?Vi:Tr))}}return Zs(t,o,Dt(f)?{binSuffix:"range"}:{},{offset:u,band:f==="band"?c??t.bandPosition??.5:void 0})}else if(Ui(t)){const f=t.value,d=u?{offset:u}:{};return{...Lc(e,f),...d}}}return Bre(l)&&(l=l()),l&&{...l,...u?{offset:u}:{}}}function Lc(e,t){return we(["x","x2"],e)&&t==="width"?{field:{group:"width"}}:we(["y","y2"],e)&&t==="height"?{field:{group:"height"}}:Ye(t)}function wa(e){return e&&e!=="number"&&e!=="time"}function M6(e,t,n){return`${e}(${t}${n?`, ${je(n)}`:""})`}const Mae=" – ";function Yw({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o}){if(wa(n))return Oi({fieldOrDatumDef:e,format:t,formatType:n,expr:i,config:o});const s=O6(e,i,r),a=Xu(e);if(t===void 0&&n===void 0&&o.customFormatTypes){if(a==="quantitative"){if(r&&o.normalizedNumberFormatType)return Oi({fieldOrDatumDef:e,format:o.normalizedNumberFormat,formatType:o.normalizedNumberFormatType,expr:i,config:o});if(o.numberFormatType)return Oi({fieldOrDatumDef:e,format:o.numberFormat,formatType:o.numberFormatType,expr:i,config:o})}if(a==="temporal"&&o.timeFormatType&&q(e)&&e.timeUnit===void 0)return Oi({fieldOrDatumDef:e,format:o.timeFormat,formatType:o.timeFormatType,expr:i,config:o})}if(Ju(e)){const u=Rae({field:s,timeUnit:q(e)?kt(e.timeUnit)?.unit:void 0,format:t,formatType:o.timeFormatType,rawTimeFormat:o.timeFormat,isUTCScale:qa(e)&&e.scale?.type===Pt.UTC});return u?{signal:u}:void 0}if(t=Xb({type:a,specifiedFormat:t,config:o,normalizeStack:r}),q(e)&&He(e.bin)){const u=H(e,{expr:i,binSuffix:"end"});return{signal:ed(s,u,t,n,o)}}else return t||Xu(e)==="quantitative"?{signal:`${L6(s,t)}`}:{signal:`isValid(${s}) ? ${s} : ""+${s}`}}function O6(e,t,n){return q(e)?n?`${H(e,{expr:t,suffix:"end"})}-${H(e,{expr:t,suffix:"start"})}`:H(e,{expr:t}):Dae(e)}function Oi({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o,field:s}){if(s??(s=O6(e,i,r)),s!=="datum.value"&&q(e)&&He(e.bin)){const a=H(e,{expr:i,binSuffix:"end"});return{signal:ed(s,a,t,n,o)}}return{signal:M6(n,s,t)}}function R6(e,t,n,i,r,o){if(!(de(i)&&wa(i))&&!(n===void 0&&i===void 0&&r.customFormatTypes&&Xu(e)==="quantitative"&&(r.normalizedNumberFormatType&&Ku(e)&&e.stack==="normalize"||r.numberFormatType))){if(Ku(e)&&e.stack==="normalize"&&r.normalizedNumberFormat)return Xb({type:"quantitative",config:r,normalizeStack:!0});if(Ju(e)){const s=q(e)?kt(e.timeUnit)?.unit:void 0;return s===void 0&&r.customFormatTypes&&r.timeFormatType?void 0:Oae({specifiedFormat:n,timeUnit:s,config:r,omitTimeFormatConfig:o})}return Xb({type:t,specifiedFormat:n,config:r})}}function N6(e,t,n){if(e&&(Q(e)||e==="number"||e==="time"))return e;if(Ju(t)&&n!=="time"&&n!=="utc")return q(t)&&kt(t?.timeUnit)?.utc?"utc":"time"}function Xb({type:e,specifiedFormat:t,config:n,normalizeStack:i}){if(de(t))return t;if(e===va)return i?n.normalizedNumberFormat:n.numberFormat}function Oae({specifiedFormat:e,timeUnit:t,config:n,omitTimeFormatConfig:i}){return e||(t?{signal:h6(t)}:i?void 0:n.timeFormat)}function L6(e,t){return`format(${e}, "${t||""}")`}function z_(e,t,n,i){return wa(n)?M6(n,e,t):L6(e,(de(t)?t:void 0)??i.numberFormat)}function ed(e,t,n,i,r){if(n===void 0&&i===void 0&&r.customFormatTypes&&r.numberFormatType)return ed(e,t,r.numberFormat,r.numberFormatType,r);const o=z_(e,n,i,r),s=z_(t,n,i,r);return`${O0(e,!1)} ? "null" : ${o} + "${Mae}" + ${s}`}function Rae({field:e,timeUnit:t,format:n,formatType:i,rawTimeFormat:r,isUTCScale:o}){return!t||n?!t&&i?`${i}(${e}, '${n}')`:(n=de(n)?n:r,`${o?"utc":"time"}Format(${e}, '${n}')`):jse(t,e,o)}const I0="min",Nae={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 B_(e){return pt(Nae,e)}function Lae(e){return U(e,"encoding")}function so(e){return e&&(e.op==="count"||U(e,"field"))}function P6(e){return e&&X(e)}function td(e){return U(e,"row")||U(e,"column")}function Xw(e){return U(e,"header")}function z0(e){return U(e,"facet")}function Pae(e){return U(e,"param")}function Iae(e){return!de(e)&&U(e,"repeat")}function U_(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return{...n?{timeUnit:n}:{},...i?{bin:i}:{},...r?{aggregate:r}:{},field:t}}function Kw(e){return U(e,"sort")}function os({fieldDef:e,fieldDef2:t,markDef:n,config:i}){if(fe(e)&&e.bandPosition!==void 0)return e.bandPosition;if(q(e)){const{timeUnit:r,bin:o}=e;if(r&&!t)return Ar("timeUnitBandPosition",n,i);if(He(o))return .5}}function I6({channel:e,fieldDef:t,fieldDef2:n,markDef:i,config:r,scaleType:o,useVlSizeChannel:s}){const a=jn(e),u=Be(s?"size":a,i,r,{vgChannel:a});if(u!==void 0)return u;if(q(t)){const{timeUnit:l,bin:c}=t;if(l&&!n)return{band:Ar("timeUnitBandSize",i,r)};if(He(c)&&!Dt(o))return{band:1}}if(cf(i.type))return o?Dt(o)?r[i.type]?.discreteBandSize||{band:1}:r[i.type]?.continuousBandSize:r[i.type]?.discreteBandSize}function z6(e,t,n,i){return He(e.bin)||e.timeUnit&&Cn(e)&&e.type==="temporal"?os({fieldDef:e,fieldDef2:t,markDef:n,config:i})!==void 0:!1}function B6(e){return U(e,"sort")&&!U(e,"field")}function nd(e){return U(e,"condition")}function B0(e){const t=e?.condition;return!!t&&!X(t)&&q(t)}function id(e){const t=e?.condition;return!!t&&!X(t)&&fe(t)}function zae(e){const t=e?.condition;return!!t&&(X(t)||Ui(t))}function q(e){return U(e,"field")||e?.aggregate==="count"}function Xu(e){return e?.type}function Lr(e){return U(e,"datum")}function Wo(e){return Cn(e)&&!Bp(e)||zp(e)}function j_(e){return Cn(e)&&e.type==="quantitative"&&!e.bin||zp(e)}function zp(e){return Lr(e)&&Ze(e.datum)}function fe(e){return q(e)||Lr(e)}function Cn(e){return e&&(U(e,"field")||e.aggregate==="count")&&U(e,"type")}function Ui(e){return U(e,"value")}function qa(e){return U(e,"scale")||U(e,"sort")}function Ku(e){return U(e,"axis")||U(e,"stack")||U(e,"impute")}function U6(e){return U(e,"legend")}function j6(e){return U(e,"format")||U(e,"formatType")}function Bae(e){return Rn(e,["legend","axis","header","scale"])}function Uae(e){return U(e,"op")}function H(e,t={}){let n=e.field;const i=t.prefix;let r=t.suffix,o="";if(qae(e))n=TN("count");else{let s;if(!t.nofn)if(Uae(e))s=e.op;else{const{bin:a,aggregate:u,timeUnit:l}=e;He(a)?(s=GN(a),r=(t.binSuffix??"")+(t.suffix??"")):u?xs(u)?(o=`["${n}"]`,n=`argmax_${u.argmax}`):po(u)?(o=`["${n}"]`,n=`argmin_${u.argmin}`):s=String(u):l&&!ja(l)&&(s=qse(l),r=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(t.suffix??""))}s&&(n=n?`${s}_${n}`:s)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?bl(n):t.expr?FN(n,t.expr)+o:bi(n)+o}function Bp(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return q(e)&&!!e.bin;case"temporal":return!1}throw new Error(t6(e.type))}function jae(e){return qa(e)&&Yu(e.scale?.type)}function qae(e){return e.aggregate==="count"}function Wae(e,t){const{field:n,bin:i,timeUnit:r,aggregate:o}=e;if(o==="count")return t.countTitle;if(He(i))return`${n} (binned)`;if(r&&!ja(r)){const s=kt(r)?.unit;if(s)return`${n} (${M0(s).join("-")})`}else if(o)return xs(o)?`${n} for max ${o.argmax}`:po(o)?`${n} for min ${o.argmin}`:`${Yf(o)} of ${n}`;return n}function Gae(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(xs(t))return`${r} for argmax(${t.argmax})`;if(po(t))return`${r} for argmin(${t.argmin})`;const o=i&&!ja(i)?kt(i):void 0,s=t||o?.unit||o?.maxbins&&"timeunit"||He(n)&&"bin";return s?`${s.toUpperCase()}(${r})`:r}const q6=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return Gae(e);default:return Wae(e,t)}};let W6=q6;function G6(e){W6=e}function Hae(){G6(q6)}function wu(e,t,{allowDisabling:n,includeDefault:i=!0}){const r=Jw(e)?.title;if(!q(e))return r??e.title;const o=e,s=i?Qw(o,t):void 0;return n?ft(r,o.title,s):r??o.title??s}function Jw(e){if(Ku(e)&&e.axis)return e.axis;if(U6(e)&&e.legend)return e.legend;if(Xw(e)&&e.header)return e.header}function Qw(e,t){return W6(e,t)}function Up(e){if(j6(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}else{const t=Jw(e)??{},{format:n,formatType:i}=t;return{format:n,formatType:i}}}function Vae(e,t){switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(Kw(e)&&X(e.sort))return"ordinal";const{aggregate:n,bin:i,timeUnit:r}=e;if(r)return"temporal";if(i||n&&!xs(n)&&!po(n))return"quantitative";if(qa(e)&&e.scale?.type)switch(Vb[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function ji(e){if(q(e))return e;if(B0(e))return e.condition}function xt(e){if(fe(e))return e;if(id(e))return e.condition}function H6(e,t,n,i={}){if(de(e)||Ze(e)||Vf(e)){const r=de(e)?"string":Ze(e)?"number":"boolean";return j(Hoe(t,r,e)),{value:e}}return fe(e)?jp(e,t,n,i):id(e)?{...e,condition:jp(e.condition,t,n,i)}:e}function jp(e,t,n,i){if(j6(e)){const{format:r,formatType:o,...s}=e;if(wa(o)&&!n.customFormatTypes)return j(R_(t)),jp(s,t,n,i)}else{const r=Ku(e)?"axis":U6(e)?"legend":Xw(e)?"header":null;if(r&&e[r]){const{format:o,formatType:s,...a}=e[r];if(wa(s)&&!n.customFormatTypes)return j(R_(t)),jp({...e,[r]:a},t,n,i)}}return q(e)?Zw(e,t,i):Yae(e)}function Yae(e){let t=e.type;if(t)return e;const{datum:n}=e;return t=Ze(n)?"quantitative":de(n)?"nominal":Ua(n)?"temporal":void 0,{...e,type:t}}function Zw(e,t,{compositeMark:n=!1}={}){const{aggregate:i,timeUnit:r,bin:o,field:s}=e,a={...e};if(!n&&i&&!Sw(i)&&!xs(i)&&!po(i)&&(j(Yoe(i)),delete a.aggregate),r&&(a.timeUnit=kt(r)),s&&(a.field=`${s}`),He(o)&&(a.bin=U0(o,t)),Nt(o)&&!dt(t)&&j($se(t)),Cn(a)){const{type:u}=a,l=Jse(u);u!==l&&(a.type=l),u!=="quantitative"&&k0(i)&&(j(Voe(u,i)),a.type="quantitative")}else if(!zN(t)){const u=Vae(a,t);a.type=u}if(Cn(a)){const{compatible:u,warning:l}=Xae(a,t)||{};u===!1&&j(l)}if(Kw(a)&&de(a.sort)){const{sort:u}=a;if(B_(u))return{...a,sort:{encoding:u}};const l=u.substring(1);if(u.charAt(0)==="-"&&B_(l))return{...a,sort:{encoding:l,order:"descending"}}}if(Xw(a)){const{header:u}=a;if(u){const{orient:l,...c}=u;if(l)return{...a,header:{...c,labelOrient:u.labelOrient||l,titleOrient:u.titleOrient||l}}}}return a}function U0(e,t){return Vf(e)?{maxbins:C_(t)}:e==="binned"?{binned:!0}:!e.maxbins&&!e.step?{...e,maxbins:C_(t)}:e}const iu={compatible:!0};function Xae(e,t){const n=e.type;if(n==="geojson"&&t!=="shape")return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case ro:case oo:case A0:return Bp(e)?iu:{compatible:!1,warning:Qoe(t)};case et:case Mt:case hs:case xl:case Bn:case Mr:case Or:case Xf:case Kf:case S0:case ya:case C0:case $0:case Pa:case Ei:case Yi:case _0:return iu;case Ki:case xi:case Xi:case Ji:return n!==va?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:iu;case Ao:case gs:case ms:case ys:case wo:case Eo:case vo:case Vi:case Tr:case ps:return n==="nominal"&&!e.sort?{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`}:iu;case Un:case bs:return!Bp(e)&&!jae(e)?{compatible:!1,warning:Zoe(t)}:iu;case Hu:return e.type==="nominal"&&!("sort"in e)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:iu}}function Ju(e){const{formatType:t}=Up(e);return t==="time"||!t&&Kae(e)}function Kae(e){return e&&(e.type==="temporal"||q(e)&&!!e.timeUnit)}function j0(e,{timeUnit:t,type:n,wrapTime:i,undefinedIfExprNotRequired:r}){const o=t&&kt(t)?.unit;let s=o||n==="temporal",a;return Qf(e)?a=e.expr:Q(e)?a=e.signal:Ua(e)?(s=!0,a=xa(e)):(de(e)||Ze(e))&&s&&(a=`datetime(${je(e)})`,Ise(o)&&(Ze(e)&&e<1e4||de(e)&&isNaN(Date.parse(e)))&&(a=xa({[o]:e}))),a?i&&s?`time(${a})`:a:r?void 0:je(e)}function V6(e,t){const{type:n}=e;return t.map(i=>{const r=q(e)&&!ja(e.timeUnit)?e.timeUnit:void 0,o=j0(i,{timeUnit:r,type:n,undefinedIfExprNotRequired:!0});return o!==void 0?{signal:o}:i})}function rd(e,t){return He(e.bin)?Nr(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const q_={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 od(e){return e?.condition}const Y6=["domain","grid","labels","ticks","title"],Jae={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"},X6={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},Qae={...X6,style:1,labelExpr:1,encoding:1};function W_(e){return pt(Qae,e)}const Zae={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},K6=B(Zae);function Co(e){return U(e,"mark")}class q0{constructor(t,n){this.name=t,this.run=n}hasMatchingType(t){return Co(t)?_ae(t.mark)===this.name:!1}}function ea(e,t){const n=e&&e[t];return n?X(n)?Wu(n,i=>!!i.field):q(n)||B0(n):!1}function J6(e,t){const n=e&&e[t];return n?X(n)?Wu(n,i=>!!i.field):q(n)||Lr(n)||id(n):!1}function Q6(e,t){if(dt(t)){const n=e[t];if((q(n)||Lr(n))&&(b6(n.type)||q(n)&&n.timeUnit)){const i=xw(t);return J6(e,i)}}return!1}function Z6(e){return Wu(Yre,t=>{if(ea(e,t)){const n=e[t];if(X(n))return Wu(n,i=>!!i.aggregate);{const i=ji(n);return i&&!!i.aggregate}}return!1})}function e4(e,t){const n=[],i=[],r=[],o=[],s={};return eA(e,(a,u)=>{if(q(a)){const{field:l,aggregate:c,bin:f,timeUnit:d,...h}=a;if(c||d||f){const g=Jw(a)?.title;let m=H(a,{forAs:!0});const y={...g?[]:{title:wu(a,t,{allowDisabling:!0})},...h,field:m};if(c){let b;if(xs(c)?(b="argmax",m=H({op:"argmax",field:c.argmax},{forAs:!0}),y.field=`${m}.${l}`):po(c)?(b="argmin",m=H({op:"argmin",field:c.argmin},{forAs:!0}),y.field=`${m}.${l}`):c!=="boxplot"&&c!=="errorbar"&&c!=="errorband"&&(b=c),b){const x={op:b,as:m};l&&(x.field=l),o.push(x)}}else if(n.push(m),Cn(a)&&He(f)){if(i.push({bin:f,field:l,as:m}),n.push(H(a,{binSuffix:"end"})),rd(a,u)&&n.push(H(a,{binSuffix:"range"})),dt(u)){const b={field:`${m}_end`};s[`${u}2`]=b}y.bin="binned",zN(u)||(y.type=va)}else if(d&&!ja(d)){r.push({timeUnit:d,field:l,as:m});const b=Cn(a)&&a.type!==Vu&&"time";b&&(u===Xf||u===ya?y.formatType=b:ooe(u)?y.legend={formatType:b,...y.legend}:dt(u)&&(y.axis={formatType:b,...y.axis}))}s[u]=y}else n.push(l),s[u]=e[u]}else s[u]=e[u]}),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:s}}function eue(e,t,n){const i=aoe(t,n);if(i){if(i==="binned"){const r=e[t===Vi?et:Mt];return!!(q(r)&&q(e[t])&&Nt(r.bin))}}else return!1;return!0}function tue(e,t,n,i){const r={};for(const o of B(e))IN(o)||j(Joe(o));for(let o of eoe){if(!e[o])continue;const s=e[o];if(Jf(o)){const a=Zre(o),u=r[a];if(q(u)&&Kse(u.type)&&q(s)&&!u.timeUnit){j(Goe(a));continue}}if(o==="angle"&&t==="arc"&&!e.theta&&(j(Woe),o=Ei),!eue(e,o,t)){j(T0(o,t));continue}if(o===wo&&t==="line"&&ji(e[o])?.aggregate){j(Koe);continue}if(o===Bn&&(n?"fill"in e:"stroke"in e)){j(n6("encoding",{fill:"fill"in e,stroke:"stroke"in e}));continue}if(o===Kf||o===Hu&&!X(s)&&!Ui(s)||o===ya&&X(s)){if(s){if(o===Hu){const a=e[o];if(B6(a)){r[o]=a;continue}}r[o]=ct(s).reduce((a,u)=>(q(u)?a.push(Zw(u,o)):j(Hb(u,o)),a),[])}}else{if(o===ya&&s===null)r[o]=null;else if(!q(s)&&!Lr(s)&&!Ui(s)&&!nd(s)&&!Q(s)){j(Hb(s,o));continue}r[o]=H6(s,o,i)}}return r}function W0(e,t){const n={};for(const i of B(e)){const r=H6(e[i],i,t,{compositeMark:!0});n[i]=r}return n}function nue(e){const t=[];for(const n of B(e))if(ea(e,n)){const i=e[n],r=ct(i);for(const o of r)q(o)?t.push(o):B0(o)&&t.push(o.condition)}return t}function eA(e,t,n){if(e)for(const i of B(e)){const r=e[i];if(X(r))for(const o of r)t.call(n,o,i);else t.call(n,r,i)}}function iue(e,t,n,i){return e?B(e).reduce((r,o)=>{const s=e[o];return X(s)?s.reduce((a,u)=>t.call(i,a,u,o),r):t.call(i,r,s,o)},n):n}function t4(e,t){return B(t).reduce((n,i)=>{switch(i){case et:case Mt:case C0:case _0:case $0:case Vi:case Tr:case hs:case xl:case Ei:case Eo:case Yi:case vo:case ps:case Xi:case Ki:case Ji:case xi:case Xf:case Un:case Pa:case ya:return n;case Hu:if(e==="line"||e==="trail")return n;case Kf:case S0:{const r=t[i];if(X(r)||q(r))for(const o of ct(r))o.aggregate||n.push(H(o,{}));return n}case wo:if(e==="trail")return n;case Bn:case Mr:case Or:case Ao:case gs:case ms:case bs:case ys:{const r=ji(t[i]);return r&&!r.aggregate&&n.push(H(r,{})),n}}},[])}function rue(e){const{tooltip:t,...n}=e;if(!t)return{filteredEncoding:n};let i,r;if(X(t)){for(const o of t)o.aggregate?(i||(i=[]),i.push(o)):(r||(r=[]),r.push(o));i&&(n.tooltip=i)}else t.aggregate?n.tooltip=t:r=t;return X(r)&&r.length===1&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}function Kb(e,t,n,i=!0){if("tooltip"in n)return{tooltip:n.tooltip};const r=e.map(({fieldPrefix:s,titlePrefix:a})=>{const u=i?` of ${tA(t)}`:"";return{field:s+t.field,type:t.type,title:Q(a)?{signal:`${a}"${escape(u)}"`}:a+u}}),o=nue(n).map(Bae);return{tooltip:[...r,...cr(o,Ae)]}}function tA(e){const{title:t,field:n}=e;return ft(t,n)}function nA(e,t,n,i,r){const{scale:o,axis:s}=n;return({partName:a,mark:u,positionPrefix:l,endPositionPrefix:c=void 0,extraEncoding:f={}})=>{const d=tA(n);return n4(e,a,r,{mark:u,encoding:{[t]:{field:`${l}_${n.field}`,type:n.type,...d!==void 0?{title:d}:{},...o!==void 0?{scale:o}:{},...s!==void 0?{axis:s}:{}},...de(c)?{[`${t}2`]:{field:`${c}_${n.field}`}}:{},...i,...f}})}}function n4(e,t,n,i){const{clip:r,color:o,opacity:s}=e,a=e.type;return e[t]||e[t]===void 0&&n[t]?[{...i,mark:{...n[t],...r?{clip:r}:{},...o?{color:o}:{},...s?{opacity:s}:{},...Sr(i.mark)?i.mark:{type:i.mark},style:`${a}-${String(t)}`,...Vf(e[t])?{}:e[t]}}]:[]}function i4(e,t,n){const{encoding:i}=e,r=t==="vertical"?"y":"x",o=i[r],s=i[`${r}2`],a=i[`${r}Error`],u=i[`${r}Error2`];return{continuousAxisChannelDef:Bd(o,n),continuousAxisChannelDef2:Bd(s,n),continuousAxisChannelDefError:Bd(a,n),continuousAxisChannelDefError2:Bd(u,n),continuousAxis:r}}function Bd(e,t){if(e?.aggregate){const{aggregate:n,...i}=e;return n!==t&&j(Cse(n,t)),i}else return e}function r4(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(Sr(n)&&n.orient)return n.orient;if(Wo(r)){if(Wo(o)){const s=q(r)&&r.aggregate,a=q(o)&&o.aggregate;if(!s&&a===t)return"vertical";if(!a&&s===t)return"horizontal";if(s===t&&a===t)throw new Error("Both x and y cannot have aggregate");return Ju(o)&&!Ju(r)?"horizontal":"vertical"}return"horizontal"}else{if(Wo(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}}const qp="boxplot",oue=["box","median","outliers","rule","ticks"],sue=new q0(qp,s4);function o4(e){return Ze(e)?"tukey":e}function s4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{mark:n,encoding:i,params:r,projection:o,...s}=e,a=Sr(n)?n:{type:n};r&&j(e6("boxplot"));const u=a.extent??t.boxplot.extent,l=Be("size",a,t),c=a.invalid,f=o4(u),{bins:d,timeUnits:h,transform:p,continuousAxisChannelDef:g,continuousAxis:m,groupby:y,aggregate:b,encodingWithoutContinuousAxis:x,ticksOrient:v,boxOrient:w,customTooltipWithoutAggregatedField:A}=aue(e,u,t),E=bl(g.field),{color:S,size:C,..._}=x,k=dd=>nA(a,m,g,dd,t.boxplot),N=k(_),T=k(x),F=(Fe(t.boxplot.box)?t.boxplot.box.color:t.mark.color)||"#4c78a8",$=k({..._,...C?{size:C}:{},color:{condition:{test:`${Le(`lower_box_${g.field}`)} >= ${Le(`upper_box_${g.field}`)}`,...S||{value:F}}}}),D=Kb([{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,x),P={type:"tick",color:"black",opacity:1,orient:v,invalid:c,aria:!1},z=f==="min-max"?D:Kb([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],g,x),I=[...N({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:z}),...N({partName:"rule",mark:{type:"rule",invalid:c,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:z}),...N({partName:"ticks",mark:P,positionPrefix:"lower_whisker",extraEncoding:z}),...N({partName:"ticks",mark:P,positionPrefix:"upper_whisker",extraEncoding:z})],V=[...f!=="tukey"?I:[],...T({partName:"box",mark:{type:"bar",...l?{size:l}:{},orient:w,invalid:c,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:D}),...$({partName:"median",mark:{type:"tick",invalid:c,...Fe(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...l?{size:l}:{},orient:v,aria:!1},positionPrefix:"mid_box",extraEncoding:D})];if(f==="min-max")return{...s,transform:(s.transform??[]).concat(p),layer:V};const ue=Le(`lower_box_${g.field}`),ie=Le(`upper_box_${g.field}`),he=`(${ie} - ${ue})`,We=`${ue} - ${u} * ${he}`,pe=`${ie} + ${u} * ${he}`,Ht=Le(g.field),ws={joinaggregate:a4(g.field),groupby:y},_o={transform:[{filter:`(${We} <= ${Ht}) && (${Ht} <= ${pe})`},{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}`},...b],groupby:y}],layer:I},{tooltip:Y,...ge}=_,{scale:ve,axis:W}=g,Ot=tA(g),Ne=Rn(W,["title"]),Vt=n4(a,"outliers",t.boxplot,{transform:[{filter:`(${Ht} < ${We}) || (${Ht} > ${pe})`}],mark:"point",encoding:{[m]:{field:g.field,type:g.type,...Ot!==void 0?{title:Ot}:{},...ve!==void 0?{scale:ve}:{},...Ue(Ne)?{}:{axis:Ne}},...ge,...S?{color:S}:{},...A?{tooltip:A}:{}}})[0];let At;const Zi=[...d,...h,ws];return Vt?At={transform:Zi,layer:[Vt,_o]}:(At=_o,At.transform.unshift(...Zi)),{...s,layer:[At,{transform:p,layer:V}]}}function a4(e){const t=bl(e);return[{op:"q1",field:e,as:`lower_box_${t}`},{op:"q3",field:e,as:`upper_box_${t}`}]}function aue(e,t,n){const i=r4(e,qp),{continuousAxisChannelDef:r,continuousAxis:o}=i4(e,i,qp),s=r.field,a=bl(s),u=o4(t),l=[...a4(s),{op:"median",field:s,as:`mid_box_${a}`},{op:"min",field:s,as:(u==="min-max"?"lower_whisker_":"min_")+a},{op:"max",field:s,as:(u==="min-max"?"upper_whisker_":"max_")+a}],c=u==="min-max"||u==="tukey"?[]:[{calculate:`${Le(`upper_box_${a}`)} - ${Le(`lower_box_${a}`)}`,as:`iqr_${a}`},{calculate:`min(${Le(`upper_box_${a}`)} + ${Le(`iqr_${a}`)} * ${t}, ${Le(`max_${a}`)})`,as:`upper_whisker_${a}`},{calculate:`max(${Le(`lower_box_${a}`)} - ${Le(`iqr_${a}`)} * ${t}, ${Le(`min_${a}`)})`,as:`lower_whisker_${a}`}],{[o]:f,...d}=e.encoding,{customTooltipWithoutAggregatedField:h,filteredEncoding:p}=rue(d),{bins:g,timeUnits:m,aggregate:y,groupby:b,encoding:x}=e4(p,n),v=i==="vertical"?"horizontal":"vertical",w=i,A=[...g,...m,{aggregate:[...y,...l],groupby:b},...c];return{bins:g,timeUnits:m,transform:A,groupby:b,aggregate:y,continuousAxisChannelDef:r,continuousAxis:o,encodingWithoutContinuousAxis:x,ticksOrient:v,boxOrient:w,customTooltipWithoutAggregatedField:h}}const iA="errorbar",uue=["ticks","rule"],lue=new q0(iA,u4);function u4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:s,markDef:a,outerSpec:u,tooltipEncoding:l}=l4(e,iA,t);delete o.size;const c=nA(a,r,i,o,t.errorbar),f=a.thickness,d=a.size,h={type:"tick",orient:s,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:l}),...c({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l})];return{...u,transform:n,...p.length>1?{layer:p}:{...p[0]}}}function cue(e,t){const{encoding:n}=e;if(fue(n))return{orient:r4(e,t),inputType:"raw"};const i=due(n),r=hue(n),o=n.x,s=n.y;if(i){if(r)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const a=n.x2,u=n.y2;if(fe(a)&&fe(u))throw new Error(`${t} cannot have both x2 and y2`);if(fe(a)){if(Wo(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}else if(fe(u)){if(Wo(s))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")}else{const a=n.xError,u=n.xError2,l=n.yError,c=n.yError2;if(fe(u)&&!fe(a))throw new Error(`${t} cannot have xError2 without xError`);if(fe(c)&&!fe(l))throw new Error(`${t} cannot have yError2 without yError`);if(fe(a)&&fe(l))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(fe(a)){if(Wo(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(fe(l)){if(Wo(s))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function fue(e){return(fe(e.x)||fe(e.y))&&!fe(e.x2)&&!fe(e.y2)&&!fe(e.xError)&&!fe(e.xError2)&&!fe(e.yError)&&!fe(e.yError2)}function due(e){return fe(e.x2)||fe(e.y2)}function hue(e){return fe(e.xError)||fe(e.xError2)||fe(e.yError)||fe(e.yError2)}function l4(e,t,n){const{mark:i,encoding:r,params:o,projection:s,...a}=e,u=Sr(i)?i:{type:i};o&&j(e6(t));const{orient:l,inputType:c}=cue(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:g}=i4(e,l,t),{errorBarSpecificAggregate:m,postAggregateCalculates:y,tooltipSummary:b,tooltipTitleWithFieldName:x}=pue(u,f,d,h,p,c,t,n),{[g]:v,[g==="x"?"x2":"y2"]:w,[g==="x"?"xError":"yError"]:A,[g==="x"?"xError2":"yError2"]:E,...S}=r,{bins:C,timeUnits:_,aggregate:k,groupby:N,encoding:T}=e4(S,n),F=[...k,...m],$=c!=="raw"?[]:N,D=Kb(b,f,T,x);return{transform:[...a.transform??[],...C,..._,...F.length===0?[]:[{aggregate:F,groupby:$}],...y],groupby:$,continuousAxisChannelDef:f,continuousAxis:g,encodingWithoutContinuousAxis:T,ticksOrient:l==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:a,tooltipEncoding:D}}function pue(e,t,n,i,r,o,s,a){let u=[],l=[];const c=t.field;let f,d=!1;if(o==="raw"){const h=e.center?e.center:e.extent?e.extent==="iqr"?"median":"mean":a.errorbar.center,p=e.extent?e.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(p==="iqr")&&j(Sse(h,p,s)),p==="stderr"||p==="stdev")u=[{op:p,field:c,as:`extent_${c}`},{op:h,field:c,as:`center_${c}`}],l=[{calculate:`${Le(`center_${c}`)} + ${Le(`extent_${c}`)}`,as:`upper_${c}`},{calculate:`${Le(`center_${c}`)} - ${Le(`extent_${c}`)}`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:Yf(h)},{fieldPrefix:"upper_",titlePrefix:G_(h,p,"+")},{fieldPrefix:"lower_",titlePrefix:G_(h,p,"-")}],d=!0;else{let g,m,y;p==="ci"?(g="mean",m="ci0",y="ci1"):(g="median",m="q1",y="q3"),u=[{op:m,field:c,as:`lower_${c}`},{op:y,field:c,as:`upper_${c}`},{op:g,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:wu({field:c,aggregate:y,type:"quantitative"},a,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:wu({field:c,aggregate:m,type:"quantitative"},a,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:wu({field:c,aggregate:g,type:"quantitative"},a,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&j(Ase(e.center,e.extent)),o==="aggregated-upper-lower"?(f=[],l=[{calculate:Le(n.field),as:`upper_${c}`},{calculate:Le(c),as:`lower_${c}`}]):o==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:c}],l=[{calculate:`${Le(c)} + ${Le(i.field)}`,as:`upper_${c}`}],r?l.push({calculate:`${Le(c)} + ${Le(r.field)}`,as:`lower_${c}`}):l.push({calculate:`${Le(c)} - ${Le(i.field)}`,as:`lower_${c}`}));for(const h of l)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:ma(ma(h.calculate,"datum['",""),"']","")})}return{postAggregateCalculates:l,errorBarSpecificAggregate:u,tooltipSummary:f,tooltipTitleWithFieldName:d}}function G_(e,t,n){return`${Yf(e)} ${n} ${t}`}const rA="errorband",gue=["band","borders"],mue=new q0(rA,c4);function c4(e,{config:t}){e={...e,encoding:W0(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:s,outerSpec:a,tooltipEncoding:u}=l4(e,rA,t),l=s,c=nA(l,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={...l.interpolate?{interpolate:l.interpolate}:{},...l.tension&&l.interpolate?{tension:l.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):l.interpolate?j(L_("interpolate")):l.tension&&j(L_("tension")),{...a,transform:n,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const f4={};function oA(e,t,n){const i=new q0(e,t);f4[e]={normalizer:i,parts:n}}function yue(){return B(f4)}oA(qp,s4,oue);oA(iA,u4,uue);oA(rA,c4,gue);const bue=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],d4={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"},h4={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"},xue=B(d4),vue=B(h4),Eue={header:1,headerRow:1,headerColumn:1,headerFacet:1},p4=B(Eue),g4=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],wue={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},Aue={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},qi="_vgsid_",Sue={point:{on:"click",fields:[qi],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 sA(e){return e==="legend"||!!e?.legend}function F1(e){return sA(e)&&Fe(e)}function aA(e){return!!e?.select}function m4(e){const t=[];for(const n of e||[]){if(aA(n))continue;const{expr:i,bind:r,...o}=n;if(r&&i){const s={...o,bind:r,init:i};t.push(s)}else{const s={...o,...i?{update:i}:{},...r?{bind:r}:{}};t.push(s)}}return t}function Cue(e){return G0(e)||lA(e)||uA(e)}function uA(e){return U(e,"concat")}function G0(e){return U(e,"vconcat")}function lA(e){return U(e,"hconcat")}function y4({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function Cr(e){return U(e,"step")}function H_(e){return U(e,"view")||U(e,"width")||U(e,"height")}const V_=20,$ue={align:1,bounds:1,center:1,columns:1,spacing:1},_ue=B($ue);function Fue(e,t,n){const i=n[t],r={},{spacing:o,columns:s}=i;o!==void 0&&(r.spacing=o),s!==void 0&&(z0(e)&&!td(e.facet)||uA(e))&&(r.columns=s),G0(e)&&(r.columns=1);for(const a of _ue)if(e[a]!==void 0)if(a==="spacing"){const u=e[a];r[a]=Ze(u)?u:{row:u.row??o,column:u.column??o}}else r[a]=e[a];return r}function Jb(e,t){return e[t]??e[t==="width"?"continuousWidth":"continuousHeight"]}function Qb(e,t){const n=Wp(e,t);return Cr(n)?n.step:b4}function Wp(e,t){const n=e[t]??e[t==="width"?"discreteWidth":"discreteHeight"];return ft(n,{step:e.step})}const b4=20,kue={continuousWidth:200,continuousHeight:200,step:b4},Due={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:kue,mark:Eae,arc:{},area:{},bar:Cae,circle:{},geoshape:{},image:{},line:{},point:{},rect:Ww,rule:{color:"black"},square:{},text:{color:"black"},tick:$ae,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:nae,projection:{},legend:wue,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:Sue,style:{},title:{},facet:{spacing:V_},concat:{spacing:V_},normalizedNumberFormat:".0%"},Ur=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Y_={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},X_={blue:Ur[0],orange:Ur[1],red:Ur[2],teal:Ur[3],green:Ur[4],yellow:Ur[5],purple:Ur[6],pink:Ur[7],brown:Ur[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 Tue(e={}){return{signals:[{name:"color",value:Fe(e)?{...X_,...e}:X_}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}function Mue(e){return{signals:[{name:"fontSize",value:Fe(e)?{...Y_,...e}:Y_}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}function Oue(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}function x4(e){const t=B(e||{}),n={};for(const i of t){const r=e[i];n[i]=od(r)?VN(r):Vn(r)}return n}function Rue(e){const t=B(e),n={};for(const i of t)n[i]=x4(e[i]);return n}const Nue=[...F6,...K6,...p4,"background","padding","legend","lineBreak","scale","style","title","view"];function v4(e={}){const{color:t,font:n,fontSize:i,selection:r,...o}=e,s=SN({},ce(Due),n?Oue(n):{},t?Tue(t):{},i?Mue(i):{},o||{});r&&E0(s,"selection",r,!0);const a=Rn(s,Nue);for(const u of["background","lineBreak","padding"])s[u]&&(a[u]=Vn(s[u]));for(const u of F6)s[u]&&(a[u]=Lt(s[u]));for(const u of K6)s[u]&&(a[u]=x4(s[u]));for(const u of p4)s[u]&&(a[u]=Lt(s[u]));if(s.legend&&(a.legend=Lt(s.legend)),s.scale){const{invalid:u,...l}=s.scale,c=Lt(u,{level:1});a.scale={...Lt(l),...B(c).length>0?{invalid:c}:{}}}return s.style&&(a.style=Rue(s.style)),s.title&&(a.title=Lt(s.title)),s.view&&(a.view=Lt(s.view)),a}const Lue=new Set(["view",...gae]),Pue=["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"],Iue={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...vae};function zue(e){e=ce(e);for(const t of Pue)delete e[t];if(e.axis)for(const t in e.axis)od(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of bue)delete e.legend[t];if(e.mark){for(const t of I_)delete e.mark[t];e.mark.tooltip&&Fe(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(m4(e.params)),delete e.params);for(const t of Lue){for(const i of I_)delete e[t][i];const n=Iue[t];if(n)for(const i of n)delete e[t][i];Uue(e,t)}for(const t of yue())delete e[t];Bue(e);for(const t in e)Fe(e[t])&&Ue(e[t])&&delete e[t];return Ue(e)?void 0:e}function Bue(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:i}=HN(e.title);Ue(t)||(e.style["group-title"]={...e.style["group-title"],...t}),Ue(n)||(e.style["group-subtitle"]={...e.style["group-subtitle"],...n}),Ue(i)?delete e.title:e.title=i}function Uue(e,t,n,i){const r=e[t];t==="view"&&(n="cell");const o={...r,...e.style[n??t]};Ue(o)||(e.style[n??t]=o),delete e[t]}function H0(e){return U(e,"layer")}function jue(e){return U(e,"repeat")}function que(e){return!X(e.repeat)&&U(e.repeat,"layer")}class cA{map(t,n){return z0(t)?this.mapFacet(t,n):jue(t)?this.mapRepeat(t,n):lA(t)?this.mapHConcat(t,n):G0(t)?this.mapVConcat(t,n):uA(t)?this.mapConcat(t,n):this.mapLayerOrUnit(t,n)}mapLayerOrUnit(t,n){if(H0(t))return this.mapLayer(t,n);if(Co(t))return this.mapUnit(t,n);throw new Error(Cw(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 Wue={zero:1,center:1,normalize:1};function Gue(e){return pt(Wue,e)}const Hue=new Set([C6,N0,R0,Pp,P0,jw,qw,L0,$6,Uw]),Vue=new Set([N0,R0,C6]);function ru(e){return q(e)&&Xu(e)==="quantitative"&&!e.bin}function K_(e,t,{orient:n,type:i}){const r=t==="x"?"y":"radius",o=t==="x"&&["bar","area"].includes(i),s=e[t],a=e[r];if(q(s)&&q(a))if(ru(s)&&ru(a)){if(s.stack)return t;if(a.stack)return r;const u=q(s)&&!!s.aggregate,l=q(a)&&!!a.aggregate;if(u!==l)return u?t:r;if(o){if(n==="vertical")return r;if(n==="horizontal")return t}}else{if(ru(s))return t;if(ru(a))return r}else{if(ru(s))return o&&n==="vertical"?void 0:t;if(ru(a))return o&&n==="horizontal"?void 0:r}}function Yue(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function E4(e,t){const n=Sr(e)?e:{type:e},i=n.type;if(!Hue.has(i))return null;const r=K_(t,"x",n)||K_(t,"theta",n);if(!r)return null;const o=t[r],s=q(o)?H(o,{}):void 0,a=Yue(r),u=[],l=new Set;if(t[a]){const g=t[a],m=q(g)?H(g,{}):void 0;m&&m!==s&&(u.push(a),l.add(m))}const c=a==="x"?"xOffset":"yOffset",f=t[c],d=q(f)?H(f,{}):void 0;d&&d!==s&&(u.push(c),l.add(d));const h=toe.reduce((g,m)=>{if(m!=="tooltip"&&ea(t,m)){const y=t[m];for(const b of ct(y)){const x=ji(b);if(x.aggregate)continue;const v=H(x,{});(!v||!l.has(v))&&g.push({channel:m,fieldDef:x})}}return g},[]);let p;return o.stack!==void 0?Vf(o.stack)?p=o.stack?"zero":null:p=o.stack:Vue.has(i)&&(p="zero"),!p||!Gue(p)||Z6(t)&&h.length===0?null:(o?.scale?.type&&o?.scale?.type!==Pt.LINEAR&&o?.stack&&j(vse(o.scale.type)),fe(t[Rr(r)])?(o.stack!==void 0&&j(xse(r)),null):(q(o)&&o.aggregate&&!poe.has(o.aggregate)&&j(Ese(o.aggregate)),{groupbyChannels:u,groupbyFields:l,fieldChannel:r,impute:o.impute===null?!1:vs(i),stackBy:h,offset:p}))}function w4(e,t,n){const i=Lt(e),r=Be("orient",i,n);if(i.orient=Que(i.type,t,r),r!==void 0&&r!==i.orient&&j(ise(i.orient,r)),i.type==="bar"&&i.orient){const u=Be("cornerRadiusEnd",i,n);if(u!==void 0){const l=i.orient==="horizontal"&&t.x2||i.orient==="vertical"&&t.y2?["cornerRadius"]:Aae[i.orient];for(const c of l)i[c]=u;i.cornerRadiusEnd!==void 0&&delete i.cornerRadiusEnd}}const o=Be("opacity",i,n),s=Be("fillOpacity",i,n);return o===void 0&&s===void 0&&(i.opacity=Kue(i.type,t)),Be("cursor",i,n)===void 0&&(i.cursor=Xue(i,t,n)),i}function Xue(e,t,n){return t.href||e.href||Be("href",e,n)?"pointer":e.cursor}function Kue(e,t){if(we([P0,Uw,jw,qw],e)&&!Z6(t))return .7}function Jue(e,t,{graticule:n}){if(n)return!1;const i=Ar("filled",e,t),r=e.type;return ft(i,r!==P0&&r!==L0&&r!==Pp)}function Que(e,t,n){switch(e){case P0:case jw:case qw:case $6:case hae:case dae:return}const{x:i,y:r,x2:o,y2:s}=t;switch(e){case N0:if(q(i)&&(Nt(i.bin)||q(r)&&r.aggregate&&!i.aggregate))return"vertical";if(q(r)&&(Nt(r.bin)||q(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(s||o){if(n)return n;if(!o)return(q(i)&&i.type===va&&!He(i.bin)||zp(i))&&q(r)&&Nt(r.bin)?"horizontal":"vertical";if(!s)return(q(r)&&r.type===va&&!He(r.bin)||zp(r))&&q(i)&&Nt(i.bin)?"vertical":"horizontal"}case Pp:if(o&&!(q(i)&&Nt(i.bin))&&s&&!(q(r)&&Nt(r.bin)))return;case R0:if(s)return q(r)&&Nt(r.bin)?"horizontal":"vertical";if(o)return q(i)&&Nt(i.bin)?"vertical":"horizontal";if(e===Pp){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case L0:case Uw:{const a=j_(i),u=j_(r);if(n)return n;if(a&&!u)return e!=="tick"?"horizontal":"vertical";if(!a&&u)return e!=="tick"?"vertical":"horizontal";if(a&&u)return"vertical";{const l=Cn(i)&&i.type===Vu,c=Cn(r)&&r.type===Vu;if(l&&!c)return"vertical";if(!l&&c)return"horizontal"}return}}return"vertical"}function Zue(e){const{point:t,line:n,...i}=e;return B(i).length>1?i:i.type}function ele(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:Rn(e[t],["point","line"])});return e}function k1(e,t={},n){return e.point==="transparent"?{opacity:0}:e.point?Fe(e.point)?e.point:{}:e.point!==void 0?null:t.point||n.shape?Fe(t.point)?t.point:{}:void 0}function J_(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 tle{constructor(){this.name="path-overlay"}hasMatchingType(t,n){if(Co(t)){const{mark:i,encoding:r}=t,o=Sr(i)?i:{type:i};switch(o.type){case"line":case"rule":case"trail":return!!k1(o,n[o.type],r);case"area":return!!k1(o,n[o.type],r)||!!J_(o,n[o.type])}}return!1}run(t,n,i){const{config:r}=n,{params:o,projection:s,mark:a,name:u,encoding:l,...c}=t,f=W0(l,r),d=Sr(a)?a:{type:a},h=k1(d,r[d.type],f),p=d.type==="area"&&J_(d,r[d.type]),g=[{name:u,...o?{params:o}:{},mark:Zue({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:Rn(f,["shape"])}],m=E4(w4(d,f,r),f);let y=f;if(m){const{fieldChannel:b,offset:x}=m;y={...f,[b]:{...f[b],...x?{stack:x}:{}}}}return y=Rn(y,["y2","x2"]),p&&g.push({...s?{projection:s}:{},mark:{type:"line",...qu(d,["clip","interpolate","tension","tooltip"]),...p},encoding:y}),h&&g.push({...s?{projection:s}:{},mark:{type:"point",opacity:1,filled:!0,...qu(d,["clip","tooltip"]),...h},encoding:y}),i({...c,layer:g},{...n,config:ele(r)})}}function nle(e,t){return t?td(e)?S4(e,t):A4(e,t):e}function D1(e,t){return t?S4(e,t):e}function Zb(e,t,n){const i=t[e];if(Iae(i)){if(i.repeat in n)return{...t,[e]:n[i.repeat]};j(Roe(i.repeat));return}return t}function A4(e,t){if(e=Zb("field",e,t),e!==void 0){if(e===null)return null;if(Kw(e)&&so(e.sort)){const n=Zb("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function Q_(e,t){if(q(e))return A4(e,t);{const n=Zb("datum",e,t);return n!==e&&!n.type&&(n.type="nominal"),n}}function Z_(e,t){if(fe(e)){const n=Q_(e,t);if(n)return n;if(nd(e))return{condition:e.condition}}else{if(id(e)){const n=Q_(e.condition,t);if(n)return{...e,condition:n};{const{condition:i,...r}=e;return r}}return e}}function S4(e,t){const n={};for(const i in e)if(U(e,i)){const r=e[i];if(X(r))n[i]=r.map(o=>Z_(o,t)).filter(o=>o);else{const o=Z_(r,t);o!==void 0&&(n[i]=o)}}return n}class ile{constructor(){this.name="RuleForRangedLine"}hasMatchingType(t){if(Co(t)){const{encoding:n,mark:i}=t;if(i==="line"||Sr(i)&&i.type==="line")for(const r of Qre){const o=Ia(r),s=n[o];if(n[r]&&(q(s)&&!Nt(s.bin)||Lr(s)))return!0}}return!1}run(t,n,i){const{encoding:r,mark:o}=t;return j(nse(!!r.x2,!!r.y2)),i({...t,mark:Fe(o)?{...o,type:"rule"}:"rule"},n)}}class rle extends cA{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[sue,lue,mue,new tle,new ile]}map(t,n){if(Co(t)){const i=ea(t.encoding,ro),r=ea(t.encoding,oo),o=ea(t.encoding,A0);if(i||r||o)return this.mapFacetedUnit(t,n)}return super.map(t,n)}mapUnit(t,n){const{parentEncoding:i,parentProjection:r}=n,o=D1(t.encoding,n.repeater),s={...t,...t.name?{name:[n.repeaterPrefix,t.name].filter(u=>u).join("_")}:{},...o?{encoding:o}:{}};if(i||r)return this.mapUnitWithParentEncodingOrProjection(s,n);const a=this.mapLayerOrUnit.bind(this);for(const u of this.nonFacetUnitNormalizers)if(u.hasMatchingType(s,n.config))return u.run(s,n,a);return s}mapRepeat(t,n){return que(t)?this.mapLayerRepeat(t,n):this.mapNonLayerRepeat(t,n)}mapLayerRepeat(t,n){const{repeat:i,spec:r,...o}=t,{row:s,column:a,layer:u}=i,{repeater:l={},repeaterPrefix:c=""}=n;return s||a?this.mapRepeat({...t,repeat:{...s?{row:s}:{},...a?{column:a}:{}},spec:{repeat:{layer:u},spec:r}},n):{...o,layer:u.map(f=>{const d={...l,layer:f},h=`${(r.name?`${r.name}_`:"")+c}child__layer_${Qe(f)}`,p=this.mapLayerOrUnit(r,{...n,repeater:d,repeaterPrefix:h});return p.name=h,p})}}mapNonLayerRepeat(t,n){const{repeat:i,spec:r,data:o,...s}=t;!X(i)&&t.columns&&(t=Rn(t,["columns"]),j(M_("repeat")));const a=[],{repeater:u={},repeaterPrefix:l=""}=n,c=!X(i)&&i.row||[u?u.row:null],f=!X(i)&&i.column||[u?u.column:null],d=X(i)&&i||[u?u.repeat:null];for(const p of d)for(const g of c)for(const m of f){const y={repeat:p,row:g,column:m,layer:u.layer},b=(r.name?`${r.name}_`:"")+l+"child__"+(X(i)?`${Qe(p)}`:(i.row?`row_${Qe(g)}`:"")+(i.column?`column_${Qe(m)}`:"")),x=this.map(r,{...n,repeater:y,repeaterPrefix:b});x.name=b,a.push(Rn(x,["data"]))}const h=X(i)?t.columns:i.column?i.column.length:1;return{data:r.data??o,align:"all",...s,columns:h,concat:a}}mapFacet(t,n){const{facet:i}=t;return td(i)&&t.columns&&(t=Rn(t,["columns"]),j(M_("facet"))),super.mapFacet(t,n)}mapUnitWithParentEncodingOrProjection(t,n){const{encoding:i,projection:r}=t,{parentEncoding:o,parentProjection:s,config:a}=n,u=tF({parentProjection:s,projection:r}),l=eF({parentEncoding:o,encoding:D1(i,n.repeater)});return this.mapUnit({...t,...u?{projection:u}:{},...l?{encoding:l}:{}},{config:a})}mapFacetedUnit(t,n){const{row:i,column:r,facet:o,...s}=t.encoding,{mark:a,width:u,projection:l,height:c,view:f,params:d,encoding:h,...p}=t,{facetMapping:g,layout:m}=this.getFacetMappingAndLayout({row:i,column:r,facet:o},n),y=D1(s,n.repeater);return this.mapFacet({...p,...m,facet:g,spec:{...u?{width:u}:{},...c?{height:c}:{},...f?{view:f}:{},...l?{projection:l}:{},mark:a,encoding:y,...d?{params:d}:{}}},n)}getFacetMappingAndLayout(t,n){const{row:i,column:r,facet:o}=t;if(i||r){o&&j(ese([...i?[ro]:[],...r?[oo]:[]]));const s={},a={};for(const u of[ro,oo]){const l=t[u];if(l){const{align:c,center:f,spacing:d,columns:h,...p}=l;s[u]=p;for(const g of["align","center","spacing"])l[g]!==void 0&&(a[g]??(a[g]={}),a[g][u]=l[g])}}return{facetMapping:s,layout:a}}else{const{align:s,center:a,spacing:u,columns:l,...c}=o;return{facetMapping:nle(c,n.repeater),layout:{...s?{align:s}:{},...a?{center:a}:{},...u?{spacing:u}:{},...l?{columns:l}:{}}}}}mapLayer(t,{parentEncoding:n,parentProjection:i,...r}){const{encoding:o,projection:s,...a}=t,u={...r,parentEncoding:eF({parentEncoding:n,encoding:o,layer:!0}),parentProjection:tF({parentProjection:i,projection:s})};return super.mapLayer({...a,...t.name?{name:[u.repeaterPrefix,t.name].filter(l=>l).join("_")}:{}},u)}}function eF({parentEncoding:e,encoding:t={},layer:n}){let i={};if(e){const r=new Set([...B(e),...B(t)]);for(const o of r){const s=t[o],a=e[o];if(fe(s)){const u={...a,...s};i[o]=u}else id(s)?i[o]={...s,condition:{...a,...s.condition}}:s||s===null?i[o]=s:(n||Ui(a)||Q(a)||fe(a)||X(a))&&(i[o]=a)}}else i=t;return!i||Ue(i)?void 0:i}function tF(e){const{parentProjection:t,projection:n}=e;return t&&n&&j(qoe({parentProjection:t,projection:n})),n??t}function fA(e){return U(e,"filter")}function ole(e){return U(e,"stop")}function C4(e){return U(e,"lookup")}function sle(e){return U(e,"data")}function ale(e){return U(e,"param")}function ule(e){return U(e,"pivot")}function lle(e){return U(e,"density")}function cle(e){return U(e,"quantile")}function fle(e){return U(e,"regression")}function dle(e){return U(e,"loess")}function hle(e){return U(e,"sample")}function ple(e){return U(e,"window")}function gle(e){return U(e,"joinaggregate")}function mle(e){return U(e,"flatten")}function yle(e){return U(e,"calculate")}function $4(e){return U(e,"bin")}function ble(e){return U(e,"impute")}function xle(e){return U(e,"timeUnit")}function vle(e){return U(e,"aggregate")}function Ele(e){return U(e,"stack")}function wle(e){return U(e,"fold")}function Ale(e){return U(e,"extent")&&!U(e,"density")&&!U(e,"regression")}function Sle(e){return e.map(t=>fA(t)?{filter:vu(t.filter,Xse)}:t)}class Cle extends cA{map(t,n){return n.emptySelections??(n.emptySelections={}),n.selectionPredicates??(n.selectionPredicates={}),t=nF(t,n),super.map(t,n)}mapLayerOrUnit(t,n){if(t=nF(t,n),t.encoding){const i={};for(const[r,o]of is(t.encoding))i[r]=_4(o,n);t={...t,encoding:i}}return super.mapLayerOrUnit(t,n)}mapUnit(t,n){const{selection:i,...r}=t;return i?{...r,params:is(i).map(([o,s])=>{const{init:a,bind:u,empty:l,...c}=s;c.type==="single"?(c.type="point",c.toggle=!1):c.type==="multi"&&(c.type="point"),n.emptySelections[o]=l!=="none";for(const f of qt(n.selectionPredicates[o]??{}))f.empty=l!=="none";return{name:o,value:a,select:c,bind:u}})}:t}}function nF(e,t){const{transform:n,...i}=e;if(n){const r=n.map(o=>{if(fA(o))return{filter:ex(o,t)};if($4(o)&&za(o.bin))return{...o,bin:F4(o.bin)};if(C4(o)){const{selection:s,...a}=o.from;return s?{...o,from:{param:s,...a}}:o}return o});return{...i,transform:r}}return e}function _4(e,t){const n=ce(e);if(q(n)&&za(n.bin)&&(n.bin=F4(n.bin)),qa(n)&&n.scale?.domain?.selection){const{selection:i,...r}=n.scale.domain;n.scale.domain={...r,...i?{param:i}:{}}}if(nd(n))if(X(n.condition))n.condition=n.condition.map(i=>{const{selection:r,param:o,test:s,...a}=i;return o?i:{...a,test:ex(i,t)}});else{const{selection:i,param:r,test:o,...s}=_4(n.condition,t);n.condition=r?n.condition:{...s,test:ex(n.condition,t)}}return n}function F4(e){const t=e.extent;if(t?.selection){const{selection:n,...i}=t;return{...e,extent:{...i,param:n}}}return e}function ex(e,t){const n=i=>vu(i,r=>{var o;const s=t.emptySelections[r]??!0,a={param:r,empty:s};return(o=t.selectionPredicates)[r]??(o[r]=[]),t.selectionPredicates[r].push(a),a});return e.selection?n(e.selection):vu(e.test||e.filter,i=>i.selection?n(i.selection):i)}class tx extends cA{map(t,n){const i=n.selections??[];if(t.params&&!Co(t)){const r=[];for(const o of t.params)aA(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 s of i)if(!s.views||!s.views.length)o.push(s);else for(const a of s.views)(de(a)&&(a===t.name||r.includes(a))||X(a)&&a.map(u=>r.indexOf(u)).every((u,l,c)=>u!==-1&&(l===0||u>c[l-1])))&&o.push(s);return o.length&&(t.params=o),t}}for(const e of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const t=tx.prototype[e];tx.prototype[e]=function(n,i){return t.call(this,n,$le(n,i))}}function $le(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function k4(e,t){t===void 0&&(t=v4(e.config));const n=Dle(e,t),{width:i,height:r}=e,o=Tle(n,{width:i,height:r,autosize:e.autosize},t);return{...n,...o?{autosize:o}:{}}}const _le=new rle,Fle=new Cle,kle=new tx;function Dle(e,t={}){const n={config:t};return kle.map(_le.map(Fle.map(e,n),n),n)}function iF(e){return de(e)?{type:e}:e??{}}function Tle(e,t,n){let{width:i,height:r}=t;const o=Co(e)||H0(e),s={};o?i=="container"&&r=="container"?(s.type="fit",s.contains="padding"):i=="container"?(s.type="fit-x",s.contains="padding"):r=="container"&&(s.type="fit-y",s.contains="padding"):(i=="container"&&(j(F_("width")),i=void 0),r=="container"&&(j(F_("height")),r=void 0));const a={type:"pad",...s,...n?iF(n.autosize):{},...iF(e.autosize)};if(a.type==="fit"&&!o&&(j(Aoe),a.type="pad"),i=="container"&&!(a.type=="fit"||a.type=="fit-x")&&j(k_("width")),r=="container"&&!(a.type=="fit"||a.type=="fit-y")&&j(k_("height")),!Xn(a,{type:"pad"}))return a}function Mle(e){return["fit","fit-x","fit-y"].includes(e)}function Ole(e){return e?`fit-${F0(e)}`:"fit"}const Rle=["background","padding"];function rF(e,t){const n={};for(const i of Rle)e&&e[i]!==void 0&&(n[i]=Vn(e[i]));return t&&(n.params=e.params),n}class $o{constructor(t={},n={}){this.explicit=t,this.implicit=n}clone(){return new $o(ce(this.explicit),ce(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(t){return ft(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 B(t.combine())){const i=t.getWithExplicit(n);this.setWithExplicit(n,i)}}}function or(e){return{explicit:!0,value:e}}function Wn(e){return{explicit:!1,value:e}}function D4(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:V0(t,n,i,r)}}function V0(e,t,n,i){return e.explicit&&t.explicit&&j(dse(n,i,e.value,t.value)),e}function ss(e,t,n,i,r=V0){return e===void 0||e.value===void 0?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:Xn(e.value,t.value)?e:r(e,t,n,i)}class Nle extends $o{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 Qu(e){return U(e,"url")}function ff(e){return U(e,"values")}function T4(e){return U(e,"name")&&!Qu(e)&&!ff(e)&&!Xo(e)}function Xo(e){return e&&(M4(e)||O4(e)||dA(e))}function M4(e){return U(e,"sequence")}function O4(e){return U(e,"sphere")}function dA(e){return U(e,"graticule")}var it;(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"})(it||(it={}));function R4({invalid:e,isPath:t}){switch(k6(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 Lle(e){const{marks:t,scales:n}=R4(e);return t===n?it.Main:n==="include-invalid-values"?it.PreFilterInvalid:it.PostFilterInvalid}class ze{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){if(this._children.includes(t)){j(Boe);return}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 Nn extends ze{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 ${DN()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(t){this._source=t}}function T1(e){return e.as!==void 0}function oF(e){return`${e}_end`}class pr extends ze{clone(){return new pr(null,ce(this.timeUnits))}constructor(t,n){super(t),this.timeUnits=n}static makeFromEncoding(t,n){const i=n.reduceFieldDef((r,o,s)=>{const{field:a,timeUnit:u}=o;if(u){let l;if(ja(u)){if(nt(n)){const{mark:c,markDef:f,config:d}=n,h=os({fieldDef:o,markDef:f,config:d});(cf(c)||h)&&(l={timeUnit:kt(u),field:a})}}else l={as:H(o,{forAs:!0}),field:a,timeUnit:u};if(nt(n)){const{mark:c,markDef:f,config:d}=n,h=os({fieldDef:o,markDef:f,config:d});cf(c)&&dt(s)&&h!==.5&&(l.rectBandPosition=h)}l&&(r[Ae(l)]=l)}return r},{});return Ue(i)?null:new pr(t,i)}static makeFromTransform(t,n){const{timeUnit:i,...r}={...n},o=kt(i),s={...r,timeUnit:o};return new pr(t,{[Ae(s)]:s})}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 is(this.timeUnits)){const o=T1(r)?r.as:`${r.field}_end`;t.has(o)||(n[i]=r)}this.timeUnits=n}producedFields(){return new Set(qt(this.timeUnits).map(t=>T1(t)?t.as:oF(t.field)))}dependentFields(){return new Set(qt(this.timeUnits).map(t=>t.field))}hash(){return`TimeUnit ${Ae(this.timeUnits)}`}assemble(){const t=[];for(const n of qt(this.timeUnits)){const{rectBandPosition:i}=n,r=kt(n.timeUnit);if(T1(n)){const{field:o,as:s}=n,{unit:a,utc:u,...l}=r,c=[s,`${s}_end`];t.push({field:bi(o),type:"timeunit",...a?{units:M0(a)}:{},...u?{timezone:"utc"}:{},...l,as:c}),t.push(...sF(c,i,r))}else if(n){const{field:o}=n,s=o.replaceAll("\\.","."),a=N4({timeUnit:r,field:s}),u=oF(s);t.push({type:"formula",expr:a,as:u}),t.push(...sF([s,u],i,r))}}return t}}const Y0="offsetted_rect_start",X0="offsetted_rect_end";function N4({timeUnit:e,field:t,reverse:n}){const{unit:i,utc:r}=e,o=f6(i),{part:s,step:a}=g6(o,e.step);return`${r?"utcOffset":"timeOffset"}('${s}', ${Le(t)}, ${n?-a:a})`}function sF([e,t],n,i){if(n!==void 0&&n!==.5){const r=Le(e),o=Le(t);return[{type:"formula",expr:aF([N4({timeUnit:i,field:e,reverse:!0}),r],n+.5),as:`${e}_${Y0}`},{type:"formula",expr:aF([r,o],n+.5),as:`${e}_${X0}`}]}return[]}function aF([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const sd="_tuple_fields";class Ple{constructor(...t){this.items=t,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const Ile={defined:()=>!0,parse:(e,t,n)=>{const i=t.name,r=t.project??(t.project=new Ple),o={},s={},a=new Set,u=(p,g)=>{const m=g==="visual"?p.channel:p.field;let y=Qe(`${i}_${m}`);for(let b=1;a.has(y);b++)y=Qe(`${i}_${m}_${b}`);return a.add(y),{[g]:y}},l=t.type,c=e.config.selection[l],f=n.value!==void 0?ct(n.value):null;let{fields:d,encodings:h}=Fe(n.select)?n.select:{};if(!d&&!h&&f){for(const p of f)if(Fe(p))for(const g of B(p))Jre(g)?(h||(h=[])).push(g):l==="interval"?(j(Ooe),h=c.encodings):(d??(d=[])).push(g)}!d&&!h&&(h=c.encodings,"fields"in c&&(d=c.fields));for(const p of h??[]){const g=e.fieldDef(p);if(g){let m=g.field;if(g.aggregate){j(Soe(p,g.aggregate));continue}else if(!m){j(T_(p));continue}if(g.timeUnit&&!ja(g.timeUnit)){m=e.vgField(p);const y={timeUnit:g.timeUnit,as:m,field:g.field};s[Ae(y)]=y}if(!o[m]){const y=l==="interval"&&Nr(p)&&Bi(e.getScaleComponent(p).get("type"))?"R":g.bin?"R-RE":"E",b={field:m,channel:p,type:y,index:r.items.length};b.signals={...u(b,"data"),...u(b,"visual")},r.items.push(o[m]=b),r.hasField[m]=o[m],r.hasSelectionId=r.hasSelectionId||m===qi,LN(p)?(b.geoChannel=p,b.channel=NN(p),r.hasChannel[b.channel]=o[m]):r.hasChannel[p]=o[m]}}else j(T_(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===qi}f&&(t.init=f.map(p=>r.items.map(g=>Fe(p)?p[g.geoChannel||g.channel]!==void 0?p[g.geoChannel||g.channel]:p[g.field]:p))),Ue(s)||(r.timeUnit=new pr(null,s))},signals:(e,t,n)=>{const i=t.name+sd;return n.filter(o=>o.name===i).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map(z4)})}},L4="_curr",wh="anim_value",uu="anim_clock",nx="eased_anim_clock",P4="min_extent",I4="max_range_extent",M1="last_tick_at",O1="is_playing",zle=1/60*1e3,Ble=(e,t)=>[{name:nx,update:uu},{name:`${e}_domain`,init:`domain('${t}')`},{name:P4,init:`extent(${e}_domain)[0]`},{name:I4,init:`extent(range('${t}'))[1]`},{name:wh,update:`invert('${t}', ${nx})`}],Ule={defined:e=>e.type==="point",topLevelSignals:(e,t,n)=>(gr(t)&&(n=n.concat([{name:uu,init:"0",on:[{events:{type:"timer",throttle:zle},update:`${O1} ? (${uu} + (now() - ${M1}) > ${I4} ? 0 : ${uu} + (now() - ${M1})) : ${uu}`}]},{name:M1,init:"now()",on:[{events:[{signal:uu},{signal:O1}],update:"now()"}]},{name:O1,init:"true"}])),n),signals:(e,t,n)=>{const i=t.name,r=i+sd,o=t.project,s="(item().isVoronoi ? datum.datum : datum)",a=qt(e.component.selection??{}).reduce((c,f)=>f.type==="interval"?c.concat(f.name+Au):c,[]).map(c=>`indexof(item().mark.name, '${c}') < 0`).join(" && "),u=`datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0${a?` && ${a}`:""}`;let l=`unit: ${ta(e)}, `;if(t.project.hasSelectionId)l+=`${qi}: ${s}[${_e(qi)}]`;else if(gr(t))l+=`fields: ${r}, values: [${wh} ? ${wh} : ${P4}]`;else{const c=o.items.map(f=>e.fieldDef(f.channel)?.bin?`[${s}[${_e(e.vgField(f.channel,{}))}], ${s}[${_e(e.vgField(f.channel,{binSuffix:"end"}))}]]`:`${s}[${_e(f.field)}]`).join(", ");l+=`fields: ${r}, values: [${c}]`}if(gr(t))return n.concat(Ble(t.name,e.scaleName(ps)),[{name:i+mo,on:[{events:[{signal:nx},{signal:wh}],update:`{${l}}`,force:!0}]}]);{const c=t.events;return n.concat([{name:i+mo,on:c?[{events:c,update:`${u} ? {${l}} : null`,force:!0}]:[]}])}}};function z4(e){const{signals:t,hasLegend:n,index:i,...r}=e;return r.field=bi(r.field),r}function Aa(e,t=!0,n=Mre){if(X(e)){const i=e.map(r=>Aa(r,t,n));return t?`[${i.join(", ")}]`:i}else if(Ua(e))return n(t?xa(e):Pse(e));return t?n(je(e)):e}function jle(e,t){for(const n of qt(e.component.selection??{})){const i=n.name;let r=`${i}${mo}, ${n.resolve==="global"?"true":`{unit: ${ta(e)}}`}`;for(const o of J0)o.defined(n)&&(o.signals&&(t=o.signals(e,n,t)),o.modifyExpr&&(r=o.modifyExpr(e,n,r)));t.push({name:i+gce,on:[{events:{signal:n.name+mo},update:`modify(${_e(n.name+Sa)}, ${r})`}]})}return hA(t)}function qle(e,t){if(e.component.selection&&B(e.component.selection).length){const n=_e(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:ds("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return hA(t)}function Wle(e,t){let n=!1;for(const i of qt(e.component.selection??{})){const r=i.name,o=_e(r+Sa);if(t.filter(a=>a.name===r).length===0){const a=i.resolve==="global"?"union":i.resolve,u=i.type==="point"?", true, true)":")";t.push({name:i.name,update:`${nL}(${o}, ${_e(a)}${u}`})}n=!0;for(const a of J0)a.defined(i)&&a.topLevelSignals&&(t=a.topLevelSignals(e,i,t))}return n&&t.filter(r=>r.name==="unit").length===0&&t.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),hA(t)}function Gle(e,t){const n=[],i=[],r=ta(e,{escape:!1});for(const o of qt(e.component.selection??{})){const s={name:o.name+Sa};if(o.project.hasSelectionId&&(s.transform=[{type:"collect",sort:{field:qi}}]),o.init){const u=o.project.items.map(z4);s.values=o.project.hasSelectionId?o.init.map(l=>({unit:r,[qi]:Aa(l,!1)[0]})):o.init.map(l=>({unit:r,fields:u,values:Aa(l,!1)}))}if([...n,...t].filter(u=>u.name===o.name+Sa).length||n.push(s),gr(o)&&t.length){const u=e.lookupDataSource(e.getDataName(it.Main)),l=t.find(f=>f.name===u),c=l.transform.find(f=>f.type==="filter"&&f.expr.includes("vlSelectionTest"));if(c){l.transform=l.transform.filter(d=>d!==c);const f={name:l.name+L4,source:l.name,transform:[c]};i.push(f)}}}return n.concat(t,i)}function B4(e,t){for(const n of qt(e.component.selection??{}))for(const i of J0)i.defined(n)&&i.marks&&(t=i.marks(e,n,t));return t}function Hle(e,t){for(const n of e.children)nt(n)&&(t=B4(n,t));return t}function Vle(e,t,n,i){const r=hL(e,t.param,t);return{signal:Bi(n.get("type"))&&X(i)&&i[0]>i[1]?`isValid(${r}) && reverse(${r})`:r}}function hA(e){return e.map(t=>(t.on&&!t.on.length&&delete t.on,t))}const ao={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(!Nr(r))continue;const o=e.getScaleComponent(r),s=o?o.get("type"):void 0;if(s=="sequential"&&j(Foe),!o||!Bi(s)){j(_oe);continue}o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter(s=>n.filter(a=>a.name===s.signals.data).length===0);if(!e.parent||rx(e)||i.length===0)return n;const r=n.find(s=>s.name===t.name);let o=r.update;if(o.includes(nL))r.update=`{${i.map(s=>`${_e(bi(s.field))}: ${s.signals.data}`).join(", ")}}`;else{for(const s of i){const a=`${_e(bi(s.field))}: ${s.signals.data}`;o.includes(a)||(o=`${o.substring(0,o.length-1)}, ${a}}`)}r.update=o}return n.concat(i.map(s=>({name:s.signals.data})))},signals:(e,t,n)=>{if(e.parent&&!rx(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 ix(e,t){return`domain(${_e(e.scaleName(t))})`}function rx(e){return e.parent&&Cl(e.parent)&&(!e.parent.parent||rx(e.parent.parent))}const Au="_brush",U4="_scale_trigger",Yl="geo_interval_init_tick",j4="_init",Yle="_center",Xle={defined:e=>e.type==="interval",parse:(e,t,n)=>{var i;if(e.hasProjection){const r={...oa(n.select)?n.select:{}};r.fields=[qi],r.encodings||(r.encodings=n.value?B(n.value):[Ki,Xi]),n.select={type:"interval",...r}}if(t.translate&&!ao.defined(t)){const r=`!event.item || event.item.mark.name !== ${_e(t.name+Au)}`;for(const o of t.events){if(!o.between){j(`${o} is not an ordered event stream for interval selections.`);continue}const s=ct((i=o.between[0]).filter??(i.filter=[]));s.includes(r)||s.push(r)}}},signals:(e,t,n)=>{const i=t.name,r=i+mo,o=qt(t.project.hasChannel).filter(a=>a.channel===et||a.channel===Mt),s=t.init?t.init[0]:null;if(n.push(...o.reduce((a,u)=>a.concat(Kle(e,t,u,s&&s[u.index])),[])),e.hasProjection){const a=_e(e.projectionName()),u=e.projectionName()+Yle,{x:l,y:c}=t.project.hasChannel,f=l&&l.signals.visual,d=c&&c.signals.visual,h=l?s&&s[l.index]:`${u}[0]`,p=c?s&&s[c.index]:`${u}[1]`,g=w=>e.getSizeSignalRef(w).signal,m=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":g("width")}, ${d?d+"[1]":g("height")}]]`;s&&(n.unshift({name:i+j4,init:`[scale(${a}, [${l?h[0]:h}, ${c?p[0]:p}]), scale(${a}, [${l?h[1]:h}, ${c?p[1]:p}])]`}),(!l||!c)&&(n.find(A=>A.name===u)||n.unshift({name:u,update:`invert(${a}, [${g("width")}/2, ${g("height")}/2])`})));const y=`intersect(${m}, {markname: ${_e(e.getName("marks"))}}, unit.mark)`,b=`{unit: ${ta(e)}}`,x=`vlSelectionTuples(${y}, ${b})`,v=o.map(w=>w.signals.visual);return n.concat({name:r,on:[{events:[...v.length?[{signal:v.join(" || ")}]:[],...s?[{signal:Yl}]:[]],update:x}]})}else{if(!ao.defined(t)){const l=i+U4,c=o.map(f=>{const d=f.channel,{data:h,visual:p}=f.signals,g=_e(e.scaleName(d)),m=e.getScaleComponent(d).get("type"),y=Bi(m)?"+":"";return`(!isArray(${h}) || (${y}invert(${g}, ${p})[0] === ${y}${h}[0] && ${y}invert(${g}, ${p})[1] === ${y}${h}[1]))`});c.length&&n.push({name:l,value:{},on:[{events:o.map(f=>({scale:e.scaleName(f.channel)})),update:c.join(" && ")+` ? ${l} : {}`}]})}const a=o.map(l=>l.signals.data),u=`unit: ${ta(e)}, fields: ${i+sd}, values`;return n.concat({name:r,...s?{init:`{${u}: ${Aa(s)}}`}:{},...a.length?{on:[{events:[{signal:a.join(" || ")}],update:`${a.join(" && ")} ? {${u}: [${a}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>(nt(e)&&e.hasProjection&&t.init&&(n.filter(r=>r.name===Yl).length||n.unshift({name:Yl,value:null,on:[{events:"timer{1}",update:`${Yl} === null ? {} : ${Yl}`}]})),n),marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,s=r?.signals.visual,a=o?.signals.visual,u=`data(${_e(t.name+Sa)})`;if(ao.defined(t)||!r&&!o)return n;const l={x:r!==void 0?{signal:`${s}[0]`}:{value:0},y:o!==void 0?{signal:`${a}[0]`}:{value:0},x2:r!==void 0?{signal:`${s}[1]`}:{field:{group:"width"}},y2:o!==void 0?{signal:`${a}[1]`}:{field:{group:"height"}}};if(t.resolve==="global")for(const m of B(l))l[m]=[{test:`${u}.length && ${u}[0].unit === ${ta(e)}`,...l[m]},{value:0}];const{fill:c,fillOpacity:f,cursor:d,...h}=t.mark,p=B(h).reduce((m,y)=>(m[y]=[{test:[r!==void 0&&`${s}[0] !== ${s}[1]`,o!==void 0&&`${a}[0] !== ${a}[1]`].filter(b=>b).join(" && "),value:h[y]},{value:null}],m),{}),g=d??(t.translate?"move":null);return[{name:`${i+Au}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:c},fillOpacity:{value:f}},update:l}},...n,{name:i+Au,type:"rect",clip:!0,encode:{enter:{...g?{cursor:{value:g}}:{},fill:{value:"transparent"}},update:{...l,...p}}}]}};function Kle(e,t,n,i){const r=!e.hasProjection,o=n.channel,s=n.signals.visual,a=_e(r?e.scaleName(o):e.projectionName()),u=d=>`scale(${a}, ${d})`,l=e.getSizeSignalRef(o===et?"width":"height").signal,c=`${o}(unit)`,f=t.events.reduce((d,h)=>[...d,{events:h.between[0],update:`[${c}, ${c}]`},{events:h,update:`[${s}[0], clamp(${c}, 0, ${l})]`}],[]);if(r){const d=n.signals.data,h=ao.defined(t),p=e.getScaleComponent(o),g=p?p.get("type"):void 0,m=i?{init:Aa(i,!0,u)}:{value:[]};return f.push({events:{signal:t.name+U4},update:Bi(g)?`[${u(`${d}[0]`)}, ${u(`${d}[1]`)}]`:"[0, 0]"}),h?[{name:d,on:[]}]:[{name:s,...m,on:f},{name:d,...i?{init:Aa(i)}:{},on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${a}, ${s})`}]}]}else{const d=o===et?0:1,h=t.name+j4,p=i?{init:`[${h}[0][${d}], ${h}[1][${d}]]`}:{value:[]};return[{name:s,...p,on:f}]}}function El({model:e,channelDef:t,vgChannel:n,invalidValueRef:i,mainRefFn:r}){const o=nd(t)&&t.condition;let s=[];o&&(s=ct(o).map(l=>{const c=r(l);if(Pae(l)){const{param:f,empty:d}=l;return{test:dL(e,{param:f,empty:d}),...c}}else return{test:Yp(e,l.test),...c}})),i!==void 0&&s.push(i);const a=r(t);return a!==void 0&&s.push(a),s.length>1||s.length===1&&s[0].test?{[n]:s}:s.length===1?{[n]:s[0]}:{}}function pA(e,t="text"){const n=e.encoding[t];return El({model:e,channelDef:n,vgChannel:t,mainRefFn:i=>K0(i,e.config),invalidValueRef:void 0})}function K0(e,t,n="datum"){if(e){if(Ui(e))return Ye(e.value);if(fe(e)){const{format:i,formatType:r}=Up(e);return Yw({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function q4(e,t={}){const{encoding:n,markDef:i,config:r,stack:o}=e,s=n.tooltip;if(X(s))return{tooltip:uF({tooltip:s},o,r,t)};{const a=t.reactiveGeom?"datum.datum":"datum";return El({model:e,channelDef:s,vgChannel:"tooltip",mainRefFn:l=>{const c=K0(l,r,a);if(c)return c;if(l===null)return;let f=Be("tooltip",i,r);if(f===!0&&(f={content:"encoding"}),de(f))return{value:f};if(Fe(f))return Q(f)?f:f.content==="encoding"?uF(n,o,r,t):{signal:a}},invalidValueRef:void 0})}}function W4(e,t,n,{reactiveGeom:i}={}){const r={...n,...n.tooltipFormat},o=new Set,s=i?"datum.datum":"datum",a=[];function u(c,f){const d=Ia(f),h=Cn(c)?c:{...c,type:e[d].type},p=h.title||Qw(h,r),g=ct(p).join(", ").replaceAll(/"/g,'\\"');let m;if(dt(f)){const y=f==="x"?"x2":"y2",b=ji(e[y]);if(Nt(h.bin)&&b){const x=H(h,{expr:s}),v=H(b,{expr:s}),{format:w,formatType:A}=Up(h);m=ed(x,v,w,A,r),o.add(y)}}if((dt(f)||f===Ei||f===Yi)&&t&&t.fieldChannel===f&&t.offset==="normalize"){const{format:y,formatType:b}=Up(h);m=Yw({fieldOrDatumDef:h,format:y,formatType:b,expr:s,config:r,normalizeStack:!0}).signal}m??(m=K0(h,r,s).signal),a.push({channel:f,key:g,value:m})}eA(e,(c,f)=>{q(c)?u(c,f):B0(c)&&u(c.condition,f)});const l={};for(const{channel:c,key:f,value:d}of a)!o.has(c)&&!l[f]&&(l[f]=d);return l}function uF(e,t,n,{reactiveGeom:i}={}){const r=W4(e,t,n,{reactiveGeom:i}),o=is(r).map(([s,a])=>`"${s}": ${a}`);return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function Jle(e){const{markDef:t,config:n}=e,i=Be("aria",t,n);return i===!1?{}:{...i?{aria:i}:{},...Qle(e),...Zle(e)}}function Qle(e){const{mark:t,markDef:n,config:i}=e;if(i.aria===!1)return{};const r=Be("ariaRoleDescription",n,i);return r!=null?{ariaRoleDescription:{value:r}}:pt(voe,t)?{}:{ariaRoleDescription:{value:t}}}function Zle(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return El({model:e,channelDef:o,vgChannel:"description",mainRefFn:u=>K0(u,e.config),invalidValueRef:void 0});const s=Be("description",n,i);if(s!=null)return{description:Ye(s)};if(i.aria===!1)return{};const a=W4(t,r,i);if(!Ue(a))return{description:{signal:is(a).map(([u,l],c)=>`"${c>0?"; ":""}${u}: " + (${l})`).join(" + ")}}}function It(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:s}=n;let{defaultRef:a,defaultValue:u}=n;const l=r[e];a===void 0&&(u??(u=Be(e,i,o,{vgChannel:s,ignoreVgConfig:!nd(l)})),u!==void 0&&(a=Ye(u)));const c={markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e)},f=T6({...c,scaleChannel:e,channelDef:l});return El({model:t,channelDef:l,vgChannel:s??e,invalidValueRef:f,mainRefFn:h=>Vw({...c,channel:e,channelDef:h,stack:null,defaultRef:a})})}function G4(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,s=t.filled??Be("filled",n,r),a=we(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,u=Be(s===!0?"color":void 0,n,r,{vgChannel:"fill"})??r.mark[s===!0&&"color"]??a,l=Be(s===!1?"color":void 0,n,r,{vgChannel:"stroke"})??r.mark[s===!1&&"color"],c=s?"fill":"stroke",f={...u?{fill:Ye(u)}:{},...l?{stroke:Ye(l)}:{}};return n.color&&(s?n.fill:n.stroke)&&j(n6("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...It("color",e,{vgChannel:c,defaultValue:s?u:l}),...It("fill",e,{defaultValue:i.fill?u:void 0}),...It("stroke",e,{defaultValue:i.stroke?l:void 0})}}function ece(e){const{encoding:t,mark:n}=e,i=t.order;return!vs(n)&&Ui(i)?El({model:e,channelDef:i,vgChannel:"zindex",mainRefFn:r=>Ye(r.value),invalidValueRef:void 0}):{}}function Zu({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,s=t[o],a=n[o];if((o==="xOffset"||o==="yOffset")&&a)return{offsetType:"encoding",offset:Vw({channel:o,channelDef:a,markDef:t,config:i?.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:Ye(s),bandPosition:r})};const u=t[o];return u?{offsetType:"visual",offset:u}:{}}function bn(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:s,stack:a}=t,u=r[e],l=r[Rr(e)],c=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=Zu({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),p=gA({model:t,defaultPos:n,channel:e,scaleName:c,scale:f}),g=!u&&dt(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:tce({channel:e,channelDef:u,channel2Def:l,markDef:o,config:s,scaleName:c,scale:f,stack:a,offset:d,defaultRef:p,bandPosition:h==="encoding"?0:void 0});return g?{[i||e]:g}:void 0}function tce(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o,markDef:s}=e;if(fe(n)&&r&&t===r.fieldChannel){if(q(n)){let a=n.bandPosition;if(a===void 0&&s.type==="text"&&(t==="radius"||t==="theta")&&(a=.5),a!==void 0)return Ip({scaleName:i,fieldOrDatumDef:n,startSuffix:"start",bandPosition:a,offset:o})}return Zs(n,i,{suffix:"end"},{offset:o})}return Hw(e)}function gA({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:s}=e;return()=>{const a=Ia(n),u=rs(n),l=Be(n,o,s,{vgChannel:u});if(l!==void 0)return Lc(n,l);switch(t){case"zeroOrMin":return lF({scaleName:i,scale:r,mode:"zeroOrMin",mainChannel:a,config:s});case"zeroOrMax":return lF({scaleName:i,scale:r,mode:{zeroOrMax:{widthSignal:e.width.signal,heightSignal:e.height.signal}},mainChannel:a,config:s});case"mid":return{...e[jn(n)],mult:.5}}}}function lF({mainChannel:e,config:t,...n}){const i=D6(n),{mode:r}=n;if(i)return i;switch(e){case"radius":{if(r==="zeroOrMin")return{value:0};const{widthSignal:o,heightSignal:s}=r.zeroOrMax;return{signal:`min(${o},${s})/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 nce={left:"x",center:"xc",right:"x2"},ice={top:"y",middle:"yc",bottom:"y2"};function H4(e,t,n,i="middle"){if(e==="radius"||e==="theta")return rs(e);const r=e==="x"?"align":"baseline",o=Be(r,t,n);let s;return Q(o)?(j(tse(r)),s=void 0):s=o,e==="x"?nce[s||(i==="top"?"left":"center")]:ice[s||i]}function Gp(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?V4(e,t,{defaultPos:n,defaultPos2:i}):bn(e,t,{defaultPos:n})}function V4(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,s=Rr(e),a=jn(e),u=rce(t,i,s),l=u[a]?H4(e,r,o):rs(e);return{...bn(e,t,{defaultPos:n,vgChannel:l}),...u}}function rce(e,t,n){const{encoding:i,mark:r,markDef:o,stack:s,config:a}=e,u=Ia(n),l=jn(n),c=rs(n),f=i[u],d=e.scaleName(u),h=e.getScaleComponent(u),{offset:p}=n in i||n in o?Zu({channel:n,markDef:o,encoding:i,model:e}):Zu({channel:u,markDef:o,encoding:i,model:e});if(!f&&(n==="x2"||n==="y2")&&(i.latitude||i.longitude)){const m=jn(n),y=e.markDef[m];return y!=null?{[m]:{value:y}}:{[c]:{field:e.getName(n)}}}const g=oce({channel:n,channelDef:f,channel2Def:i[n],markDef:o,config:a,scaleName:d,scale:h,stack:s,offset:p,defaultRef:void 0});return g!==void 0?{[c]:g}:Ud(n,o)||Ud(n,{[n]:Gb(n,o,a.style),[l]:Gb(l,o,a.style)})||Ud(n,a[r])||Ud(n,a.mark)||{[c]:gA({model:e,defaultPos:t,channel:n,scaleName:d,scale:h})()}}function oce({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:s,stack:a,offset:u,defaultRef:l}){return fe(t)&&a&&e.charAt(0)===a.fieldChannel.charAt(0)?Zs(t,o,{suffix:"start"},{offset:u}):Hw({channel:e,channelDef:n,scaleName:o,scale:s,stack:a,markDef:i,config:r,offset:u,defaultRef:l})}function Ud(e,t){const n=jn(e),i=rs(e);if(t[i]!==void 0)return{[i]:Lc(e,t[i])};if(t[e]!==void 0)return{[i]:Lc(e,t[e])};if(t[n]){const r=t[n];if(Ea(r))j(Xoe(n));else return{[n]:Lc(e,r)}}}function go(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.type,s=Rr(t),a=jn(t),u=i[t],l=i[s],c=e.getScaleComponent(t),f=c?c.get("type"):void 0,d=r.orient,h=i[a]??i.size??Be("size",r,n,{vgChannel:a}),p=BN(t),g=o==="bar"&&(t==="x"?d==="vertical":d==="horizontal")||o==="tick"&&(t==="y"?d==="vertical":d==="horizontal");return q(u)&&(He(u.bin)||Nt(u.bin)||u.timeUnit&&!l)&&!(h&&!Ea(h))&&!i[p]&&!Dt(f)?uce({fieldDef:u,fieldDef2:l,channel:t,model:e}):(fe(u)&&Dt(f)||g)&&!l?ace(u,t,e):V4(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function sce(e,t,n,i,r,o,s){if(Ea(r))if(n){const u=n.get("type");if(u==="band"){let l=`bandwidth('${t}')`;r.band!==1&&(l=`${r.band} * ${l}`);const c=Ar("minBandSize",{type:s},i);return{signal:c?`max(${Mi(c)}, ${l})`:l}}else r.band!==1&&(j(ose(u)),r=void 0)}else return{mult:r.band,field:{group:e}};else{if(Q(r))return r;if(r)return{value:r}}if(n){const u=n.get("range");if(Ba(u)&&Ze(u.step))return{value:u.step-2}}if(!o){const{bandPaddingInner:u,barBandPaddingInner:l,rectBandPaddingInner:c,tickBandPaddingInner:f}=i.scale,d=ft(u,s==="tick"?f:s==="bar"?l:c);if(Q(d))return{signal:`(1 - (${d.signal})) * ${e}`};if(Ze(d))return{signal:`${1-d} * ${e}`}}return{value:Qb(i.view,e)-2}}function ace(e,t,n){const{markDef:i,encoding:r,config:o,stack:s}=n,a=i.orient,u=n.scaleName(t),l=n.getScaleComponent(t),c=jn(t),f=Rr(t),d=BN(t),h=n.scaleName(d),p=n.getScaleComponent(xw(t)),g=i.type==="tick"||a==="horizontal"&&t==="y"||a==="vertical"&&t==="x";let m;(r.size||i.size)&&(g?m=It("size",n,{vgChannel:c,defaultRef:Ye(i.size)}):j(lse(i.type)));const y=!!m,b=I6({channel:t,fieldDef:e,markDef:i,config:o,scaleType:(l||p)?.get("type"),useVlSizeChannel:g});m=m||{[c]:sce(c,h||u,p||l,o,b,!!e,i.type)};const x=(l||p)?.get("type")==="band"&&Ea(b)&&!y?"top":"middle",v=H4(t,i,o,x),w=v==="xc"||v==="yc",{offset:A,offsetType:E}=Zu({channel:t,markDef:i,encoding:r,model:n,bandPosition:w?.5:0}),S=Hw({channel:t,channelDef:e,markDef:i,config:o,scaleName:u,scale:l,stack:s,offset:A,defaultRef:gA({model:n,defaultPos:"mid",channel:t,scaleName:u,scale:l}),bandPosition:w?E==="encoding"?0:.5:Q(b)?{signal:`(1-${b})/2`}:Ea(b)?(1-b.band)/2:0});if(c)return{[v]:S,...m};{const C=rs(f),_=m[c],k=A?{..._,offset:A}:_;return{[v]:S,[C]:X(S)?[S[0],{...S[1],offset:k}]:{...S,offset:k}}}}function cF(e,t,n,i,r,o,s){if(RN(e))return 0;const a=e==="x"||e==="y2",u=a?-t/2:t/2;if(Q(n)||Q(r)||Q(i)||o){const l=Mi(n),c=Mi(r),f=Mi(i),d=Mi(o),p=o?`(${s} < ${d} ? ${a?"":"-"}0.5 * (${d} - (${s})) : ${u})`:u,g=f?`${f} + `:"",m=l?`(${l} ? -1 : 1) * `:"",y=c?`(${c} + ${p})`:p;return{signal:g+m+y}}else return r=r||0,i+(n?-r-u:+r+u)}function uce({fieldDef:e,fieldDef2:t,channel:n,model:i}){const{config:r,markDef:o,encoding:s}=i,a=i.getScaleComponent(n),u=i.scaleName(n),l=a?a.get("type"):void 0,c=a.get("reverse"),f=I6({channel:n,fieldDef:e,markDef:o,config:r,scaleType:l}),h=i.component.axes[n]?.[0]?.get("translate")??.5,p=dt(n)?Be("binSpacing",o,r)??0:0,g=Rr(n),m=rs(n),y=rs(g),b=Ar("minBandSize",o,r),{offset:x}=Zu({channel:n,markDef:o,encoding:s,model:i,bandPosition:0}),{offset:v}=Zu({channel:g,markDef:o,encoding:s,model:i,bandPosition:0}),w=Tae({fieldDef:e,scaleName:u}),A=cF(n,p,c,h,x,b,w),E=cF(g,p,c,h,v??x,b,w),S=Q(f)?{signal:`(1-${f.signal})/2`}:Ea(f)?(1-f.band)/2:.5,C=os({fieldDef:e,fieldDef2:t,markDef:o,config:r});if(He(e.bin)||e.timeUnit){const _=e.timeUnit&&C!==.5;return{[y]:fF({fieldDef:e,scaleName:u,bandPosition:S,offset:E,useRectOffsetField:_}),[m]:fF({fieldDef:e,scaleName:u,bandPosition:Q(S)?{signal:`1-${S.signal}`}:1-S,offset:A,useRectOffsetField:_})}}else if(Nt(e.bin)){const _=Zs(e,u,{},{offset:E});if(q(t))return{[y]:_,[m]:Zs(t,u,{},{offset:A})};if(za(e.bin)&&e.bin.step)return{[y]:_,[m]:{signal:`scale("${u}", ${H(e,{expr:"datum"})} + ${e.bin.step})`,offset:A}}}j(o6(g))}function fF({fieldDef:e,scaleName:t,bandPosition:n,offset:i,useRectOffsetField:r}){return Ip({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i,...r?{startSuffix:Y0,endSuffix:X0}:{}})}const lce=new Set(["aria","width","height"]);function wi(e,t){const{fill:n=void 0,stroke:i=void 0}=t.color==="include"?G4(e):{};return{...cce(e.markDef,t),...dF("fill",n),...dF("stroke",i),...It("opacity",e),...It("fillOpacity",e),...It("strokeOpacity",e),...It("strokeWidth",e),...It("strokeDash",e),...ece(e),...q4(e),...pA(e,"href"),...Jle(e)}}function dF(e,t){return t?{[e]:t}:{}}function cce(e,t){return xoe.reduce((n,i)=>(!lce.has(i)&&U(e,i)&&t[i]!=="ignore"&&(n[i]=Ye(e[i])),n),{})}function mA(e){const{config:t,markDef:n}=e,i=new Set;if(e.forEachFieldDef((r,o)=>{let s;if(!Nr(o)||!(s=e.getScaleType(o)))return;const a=k0(r.aggregate),u=Gw({scaleChannel:o,markDef:n,config:t,scaleType:s,isCountAggregate:a});if(Fae(u)){const l=e.vgField(o,{expr:"datum",binSuffix:e.stack?.impute?"mid":void 0});l&&i.add(l)}}),i.size>0)return{defined:{signal:[...i].map(o=>O0(o,!0)).join(" && ")}}}function hF(e,t){if(t!==void 0)return{[e]:Ye(t)}}const R1="voronoi",Y4={defined:e=>e.type==="point"&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(R1)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(vs(o))return j(Coe(o)),n;const s={name:e.getName(R1),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...q4(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 a=0,u=!1;return n.forEach((l,c)=>{const f=l.name??"";f===e.component.mark[0].name?a=c:f.includes(R1)&&(u=!0)}),u||n.splice(a+1,0,s),n}},X4={defined:e=>e.type==="point"&&e.resolve==="global"&&e.bind&&e.bind!=="scales"&&!sA(e.bind),parse:(e,t,n)=>iL(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,s=t.init&&t.init[0],a=Y4.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach((u,l)=>{const c=Qe(`${i}_${u.field}`);n.filter(d=>d.name===c).length||n.unshift({name:c,...s?{init:Aa(s[l])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${a}[${_e(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(l=>l.name===i+mo),s=i+sd,a=r.items.map(l=>Qe(`${i}_${l.field}`)),u=a.map(l=>`${l} !== null`).join(" && ");return a.length&&(o.update=`${u} ? {fields: ${s}, values: [${a.join(", ")}]} : null`),delete o.value,delete o.on,n}},Hp="_toggle",K4={defined:e=>e.type==="point"&&!gr(e)&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+Hp,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+mo,i=t.name+Hp;return`${i} ? null : ${n}, `+(t.resolve==="global"?`${i} ? null : true, `:`${i} ? null : {unit: ${ta(e)}}, `)+`${i} ? ${n} : null`}},fce={defined:e=>e.clear!==void 0&&e.clear!==!1&&!gr(e),parse:(e,t)=>{t.clear&&(t.clear=de(t.clear)?ds(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(X4.defined(t))for(const i of t.project.items){const r=n.findIndex(o=>o.name===Qe(`${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(s=>s.name===r.signals.visual);if(i(o,"[0, 0]"),o===-1){const s=n.findIndex(a=>a.name===r.signals.data);i(s,"null")}}else{let r=n.findIndex(o=>o.name===t.name+mo);i(r,"null"),K4.defined(t)&&(r=n.findIndex(o=>o.name===t.name+Hp),i(r,"false"))}return n}},J4={defined:e=>{const t=e.resolve==="global"&&e.bind&&sA(e.bind),n=e.project.items.length===1&&e.project.items[0].field!==qi;return t&&!n&&j(koe),t&&n},parse:(e,t,n)=>{const i=ce(n);if(i.select=de(i.select)?{type:i.select,toggle:t.toggle}:{...i.select,toggle:t.toggle},iL(t,i),oa(n.select)&&(n.select.on||n.select.clear)){const s='event.item && indexof(event.item.mark.role, "legend") < 0';for(const a of t.events)a.filter=ct(a.filter??[]),a.filter.includes(s)||a.filter.push(s)}const r=F1(t.bind)?t.bind.legend:"click",o=de(r)?ds(r,"view"):ct(r);t.bind={legend:{merge:o}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=F1(t.bind)&&t.bind.legend,o=s=>a=>{const u=ce(a);return u.markname=s,u};for(const s of t.project.items){if(!s.hasLegend)continue;const a=`${Qe(s.field)}_legend`,u=`${i}_${a}`;if(n.filter(c=>c.name===u).length===0){const c=r.merge.map(o(`${a}_symbols`)).concat(r.merge.map(o(`${a}_labels`))).concat(r.merge.map(o(`${a}_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(d=>d.name===i+mo),s=i+sd,a=r.items.filter(d=>d.hasLegend).map(d=>Qe(`${i}_${Qe(d.field)}_legend`)),l=`${a.map(d=>`${d} !== null`).join(" && ")} ? {fields: ${s}, values: [${a.join(", ")}]} : null`;t.events&&a.length>0?o.on.push({events:a.map(d=>({signal:d})),update:l}):a.length>0&&(o.update=l,delete o.value,delete o.on);const c=n.find(d=>d.name===i+Hp),f=F1(t.bind)&&t.bind.legend;return c&&(t.events?c.on.push({...c.on[0],events:f}):c.on[0].events=f),n}};function dce(e,t,n){const i=e.fieldDef(t)?.field;for(const r of qt(e.component.selection??{})){const o=r.project.hasField[i]??r.project.hasChannel[t];if(o&&J4.defined(r)){const s=n.get("selections")??[];s.push(r.name),n.set("selections",s,!1),o.hasLegend=!0}}}const Q4="_translate_anchor",Z4="_translate_delta",hce={defined:e=>e.type==="interval"&&e.translate,signals:(e,t,n)=>{const i=t.name,r=ao.defined(t),o=i+Q4,{x:s,y:a}=t.project.hasChannel;let u=ds(t.translate,"scope");return r||(u=u.map(l=>(l.between[0].markname=i+Au,l))),n.push({name:o,value:{},on:[{events:u.map(l=>l.between[0]),update:"{x: x(unit), y: y(unit)"+(s!==void 0?`, extent_x: ${r?ix(e,et):`slice(${s.signals.visual})`}`:"")+(a!==void 0?`, extent_y: ${r?ix(e,Mt):`slice(${a.signals.visual})`}`:"")+"}"}]},{name:i+Z4,value:{},on:[{events:u,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),s!==void 0&&pF(e,t,s,"width",n),a!==void 0&&pF(e,t,a,"height",n),n}};function pF(e,t,n,i,r){const o=t.name,s=o+Q4,a=o+Z4,u=n.channel,l=ao.defined(t),c=r.find(w=>w.name===n.signals[l?"data":"visual"]),f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(u),h=d&&d.get("type"),p=d&&d.get("reverse"),g=l?u===et?p?"":"-":p?"-":"":"",m=`${s}.extent_${u}`,y=`${g}${a}.${u} / ${l?`${f}`:`span(${m})`}`,b=!l||!d?"panLinear":h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear",x=l?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":"",v=`${b}(${m}, ${y}${x})`;c.on.push({events:{signal:a},update:l?v:`clampRange(${v}, 0, ${f})`})}const eL="_zoom_anchor",tL="_zoom_delta",pce={defined:e=>e.type==="interval"&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=ao.defined(t),o=i+tL,{x:s,y:a}=t.project.hasChannel,u=_e(e.scaleName(et)),l=_e(e.scaleName(Mt));let c=ds(t.zoom,"scope");return r||(c=c.map(f=>(f.markname=i+Au,f))),n.push({name:i+eL,on:[{events:c,update:r?"{"+[u?`x: invert(${u}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),s!==void 0&&gF(e,t,s,"width",n),a!==void 0&&gF(e,t,a,"height",n),n}};function gF(e,t,n,i,r){const o=t.name,s=n.channel,a=ao.defined(t),u=r.find(b=>b.name===n.signals[a?"data":"visual"]),l=e.getSizeSignalRef(i).signal,c=e.getScaleComponent(s),f=c&&c.get("type"),d=a?ix(e,s):u.name,h=o+tL,p=`${o}${eL}.${s}`,g=!a||!c?"zoomLinear":f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear",m=a?f==="pow"?`, ${c.get("exponent")??1}`:f==="symlog"?`, ${c.get("constant")??1}`:"":"",y=`${g}(${d}, ${p}, ${h}${m})`;u.on.push({events:{signal:h},update:a?y:`clampRange(${y}, 0, ${l})`})}const Sa="_store",mo="_tuple",gce="_modify",nL="vlSelectionResolve",J0=[Ule,Xle,Ile,K4,X4,ao,J4,fce,hce,pce,Y4];function mce(e){let t=e.parent;for(;t&&!Zn(t);)t=t.parent;return t}function ta(e,{escape:t}={escape:!0}){let n=t?_e(e.name):e.name;const i=mce(e);if(i){const{facet:r}=i;for(const o of di)r[o]&&(n+=` + '__facet_${o}_' + (facet[${_e(i.vgField(o))}])`)}return n}function yA(e){return qt(e.component.selection??{}).reduce((t,n)=>t||n.project.hasSelectionId,!1)}function iL(e,t){(to(t.select)||!t.select.on)&&delete e.events,(to(t.select)||!t.select.clear)&&delete e.clear,(to(t.select)||!t.select.toggle)&&delete e.toggle}function gr(e){return e.events?.find(t=>"type"in t&&t.type==="timer")}const yce="RawCode",bce="Literal",xce="Property",vce="Identifier",Ece="ArrayExpression",wce="BinaryExpression",Ace="CallExpression",Sce="ConditionalExpression",Cce="LogicalExpression",$ce="MemberExpression",_ce="ObjectExpression",Fce="UnaryExpression";function Qi(e){this.type=e}Qi.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=kce(this),n=0,i=t.length;n<i;++n)if(t[n].visit(e))return 1};function kce(e){switch(e.type){case Ece:return e.elements;case wce:case Cce:return[e.left,e.right];case Ace:return[e.callee].concat(e.arguments);case Sce:return[e.test,e.consequent,e.alternate];case $ce:return[e.object,e.property];case _ce:return e.properties;case xce:return[e.key,e.value];case Fce:return[e.argument];case vce:case bce:case yce:default:return[]}}var Pr,J,R,sn,Ie,Q0=1,ad=2,Ca=3,Es=4,Z0=5,Wa=6,Dn=7,ud=8,Dce=9;Pr={};Pr[Q0]="Boolean";Pr[ad]="<end>";Pr[Ca]="Identifier";Pr[Es]="Keyword";Pr[Z0]="Null";Pr[Wa]="Numeric";Pr[Dn]="Punctuator";Pr[ud]="String";Pr[Dce]="RegularExpression";var Tce="ArrayExpression",Mce="BinaryExpression",Oce="CallExpression",Rce="ConditionalExpression",rL="Identifier",Nce="Literal",Lce="LogicalExpression",Pce="MemberExpression",Ice="ObjectExpression",zce="Property",Bce="UnaryExpression",Ft="Unexpected token %0",Uce="Unexpected number",jce="Unexpected string",qce="Unexpected identifier",Wce="Unexpected reserved word",Gce="Unexpected end of input",ox="Invalid regular expression",N1="Invalid regular expression: missing /",oL="Octal literals are not allowed in strict mode.",Hce="Duplicate data property in object literal not allowed in strict mode",Ut="ILLEGAL",df="Disabled.",Vce=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]"),Yce=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 em(e,t){if(!e)throw new Error("ASSERT: "+t)}function Gr(e){return e>=48&&e<=57}function bA(e){return"0123456789abcdefABCDEF".includes(e)}function Pc(e){return"01234567".includes(e)}function Xce(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 hf(e){return e===10||e===13||e===8232||e===8233}function ld(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&Vce.test(String.fromCharCode(e))}function Vp(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&Yce.test(String.fromCharCode(e))}const Kce={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 sL(){for(;R<sn;){const e=J.charCodeAt(R);if(Xce(e)||hf(e))++R;else break}}function sx(e){var t,n,i,r=0;for(n=e==="u"?4:2,t=0;t<n;++t)R<sn&&bA(J[R])?(i=J[R++],r=r*16+"0123456789abcdef".indexOf(i.toLowerCase())):De({},Ft,Ut);return String.fromCharCode(r)}function Jce(){var e,t,n,i;for(e=J[R],t=0,e==="}"&&De({},Ft,Ut);R<sn&&(e=J[R++],!!bA(e));)t=t*16+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||e!=="}")&&De({},Ft,Ut),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,i=(t-65536&1023)+56320,String.fromCharCode(n,i))}function aL(){var e,t;for(e=J.charCodeAt(R++),t=String.fromCharCode(e),e===92&&(J.charCodeAt(R)!==117&&De({},Ft,Ut),++R,e=sx("u"),(!e||e==="\\"||!ld(e.charCodeAt(0)))&&De({},Ft,Ut),t=e);R<sn&&(e=J.charCodeAt(R),!!Vp(e));)++R,t+=String.fromCharCode(e),e===92&&(t=t.substr(0,t.length-1),J.charCodeAt(R)!==117&&De({},Ft,Ut),++R,e=sx("u"),(!e||e==="\\"||!Vp(e.charCodeAt(0)))&&De({},Ft,Ut),t+=e);return t}function Qce(){var e,t;for(e=R++;R<sn;){if(t=J.charCodeAt(R),t===92)return R=e,aL();if(Vp(t))++R;else break}return J.slice(e,R)}function Zce(){var e,t,n;return e=R,t=J.charCodeAt(R)===92?aL():Qce(),t.length===1?n=Ca:Kce.hasOwnProperty(t)?n=Es:t==="null"?n=Z0:t==="true"||t==="false"?n=Q0:n=Ca,{type:n,value:t,start:e,end:R}}function L1(){var e=R,t=J.charCodeAt(R),n,i=J[R],r,o,s;switch(t){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++R,{type:Dn,value:String.fromCharCode(t),start:e,end:R};default:if(n=J.charCodeAt(R+1),n===61)switch(t){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return R+=2,{type:Dn,value:String.fromCharCode(t)+String.fromCharCode(n),start:e,end:R};case 33:case 61:return R+=2,J.charCodeAt(R)===61&&++R,{type:Dn,value:J.slice(e,R),start:e,end:R}}}if(s=J.substr(R,4),s===">>>=")return R+=4,{type:Dn,value:s,start:e,end:R};if(o=s.substr(0,3),o===">>>"||o==="<<="||o===">>=")return R+=3,{type:Dn,value:o,start:e,end:R};if(r=o.substr(0,2),i===r[1]&&"+-<>&|".includes(i)||r==="=>")return R+=2,{type:Dn,value:r,start:e,end:R};if(r==="//"&&De({},Ft,Ut),"<>=!+-*%&|^/".includes(i))return++R,{type:Dn,value:i,start:e,end:R};De({},Ft,Ut)}function efe(e){let t="";for(;R<sn&&bA(J[R]);)t+=J[R++];return t.length===0&&De({},Ft,Ut),ld(J.charCodeAt(R))&&De({},Ft,Ut),{type:Wa,value:parseInt("0x"+t,16),start:e,end:R}}function tfe(e){let t="0"+J[R++];for(;R<sn&&Pc(J[R]);)t+=J[R++];return(ld(J.charCodeAt(R))||Gr(J.charCodeAt(R)))&&De({},Ft,Ut),{type:Wa,value:parseInt(t,8),octal:!0,start:e,end:R}}function mF(){var e,t,n;if(n=J[R],em(Gr(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),t=R,e="",n!=="."){if(e=J[R++],n=J[R],e==="0"){if(n==="x"||n==="X")return++R,efe(t);if(Pc(n))return tfe(t);n&&Gr(n.charCodeAt(0))&&De({},Ft,Ut)}for(;Gr(J.charCodeAt(R));)e+=J[R++];n=J[R]}if(n==="."){for(e+=J[R++];Gr(J.charCodeAt(R));)e+=J[R++];n=J[R]}if(n==="e"||n==="E")if(e+=J[R++],n=J[R],(n==="+"||n==="-")&&(e+=J[R++]),Gr(J.charCodeAt(R)))for(;Gr(J.charCodeAt(R));)e+=J[R++];else De({},Ft,Ut);return ld(J.charCodeAt(R))&&De({},Ft,Ut),{type:Wa,value:parseFloat(e),start:t,end:R}}function nfe(){var e="",t,n,i,r,o=!1;for(t=J[R],em(t==="'"||t==='"',"String literal must starts with a quote"),n=R,++R;R<sn;)if(i=J[R++],i===t){t="";break}else if(i==="\\")if(i=J[R++],!i||!hf(i.charCodeAt(0)))switch(i){case"u":case"x":J[R]==="{"?(++R,e+=Jce()):e+=sx(i);break;case"n":e+=`
16
16
  `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:Pc(i)?(r="01234567".indexOf(i),r!==0&&(o=!0),R<sn&&Pc(J[R])&&(o=!0,r=r*8+"01234567".indexOf(J[R++]),"0123".includes(i)&&R<sn&&Pc(J[R])&&(r=r*8+"01234567".indexOf(J[R++]))),e+=String.fromCharCode(r)):e+=i;break}else i==="\r"&&J[R]===`
17
17
  `&&++R;else{if(hf(i.charCodeAt(0)))break;e+=i}return t!==""&&De({},Ft,Ut),{type:ud,value:e,octal:o,start:n,end:R}}function ife(e,t){let n=e;t.includes("u")&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(i,r)=>{if(parseInt(r,16)<=1114111)return"x";De({},ox)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{De({},ox)}try{return new RegExp(e,t)}catch{return null}}function rfe(){var e,t,n,i,r;for(e=J[R],em(e==="/","Regular expression literal must start with a slash"),t=J[R++],n=!1,i=!1;R<sn;)if(e=J[R++],t+=e,e==="\\")e=J[R++],hf(e.charCodeAt(0))&&De({},N1),t+=e;else if(hf(e.charCodeAt(0)))De({},N1);else if(n)e==="]"&&(n=!1);else if(e==="/"){i=!0;break}else e==="["&&(n=!0);return i||De({},N1),r=t.substr(1,t.length-2),{value:r,literal:t}}function ofe(){var e,t,n;for(t="",n="";R<sn&&(e=J[R],!!Vp(e.charCodeAt(0)));)++R,e==="\\"&&R<sn?De({},Ft,Ut):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&De({},ox,n),{value:n,literal:t}}function sfe(){var e,t,n,i;return Ie=null,sL(),e=R,t=rfe(),n=ofe(),i=ife(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:R}}function afe(e){return e.type===Ca||e.type===Es||e.type===Q0||e.type===Z0}function uL(){if(sL(),R>=sn)return{type:ad,start:R,end:R};const e=J.charCodeAt(R);return ld(e)?Zce():e===40||e===41||e===59?L1():e===39||e===34?nfe():e===46?Gr(J.charCodeAt(R+1))?mF():L1():Gr(e)?mF():L1()}function On(){const e=Ie;return R=e.end,Ie=uL(),R=e.end,e}function lL(){const e=R;Ie=uL(),R=e}function ufe(e){const t=new Qi(Tce);return t.elements=e,t}function yF(e,t,n){const i=new Qi(e==="||"||e==="&&"?Lce:Mce);return i.operator=e,i.left=t,i.right=n,i}function lfe(e,t){const n=new Qi(Oce);return n.callee=e,n.arguments=t,n}function cfe(e,t,n){const i=new Qi(Rce);return i.test=e,i.consequent=t,i.alternate=n,i}function xA(e){const t=new Qi(rL);return t.name=e,t}function vc(e){const t=new Qi(Nce);return t.value=e.value,t.raw=J.slice(e.start,e.end),e.regex&&(t.raw==="//"&&(t.raw="/(?:)/"),t.regex=e.regex),t}function bF(e,t,n){const i=new Qi(Pce);return i.computed=e==="[",i.object=t,i.property=n,i.computed||(n.member=!0),i}function ffe(e){const t=new Qi(Ice);return t.properties=e,t}function xF(e,t,n){const i=new Qi(zce);return i.key=t,i.value=n,i.kind=e,i}function dfe(e,t){const n=new Qi(Bce);return n.operator=e,n.argument=t,n.prefix=!0,n}function De(e,t){var n,i=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,(o,s)=>(em(s<i.length,"Message reference must be in range"),i[s]));throw n=new Error(r),n.index=R,n.description=r,n}function tm(e){e.type===ad&&De(e,Gce),e.type===Wa&&De(e,Uce),e.type===ud&&De(e,jce),e.type===Ca&&De(e,qce),e.type===Es&&De(e,Wce),De(e,Ft,e.value)}function an(e){const t=On();(t.type!==Dn||t.value!==e)&&tm(t)}function Xe(e){return Ie.type===Dn&&Ie.value===e}function P1(e){return Ie.type===Es&&Ie.value===e}function hfe(){const e=[];for(R=Ie.start,an("[");!Xe("]");)Xe(",")?(On(),e.push(null)):(e.push($a()),Xe("]")||an(","));return On(),ufe(e)}function vF(){R=Ie.start;const e=On();return e.type===ud||e.type===Wa?(e.octal&&De(e,oL),vc(e)):xA(e.value)}function pfe(){var e,t,n,i;if(R=Ie.start,e=Ie,e.type===Ca)return n=vF(),an(":"),i=$a(),xF("init",n,i);if(e.type===ad||e.type===Dn)tm(e);else return t=vF(),an(":"),i=$a(),xF("init",t,i)}function gfe(){var e=[],t,n,i,r={},o=String;for(R=Ie.start,an("{");!Xe("}");)t=pfe(),t.key.type===rL?n=t.key.name:n=o(t.key.value),i="$"+n,Object.prototype.hasOwnProperty.call(r,i)?De({},Hce):r[i]=!0,e.push(t),Xe("}")||an(",");return an("}"),ffe(e)}function mfe(){an("(");const e=vA();return an(")"),e}const yfe={if:1};function bfe(){var e,t,n;if(Xe("("))return mfe();if(Xe("["))return hfe();if(Xe("{"))return gfe();if(e=Ie.type,R=Ie.start,e===Ca||yfe[Ie.value])n=xA(On().value);else if(e===ud||e===Wa)Ie.octal&&De(Ie,oL),n=vc(On());else{if(e===Es)throw new Error(df);e===Q0?(t=On(),t.value=t.value==="true",n=vc(t)):e===Z0?(t=On(),t.value=null,n=vc(t)):Xe("/")||Xe("/=")?(n=vc(sfe()),lL()):tm(On())}return n}function xfe(){const e=[];if(an("("),!Xe(")"))for(;R<sn&&(e.push($a()),!Xe(")"));)an(",");return an(")"),e}function vfe(){R=Ie.start;const e=On();return afe(e)||tm(e),xA(e.value)}function Efe(){return an("."),vfe()}function wfe(){an("[");const e=vA();return an("]"),e}function Afe(){var e,t,n;for(e=bfe();;)if(Xe("."))n=Efe(),e=bF(".",e,n);else if(Xe("("))t=xfe(),e=lfe(e,t);else if(Xe("["))n=wfe(),e=bF("[",e,n);else break;return e}function EF(){const e=Afe();if(Ie.type===Dn&&(Xe("++")||Xe("--")))throw new Error(df);return e}function Ah(){var e,t;if(Ie.type!==Dn&&Ie.type!==Es)t=EF();else{if(Xe("++")||Xe("--"))throw new Error(df);if(Xe("+")||Xe("-")||Xe("~")||Xe("!"))e=On(),t=Ah(),t=dfe(e.value,t);else{if(P1("delete")||P1("void")||P1("typeof"))throw new Error(df);t=EF()}}return t}function wF(e){let t=0;if(e.type!==Dn&&e.type!==Es)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;break}return t}function Sfe(){var e,t,n,i,r,o,s,a,u,l;if(e=Ie,u=Ah(),i=Ie,r=wF(i),r===0)return u;for(i.prec=r,On(),t=[e,Ie],s=Ah(),o=[u,i,s];(r=wF(Ie))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)s=o.pop(),a=o.pop().value,u=o.pop(),t.pop(),n=yF(a,u,s),o.push(n);i=On(),i.prec=r,o.push(i),t.push(Ie),n=Ah(),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)t.pop(),n=yF(o[l-1].value,o[l-2],n),l-=2;return n}function $a(){var e,t,n;return e=Sfe(),Xe("?")&&(On(),t=$a(),an(":"),n=$a(),e=cfe(e,t,n)),e}function vA(){const e=$a();if(Xe(","))throw new Error(df);return e}function Cfe(e){J=e,R=0,sn=J.length,Ie=null,lL();const t=vA();if(Ie.type!==ad)throw new Error("Unexpect token after expression.");return t}function ax(e){const t=[];return e.type==="Identifier"?[e.name]:e.type==="Literal"?[e.value]:(e.type==="MemberExpression"&&(t.push(...ax(e.object)),t.push(...ax(e.property))),t)}function cL(e){return e.object.type==="MemberExpression"?cL(e.object):e.object.name==="datum"}function fL(e){const t=Cfe(e),n=new Set;return t.visit(i=>{i.type==="MemberExpression"&&cL(i)&&n.add(ax(i).slice(1).join("."))}),n}class wl extends ze{clone(){return new wl(null,this.model,ce(this.filter))}constructor(t,n,i){super(t),this.model=n,this.filter=i,this.expr=Yp(this.model,this.filter,this),this._dependentFields=fL(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function $fe(e,t){const n={},i=e.config.selection;if(!t||!t.length)return n;let r=0;for(const o of t){const s=Qe(o.name),a=o.select,u=de(a)?a:a.type,l=Fe(a)?ce(a):{type:u},c=i[u];for(const h in c)h==="fields"||h==="encodings"||(h==="mark"&&(l.mark={...c.mark,...l.mark}),(l[h]===void 0||l[h]===!0)&&(l[h]=ce(c[h]??l[h])));const f=n[s]={...l,name:s,type:u,init:o.value,bind:o.bind,events:de(l.on)?ds(l.on,"scope"):ct(ce(l.on))};if(gr(f)&&(r++,r>1)){delete n[s];continue}const d=ce(o);for(const h of J0)h.defined(f)&&h.parse&&h.parse(e,f,d)}return r>1&&j(Noe),n}function dL(e,t,n,i="datum"){const r=de(t)?t:t.param,o=Qe(r),s=_e(o+Sa);let a;try{a=e.getSelectionComponent(o,r)}catch{return`!!${o}`}if(a.project.timeUnit){const d=n??e.component.data.raw,h=a.project.timeUnit.clone();d.parent?h.insertAsParentOf(d):d.parent=h}const u=a.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest(",l=a.resolve==="global"?")":`, ${_e(a.resolve)})`,c=`${u}${s}, ${i}${l}`,f=`length(data(${s}))`;return t.empty===!1?`${f} && ${c}`:`!${f} || ${c}`}function hL(e,t,n){const i=Qe(t),r=n.encoding;let o=n.field,s;try{s=e.getSelectionComponent(i,t)}catch{return i}if(!r&&!o)o=s.project.items[0].field,s.project.items.length>1&&j(Loe(o));else if(r&&!o){const a=s.project.items.filter(u=>u.channel===r);!a.length||a.length>1?(o=s.project.items[0].field,j(Poe(a,r,n,o))):o=a[0].field}return`${s.name}[${_e(bi(o))}]`}function _fe(e,t){for(const[n,i]of is(e.component.selection??{})){const r=e.getName(`lookup_${n}`);e.component.data.outputNodes[r]=i.materialized=new Nn(new wl(t,e,{param:n}),r,it.Lookup,e.component.data.outputNodeRefCounts)}}function Yp(e,t,n){return Nc(t,i=>de(i)?i:Hse(i)?dL(e,i,n):y6(i))}function Ffe(e,t){if(e)return X(e)&&!Ro(e)?e.map(n=>Qw(n,t)).join(", "):e}function I1(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 Ec(e,t,n,i={header:!1}){const{disable:r,orient:o,scale:s,labelExpr:a,title:u,zindex:l,...c}=e.combine();if(!r){for(const f in c){const d=f,h=Jae[d],p=c[d];if(h&&h!==t&&h!=="both")delete c[d];else if(od(p)){const{condition:g,...m}=p,y=ct(g),b=q_[d];if(b){const{vgProp:x,part:v}=b,w=[...y.map(A=>{const{test:E,...S}=A;return{test:Yp(null,E),...S}}),m];I1(c,v,x,w),delete c[d]}else if(b===null){const x={signal:y.map(v=>{const{test:w,...A}=v;return`${Yp(null,w)} ? ${__(A)} : `}).join("")+__(m)};c[d]=x}}else if(Q(p)){const g=q_[d];if(g){const{vgProp:m,part:y}=g;I1(c,y,m,p),delete c[d]}}we(["labelAlign","labelBaseline"],d)&&c[d]===null&&delete c[d]}if(t==="grid"){if(!c.grid)return;if(c.encode){const{grid:f}=c.encode;c.encode={...f?{grid:f}:{}},Ue(c.encode)&&delete c.encode}return{scale:s,orient:o,...c,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:ft(l,0)}}else{if(!i.header&&e.mainExtracted)return;if(a!==void 0){let d=a;c.encode?.labels?.update&&Q(c.encode.labels.update.text)&&(d=ma(a,"datum.label",c.encode.labels.update.text.signal)),I1(c,"labels","text",{signal:d})}if(c.labelAlign===null&&delete c.labelAlign,c.encode){for(const d of Y6)e.hasAxisPart(d)||delete c.encode[d];Ue(c.encode)&&delete c.encode}const f=Ffe(u,n);return{scale:s,orient:o,grid:!1,...f?{title:f}:{},...c,...n.aria===!1?{aria:!1}:{},zindex:ft(l,0)}}}}function pL(e){const{axes:t}=e.component,n=[];for(const i of So)if(t[i]){for(const r of t[i])if(!r.get("disable")&&!r.get("gridScale")){const o=i==="x"?"height":"width",s=e.getSizeSignalRef(o).signal;o!==s&&n.push({name:o,update:s})}}return n}function kfe(e,t){const{x:n=[],y:i=[]}=e;return[...n.map(r=>Ec(r,"grid",t)),...i.map(r=>Ec(r,"grid",t)),...n.map(r=>Ec(r,"main",t)),...i.map(r=>Ec(r,"main",t))].filter(r=>r)}function AF(e,t,n,i){return Object.assign.apply(null,[{},...e.map(r=>{if(r==="axisOrient"){const o=n==="x"?"bottom":"left",s=t[n==="x"?"axisBottom":"axisLeft"]||{},a=t[n==="x"?"axisTop":"axisRight"]||{},u=new Set([...B(s),...B(a)]),l={};for(const c of u.values())l[c]={signal:`${i.signal} === "${o}" ? ${Mi(s[c])} : ${Mi(a[c])}`};return l}return t[r]})])}function Dfe(e,t,n,i){const r=t==="band"?["axisDiscrete","axisBand"]:t==="point"?["axisDiscrete","axisPoint"]:E6(t)?["axisQuantitative"]:t==="time"||t==="utc"?["axisTemporal"]:[],o=e==="x"?"axisX":"axisY",s=Q(n)?"axisOrient":`axis${Yf(n)}`,a=[...r,...r.map(l=>o+l.substr(4))],u=["axis",s,o];return{vlOnlyAxisConfig:AF(a,i,e,n),vgAxisConfig:AF(u,i,e,n),axisConfigStyle:Tfe([...u,...a],i)}}function Tfe(e,t){const n=[{}];for(const i of e){let r=t[i]?.style;if(r){r=ct(r);for(const o of r)n.push(t.style[o])}}return Object.assign.apply(null,n)}function ux(e,t,n,i={}){const r=XN(e,n,t);if(r!==void 0)return{configFrom:"style",configValue:r};for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(i[o]?.[e]!==void 0)return{configFrom:o,configValue:i[o][e]};return{}}const SF={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??Mfe(n,e),gridScale:({model:e,channel:t})=>Ofe(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelAlign||mL(t,n,i),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelBaseline||gL(t,n,i),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>e.labelFlush??Nfe(t.type,n),labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>e.labelOverlap??Lfe(t.type,n,q(t)&&!!t.timeUnit,q(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,s=o?t.getSizeSignalRef(o):void 0;return n.tickCount??Ife({fieldOrDatumDef:i,scaleType:r,size:s,values:n.values})},tickMinStep:zfe,title:({axis:e,model:t,channel:n})=>{if(e.title!==void 0)return e.title;const i=yL(t,n);if(i!==void 0)return i;const r=t.typedFieldDef(n),o=n==="x"?"x2":"y2",s=t.fieldDef(o);return JN(r?[U_(r)]:[],q(s)?[U_(s)]:[])},values:({axis:e,fieldOrDatumDef:t})=>Bfe(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>e.zindex??Ufe(n,t)};function Mfe(e,t){return!Dt(e)&&q(t)&&!He(t?.bin)&&!Nt(t?.bin)}function Ofe(e,t){const n=t==="x"?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n)}function Rfe(e,t,n,i,r){const o=t?.labelAngle;if(o!==void 0)return Q(o)?o:lf(o);{const{configValue:s}=ux("labelAngle",i,t?.style,r);return s!==void 0?lf(s):n===et&&we([Bw,zw],e.type)&&!(q(e)&&e.timeUnit)?270:void 0}}function lx(e){return`(((${e.signal} % 360) + 360) % 360)`}function gL(e,t,n,i){if(e!==void 0)if(n==="x"){if(Q(e)){const r=lx(e),o=Q(t)?`(${t.signal} === "top")`:t==="top";return{signal:`(45 < ${r} && ${r} < 135) || (225 < ${r} && ${r} < 315) ? "middle" :(${r} <= 45 || 315 <= ${r}) === ${o} ? "bottom" : "top"`}}if(45<e&&e<135||225<e&&e<315)return"middle";if(Q(t)){const r=e<=45||315<=e?"===":"!==";return{signal:`${t.signal} ${r} "top" ? "bottom" : "top"`}}return(e<=45||315<=e)==(t==="top")?"bottom":"top"}else{if(Q(e)){const r=lx(e),o=Q(t)?`(${t.signal} === "left")`:t==="left";return{signal:`${r} <= 45 || 315 <= ${r} || (135 <= ${r} && ${r} <= 225) ? ${i?'"middle"':"null"} : (45 <= ${r} && ${r} <= 135) === ${o} ? "top" : "bottom"`}}if(e<=45||315<=e||135<=e&&e<=225)return i?"middle":null;if(Q(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 mL(e,t,n){if(e===void 0)return;const i=n==="x",r=i?0:90,o=i?"bottom":"left";if(Q(e)){const s=lx(e),a=Q(t)?`(${t.signal} === "${o}")`:t===o;return{signal:`(${r?`(${s} + 90)`:s} % 180 === 0) ? ${i?null:'"center"'} :(${r} < ${s} && ${s} < ${180+r}) === ${a} ? "left" : "right"`}}if((e+r)%180===0)return i?null:"center";if(Q(t)){const s=r<e&&e<180+r?"===":"!==";return{signal:`${`${t.signal} ${s} "${o}"`} ? "left" : "right"`}}return(r<e&&e<180+r)==(t===o)?"left":"right"}function Nfe(e,t){if(t==="x"&&we(["quantitative","temporal"],e))return!0}function Lfe(e,t,n,i){if(n&&!Fe(i)||e!=="nominal"&&e!=="ordinal")return t==="log"||t==="symlog"?"greedy":!0}function Pfe(e){return e==="x"?"bottom":"left"}function Ife({fieldOrDatumDef:e,scaleType:t,size:n,values:i}){if(!i&&!Dt(t)&&t!=="log"){if(q(e)){if(He(e.bin))return{signal:`ceil(${n.signal}/10)`};if(e.timeUnit&&we(["month","hours","day","quarter"],kt(e.timeUnit)?.unit))return}return{signal:`ceil(${n.signal}/40)`}}}function zfe({format:e,fieldOrDatumDef:t}){if(e==="d")return 1;if(q(t)){const{timeUnit:n}=t;if(n){const i=p6(n);if(i)return{signal:i}}}}function yL(e,t){const n=t==="x"?"x2":"y2",i=e.fieldDef(t),r=e.fieldDef(n),o=i?i.title:void 0,s=r?r.title:void 0;if(o&&s)return QN(o,s);if(o)return o;if(s)return s;if(o!==void 0)return o;if(s!==void 0)return s}function Bfe(e,t){const n=e.values;if(X(n))return V6(t,n);if(Q(n))return n}function Ufe(e,t){return e==="rect"&&Bp(t)?1:0}class el extends ze{clone(){return new el(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this._dependentFields=fL(this.transform.calculate)}static parseAllForSortIndex(t,n){return n.forEachFieldDef((i,r)=>{if(qa(i)&&P6(i.sort)){const{field:o,timeUnit:s}=i,a=i.sort,u=a.map((l,c)=>`${y6({field:o,timeUnit:s,equal:l})} ? ${c} : `).join("")+a.length;t=new el(t,{calculate:u,as:tl(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 ${Ae(this.transform)}`}}function tl(e,t,n){return H(e,{prefix:t,suffix:"sort_index",...n})}function nm(e,t){return we(["top","bottom"],t)?"column":we(["left","right"],t)||e==="row"?"row":"column"}function nl(e,t,n,i){const r=i==="row"?n.headerRow:i==="column"?n.headerColumn:n.headerFacet;return ft((t||{})[e],r[e],n.header[e])}function im(e,t,n,i){const r={};for(const o of e){const s=nl(o,t||{},n,i);s!==void 0&&(r[o]=s)}return r}const EA=["row","column"],wA=["header","footer"];function jfe(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:s,titleOrient:a}=im(["titleAnchor","titleAngle","titleOrient"],r.header,i,t),u=nm(t,a),l=lf(s);return{name:`${t}-title`,type:"group",role:`${u}-title`,title:{text:n,...t==="row"?{orient:"left"}:{},style:"guide-title",...xL(l,u),...bL(u,l,o),...vL(i,r,t,xue,d4)}}}function bL(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=mL(t,e==="row"?"left":"top",e==="row"?"y":"x");return i?{align:i}:{}}function xL(e,t){const n=gL(e,t==="row"?"left":"top",t==="row"?"y":"x",!0);return n?{baseline:n}:{}}function qfe(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of wA)if(n[r])for(const o of n[r]){const s=Gfe(e,t,r,n,o);s!=null&&i.push(s)}return i}function Wfe(e,t){const{sort:n}=e;return so(n)?{field:H(n,{expr:"datum"}),order:n.order??"ascending"}:X(n)?{field:tl(e,t,{expr:"datum"}),order:"ascending"}:{field:H(e,{expr:"datum"}),order:n??"ascending"}}function cx(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:s,labelOrient:a,labelExpr:u}=im(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),l=Yw({fieldOrDatumDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,c=nm(t,a);return{text:{signal:u?ma(ma(u,"datum.label",l),"datum.value",H(e,{expr:"parent"})):l},...t==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...xL(o,c),...bL(c,o,s),...vL(n,e,t,vue,h4)}}function Gfe(e,t,n,i,r){if(r){let o=null;const{facetFieldDef:s}=i,a=e.config?e.config:void 0;if(s&&r.labels){const{labelOrient:f}=im(["labelOrient"],s.header,a,t);(t==="row"&&!we(["top","bottom"],f)||t==="column"&&!we(["left","right"],f))&&(o=cx(s,t,a))}const u=Zn(e)&&!td(e.facet),l=r.axes,c=l?.length>0;if(o||c){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:Wfe(s,t)}:{},...c&&u?{from:{data:e.getName(`facet_domain_${t}`)}}:{},...o?{title:o}:{},...r.sizeSignal?{encode:{update:{[f]:r.sizeSignal}}}:{},...c?{axes:l}:{}}}}return null}const Hfe={column:{start:0,end:1},row:{start:1,end:0}};function Vfe(e,t){return Hfe[t][e]}function Yfe(e,t){const n={};for(const i of di){const r=e[i];if(r?.facetFieldDef){const{titleAnchor:o,titleOrient:s}=im(["titleAnchor","titleOrient"],r.facetFieldDef.header,t,i),a=nm(i,s),u=Vfe(o,a);u!==void 0&&(n[a]=u)}}return Ue(n)?void 0:n}function vL(e,t,n,i,r){const o={};for(const s of i){if(!r[s])continue;const a=nl(s,t?.header,e,n);a!==void 0&&(o[r[s]]=a)}return o}function AA(e){return[...jd(e,"width"),...jd(e,"height"),...jd(e,"childWidth"),...jd(e,"childHeight")]}function jd(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 s=o.get("type"),a=o.get("range");if(Dt(s)&&Ba(a)){const u=e.scaleName(n);return Zn(e.parent)&&e.parent.component.resolve.scale[n]==="independent"?[CF(u,a)]:[CF(u,a),{name:r,update:EL(u,o,`domain('${u}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(i=="container"){const o=r.endsWith("width"),s=o?"containerSize()[0]":"containerSize()[1]",a=Jb(e.config.view,o?"width":"height"),u=`isFinite(${s}) ? ${s} : ${a}`;return[{name:r,init:u,on:[{update:u,events:"window:resize"}]}]}else return[{name:r,value:i}]}function CF(e,t){const n=`${e}_step`;return Q(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function EL(e,t,n){const i=t.get("type"),r=t.get("padding"),o=ft(t.get("paddingOuter"),r);let s=t.get("paddingInner");return s=i==="band"?s!==void 0?s:r:1,`bandspace(${n}, ${Mi(s)}, ${Mi(o)}) * ${e}_step`}function wL(e){return e==="childWidth"?"width":e==="childHeight"?"height":e}function AL(e,t){return B(e).reduce((n,i)=>({...n,...El({model:t,channelDef:e[i],vgChannel:i,mainRefFn:r=>Ye(r.value),invalidValueRef:void 0})}),{})}function SL(e,t){if(Zn(t))return e==="theta"?"independent":"shared";if(Cl(t))return"shared";if(DA(t))return dt(e)||e==="theta"||e==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function SA(e,t){const n=e.scale[t],i=dt(t)?"axis":"legend";return n==="independent"?(e[i][t]==="shared"&&j(pse(t)),"independent"):e[i][t]||"shared"}const Xfe={...Aue,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1},CL=B(Xfe);class Kfe extends $o{}const $F={symbols:Jfe,gradient:Qfe,labels:Zfe,entries:ede};function Jfe(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r,legendType:o}){if(o!=="symbol")return;const{markDef:s,encoding:a,config:u,mark:l}=n,c=s.filled&&l!=="trail";let f={...woe({},n,bae),...G4(n,{filled:c})};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?$L(a.opacity)??s.opacity:void 0;if(f.fill){if(i==="fill"||c&&i===Bn)delete f.fill;else if(U(f.fill,"field"))h?delete f.fill:(f.fill=Ye(u.legend.symbolBaseFillColor??"black"),f.fillOpacity=Ye(g??1));else if(X(f.fill)){const m=fx(a.fill??a.color)??s.fill??(c&&s.color);m&&(f.fill=Ye(m))}}if(f.stroke){if(i==="stroke"||!c&&i===Bn)delete f.stroke;else if(U(f.stroke,"field")||p)delete f.stroke;else if(X(f.stroke)){const m=ft(fx(a.stroke||a.color),s.stroke,c?s.color:void 0);m&&(f.stroke={value:m})}}if(i!==Ao){const m=q(t)&&FL(n,r,t);m?f.opacity=[{test:m,...Ye(g??1)},Ye(u.legend.unselectedOpacity)]:g&&(f.opacity=Ye(g))}return f={...f,...e},Ue(f)?void 0:f}function Qfe(e,{model:t,legendType:n,legendCmpt:i}){if(n!=="gradient")return;const{config:r,markDef:o,encoding:s}=t;let a={};const l=(i.get("gradientOpacity")??r.legend.gradientOpacity)===void 0?$L(s.opacity)||o.opacity:void 0;return l&&(a.opacity=Ye(l)),a={...a,...e},Ue(a)?void 0:a}function Zfe(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r}){const o=n.legend(i)||{},s=n.config,a=q(t)?FL(n,r,t):void 0,u=a?[{test:a,value:1},{value:s.legend.unselectedOpacity}]:void 0,{format:l,formatType:c}=o;let f;wa(c)?f=Oi({fieldOrDatumDef:t,field:"datum.value",format:l,formatType:c,config:s}):l===void 0&&c===void 0&&s.customFormatTypes&&(t.type==="quantitative"&&s.numberFormatType?f=Oi({fieldOrDatumDef:t,field:"datum.value",format:s.numberFormat,formatType:s.numberFormatType,config:s}):t.type==="temporal"&&s.timeFormatType&&q(t)&&t.timeUnit===void 0&&(f=Oi({fieldOrDatumDef:t,field:"datum.value",format:s.timeFormat,formatType:s.timeFormatType,config:s})));const d={...u?{opacity:u}:{},...f?{text:f}:{},...e};return Ue(d)?void 0:d}function ede(e,{legendCmpt:t}){return t.get("selections")?.length?{...e,fill:{value:"transparent"}}:e}function $L(e){return _L(e,(t,n)=>Math.max(t,n.value))}function fx(e){return _L(e,(t,n)=>ft(t,n.value))}function _L(e,t){if(zae(e))return ct(e.condition).reduce(t,e.value);if(Ui(e))return e.value}function FL(e,t,n){const i=t.get("selections");if(!i?.length)return;const r=_e(n.field);return i.map(o=>`(!length(data(${_e(Qe(o)+Sa)})) || (${o}[${r}] && indexof(${o}[${r}], datum.value) >= 0))`).join(" || ")}const _F={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:i,formatType:r}=t;return R6(e,e.type,i,r,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:i}=e;return N6(i,t,n)},gradientLength:e=>{const{legend:t,legendConfig:n}=e;return t.gradientLength??n.gradientLength??ade(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>e.labelOverlap??t.labelOverlap??ude(n),symbolType:({legend:e,markDef:t,channel:n,encoding:i})=>e.symbolType??nde(t.type,n,i.shape,t.shape),title:({fieldOrDatumDef:e,config:t})=>wu(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if(Eu(n)&&fr(t)){if(e==="gradient")return}else if(e==="symbol")return;return e},values:({fieldOrDatumDef:e,legend:t})=>tde(t,e)};function tde(e,t){const n=e.values;if(X(n))return V6(t,n);if(Q(n))return n}function nde(e,t,n,i){if(t!=="shape"){const r=fx(n)??i;if(r)return r}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}function ide(e){const{legend:t}=e;return ft(t.type,rde(e))}function rde({channel:e,timeUnit:t,scaleType:n}){if(Eu(e)){if(we(["quarter","month","day"],t))return"symbol";if(fr(n))return"gradient"}return"symbol"}function ode({legendConfig:e,legendType:t,orient:n,legend:i}){return i.direction??e[t?"gradientDirection":"symbolDirection"]??sde(n,t)}function sde(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return t==="gradient"?"horizontal":void 0}}function ade({legendConfig:e,model:t,direction:n,orient:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:s,gradientVerticalMaxLength:a,gradientVerticalMinLength:u}=e;if(fr(r))return n==="horizontal"?i==="top"||i==="bottom"?FF(t,"width",s,o):s:FF(t,"height",u,a)}function FF(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function ude(e){if(we(["quantile","threshold","log","symlog"],e))return"greedy"}function kL(e){const t=nt(e)?lde(e):hde(e);return e.component.legends=t,t}function lde(e){const{encoding:t}=e,n={};for(const i of[Bn,...g4]){const r=xt(t[i]);!r||!e.getScaleComponent(i)||i===Un&&q(r)&&r.type===vl||(n[i]=dde(e,i))}return n}function cde(e,t){const n=e.scaleName(t);if(e.mark==="trail"){if(t==="color")return{stroke:n};if(t==="size")return{strokeWidth:n}}return t==="color"?e.markDef.filled?{fill:n}:{stroke:n}:{[t]:n}}function fde(e,t,n,i){switch(t){case"disable":return n!==void 0;case"values":return!!n?.values;case"title":if(t==="title"&&e===i?.title)return!0}return e===(n||{})[t]}function dde(e,t){let n=e.legend(t);const{markDef:i,encoding:r,config:o}=e,s=o.legend,a=new Kfe({},cde(e,t));dce(e,t,a);const u=n!==void 0?!n:s.disable;if(a.set("disable",u,n!==void 0),u)return a;n=n||{};const l=e.getScaleComponent(t).get("type"),c=xt(r[t]),f=q(c)?kt(c.timeUnit)?.unit:void 0,d=n.orient||o.legend.orient||"right",h=ide({legend:n,channel:t,timeUnit:f,scaleType:l}),p=ode({legend:n,legendType:h,orient:d,legendConfig:s}),g={legend:n,channel:t,model:e,markDef:i,encoding:r,fieldOrDatumDef:c,legendConfig:s,config:o,scaleType:l,orient:d,legendType:h,direction:p};for(const v of CL){if(h==="gradient"&&v.startsWith("symbol")||h==="symbol"&&v.startsWith("gradient"))continue;const w=v in _F?_F[v](g):n[v];if(w!==void 0){const A=fde(w,v,n,e.fieldDef(t));(A||o.legend[v]===void 0)&&a.set(v,w,A)}}const m=n?.encoding??{},y=a.get("selections"),b={},x={fieldOrDatumDef:c,model:e,channel:t,legendCmpt:a,legendType:h};for(const v of["labels","legend","title","symbols","gradient","entries"]){const w=AL(m[v]??{},e),A=v in $F?$F[v](w,x):w;A!==void 0&&!Ue(A)&&(b[v]={...y?.length&&q(c)?{name:`${Qe(c.field)}_legend_${v}`}:{},...y?.length?{interactive:!!y}:{},update:A})}return Ue(b)||a.set("encode",b,!!n?.encoding),a}function hde(e){const{legends:t,resolve:n}=e.component;for(const i of e.children){kL(i);for(const r of B(i.component.legends))n.legend[r]=SA(e.component.resolve,r),n.legend[r]==="shared"&&(t[r]=DL(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))}for(const i of B(t))for(const r of e.children)r.component.legends[i]&&n.legend[i]==="shared"&&delete r.component.legends[i];return t}function DL(e,t){if(!e)return t.clone();const n=e.getWithExplicit("orient"),i=t.getWithExplicit("orient");if(n.explicit&&i.explicit&&n.value!==i.value)return;let r=!1;for(const o of CL){const s=ss(e.getWithExplicit(o),t.getWithExplicit(o),o,"legend",(a,u)=>{switch(o){case"symbolType":return pde(a,u);case"title":return ZN(a,u);case"type":return r=!0,Wn("symbol")}return V0(a,u,o,"legend")});e.setWithExplicit(o,s)}return r&&(e.implicit?.encode?.gradient&&Np(e.implicit,["encode","gradient"]),e.explicit?.encode?.gradient&&Np(e.explicit,["encode","gradient"])),e}function pde(e,t){return t.value==="circle"?t:e}function gde(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 TL(e){const t=e.component.legends,n={};for(const r of B(t)){const o=e.getScaleComponent(r),s=je(o.get("domains"));if(n[s])for(const a of n[s])DL(a,t[r])||n[s].push(t[r]);else n[s]=[t[r].clone()]}return qt(n).flat().map(r=>mde(r,e.config)).filter(r=>r!==void 0)}function mde(e,t){const{disable:n,labelExpr:i,selections:r,...o}=e.combine();if(!n){if(t.aria===!1&&o.aria==null&&(o.aria=!1),o.encode?.symbols){const s=o.encode.symbols.update;s.fill&&s.fill.value!=="transparent"&&!s.stroke&&!o.stroke&&(s.stroke={value:"transparent"});for(const a of g4)o[a]&&delete s[a]}if(o.title||delete o.title,i!==void 0){let s=i;o.encode?.labels?.update&&Q(o.encode.labels.update.text)&&(s=ma(i,"datum.label",o.encode.labels.update.text.signal)),gde(o,"labels","text",{signal:s})}return o}}function yde(e){return Cl(e)||DA(e)?bde(e):ML(e)}function bde(e){return e.children.reduce((t,n)=>t.concat(n.assembleProjections()),ML(e))}function ML(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(s=>s.signal).join(", ")}]`},o=t.data.reduce((s,a)=>{const u=Q(a)?a.signal:`data('${e.lookupDataSource(a)}')`;return we(s,u)||s.push(u),s},[]);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}]}else return[{name:i,translate:{signal:"[width / 2, height / 2]"},...n}]}const xde=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class OL extends $o{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 RL(e){e.component.projection=nt(e)?vde(e):Ade(e)}function vde(e){if(e.hasProjection){const t=Lt(e.specifiedProjection),n=!(t&&(t.scale!=null||t.translate!=null)),i=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,r=n?Ede(e):void 0,o=new OL(e.projectionName(!0),{...Lt(e.config.projection),...t},i,r);return o.get("type")||o.set("type","equalEarth",!1),o}}function Ede(e){const t=[],{encoding:n}=e;for(const i of[[Ki,Xi],[xi,Ji]])(xt(n[i[0]])||xt(n[i[1]]))&&t.push({signal:e.getName(`geojson_${t.length}`)});return e.channelHasField(Un)&&e.typedFieldDef(Un).type===vl&&t.push({signal:e.getName(`geojson_${t.length}`)}),t.length===0&&t.push(e.requestDataName(it.Main)),t}function wde(e,t){const n=dw(xde,r=>!!(!pt(e.explicit,r)&&!pt(t.explicit,r)||pt(e.explicit,r)&&pt(t.explicit,r)&&Xn(e.get(r),t.get(r))));if(Xn(e.size,t.size)){if(n)return e;if(Xn(e.explicit,{}))return t;if(Xn(t.explicit,{}))return e}return null}function Ade(e){if(e.children.length===0)return;let t;for(const i of e.children)RL(i);const n=dw(e.children,i=>{const r=i.component.projection;if(r)if(t){const o=wde(t,r);return o&&(t=o),!!o}else return t=r,!0;else return!0});if(t&&n){const i=e.projectionName(!0),r=new OL(i,t.specifiedProjection,t.size,ce(t.data));for(const o of e.children){const s=o.component.projection;s&&(s.isFit&&r.data.push(...o.component.projection.data),o.renameProjection(s.get("name"),i),s.merged=!0)}return r}}function Sde(e,t,n,i){if(rd(t,n)){const r=nt(e)?e.axis(n)??e.legend(n)??{}:{},o=H(t,{expr:"datum"}),s=H(t,{expr:"datum",binSuffix:"end"});return{formulaAs:H(t,{binSuffix:"range",forAs:!0}),formula:ed(o,s,r.format,r.formatType,i)}}return{}}function NL(e,t){return`${GN(e)}_${t}`}function Cde(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}function CA(e,t,n){const i=U0(n,void 0)??{},r=NL(i,t);return e.getName(`${r}_bins`)}function $de(e){return"as"in e}function kF(e,t,n){let i,r;$de(e)?i=de(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:i=[H(e,{forAs:!0}),H(e,{binSuffix:"end",forAs:!0})];const o={...U0(t,void 0)},s=NL(o,e.field),{signal:a,extentSignal:u}=Cde(n,s);if(D0(o.extent)){const c=o.extent;r=hL(n,c.param,c),delete o.extent}const l={bin:o,field:e.field,as:[i],...a?{signal:a}:{},...u?{extentSignal:u}:{},...r?{span:r}:{}};return{key:s,binComponent:l}}class mr extends ze{clone(){return new mr(null,ce(this.bins))}constructor(t,n){super(t),this.bins=n}static makeFromEncoding(t,n){const i=n.reduceFieldDef((r,o,s)=>{if(Cn(o)&&He(o.bin)){const{key:a,binComponent:u}=kF(o,o.bin,n);r[a]={...u,...r[a],...Sde(n,o,s,n.config)}}return r},{});return Ue(i)?null:new mr(t,i)}static makeFromTransform(t,n,i){const{key:r,binComponent:o}=kF(n,n.bin,i);return new mr(t,{[r]:o})}merge(t,n){for(const i of B(t.bins))i in this.bins?(n(t.bins[i].signal,this.bins[i].signal),this.bins[i].as=cr([...this.bins[i].as,...t.bins[i].as],Ae)):this.bins[i]=t.bins[i];for(const i of t.children)t.removeChild(i),i.parent=this;t.remove()}producedFields(){return new Set(qt(this.bins).map(t=>t.as).flat(2))}dependentFields(){return new Set(qt(this.bins).map(t=>t.field))}hash(){return`Bin ${Ae(this.bins)}`}assemble(){return qt(this.bins).flatMap(t=>{const n=[],[i,...r]=t.as,{extent:o,...s}=t.bin,a={type:"bin",field:bi(t.field),as:i,signal:t.signal,...D0(o)?{extent:null}:{extent:o},...t.span?{span:{signal:`span(${t.span})`}}:{},...s};!o&&t.extentSignal&&(n.push({type:"extent",field:bi(t.field),signal:t.extentSignal}),a.extent={signal:t.extentSignal}),n.push(a);for(const u of r)for(let l=0;l<2;l++)n.push({type:"formula",expr:H({field:i[l]},{expr:"datum"}),as:u[l]});return t.formula&&n.push({type:"formula",expr:t.formula,as:t.formulaAs}),n})}}function _de(e,t,n,i){const r=nt(i)?i.encoding[Rr(t)]:void 0;if(Cn(n)&&nt(i)&&z6(n,r,i.markDef,i.config)){e.add(H(n,{})),e.add(H(n,{suffix:"end"}));const{mark:o,markDef:s,config:a}=i,u=os({fieldDef:n,markDef:s,config:a});cf(o)&&u!==.5&&dt(t)&&(e.add(H(n,{suffix:Y0})),e.add(H(n,{suffix:X0}))),n.bin&&rd(n,t)&&e.add(H(n,{binSuffix:"range"}))}else if(LN(t)){const o=NN(t);e.add(i.getName(o))}else e.add(H(n));return qa(n)&&oae(n.scale?.range)&&e.add(n.scale.range.field),e}function Fde(e,t){for(const n of B(t)){const i=t[n];for(const r of B(i))n in e?e[n][r]=new Set([...e[n][r]??[],...i[r]]):e[n]={[r]:i[r]}}}class Ni extends ze{clone(){return new Ni(null,new Set(this.dimensions),ce(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(s=>{s.aggregate&&(i=!0)});const r={},o=new Set;return!i||(n.forEachFieldDef((s,a)=>{const{aggregate:u,field:l}=s;if(u)if(u==="count")r["*"]??(r["*"]={}),r["*"].count=new Set([H(s,{forAs:!0})]);else{if(po(u)||xs(u)){const c=po(u)?"argmin":"argmax",f=u[c];r[f]??(r[f]={}),r[f][c]=new Set([H({op:c,field:f},{forAs:!0})])}else r[l]??(r[l]={}),r[l][u]=new Set([H(s,{forAs:!0})]);Nr(a)&&n.scaleDomain(a)==="unaggregated"&&(r[l]??(r[l]={}),r[l].min=new Set([H({field:l,aggregate:"min"},{forAs:!0})]),r[l].max=new Set([H({field:l,aggregate:"max"},{forAs:!0})]))}else _de(o,a,s,n)}),o.size+B(r).length===0)?null:new Ni(t,o,r)}static makeFromTransform(t,n){var i;const r=new Set,o={};for(const s of n.aggregate){const{op:a,field:u,as:l}=s;a&&(a==="count"?(o["*"]??(o["*"]={}),o["*"].count=new Set([l||H(s,{forAs:!0})])):(o[u]??(o[u]={}),(i=o[u])[a]??(i[a]=new Set),o[u][a].add(l||H(s,{forAs:!0}))))}for(const s of n.groupby??[])r.add(s);return r.size+B(o).length===0?null:new Ni(t,r,o)}merge(t){return _N(this.dimensions,t.dimensions)?(Fde(this.measures,t.measures),!0):(Dse("different dimensions, cannot merge"),!1)}addDimensions(t){t.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...B(this.measures)])}producedFields(){const t=new Set;for(const n of B(this.measures))for(const i of B(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 ${Ae({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const t=[],n=[],i=[];for(const o of B(this.measures))for(const s of B(this.measures[o]))for(const a of this.measures[o][s])i.push(a),t.push(s),n.push(o==="*"?null:bi(o));return{type:"aggregate",groupby:[...this.dimensions].map(bi),ops:t,fields:n,as:i}}}class Al extends ze{constructor(t,n,i,r){super(t),this.model=n,this.name=i,this.data=r;for(const o of di){const s=n.facet[o];if(s){const{bin:a,sort:u}=s;this[o]={name:n.getName(`${o}_domain`),fields:[H(s),...He(a)?[H(s,{binSuffix:"end"})]:[]],...so(u)?{sortField:u}:X(u)?{sortIndexField:tl(s,o)}:{}}}}this.childModel=n.child}hash(){let t="Facet";for(const n of di)this[n]&&(t+=` ${n.charAt(0)}:${Ae(this[n])}`);return t}get fields(){const t=[];for(const n of di)this[n]?.fields&&t.push(...this[n].fields);return t}dependentFields(){const t=new Set(this.fields);for(const n of di)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 So){const i=this.childModel.component.scales[n];if(i&&!i.merged){const r=i.get("type"),o=i.get("range");if(Dt(r)&&Ba(o)){const s=rm(this.childModel,n),a=kA(s);a?t[n]=a:j($w(n))}}}return t}assembleRowColumnHeaderData(t,n,i){const r={row:"y",column:"x",facet:void 0}[t],o=[],s=[],a=[];r&&i&&i[r]&&(n?(o.push(`distinct_${i[r]}`),s.push("max")):(o.push(i[r]),s.push("distinct")),a.push(`distinct_${i[r]}`));const{sortField:u,sortIndexField:l}=this[t];if(u){const{op:c=I0,field:f}=u;o.push(f),s.push(c),a.push(H(u,{forAs:!0}))}else l&&(o.push(l),s.push("max"),a.push(l));return{name:this[t].name,source:n??this.data,transform:[{type:"aggregate",groupby:this[t].fields,...o.length?{fields:o,ops:s,as:a}:{}}]}}assembleFacetHeaderData(t){const{columns:n}=this.model.layout,{layoutHeaders:i}=this.model.component,r=[],o={};for(const u of EA){for(const l of wA){const c=(i[u]&&i[u][l])??[];for(const f of c)if(f.axes?.length>0){o[u]=!0;break}}if(o[u]){const l=`length(data("${this.facet.name}"))`,c=u==="row"?n?{signal:`ceil(${l} / ${n})`}:1:n?{signal:`min(${l}, ${n})`}:{signal:l};r.push({name:`${this.facet.name}_${u}`,transform:[{type:"sequence",start:0,stop:c}]})}}const{row:s,column:a}=o;return(s||a)&&r.unshift(this.assembleRowColumnHeaderData("facet",null,t)),r}assemble(){const t=[];let n=null;const i=this.getChildIndependentFieldsWithStep(),{column:r,row:o,facet:s}=this;if(r&&o&&(i.x||i.y)){n=`cross_${this.column.name}_${this.row.name}`;const a=[].concat(i.x??[],i.y??[]),u=a.map(()=>"distinct");t.push({name:n,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:a,ops:u}]})}for(const a of[oo,ro])this[a]&&t.push(this.assembleRowColumnHeaderData(a,n,i));if(s){const a=this.assembleFacetHeaderData(i);a&&t.push(...a)}return t}}function DF(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function kde(e,t){const n=gw(e);if(t==="number")return`toNumber(${n})`;if(t==="boolean")return`toBoolean(${n})`;if(t==="string")return`toString(${n})`;if(t==="date")return`toDate(${n})`;if(t==="flatten")return n;if(t.startsWith("date:")){const i=DF(t.slice(5,t.length));return`timeParse(${n},'${i}')`}else if(t.startsWith("utc:")){const i=DF(t.slice(4,t.length));return`utcParse(${n},'${i}')`}else return j(zoe(t)),null}function Dde(e){const t={};return Eh(e.filter,n=>{if(m6(n)){let i=null;Mw(n)?i=Vn(n.equal):Rw(n)?i=Vn(n.lte):Ow(n)?i=Vn(n.lt):Nw(n)?i=Vn(n.gt):Lw(n)?i=Vn(n.gte):Pw(n)?i=n.range[0]:Iw(n)&&(i=(n.oneOf??n.in)[0]),i&&(Ua(i)?t[n.field]="date":Ze(i)?t[n.field]="number":de(i)&&(t[n.field]="string")),n.timeUnit&&(t[n.field]="date")}}),t}function Tde(e){const t={};function n(i){Ju(i)?t[i.field]="date":i.type==="quantitative"&&hoe(i.aggregate)?t[i.field]="number":Gu(i.field)>1?i.field in t||(t[i.field]="flatten"):qa(i)&&so(i.sort)&&Gu(i.sort.field)>1&&(i.sort.field in t||(t[i.sort.field]="flatten"))}if((nt(e)||Zn(e))&&e.forEachFieldDef((i,r)=>{if(Cn(i))n(i);else{const o=Ia(r),s=e.fieldDef(o);n({...i,type:s.type})}}),nt(e)){const{mark:i,markDef:r,encoding:o}=e;if(vs(i)&&!e.encoding.order){const s=r.orient==="horizontal"?"y":"x",a=o[s];q(a)&&a.type==="quantitative"&&!(a.field in t)&&(t[a.field]="number")}}return t}function Mde(e){const t={};if(nt(e)&&e.component.selection)for(const n of B(e.component.selection)){const i=e.component.selection[n];for(const r of i.project.items)!r.channel&&Gu(r.field)>1&&(t[r.field]="flatten")}return t}class tn extends ze{clone(){return new tn(null,ce(this._parse))}constructor(t,n){super(t),this._parse=n}hash(){return`Parse ${Ae(this._parse)}`}static makeExplicit(t,n,i){let r={};const o=n.data;return!Xo(o)&&o?.format?.parse&&(r=o.format.parse),this.makeWithAncestors(t,r,{},i)}static makeWithAncestors(t,n,i,r){for(const a of B(i)){const u=r.getWithExplicit(a);u.value!==void 0&&(u.explicit||u.value===i[a]||u.value==="derived"||i[a]==="flatten"?delete i[a]:j(O_(a,i[a],u.value)))}for(const a of B(n)){const u=r.get(a);u!==void 0&&(u===n[a]?delete n[a]:j(O_(a,n[a],u)))}const o=new $o(n,i);r.copyAll(o);const s={};for(const a of B(o.combine())){const u=o.get(a);u!==null&&(s[a]=u)}return B(s).length===0||r.parseNothing?null:new tn(t,s)}get parse(){return this._parse}merge(t){this._parse={...this._parse,...t.parse},t.remove()}assembleFormatParse(){const t={};for(const n of B(this._parse)){const i=this._parse[n];Gu(n)===1&&(t[n]=i)}return t}producedFields(){return new Set(B(this._parse))}dependentFields(){return new Set(B(this._parse))}assembleTransforms(t=!1){return B(this._parse).filter(n=>t?Gu(n)>1:!0).map(n=>{const i=kde(n,this._parse[n]);return i?{type:"formula",expr:i,as:bl(n)}:null}).filter(n=>n!==null)}}class as extends ze{clone(){return new as(null)}constructor(t){super(t)}dependentFields(){return new Set}producedFields(){return new Set([qi])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:qi}}}class cd extends ze{clone(){return new cd(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Ae(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class fd extends ze{clone(){return new fd(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 ${Ae(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class _a extends ze{constructor(t){super(null),t??(t={name:"source"});let n;if(Xo(t)||(n=t.format?{...Rn(t.format,["parse"])}:{}),ff(t))this._data={values:t.values};else if(Qu(t)){if(this._data={url:t.url},!n.type){let i=/(?:\.([^.]+))?$/.exec(t.url)[1];we(["json","csv","tsv","dsv","topojson"],i)||(i="json"),n.type=i}}else O4(t)?this._data={values:[{type:"Sphere"}]}:(T4(t)||Xo(t))&&(this._data={});this._generator=Xo(t),t.name&&(this._name=t.name),n&&!Ue(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 TF=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},Ode=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)},wc;function $A(e){return e instanceof _a||e instanceof cd||e instanceof fd}class _A{constructor(){wc.set(this,void 0),TF(this,wc,!1,"f")}setModified(){TF(this,wc,!0,"f")}get modifiedFlag(){return Ode(this,wc,"f")}}wc=new WeakMap;class Ga extends _A{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 i=[...this.getNodeDepths(t,0,new Map).entries()].sort((r,o)=>o[1]-r[1]);for(const r of i)this.run(r[0]);return this.modifiedFlag}}class FA extends _A{optimize(t){this.run(t);for(const n of t.children)this.optimize(n);return this.modifiedFlag}}class Rde extends FA{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 B(i))i[r].length>1&&(this.setModified(),this.mergeNodes(t,i[r]))}}class Nde extends FA{constructor(t){super(),this.requiresSelectionId=t&&yA(t)}run(t){t instanceof as&&(this.requiresSelectionId&&($A(t.parent)||t.parent instanceof Ni||t.parent instanceof tn)||(this.setModified(),t.remove()))}}class Lde extends _A{optimize(t){return this.run(t,new Set),this.modifiedFlag}run(t,n){let i=new Set;t instanceof pr&&(i=t.producedFields(),hw(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 Pde extends FA{constructor(){super()}run(t){t instanceof Nn&&!t.isRequired()&&(this.setModified(),t.remove())}}class Ide extends Ga{run(t){if(!$A(t)&&!(t.numChildren()>1)){for(const n of t.children)if(n instanceof tn)if(t instanceof tn)this.setModified(),t.merge(n);else{if(pw(t.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class zde extends Ga{run(t){const n=[...t.children],i=t.children.filter(r=>r instanceof tn);if(t.numChildren()>1&&i.length>=1){const r={},o=new Set;for(const s of i){const a=s.parse;for(const u of B(a))u in r?r[u]!==a[u]&&o.add(u):r[u]=a[u]}for(const s of o)delete r[s];if(!Ue(r)){this.setModified();const s=new tn(t,r);for(const a of n){if(a instanceof tn)for(const u of B(r))delete a.parse[u];t.removeChild(a),a.parent=s,a instanceof tn&&B(a.parse).length===0&&a.remove()}}}}}class Bde extends Ga{run(t){t instanceof Nn||t.numChildren()>0||t instanceof Al||t instanceof _a||(this.setModified(),t.remove())}}class Ude extends Ga{run(t){const n=t.children.filter(r=>r instanceof pr),i=n.pop();for(const r of n)this.setModified(),i.merge(r)}}class jde extends Ga{run(t){const n=t.children.filter(r=>r instanceof Ni),i={};for(const r of n){const o=Ae(r.groupBy);o in i||(i[o]=[]),i[o].push(r)}for(const r of B(i)){const o=i[r];if(o.length>1){const s=o.pop();for(const a of o)s.merge(a)&&(t.removeChild(a),a.parent=s,a.remove(),this.setModified())}}}}class qde extends Ga{constructor(t){super(),this.model=t}run(t){const n=!($A(t)||t instanceof wl||t instanceof tn||t instanceof as),i=[],r=[];for(const o of t.children)o instanceof mr&&(n&&!pw(t.producedFields(),o.dependentFields())?i.push(o):r.push(o));if(i.length>0){const o=i.pop();for(const s of i)o.merge(s,this.model.renameSignal.bind(this.model));this.setModified(),t instanceof mr?t.merge(o,this.model.renameSignal.bind(this.model)):o.swapWithParent()}if(r.length>1){const o=r.pop();for(const s of r)o.merge(s,this.model.renameSignal.bind(this.model));this.setModified()}}}class Wde extends Ga{run(t){const n=[...t.children];if(!Wu(n,s=>s instanceof Nn)||t.numChildren()<=1)return;const r=[];let o;for(const s of n)if(s instanceof Nn){let a=s;for(;a.numChildren()===1;){const[u]=a.children;if(u instanceof Nn)a=u;else break}r.push(...a.children),o?(t.removeChild(s),s.parent=o.parent,o.parent.removeChild(o),o.parent=a,this.setModified()):o=a}else r.push(s);if(r.length){this.setModified();for(const s of r)s.parent.removeChild(s),s.parent=o}}}class Ha extends ze{clone(){return new Ha(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=cr(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??H(t)}hash(){return`JoinAggregateTransform ${Ae(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 il extends ze{clone(){return new il(null,{...this.filter})}constructor(t,n){super(t),this.filter=n}static make(t,n,i){const{config:r,markDef:o}=n,{marks:s,scales:a}=i;if(s==="include-invalid-values"&&a==="include-invalid-values")return null;const u=n.reduceFieldDef((l,c,f)=>{const d=Nr(f)&&n.getScaleComponent(f);if(d){const h=d.get("type"),{aggregate:p}=c,g=Gw({scaleChannel:f,markDef:o,config:r,scaleType:h,isCountAggregate:k0(p)});g!=="show"&&g!=="always-valid"&&(l[c.field]=c)}return l},{});return B(u).length?new il(t,u):null}dependentFields(){return new Set(B(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Ae(this.filter)}`}assemble(){const t=B(this.filter).reduce((n,i)=>{const r=this.filter[i],o=H(r,{expr:"datum"});return r!==null&&(r.type==="temporal"?n.push(`(isDate(${o}) || (${dx(o)}))`):r.type==="quantitative"&&n.push(dx(o))),n},[]);return t.length>0?{type:"filter",expr:t.join(" && ")}:null}}function dx(e){return`isValid(${e}) && isFinite(+${e})`}function Gde(e){return e.stack.stackBy.reduce((t,n)=>{const i=n.fieldDef,r=H(i);return r&&t.push(r),t},[])}function Hde(e){return X(e)&&e.every(t=>de(t))&&e.length>1}class uo extends ze{clone(){return new uo(null,ce(this._stack))}constructor(t,n){super(t),this._stack=n}static makeFromTransform(t,n){const{stack:i,groupby:r,as:o,offset:s="zero"}=n,a=[],u=[];if(n.sort!==void 0)for(const f of n.sort)a.push(f.field),u.push(ft(f.order,"ascending"));const l={field:a,order:u};let c;return Hde(o)?c=o:de(o)?c=[o,`${o}_end`]:c=[`${n.stack}_start`,`${n.stack}_end`],new uo(t,{dimensionFieldDefs:[],stackField:i,groupby:r,offset:s,sort:l,facetby:[],as:c})}static makeFromEncoding(t,n){const i=n.stack,{encoding:r}=n;if(!i)return null;const{groupbyChannels:o,fieldChannel:s,offset:a,impute:u}=i,l=o.map(h=>{const p=r[h];return ji(p)}).filter(h=>!!h),c=Gde(n),f=n.encoding.order;let d;if(X(f)||q(f))d=KN(f);else{const h=B6(f)?f.sort:s==="y"?"descending":"ascending";d=c.reduce((p,g)=>(p.field.includes(g)||(p.field.push(g),p.order.push(h)),p),{field:[],order:[]})}return new uo(t,{dimensionFieldDefs:l,stackField:n.vgField(s),facetby:[],stackby:c,sort:d,offset:a,impute:u,as:[n.vgField(s,{suffix:"start",forAs:!0}),n.vgField(s,{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 ${Ae(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:t,impute:n,groupby:i}=this._stack;return t.length>0?t.map(r=>r.bin?n?[H(r,{binSuffix:"mid"})]:[H(r,{}),H(r,{binSuffix:"end"})]:[H(r)]).flat():i??[]}assemble(){const t=[],{facetby:n,dimensionFieldDefs:i,stackField:r,stackby:o,sort:s,offset:a,impute:u,as:l}=this._stack;if(u)for(const c of i){const{bandPosition:f=.5,bin:d}=c;if(d){const h=H(c,{expr:"datum"}),p=H(c,{expr:"datum",binSuffix:"end"});t.push({type:"formula",expr:`${dx(h)} ? ${f}*${h}+${1-f}*${p} : ${h}`,as:H(c,{binSuffix:"mid",forAs:!0})})}t.push({type:"impute",field:r,groupby:[...o,...n],key:H(c,{binSuffix:"mid"}),method:"value",value:0})}return t.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:r,sort:s,as:l,offset:a}),t}}class Sl extends ze{clone(){return new Sl(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=cr(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??H(t)}hash(){return`WindowTransform ${Ae(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,s=this.transform.groupby;if(o&&o[0]===null&&o[1]===null&&n.every(f=>Sw(f)))return{type:"joinaggregate",as:i,ops:n,fields:t,...s!==void 0?{groupby:s}:{}};const a=[],u=[];if(this.transform.sort!==void 0)for(const f of this.transform.sort)a.push(f.field),u.push(f.order??"ascending");const l={field:a,order:u},c=this.transform.ignorePeers;return{type:"window",params:r,as:i,ops:n,fields:t,sort:l,...c!==void 0?{ignorePeers:c}:{},...s!==void 0?{groupby:s}:{},...o!==void 0?{frame:o}:{}}}}function Vde(e){function t(n){if(!(n instanceof Al)){const i=n.clone();if(i instanceof Nn){const r=px+i.getSource();i.setSource(r),e.model.component.data.outputNodes[r]=i}else(i instanceof Ni||i instanceof uo||i instanceof Sl||i instanceof Ha)&&i.addDimensions(e.fields);for(const r of n.children.flatMap(t))r.parent=i;return[i]}return n.children.flatMap(t)}return t}function hx(e){if(e instanceof Al)if(e.numChildren()===1&&!(e.children[0]instanceof Nn)){const t=e.children[0];(t instanceof Ni||t instanceof uo||t instanceof Sl||t instanceof Ha)&&t.addDimensions(e.fields),t.swapWithParent(),hx(e)}else{const t=e.model.component.data.main;LL(t);const n=Vde(e),i=e.children.map(n).flat();for(const r of i)r.parent=t}else e.children.map(hx)}function LL(e){if(e instanceof Nn&&e.type===it.Main&&e.numChildren()===1){const t=e.children[0];t instanceof Al||(t.swapWithParent(),LL(e))}}const px="scale_",qd=5;function gx(e){for(const t of e){for(const n of t.children)if(n.parent!==t)return!1;if(!gx(t.children))return!1}return!0}function Ai(e,t){let n=!1;for(const i of t)n=e.optimize(i)||n;return n}function MF(e,t,n){let i=e.sources,r=!1;return r=Ai(new Pde,i)||r,r=Ai(new Nde(t),i)||r,i=i.filter(o=>o.numChildren()>0),r=Ai(new Bde,i)||r,i=i.filter(o=>o.numChildren()>0),n||(r=Ai(new Ide,i)||r,r=Ai(new qde(t),i)||r,r=Ai(new Lde,i)||r,r=Ai(new zde,i)||r,r=Ai(new jde,i)||r,r=Ai(new Ude,i)||r,r=Ai(new Rde,i)||r,r=Ai(new Wde,i)||r),e.sources=i,r}function Yde(e,t){gx(e.sources);let n=0,i=0;for(let r=0;r<qd&&MF(e,t,!0);r++)n++;e.sources.map(hx);for(let r=0;r<qd&&MF(e,t,!1);r++)i++;gx(e.sources),Math.max(n,i)===qd&&j(`Maximum optimization runs(${qd}) reached.`)}class St{constructor(t){Object.defineProperty(this,"signal",{enumerable:!0,get:t})}static fromName(t,n){return new St(()=>t(n))}}function PL(e){nt(e)?Xde(e):Kde(e)}function Xde(e){const t=e.component.scales;for(const n of B(t)){const i=Qde(e,n);if(t[n].setWithExplicit("domains",i),ehe(e,n),e.component.data.isFaceted){let o=e;for(;!Zn(o)&&o.parent;)o=o.parent;if(o.component.resolve.scale[n]==="shared")for(const a of i.value)eo(a)&&(a.data=px+a.data.replace(px,""))}}}function Kde(e){for(const n of e.children)PL(n);const t=e.component.scales;for(const n of B(t)){let i,r=null;for(const o of e.children){const s=o.component.scales[n];if(s){i===void 0?i=s.getWithExplicit("domains"):i=ss(i,s.getWithExplicit("domains"),"domains","scale",mx);const a=s.get("selectionExtent");r&&a&&r.param!==a.param&&j(Moe),r=a}}t[n].setWithExplicit("domains",i),r&&t[n].set("selectionExtent",r,!0)}}function Jde(e,t,n,i){if(e==="unaggregated"){const{valid:r,reason:o}=OF(t,n);if(!r){j(o);return}}else if(e===void 0&&i.useUnaggregatedDomain){const{valid:r}=OF(t,n);if(r)return"unaggregated"}return e}function Qde(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:i}=e,r=Jde(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"&&xt(i.x2)?xt(i.x)?ss(Do(n,r,e,"x"),Do(n,r,e,"x2"),"domain","scale",mx):Do(n,r,e,"x2"):t==="y"&&xt(i.y2)?xt(i.y)?ss(Do(n,r,e,"y"),Do(n,r,e,"y2"),"domain","scale",mx):Do(n,r,e,"y2"):Do(n,r,e,t)}function Zde(e,t,n){return e.map(i=>({signal:`{data: ${j0(i,{timeUnit:n,type:t})}}`}))}function z1(e,t,n){const i=kt(n)?.unit;return t==="temporal"||i?Zde(e,t,i):[e]}function Do(e,t,n,i){const{encoding:r,markDef:o,mark:s,config:a,stack:u}=n,l=xt(r[i]),{type:c}=l,f=l.timeUnit,d=Lle({invalid:Ar("invalid",o,a),isPath:vs(s)});if(rae(t)){const g=Do(e,void 0,n,i),m=z1(t.unionWith,c,f);return or([...m,...g.value])}else{if(Q(t))return or([t]);if(t&&t!=="unaggregated"&&!A6(t))return or(z1(t,c,f))}if(u&&i===u.fieldChannel){if(u.offset==="normalize")return Wn([[0,1]]);const g=n.requestDataName(d);return Wn([{data:g,field:n.vgField(i,{suffix:"start"})},{data:g,field:n.vgField(i,{suffix:"end"})}])}const h=Nr(i)&&q(l)?the(n,i,e):void 0;if(Lr(l)){const g=z1([l.datum],c,f);return Wn(g)}const p=l;if(t==="unaggregated"){const{field:g}=l;return Wn([{data:n.requestDataName(d),field:H({field:g,aggregate:"min"})},{data:n.requestDataName(d),field:H({field:g,aggregate:"max"})}])}else if(He(p.bin)){if(Dt(e))return Wn(e==="bin-ordinal"?[]:[{data:uf(h)?n.requestDataName(d):n.requestDataName(it.Raw),field:n.vgField(i,rd(p,i)?{binSuffix:"range"}:{}),sort:h===!0||!Fe(h)?{field:n.vgField(i,{}),op:"min"}:h}]);{const{bin:g}=p;if(He(g)){const m=CA(n,p.field,g);return Wn([new St(()=>{const y=n.getSignalName(m);return`[${y}.start, ${y}.stop]`})])}else return Wn([{data:n.requestDataName(d),field:n.vgField(i,{})}])}}else if(p.timeUnit&&we(["time","utc"],e)){const g=r[Rr(i)];if(z6(p,g,o,a)){const m=n.requestDataName(d),y=os({fieldDef:p,fieldDef2:g,markDef:o,config:a}),b=cf(s)&&y!==.5&&dt(i);return Wn([{data:m,field:n.vgField(i,b?{suffix:Y0}:{})},{data:m,field:n.vgField(i,{suffix:b?X0:"end"})}])}}return Wn(h?[{data:uf(h)?n.requestDataName(d):n.requestDataName(it.Raw),field:n.vgField(i),sort:h}]:[{data:n.requestDataName(d),field:n.vgField(i)}])}function B1(e,t){const{op:n,field:i,order:r}=e;return{op:n??(t?"sum":I0),...i?{field:bi(i)}:{},...r?{order:r}:{}}}function ehe(e,t){const n=e.component.scales[t],i=e.specifiedScales[t].domain,r=e.fieldDef(t)?.bin,o=A6(i)?i:void 0,s=za(r)&&D0(r.extent)?r.extent:void 0;(o||s)&&n.set("selectionExtent",o??s,!0)}function the(e,t,n){if(!Dt(n))return;const i=e.fieldDef(t),r=i.sort;if(P6(r))return{op:"min",field:tl(i,t),order:"ascending"};const{stack:o}=e,s=o?new Set([...o.groupbyFields,...o.stackBy.map(a=>a.fieldDef.field)]):void 0;if(so(r)){const a=o&&!s.has(r.field);return B1(r,a)}else if(Lae(r)){const{encoding:a,order:u}=r,l=e.fieldDef(a),{aggregate:c,field:f}=l,d=o&&!s.has(f);if(po(c)||xs(c))return B1({field:H(l),order:u},d);if(Sw(c)||!c)return B1({op:c,field:f,order:u},d)}else{if(r==="descending")return{op:"min",field:e.vgField(t),order:"descending"};if(we(["ascending",void 0],r))return!0}}function OF(e,t){const{aggregate:n,type:i}=e;return n?de(n)&&!goe.has(n)?{valid:!1,reason:ase(n)}:i==="quantitative"&&t==="log"?{valid:!1,reason:use(e)}:{valid:!0}:{valid:!1,reason:sse(e)}}function mx(e,t,n,i){return e.explicit&&t.explicit&&j(hse(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function nhe(e){const t=cr(e.map(s=>{if(eo(s)){const{sort:a,...u}=s;return u}return s}),Ae),n=cr(e.map(s=>{if(eo(s)){const a=s.sort;return a!==void 0&&!uf(a)&&("op"in a&&a.op==="count"&&delete a.field,a.order==="ascending"&&delete a.order),a}}).filter(s=>s!==void 0),Ae);if(t.length===0)return;if(t.length===1){const s=e[0];if(eo(s)&&n.length>0){let a=n[0];if(n.length>1){j(N_);const u=n.filter(l=>Fe(l)&&"op"in l&&l.op!=="min");n.every(l=>Fe(l)&&"op"in l)&&u.length===1?a=u[0]:a=!0}else if(Fe(a)&&"field"in a){const u=a.field;s.field===u&&(a=a.order?{order:a.order}:!0)}return{...s,sort:a}}return s}const i=cr(n.map(s=>uf(s)||!("op"in s)||de(s.op)&&pt(foe,s.op)?s:(j(gse(s)),!0)),Ae);let r;i.length===1?r=i[0]:i.length>1&&(j(N_),r=!0);const o=cr(e.map(s=>eo(s)?s.data:null),s=>s);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 kA(e){if(eo(e)&&de(e.field))return e.field;if(moe(e)){let t;for(const n of e.fields)if(eo(n)&&de(n.field)){if(!t)t=n.field;else if(t!==n.field)return j(mse),t}return j(yse),t}else if(yoe(e)){j(bse);const t=e.fields[0];return de(t)?t:void 0}}function rm(e,t){const i=e.component.scales[t].get("domains").map(r=>(eo(r)&&(r.data=e.lookupDataSource(r.data)),r));return nhe(i)}function IL(e){return Cl(e)||DA(e)?e.children.reduce((t,n)=>t.concat(IL(n)),RF(e)):RF(e)}function RF(e){return B(e.component.scales).reduce((t,n)=>{const i=e.component.scales[n];if(i.merged)return t;const r=i.combine(),{name:o,type:s,selectionExtent:a,domains:u,range:l,reverse:c,...f}=r,d=ihe(r.range,o,n,e),h=rm(e,n),p=a?Vle(e,a,i,h):null;return t.push({name:o,type:s,...h?{domain:h}:{},...p?{domainRaw:p}:{},range:d,...c!==void 0?{reverse:c}:{},...f}),t},[])}function ihe(e,t,n,i){if(dt(n)){if(Ba(e))return{step:{signal:`${t}_step`}}}else if(Fe(e)&&eo(e))return{...e,data:i.lookupDataSource(e.data)};return e}class zL extends $o{constructor(t,n){super({},{name:t}),this.merged=!1,this.setWithExplicit("type",n)}domainHasZero(){const t=this.get("type");if(we([Pt.LOG,Pt.TIME,Pt.UTC],t))return"definitely-not";const n=this.get("zero");if(n===!0||n===void 0&&we([Pt.LINEAR,Pt.SQRT,Pt.POW],t))return"definitely";const i=this.get("domains");if(i.length>0){let r=!1,o=!1,s=!1;for(const a of i){if(X(a)){const u=a[0],l=a[a.length-1];if(Ze(u)&&Ze(l))if(u<=0&&l>=0){r=!0;continue}else{o=!0;continue}}s=!0}if(r)return"definitely";if(o&&!s)return"definitely-not"}return"maybe"}}const rhe=["range","scheme"];function ohe(e){const t=e.component.scales;for(const n of Aw){const i=t[n];if(!i)continue;const r=she(n,e);i.setWithExplicit("range",r)}}function NF(e,t){const n=e.fieldDef(t);if(n?.bin){const{bin:i,field:r}=n,o=jn(t),s=e.getName(o);if(Fe(i)&&i.binned&&i.step!==void 0)return new St(()=>{const a=e.scaleName(t),u=`(domain("${a}")[1] - domain("${a}")[0]) / ${i.step}`;return`${e.getSignalName(s)} / (${u})`});if(He(i)){const a=CA(e,r,i);return new St(()=>{const u=e.getSignalName(a),l=`(${u}.stop - ${u}.start) / ${u}.step`;return`${e.getSignalName(s)} / (${l})`})}}}function she(e,t){const n=t.specifiedScales[e],{size:i}=t,o=t.getScaleComponent(e).get("type");for(const f of rhe)if(n[f]!==void 0){const d=Yb(o,f),h=S6(e,f);if(!d)j(i6(o,f,e));else if(h)j(h);else switch(f){case"range":{const p=n.range;if(X(p)){if(dt(e))return or(p.map(g=>{if(g==="width"||g==="height"){const m=t.getName(g),y=t.getSignalName.bind(t);return St.fromName(y,m)}return g}))}else if(Fe(p))return or({data:t.requestDataName(it.Main),field:p.field,sort:{op:"min",field:t.vgField(e)}});return or(p)}case"scheme":return or(ahe(n[f]))}}const s=e===et||e==="xOffset"?"width":"height",a=i[s];if(Cr(a)){if(dt(e))if(Dt(o)){const f=UL(a,t,e);if(f)return or({step:f})}else j(r6(s));else if(Jf(e)){const f=e===hs?"x":"y";if(t.getScaleComponent(f).get("type")==="band"){const p=jL(a,o);if(p)return or(p)}}}const{rangeMin:u,rangeMax:l}=n,c=uhe(e,t);return(u!==void 0||l!==void 0)&&Yb(o,"rangeMin")&&X(c)&&c.length===2?or([u??c[0],l??c[1]]):Wn(c)}function ahe(e){return iae(e)?{scheme:e.name,...Rn(e,["name"])}:{scheme:e}}function BL(e,t,n,{center:i}={}){const r=jn(e),o=t.getName(r),s=t.getSignalName.bind(t);return e===Mt&&Bi(n)?i?[St.fromName(a=>`${s(a)}/2`,o),St.fromName(a=>`-${s(a)}/2`,o)]:[St.fromName(s,o),0]:i?[St.fromName(a=>`-${s(a)}/2`,o),St.fromName(a=>`${s(a)}/2`,o)]:[0,St.fromName(s,o)]}function uhe(e,t){const{size:n,config:i,mark:r,encoding:o}=t,{type:s}=xt(o[e]),u=t.getScaleComponent(e).get("type"),{domain:l,domainMid:c}=t.specifiedScales[e];switch(e){case et:case Mt:{if(we(["point","band"],u)){const f=qL(e,n,i.view);if(Cr(f))return{step:UL(f,t,e)}}return BL(e,t,u)}case hs:case xl:return lhe(e,t,u);case wo:{const f=dhe(r,i),d=hhe(r,n,t,i);return Yu(u)?fhe(f,d,che(u,i,l,e)):[f,d]}case Ei:return[0,Math.PI*2];case Pa:return[0,360];case Yi:return[0,new St(()=>{const f=t.getSignalName(Zn(t.parent)?"child_width":"width"),d=t.getSignalName(Zn(t.parent)?"child_height":"height");return`min(${f},${d})/2`})];case ps:return{step:1e3/i.scale.framesPerSecond};case ys:return[i.scale.minStrokeWidth,i.scale.maxStrokeWidth];case bs:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case Un:return"symbol";case Bn:case Mr:case Or:return u==="ordinal"?s==="nominal"?"category":"ordinal":c!==void 0?"diverging":r==="rect"||r==="geoshape"?"heatmap":"ramp";case Ao:case gs:case ms:return[i.scale.minOpacity,i.scale.maxOpacity]}}function UL(e,t,n){const{encoding:i}=t,r=t.getScaleComponent(n),o=xw(n),s=i[o];if(y4({step:e,offsetIsDiscrete:fe(s)&&b6(s.type)})==="offset"&&J6(i,o)){const u=t.getScaleComponent(o);let c=`domain('${t.scaleName(o)}').length`;if(u.get("type")==="band"){const d=u.get("paddingInner")??u.get("padding")??0,h=u.get("paddingOuter")??u.get("padding")??0;c=`bandspace(${c}, ${d}, ${h})`}const f=r.get("paddingInner")??r.get("padding");return{signal:`${e.step} * ${c} / (1-${Eoe(f)})`}}else return e.step}function jL(e,t){if(y4({step:e,offsetIsDiscrete:Dt(t)})==="offset")return{step:e.step}}function lhe(e,t,n){const i=e===hs?"x":"y",r=t.getScaleComponent(i);if(!r)return BL(i,t,n,{center:!0});const o=r.get("type"),s=t.scaleName(i),{markDef:a,config:u}=t;if(o==="band"){const l=qL(i,t.size,t.config.view);if(Cr(l)){const c=jL(l,n);if(c)return c}return[0,{signal:`bandwidth('${s}')`}]}else{const l=t.encoding[i];if(q(l)&&l.timeUnit){const c=p6(l.timeUnit,p=>`scale('${s}', ${p})`),f=t.config.scale.bandWithNestedOffsetPaddingInner,d=os({fieldDef:l,markDef:a,config:u})-.5,h=d!==0?` + ${d}`:"";if(f){const p=Q(f)?`${f.signal}/2`+h:`${f/2+d}`,g=Q(f)?`(1 - ${f.signal}/2)`+h:`${1-f/2+d}`;return[{signal:`${p} * (${c})`},{signal:`${g} * (${c})`}]}return[0,{signal:c}]}return CN(`Cannot use ${e} scale if ${i} scale is not discrete.`)}}function qL(e,t,n){const i=e===et?"width":"height",r=t[i];return r||Wp(n,i)}function che(e,t,n,i){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return n!==void 0&&X(n)?n.length+1:(j(_se(i)),3)}}function fhe(e,t,n){const i=()=>{const r=Mi(t),o=Mi(e),s=`(${r} - ${o}) / (${n} - 1)`;return`sequence(${o}, ${r} + ${s}, ${s})`};return Q(t)?new St(i):{signal:i()}}function dhe(e,t){switch(e){case"bar":case"tick":return t.scale.minBandSize;case"line":case"trail":case"rule":return t.scale.minStrokeWidth;case"text":return t.scale.minFontSize;case"point":case"square":case"circle":return t.scale.minSize}throw new Error(T0("size",e))}const LF=.95;function hhe(e,t,n,i){const r={x:NF(n,"x"),y:NF(n,"y")};switch(e){case"bar":case"tick":{if(i.scale.maxBandSize!==void 0)return i.scale.maxBandSize;const o=PF(t,r,i.view);return Ze(o)?o-1:new St(()=>`${o.signal} - 1`)}case"line":case"trail":case"rule":return i.scale.maxStrokeWidth;case"text":return i.scale.maxFontSize;case"point":case"square":case"circle":{if(i.scale.maxSize)return i.scale.maxSize;const o=PF(t,r,i.view);return Ze(o)?Math.pow(LF*o,2):new St(()=>`pow(${LF} * ${o.signal}, 2)`)}}throw new Error(T0("size",e))}function PF(e,t,n){const i=Cr(e.width)?e.width.step:Qb(n,"width"),r=Cr(e.height)?e.height.step:Qb(n,"height");return t.x||t.y?new St(()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`):Math.min(i,r)}function WL(e,t){nt(e)?phe(e,t):HL(e,t)}function phe(e,t){const n=e.component.scales,{config:i,encoding:r,markDef:o,specifiedScales:s}=e;for(const a of B(n)){const u=s[a],l=n[a],c=e.getScaleComponent(a),f=xt(r[a]),d=u[t],h=c.get("type"),p=c.get("padding"),g=c.get("paddingInner"),m=Yb(h,t),y=S6(a,t);if(d!==void 0&&(m?y&&j(y):j(i6(h,t,a))),m&&y===void 0)if(d!==void 0){const b=f.timeUnit,x=f.type;switch(t){case"domainMax":case"domainMin":Ua(u[t])||x==="temporal"||b?l.set(t,{signal:j0(u[t],{type:x,timeUnit:b})},!0):l.set(t,u[t],!0);break;default:l.copyKeyFromObject(t,u)}}else{const b=U(IF,t)?IF[t]({model:e,channel:a,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:g,domain:u.domain,domainMin:u.domainMin,domainMax:u.domainMax,markDef:o,config:i,hasNestedOffsetScale:Q6(r,a),hasSecondaryRangeChannel:!!r[Rr(a)]}):i.scale[t];b!==void 0&&l.set(t,b,!1)}}}const IF={bins:({model:e,fieldOrDatumDef:t})=>q(t)?ghe(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>mhe(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:i,domainMax:r,fieldOrDatumDef:o})=>yhe(e,t,n,i,r,o),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:i,config:r})=>bhe(e,t,r.scale,n,i,r.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:i,config:r,hasNestedOffsetScale:o})=>xhe(e,t,n.type,i,r.scale,o),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:i,config:r,hasNestedOffsetScale:o})=>vhe(e,t,n,i,r.scale,o),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:i})=>{const r=q(e)?e.sort:void 0;return Ehe(t,r,n,i.scale)},zero:({channel:e,fieldOrDatumDef:t,domain:n,markDef:i,scaleType:r,config:o,hasSecondaryRangeChannel:s})=>whe(e,t,n,i,r,o.scale,s)};function GL(e){nt(e)?ohe(e):HL(e,"range")}function HL(e,t){const n=e.component.scales;for(const i of e.children)t==="range"?GL(i):WL(i,t);for(const i of B(n)){let r;for(const o of e.children){const s=o.component.scales[i];if(s){const a=s.getWithExplicit(t);r=ss(r,a,t,"scale",D4((u,l)=>{switch(t){case"range":return u.step&&l.step?u.step-l.step:0}return 0}))}}n[i].setWithExplicit(t,r)}}function ghe(e,t){const n=t.bin;if(He(n)){const i=CA(e,t.field,n);return new St(()=>e.getSignalName(i))}else if(Nt(n)&&za(n)&&n.step!==void 0)return{step:n.step}}function mhe(e,t){if(we([Bn,Mr,Or],e)&&t!=="nominal")return"hcl"}function yhe(e,t,n,i,r,o){if(!(ji(o)?.bin||X(n)||r!=null||i!=null||we([Pt.TIME,Pt.UTC],e)))return dt(t)?!0:void 0}function bhe(e,t,n,i,r,o){if(dt(e)){if(fr(t)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:s,orient:a}=r;if(s==="bar"&&!(q(i)&&(i.bin||i.timeUnit))&&(a==="vertical"&&e==="x"||a==="horizontal"&&e==="y"))return o.continuousBandSize}if(t===Pt.POINT)return n.pointPadding}}function xhe(e,t,n,i,r,o=!1){if(e===void 0){if(dt(t)){const{bandPaddingInner:s,barBandPaddingInner:a,rectBandPaddingInner:u,tickBandPaddingInner:l,bandWithNestedOffsetPaddingInner:c}=r;return o?c:ft(s,n==="bar"?a:n==="tick"?l:u)}else if(Jf(t)&&i===Pt.BAND)return r.offsetBandPaddingInner}}function vhe(e,t,n,i,r,o=!1){if(e===void 0){if(dt(t)){const{bandPaddingOuter:s,bandWithNestedOffsetPaddingOuter:a}=r;if(o)return a;if(n===Pt.BAND)return ft(s,Q(i)?{signal:`${i.signal}/2`}:i/2)}else if(Jf(t)){if(n===Pt.POINT)return .5;if(n===Pt.BAND)return r.offsetBandPaddingOuter}}}function Ehe(e,t,n,i){if(n==="x"&&i.xReverse!==void 0)return Bi(e)&&t==="descending"?Q(i.xReverse)?{signal:`!${i.xReverse.signal}`}:!i.xReverse:i.xReverse;if(Bi(e)&&t==="descending")return!0}function whe(e,t,n,i,r,o,s){if(!!n&&n!=="unaggregated"&&Bi(r)){if(X(n)){const u=n[0],l=n[n.length-1];if(Ze(u)&&u<=0&&Ze(l)&&l>=0)return!0}return!1}if(e==="size"&&t.type==="quantitative"&&!Yu(r))return!0;if(!(q(t)&&t.bin)&&we([...So,...noe],e)){const{orient:u,type:l}=i;return we(["bar","area","line","trail"],l)&&(u==="horizontal"&&e==="y"||u==="vertical"&&e==="x")?!1:we(["bar","area"],l)&&!s?!0:o?.zero}return!1}function Ahe(e,t,n,i,r=!1){const o=She(t,n,i,r),{type:s}=e;return Nr(t)?s!==void 0?cae(t,s)?q(n)&&!lae(s,n.type)?(j(fse(s,o)),o):s:(j(cse(t,s,o)),o):o:null}function She(e,t,n,i){switch(t.type){case"nominal":case"ordinal":{if(Eu(e)||C1(e)==="discrete")return e==="shape"&&t.type==="ordinal"&&j($1(e,"ordinal")),"ordinal";if(S1(e))return"band";if(dt(e)||Jf(e)){if(we(["rect","bar","image","rule","tick"],n.type)||i)return"band"}else if(n.type==="arc"&&e in ww)return"band";const r=n[jn(e)];return Ea(r)||Ku(t)&&t.axis?.tickBand?"band":"point"}case"temporal":return Eu(e)?"time":C1(e)==="discrete"?(j($1(e,"temporal")),"ordinal"):q(t)&&t.timeUnit&&kt(t.timeUnit).utc?"utc":S1(e)?"band":"time";case"quantitative":return Eu(e)?q(t)&&He(t.bin)?"bin-ordinal":"linear":C1(e)==="discrete"?(j($1(e,"quantitative")),"ordinal"):S1(e)?"band":"linear";case"geojson":return}throw new Error(t6(t.type))}function Che(e,{ignoreRange:t}={}){VL(e),PL(e);for(const n of uae)WL(e,n);t||GL(e)}function VL(e){nt(e)?e.component.scales=$he(e):e.component.scales=Fhe(e)}function $he(e){const{encoding:t,mark:n,markDef:i}=e,r={};for(const o of Aw){const s=xt(t[o]);if(s&&n===_6&&o===Un&&s.type===vl)continue;let a=s&&s.scale;if(s&&a!==null&&a!==!1){a??(a={});const u=Q6(t,o),l=Ahe(a,o,s,i,u);r[o]=new zL(e.scaleName(`${o}`,!0),{value:l,explicit:a.type===l})}}return r}const _he=D4((e,t)=>P_(e)-P_(t));function Fhe(e){var t;const n=e.component.scales={},i={},r=e.component.resolve;for(const o of e.children){VL(o);for(const s of B(o.component.scales))if((t=r.scale)[s]??(t[s]=SL(s,e)),r.scale[s]==="shared"){const a=i[s],u=o.component.scales[s].getWithExplicit("type");a?Qse(a.value,u.value)?i[s]=ss(a,u,"type","scale",_he):(r.scale[s]="independent",delete i[s]):i[s]=u}}for(const o of B(i)){const s=e.scaleName(o,!0),a=i[o];n[o]=new zL(s,a);for(const u of e.children){const l=u.component.scales[o];l&&(u.renameScale(l.get("name"),s),l.merged=!0)}}return n}class U1{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 nt(e){return e?.type==="unit"}function Zn(e){return e?.type==="facet"}function DA(e){return e?.type==="concat"}function Cl(e){return e?.type==="layer"}class TA{constructor(t,n,i,r,o,s,a){this.type=n,this.parent=i,this.config=o,this.parent=i,this.config=o,this.view=Lt(a),this.name=t.name??r,this.title=Ro(t.title)?{text:t.title}:t.title?Lt(t.title):void 0,this.scaleNameMap=i?i.scaleNameMap:new U1,this.projectionNameMap=i?i.projectionNameMap:new U1,this.signalNameMap=i?i.signalNameMap:new U1,this.data=t.data,this.description=t.description,this.transforms=Sle(t.transform??[]),this.layout=n==="layer"||n==="unit"?{}:Fue(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:z0(t)||i?.component.data.isFaceted&&t.data===void 0},layoutSize:new $o,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...s?ce(s):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){Che(this)}parseProjection(){RL(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){kL(this)}assembleEncodeFromView(t){const{style:n,...i}=t,r={};for(const o of B(i)){const s=i[o];s!==void 0&&(r[o]=Ye(s))}return r}assembleGroupEncodeEntry(t){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!t&&(this.description&&(n.description=Ye(this.description)),this.type==="unit"||this.type==="layer")?{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...n}:Ue(n)?void 0:n}assembleLayout(){if(!this.layout)return;const{spacing:t,...n}=this.layout,{component:i,config:r}=this,o=Yfe(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 di)t[i].title&&n.push(jfe(this,i));for(const i of EA)n=n.concat(qfe(this,i));return n}assembleAxes(){return kfe(this.component.axes,this.config)}assembleLegends(){return TL(this)}assembleProjections(){return yde(this)}assembleTitle(){const{encoding:t,...n}=this.title??{},i={...HN(this.config.title).nonMarkTitleProperties,...n,...t?{encode:{update:t}}:{}};if(i.text)return we(["unit","layer"],this.type)?we(["middle",void 0],i.anchor)&&(i.frame??(i.frame="group")):i.anchor??(i.anchor="start"),Ue(i)?void 0:i}assembleGroup(t=[]){const n={};t=t.concat(this.assembleSignals()),t.length>0&&(n.signals=t);const i=this.assembleLayout();i&&(n.layout=i),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const r=!this.parent||Zn(this.parent)?IL(this):[];r.length>0&&(n.scales=r);const o=this.assembleAxes();o.length>0&&(n.axes=o);const s=this.assembleLegends();return s.length>0&&(n.legends=s),n}getName(t){return Qe((this.name?`${this.name}_`:"")+t)}getDataName(t){return this.getName(it[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(Zn(this.parent)){const n=wL(t),i=F0(n),r=this.component.scales[i];if(r&&!r.merged){const o=r.get("type"),s=r.get("range");if(Dt(o)&&Ba(s)){const a=r.get("name"),u=rm(this,i),l=kA(u);if(l){const c=H({aggregate:"distinct",field:l},{expr:"datum"});return{signal:EL(a,r,c)}}else return j($w(i)),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){if(n)return this.getName(t);if(IN(t)&&Nr(t)&&this.component.scales[t]||this.scaleNameMap.has(this.getName(t)))return this.scaleNameMap.get(this.getName(t))}projectionName(t){if(t)return this.getName("projection");if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection")))return this.projectionNameMap.get(this.getName("projection"))}getScaleComponent(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($oe(n));return i}hasAxisOrientSignalRef(){return this.component.axes.x?.some(t=>t.hasOrientSignalRef())||this.component.axes.y?.some(t=>t.hasOrientSignalRef())}}class YL extends TA{vgField(t,n={}){const i=this.fieldDef(t);if(i)return H(i,n)}reduceFieldDef(t,n){return iue(this.getMapping(),(i,r,o)=>{const s=ji(r);return s?t(i,s,o):i},n)}forEachFieldDef(t,n){eA(this.getMapping(),(i,r)=>{const o=ji(i);o&&t(o,r)},n)}}class om extends ze{clone(){return new om(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(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 ${Ae(this.transform)}`}assemble(){const{density:t,...n}=this.transform,i={type:"kde",field:t,...n};return i.resolve=this.transform.resolve,i}}class sm extends ze{clone(){return new sm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${Ae(this.transform)}`}assemble(){const{extent:t,param:n}=this.transform;return{type:"extent",field:t,signal:n}}}class am extends ze{clone(){return new am(this.parent,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(n);const{flatten:i,as:r=[]}=this.transform;this.transform.as=i.map((o,s)=>r[s]??o)}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Ae(this.transform)}`}assemble(){const{flatten:t,as:n}=this.transform;return{type:"flatten",fields:t,as:n}}}class um extends ze{clone(){return new um(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(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 ${Ae(this.transform)}`}assemble(){const{fold:t,as:n}=this.transform;return{type:"fold",fields:t,as:n}}}class Su extends ze{clone(){return new Su(null,ce(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[[Ki,Xi],[xi,Ji]]){const o=r.map(s=>{const a=xt(n.encoding[s]);return q(a)?a.field:Lr(a)?{expr:`${a.datum}`}:Ui(a)?{expr:`${a.value}`}:void 0});(o[0]||o[1])&&(t=new Su(t,o,null,n.getName(`geojson_${i++}`)))}if(n.channelHasField(Un)){const r=n.typedFieldDef(Un);r.type===vl&&(t=new Su(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(de);return new Set([...this.geojson?[this.geojson]:[],...t])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Ae(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class pf extends ze{clone(){return new pf(null,this.projection,ce(this.fields),ce(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[[Ki,Xi],[xi,Ji]]){const r=i.map(s=>{const a=xt(n.encoding[s]);return q(a)?a.field:Lr(a)?{expr:`${a.datum}`}:Ui(a)?{expr:`${a.value}`}:void 0}),o=i[0]===xi?"2":"";(r[0]||r[1])&&(t=new pf(t,n.projectionName(),r,[n.getName(`x${o}`),n.getName(`y${o}`)]))}return t}dependentFields(){return new Set(this.fields.filter(de))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Ae(this.fields)} ${Ae(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class na extends ze{clone(){return new na(null,ce(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 na(t,n)}static makeFromEncoding(t,n){const i=n.encoding,r=i.x,o=i.y;if(q(r)&&q(o)){const s=r.impute?r:o.impute?o:void 0;if(s===void 0)return;const a=r.impute?o:o.impute?r:void 0,{method:u,value:l,frame:c,keyvals:f}=s.impute,d=t4(n.mark,i);return new na(t,{impute:s.field,key:a.field,...u?{method:u}:{},...l!==void 0?{value:l}:{},...c?{frame:c}:{},...f!==void 0?{keyvals:f}:{},...d.length?{groupby:d}:{}})}return null}hash(){return`Impute ${Ae(this.transform)}`}assemble(){const{impute:t,key:n,keyvals:i,method:r,groupby:o,value:s,frame:a=[null,null]}=this.transform,u={type:"impute",field:t,key:n,...i?{keyvals:ole(i)?this.processSequence(i):i}:{},method:"value",...o?{groupby:o}:{},value:!r||r==="value"?s:null};if(r&&r!=="value"){const l={type:"window",as:[`imputed_${t}_value`],ops:[r],fields:[t],frame:a,ignorePeers:!1,...o?{groupby:o}:{}},c={type:"formula",expr:`datum.${t} === null ? datum.imputed_${t}_value : datum.${t}`,as:t};return[u,l,c]}else return[u]}}class lm extends ze{clone(){return new lm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(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 ${Ae(this.transform)}`}assemble(){const{loess:t,on:n,...i}=this.transform;return{type:"loess",x:n,y:t,...i}}}class gf extends ze{clone(){return new gf(null,ce(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:s}=i;let a=null;if(sle(s)){let u=JL(s.data,o);u||(u=new _a(s.data),o.push(u));const l=n.getName(`lookup_${r}`);a=new Nn(u,l,it.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[l]=a}else if(ale(s)){const u=s.param;i={as:u,...i};let l;try{l=n.getSelectionComponent(Qe(u),u)}catch{throw new Error(Doe(u))}if(a=l.materialized,!a)throw new Error(Toe(u))}return new gf(t,i,a.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?ct(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${Ae({transform:this.transform,secondary:this.secondary})}`}assemble(){let t;if(this.transform.from.fields)t={values:this.transform.from.fields,...this.transform.as?{as:ct(this.transform.as)}:{}};else{let n=this.transform.as;de(n)||(j(joe),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 cm extends ze{clone(){return new cm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(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 ${Ae(this.transform)}`}assemble(){const{quantile:t,...n}=this.transform;return{type:"quantile",field:t,...n}}}class fm extends ze{clone(){return new fm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=ce(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 ${Ae(this.transform)}`}assemble(){const{regression:t,on:n,...i}=this.transform;return{type:"regression",x:n,y:t,...i}}}class dm extends ze{clone(){return new dm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=cr((this.transform.groupby??[]).concat(t),n=>n)}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${Ae(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 hm extends ze{clone(){return new hm(null,ce(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Ae(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function XL(e){let t=0;function n(i,r){if(i instanceof _a&&!i.isGenerator&&!Qu(i.data)&&(e.push(r),r={name:null,source:r.name,transform:[]}),i instanceof tn&&(i.parent instanceof _a&&!r.source?(r.format={...r.format,parse:i.assembleFormatParse()},r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof Al){r.name||(r.name=`data_${t++}`),!r.source||r.transform.length>0?(e.push(r),i.data=r.name):i.data=r.source,e.push(...i.assemble());return}switch((i instanceof cd||i instanceof fd||i instanceof il||i instanceof wl||i instanceof el||i instanceof pf||i instanceof Ni||i instanceof gf||i instanceof Sl||i instanceof Ha||i instanceof um||i instanceof am||i instanceof om||i instanceof lm||i instanceof cm||i instanceof fm||i instanceof as||i instanceof hm||i instanceof dm||i instanceof sm)&&r.transform.push(i.assemble()),(i instanceof mr||i instanceof pr||i instanceof na||i instanceof uo||i instanceof Su)&&r.transform.push(...i.assemble()),i instanceof Nn&&(r.source&&r.transform.length===0?i.setSource(r.source):i.parent instanceof Nn?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 Nn&&(!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 s of i.children)n(s,{name:null,source:o,transform:[]});break}}}return n}function khe(e){const t=[],n=XL(t);for(const i of e.children)n(i,{source:e.name,name:null,transform:[]});return t}function Dhe(e,t){const n=[],i=XL(n);let r=0;for(const s of e.sources){s.hasName()||(s.dataName=`source_${r++}`);const a=s.assemble();i(s,a)}for(const s of n)s.transform.length===0&&delete s.transform;let o=0;for(const[s,a]of n.entries())(a.transform??[]).length===0&&!a.source&&n.splice(o++,0,n.splice(s,1)[0]);for(const s of n)for(const a of s.transform??[])a.type==="lookup"&&(a.from=e.outputNodes[a.from].getSource());for(const s of n)s.name in t&&(s.values=t[s.name]);return n}function The(e){return e==="top"||e==="left"||Q(e)?"header":"footer"}function Mhe(e){for(const t of di)Ohe(e,t);zF(e,"x"),zF(e,"y")}function Ohe(e,t){const{facet:n,config:i,child:r,component:o}=e;if(e.channelHasField(t)){const s=n[t],a=nl("title",null,i,t);let u=wu(s,i,{allowDisabling:!0,includeDefault:a===void 0||!!a});r.component.layoutHeaders[t].title&&(u=X(u)?u.join(", "):u,u+=` / ${r.component.layoutHeaders[t].title}`,r.component.layoutHeaders[t].title=null);const l=nl("labelOrient",s.header,i,t),c=s.header!==null?ft(s.header?.labels,i.header.labels,!0):!1,f=we(["bottom","right"],l)?"footer":"header";o.layoutHeaders[t]={title:s.header!==null?u:null,facetFieldDef:s,[f]:t==="facet"?[]:[KL(e,t,c)]}}}function KL(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 zF(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:i,resolve:r}=e.component;if(r.axis[t]=SA(r,t),r.axis[t]==="shared"){const o=t==="x"?"column":"row",s=i[o];for(const a of n.component.axes[t]){const u=The(a.get("orient"));s[u]??(s[u]=[KL(e,o,!1)]);const l=Ec(a,"main",e.config,{header:!0});l&&s[u][0].axes.push(l),a.mainExtracted=!0}}}}function Rhe(e){MA(e),Xp(e,"width"),Xp(e,"height")}function Nhe(e){MA(e);const t=e.layout.columns===1?"width":"childWidth",n=e.layout.columns===void 0?"height":"childHeight";Xp(e,t),Xp(e,n)}function MA(e){for(const t of e.children)t.parseLayoutSize()}function Xp(e,t){const n=wL(t),i=F0(n),r=e.component.resolve,o=e.component.layoutSize;let s;for(const a of e.children){const u=a.component.layoutSize.getWithExplicit(n),l=r.scale[i]??SL(i,e);if(l==="independent"&&u.value==="step"){s=void 0;break}if(s){if(l==="independent"&&s.value!==u.value){s=void 0;break}s=ss(s,u,n,"")}else s=u}if(s){for(const a of e.children)e.renameSignal(a.getName(n),e.getName(t)),a.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(t,s)}else o.setWithExplicit(t,{explicit:!1,value:void 0})}function Lhe(e){const{size:t,component:n}=e;for(const i of So){const r=jn(i);if(t[r]){const o=t[r];n.layoutSize.set(r,Cr(o)?"step":o,!0)}else{const o=Phe(e,r);n.layoutSize.set(r,o,!1)}}}function Phe(e,t){const n=t==="width"?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const o=r.get("type"),s=r.get("range");if(Dt(o)){const a=Wp(i.view,t);return Ba(s)||Cr(a)?"step":a}else return Jb(i.view,t)}else{if(e.hasProjection||e.mark==="arc")return Jb(i.view,t);{const o=Wp(i.view,t);return Cr(o)?o.step:o}}}function yx(e,t,n){return H(t,{suffix:`by_${H(e)}`,...n})}class Ic extends YL{constructor(t,n,i,r){super(t,"facet",n,i,r,t.resolve),this.child=PA(t.spec,this,this.getName("child"),void 0,r),this.children=[this.child],this.facet=this.initFacet(t.facet)}initFacet(t){if(!td(t))return{facet:this.initFacetFieldDef(t,"facet")};const n=B(t),i={};for(const r of n){if(![ro,oo].includes(r)){j(T0(r,"facet"));break}const o=t[r];if(o.field===void 0){j(Hb(o,r));break}i[r]=this.initFacetFieldDef(o,r)}return i}initFacetFieldDef(t,n){const i=Zw(t,n);return i.header?i.header=Lt(i.header):i.header===null&&(i.header=null),i}channelHasField(t){return U(this.facet,t)}fieldDef(t){return this.facet[t]}parseData(){this.component.data=pm(this),this.child.parseData()}parseLayoutSize(){MA(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection,Object.values(this.component.selection).some(t=>gr(t))&&Fw(_w)}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),Mhe(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 di)for(const i of wA){const r=this.component.layoutHeaders[n],o=r[i],{facetFieldDef:s}=r;if(s){const a=nl("titleOrient",s.header,this.config,n);if(["right","bottom"].includes(a)){const u=nm(n,a);t.titleAnchor??(t.titleAnchor={}),t.titleAnchor[u]="end"}}if(o?.[0]){const a=n==="row"?"height":"width",u=i==="header"?"headerBand":"footerBand";n!=="facet"&&!this.child.component.layoutSize.get(a)&&(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 Ic))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(t){return this.parent&&this.parent instanceof Ic?{...this.channelHasField("column")?{encode:{update:{columns:{field:H(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(t)}:super.assembleGroup(t)}getCardinalityAggregateForChild(){const t=[],n=[],i=[];if(this.child instanceof Ic){if(this.child.channelHasField("column")){const r=H(this.child.facet.column);t.push(r),n.push("distinct"),i.push(`distinct_${r}`)}}else for(const r of So){const o=this.child.component.scales[r];if(o&&!o.merged){const s=o.get("type"),a=o.get("range");if(Dt(s)&&Ba(a)){const u=rm(this.child,r),l=kA(u);l?(t.push(l),n.push("distinct"),i.push(`distinct_${l}`)):j($w(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:s,as:a}=this.getCardinalityAggregateForChild(),u=[];for(const c of di){const f=this.facet[c];if(f){u.push(H(f));const{bin:d,sort:h}=f;if(He(d)&&u.push(H(f,{binSuffix:"end"})),so(h)){const{field:p,op:g=I0}=h,m=yx(f,h);i&&r?(o.push(m),s.push("max"),a.push(m)):(o.push(p),s.push(g),a.push(m))}else if(X(h)){const p=tl(f,c);o.push(p),s.push("max"),a.push(p)}}}const l=!!i&&!!r;return{name:t,data:n,groupby:u,...l||o.length>0?{aggregate:{...l?{cross:l}:{},...o.length?{fields:o,ops:s,as:a}:{}}}:{}}}facetSortFields(t){const{facet:n}=this,i=n[t];return i?so(i.sort)?[yx(i,i.sort,{expr:"datum"})]:X(i.sort)?[tl(i,t,{expr:"datum"})]:[H(i,{expr:"datum"})]:[]}facetSortOrder(t){const{facet:n}=this,i=n[t];if(i){const{sort:r}=i;return[(so(r)?r.order:!X(r)&&r)||"ascending"]}return[]}assembleLabelTitle(){const{facet:t,config:n}=this;if(t.facet)return cx(t.facet,"facet",n);const i={row:["top","bottom"],column:["left","right"]};for(const r of EA)if(t[r]){const o=nl("labelOrient",t[r]?.header,n,r);if(i[r].includes(o))return cx(t[r],r,n)}}assembleMarks(){const{child:t}=this,n=this.component.data.facetRoot,i=khe(n),r=t.assembleGroupEncodeEntry(!1),o=this.assembleLabelTitle()||t.assembleTitle(),s=t.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...o?{title:o}:{},...s?{style:s}:{},from:{facet:this.assembleFacet()},sort:{field:di.map(u=>this.facetSortFields(u)).flat(),order:di.map(u=>this.facetSortOrder(u)).flat()},...i.length>0?{data:i}:{},...r?{encode:{update:r}}:{},...t.assembleGroup(qle(this,[]))}]}getMapping(){return this.facet}}function Ihe(e,t){const{row:n,column:i}=t;if(n&&i){let r=null;for(const o of[n,i])if(so(o.sort)){const{field:s,op:a=I0}=o.sort;e=r=new Ha(e,{joinaggregate:[{op:a,field:s,as:yx(o,o.sort,{forAs:!0})}],groupby:[H(o)]})}return r}return null}function JL(e,t){for(const n of t){const i=n.data;if(e.name&&n.hasName()&&e.name!==n.dataName)continue;const r=e.format?.mesh,o=i.format?.feature;if(r&&o)continue;const s=e.format?.feature;if((s||o)&&s!==o)continue;const a=i.format?.mesh;if(!((r||a)&&r!==a)){if(ff(e)&&ff(i)){if(Xn(e.values,i.values))return n}else if(Qu(e)&&Qu(i)){if(e.url===i.url)return n}else if(T4(e)&&e.name===n.dataName)return n}}return null}function zhe(e,t){if(e.data||!e.parent){if(e.data===null){const i=new _a({values:[]});return t.push(i),i}const n=JL(e.data,t);if(n)return Xo(e.data)||(n.data.format=$N({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const i=new _a(e.data);return t.push(i),i}}else return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}function Bhe(e,t,n){let i=0;for(const r of t.transforms){let o,s;if(yle(r))s=e=new el(e,r),o="derived";else if(fA(r)){const a=Dde(r);s=e=tn.makeWithAncestors(e,{},a,n)??e,e=new wl(e,t,r.filter)}else if($4(r))s=e=mr.makeFromTransform(e,r,t),o="number";else if(xle(r))o="date",n.getWithExplicit(r.field).value===void 0&&(e=new tn(e,{[r.field]:o}),n.set(r.field,o,!1)),s=e=pr.makeFromTransform(e,r);else if(vle(r))s=e=Ni.makeFromTransform(e,r),o="number",yA(t)&&(e=new as(e));else if(C4(r))s=e=gf.make(e,t,r,i++),o="derived";else if(ple(r))s=e=new Sl(e,r),o="number";else if(gle(r))s=e=new Ha(e,r),o="number";else if(Ele(r))s=e=uo.makeFromTransform(e,r),o="derived";else if(wle(r))s=e=new um(e,r),o="derived";else if(Ale(r))s=e=new sm(e,r),o="derived";else if(mle(r))s=e=new am(e,r),o="derived";else if(ule(r))s=e=new dm(e,r),o="derived";else if(hle(r))e=new hm(e,r);else if(ble(r))s=e=na.makeFromTransform(e,r),o="derived";else if(lle(r))s=e=new om(e,r),o="derived";else if(cle(r))s=e=new cm(e,r),o="derived";else if(fle(r))s=e=new fm(e,r),o="derived";else if(dle(r))s=e=new lm(e,r),o="derived";else{j(Uoe(r));continue}if(s&&o!==void 0)for(const a of s.producedFields()??[])n.set(a,o,!1)}return e}function pm(e){let t=zhe(e,e.component.data.sources);const{outputNodes:n,outputNodeRefCounts:i}=e.component.data,r=e.data,s=!(r&&(Xo(r)||Qu(r)||ff(r)))&&e.parent?e.parent.component.data.ancestorParse.clone():new Nle;Xo(r)?(M4(r)?t=new fd(t,r.sequence):dA(r)&&(t=new cd(t,r.graticule)),s.parseNothing=!0):r?.format?.parse===null&&(s.parseNothing=!0),t=tn.makeExplicit(t,e,s)??t,t=new as(t);const a=e.parent&&Cl(e.parent);(nt(e)||Zn(e))&&a&&(t=mr.makeFromEncoding(t,e)??t),e.transforms.length>0&&(t=Bhe(t,e,s));const u=Mde(e),l=Tde(e);t=tn.makeWithAncestors(t,{},{...u,...l},s)??t,nt(e)&&(t=Su.parseAll(t,e),t=pf.parseAll(t,e)),(nt(e)||Zn(e))&&(a||(t=mr.makeFromEncoding(t,e)??t),t=pr.makeFromEncoding(t,e)??t,t=el.parseAllForSortIndex(t,e));const c=t=Wd(it.Raw,e,t);if(nt(e)){const m=Ni.makeFromEncoding(t,e);m&&(t=m,yA(e)&&(t=new as(t))),t=na.makeFromEncoding(t,e)??t,t=uo.makeFromEncoding(t,e)??t}let f,d;if(nt(e)){const{markDef:m,mark:y,config:b}=e,x=Be("invalid",m,b),{marks:v,scales:w}=d=R4({invalid:x,isPath:vs(y)});v!==w&&w==="include-invalid-values"&&(f=t=Wd(it.PreFilterInvalid,e,t)),v==="exclude-invalid-values"&&(t=il.make(t,e,d)??t)}const h=t=Wd(it.Main,e,t);let p;if(nt(e)&&d){const{marks:m,scales:y}=d;m==="include-invalid-values"&&y==="exclude-invalid-values"&&(t=il.make(t,e,d)??t,p=t=Wd(it.PostFilterInvalid,e,t))}nt(e)&&_fe(e,h);let g=null;if(Zn(e)){const m=e.getName("facet");t=Ihe(t,e.facet)??t,g=new Al(t,e,m,h.getSource()),n[m]=g}return{...e.component.data,outputNodes:n,outputNodeRefCounts:i,raw:c,main:h,facetRoot:g,ancestorParse:s,preFilterInvalid:f,postFilterInvalid:p}}function Wd(e,t,n){const{outputNodes:i,outputNodeRefCounts:r}=t.component.data,o=t.getDataName(e),s=new Nn(n,o,e,r);return i[o]=s,s}class Uhe extends TA{constructor(t,n,i,r){super(t,"concat",n,i,r,t.resolve),(t.resolve?.axis?.x==="shared"||t.resolve?.axis?.y==="shared")&&j(Ioe),this.children=this.getChildren(t).map((o,s)=>PA(o,this,this.getName(`concat_${s}`),void 0,r))}parseData(){this.component.data=pm(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 B(t.component.selection))this.component.selection[n]=t.component.selection[n]}Object.values(this.component.selection).some(t=>gr(t))&&Fw(_w)}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){for(const t of this.children)t.parseAxesAndHeaders()}getChildren(t){return G0(t)?t.vconcat:lA(t)?t.hconcat:t.concat}parseLayoutSize(){Nhe(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=AA(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"}}}function jhe(e){return e===!1||e===null}const qhe={disable:1,gridScale:1,scale:1,...X6,labelExpr:1,encode:1},QL=B(qhe);class OA extends $o{constructor(t={},n={},i=!1){super(),this.explicit=t,this.implicit=n,this.mainExtracted=i}clone(){return new OA(ce(this.explicit),ce(this.implicit),this.mainExtracted)}hasAxisPart(t){return t==="axis"?!0:t==="grid"||t==="title"?!!this.get(t):!jhe(this.get(t))}hasOrientSignalRef(){return Q(this.explicit.orient)}}function Whe(e,t,n){const{encoding:i,config:r}=e,o=xt(i[t])??xt(i[Rr(t)]),s=e.axis(t)||{},{format:a,formatType:u}=s;if(wa(u))return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:a,formatType:u,config:r}),...n};if(a===void 0&&u===void 0&&r.customFormatTypes){if(Xu(o)==="quantitative"){if(Ku(o)&&o.stack==="normalize"&&r.normalizedNumberFormatType)return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:r.normalizedNumberFormat,formatType:r.normalizedNumberFormatType,config:r}),...n};if(r.numberFormatType)return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:r.numberFormat,formatType:r.numberFormatType,config:r}),...n}}if(Xu(o)==="temporal"&&r.timeFormatType&&q(o)&&!o.timeUnit)return{text:Oi({fieldOrDatumDef:o,field:"datum.value",format:r.timeFormat,formatType:r.timeFormatType,config:r}),...n}}return n}function Ghe(e){return So.reduce((t,n)=>(e.component.scales[n]&&(t[n]=[Qhe(n,e)]),t),{})}const Hhe={bottom:"top",top:"bottom",left:"right",right:"left"};function Vhe(e){const{axes:t,resolve:n}=e.component,i={top:0,bottom:0,right:0,left:0};for(const r of e.children){r.parseAxesAndHeaders();for(const o of B(r.component.axes))n.axis[o]=SA(e.component.resolve,o),n.axis[o]==="shared"&&(t[o]=Yhe(t[o],r.component.axes[o]),t[o]||(n.axis[o]="independent",delete t[o]))}for(const r of So){for(const o of e.children)if(o.component.axes[r]){if(n.axis[r]==="independent"){t[r]=(t[r]??[]).concat(o.component.axes[r]);for(const s of o.component.axes[r]){const{value:a,explicit:u}=s.getWithExplicit("orient");if(!Q(a)){if(i[a]>0&&!u){const l=Hhe[a];i[a]>i[l]&&s.set("orient",l,!1)}i[a]++}}}delete o.component.axes[r]}if(n.axis[r]==="independent"&&t[r]&&t[r].length>1)for(const[o,s]of(t[r]||[]).entries())o>0&&s.get("grid")&&!s.explicit.grid&&(s.implicit.grid=!1)}}function Yhe(e,t){if(e){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 s=r.getWithExplicit("orient"),a=o.getWithExplicit("orient");if(s.explicit&&a.explicit&&s.value!==a.value)return;e[i]=Xhe(r,o)}}}else return t.map(n=>n.clone());return e}function Xhe(e,t){for(const n of QL){const i=ss(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",(r,o)=>{switch(n){case"title":return ZN(r,o);case"gridScale":return{explicit:r.explicit,value:ft(r.value,o.value)}}return V0(r,o,n,"axis")});e.setWithExplicit(n,i)}return e}function Khe(e,t,n,i,r){if(t==="disable")return n!==void 0;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(Q(n.labelAngle)?n.labelAngle:lf(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===yL(i,r))return!0}return e===n[t]}const Jhe=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Qhe(e,t){let n=t.axis(e);const i=new OA,r=xt(t.encoding[e]),{mark:o,config:s}=t,a=n?.orient||s[e==="x"?"axisX":"axisY"]?.orient||s.axis?.orient||Pfe(e),u=t.getScaleComponent(e).get("type"),l=Dfe(e,u,a,t.config),c=n!==void 0?!n:ux("disable",s.style,n?.style,l).configValue;if(i.set("disable",c,n!==void 0),c)return i;n=n||{};const f=Rfe(r,n,e,s.style,l),d=N6(n.formatType,r,u),h=R6(r,r.type,n.format,n.formatType,s,!0),p={fieldOrDatumDef:r,axis:n,channel:e,model:t,scaleType:u,orient:a,labelAngle:f,format:h,formatType:d,mark:o,config:s};for(const y of QL){const b=y in SF?SF[y](p):W_(y)?n[y]:void 0,x=b!==void 0,v=Khe(b,y,n,t,e);if(x&&v)i.set(y,b,v);else{const{configValue:w=void 0,configFrom:A=void 0}=W_(y)&&y!=="values"?ux(y,s.style,n.style,l):{},E=w!==void 0;x&&!E?i.set(y,b,v):(A!=="vgAxisConfig"||Jhe.has(y)&&E||od(w)||Q(w))&&i.set(y,w,!1)}}const g=n.encoding??{},m=Y6.reduce((y,b)=>{if(!i.hasAxisPart(b))return y;const x=AL(g[b]??{},t),v=b==="labels"?Whe(t,e,x):x;return v!==void 0&&!Ue(v)&&(y[b]={update:v}),y},{});return Ue(m)||i.set("encode",m,!!n.encoding||n.labelAngle!==void 0),i}function Zhe({encoding:e,size:t}){for(const n of So){const i=jn(n);Cr(t[i])&&Wo(e[n])&&(delete t[i],j(r6(i)))}return t}const epe={vgMark:"arc",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...go(e,"radius"),...go(e,"theta")})},tpe={vgMark:"area",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...Gp("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="horizontal"}),...Gp("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="vertical"}),...mA(e)})},npe={vgMark:"rect",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,"x"),...go(e,"y")})},ipe={vgMark:"shape",encodeEntry:e=>({...wi(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&&q(n)&&n.type===vl?{field:H(n,{expr:"datum"})}:{}}]}},rpe={vgMark:"image",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,"x"),...go(e,"y"),...pA(e,"url")})},ope={vgMark:"line",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...It("size",e,{vgChannel:"strokeWidth"}),...mA(e)})},spe={vgMark:"trail",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...It("size",e),...mA(e)})};function RA(e,t){const{config:n}=e;return{...wi(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...It("size",e),...It("angle",e),...ape(e,n,t)}}function ape(e,t,n){return n?{shape:{value:n}}:It("shape",e)}const upe={vgMark:"symbol",encodeEntry:e=>RA(e)},lpe={vgMark:"symbol",encodeEntry:e=>RA(e,"circle")},cpe={vgMark:"symbol",encodeEntry:e=>RA(e,"square")},fpe={vgMark:"rect",encodeEntry:e=>({...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,"x"),...go(e,"y")})},dpe={vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return!e.encoding.x&&!e.encoding.y&&!e.encoding.latitude&&!e.encoding.longitude?{}:{...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Gp("x",e,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"}),...Gp("y",e,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"}),...It("size",e,{vgChannel:"strokeWidth"})}}},hpe={vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return{...wi(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...bn("x",e,{defaultPos:"mid"}),...bn("y",e,{defaultPos:"mid"}),...pA(e),...It("size",e,{vgChannel:"fontSize"}),...It("angle",e),...hF("align",ppe(e.markDef,n,t)),...hF("baseline",gpe(e.markDef,n,t)),...bn("radius",e,{defaultPos:null}),...bn("theta",e,{defaultPos:null})}}};function ppe(e,t,n){if(Be("align",e,n)===void 0)return"center"}function gpe(e,t,n){if(Be("baseline",e,n)===void 0)return"middle"}const mpe={vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,i=n.orient,r=i==="horizontal"?"x":"y",o=i==="horizontal"?"y":"x",s=i==="horizontal"?"height":"width";return{...wi(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...go(e,r),...bn(o,e,{defaultPos:"mid",vgChannel:o==="y"?"yc":"xc"}),[s]:Ye(Be("thickness",n,t))}}},Gd={arc:epe,area:tpe,bar:npe,circle:lpe,geoshape:ipe,image:rpe,line:ope,point:upe,rect:fpe,rule:dpe,square:cpe,text:hpe,tick:mpe,trail:spe};function ype(e){if(we([L0,R0,pae],e.mark)){const t=t4(e.mark,e.encoding);if(t.length>0)return bpe(e,t)}else if(e.mark===N0){const t=Wb.some(n=>Be(n,e.markDef,e.config));if(e.stack&&!e.fieldDef("size")&&t)return xpe(e)}return NA(e)}const BF="faceted_path_";function bpe(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:BF+e.requestDataName(it.Main),data:e.requestDataName(it.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:NA(e,{fromPrefix:BF})}]}const UF="stack_group_";function xpe(e){const[t]=NA(e,{fromPrefix:UF}),n=e.scaleName(e.stack.fieldChannel),i=(l={})=>e.vgField(e.stack.fieldChannel,l),r=(l,c)=>{const f=[i({prefix:"min",suffix:"start",expr:c}),i({prefix:"max",suffix:"start",expr:c}),i({prefix:"min",suffix:"end",expr:c}),i({prefix:"max",suffix:"end",expr:c})];return`${l}(${f.map(d=>`scale('${n}',${d})`).join(",")})`};let o,s;e.stack.fieldChannel==="x"?(o={...qu(t.encode.update,["y","yc","y2","height",...Wb]),x:{signal:r("min","datum")},x2:{signal:r("max","datum")},clip:{value:!0}},s={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},t.encode.update={...Rn(t.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(o={...qu(t.encode.update,["x","xc","x2","width"]),y:{signal:r("min","datum")},y2:{signal:r("max","datum")},clip:{value:!0}},s={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},t.encode.update={...Rn(t.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const l of Wb){const c=Ar(l,e.markDef,e.config);t.encode.update[l]?(o[l]=t.encode.update[l],delete t.encode.update[l]):c&&(o[l]=Ye(c)),c&&(t.encode.update[l]={value:0})}const a=[];if(e.stack.groupbyChannels?.length>0)for(const l of e.stack.groupbyChannels){const c=e.fieldDef(l),f=H(c);f&&a.push(f),(c?.bin||c?.timeUnit)&&a.push(H(c,{binSuffix:"end"}))}return o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((l,c)=>{if(t.encode.update[c])return{...l,[c]:t.encode.update[c]};{const f=Ar(c,e.markDef,e.config);return f!==void 0?{...l,[c]:Ye(f)}:l}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:e.requestDataName(it.Main),name:UF+e.requestDataName(it.Main),groupby:a,aggregate:{fields:[i({suffix:"start"}),i({suffix:"start"}),i({suffix:"end"}),i({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:s},marks:[t]}]}]}function vpe(e){const{encoding:t,stack:n,mark:i,markDef:r,config:o}=e,s=t.order;if(!(!X(s)&&Ui(s)&&jb(s.value)||!s&&jb(Be("order",r,o)))){if((X(s)||q(s))&&!n)return KN(s,{expr:"datum"});if(vs(i)){const a=r.orient==="horizontal"?"y":"x",u=t[a];if(q(u))return{field:a}}}}function NA(e,t={fromPrefix:""}){const{mark:n,markDef:i,encoding:r,config:o}=e,s=ft(i.clip,Epe(e),wpe(e)),a=YN(i),u=r.key,l=vpe(e),c=Ape(e),f=Be("aria",i,o),d=Gd[n].postEncodingTransform?Gd[n].postEncodingTransform(e):null;return[{name:e.getName("marks"),type:Gd[n].vgMark,...s?{clip:s}:{},...a?{style:a}:{},...u?{key:u.field}:{},...l?{sort:l}:{},...c||{},...f===!1?{aria:f}:{},from:{data:t.fromPrefix+e.requestDataName(it.Main)},encode:{update:Gd[n].encodeEntry(e)},...d?{transform:d}:{}}]}function Epe(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return t?.get("selectionExtent")||n?.get("selectionExtent")?!0:void 0}function wpe(e){const t=e.component.projection;return t&&!t.isFit?!0:void 0}function Ape(e){if(!e.component.selection)return null;const t=B(e.component.selection).length;let n=t,i=e.parent;for(;i&&n===0;)n=B(i.component.selection).length,i=i.parent;return n?{interactive:t>0||e.mark==="geoshape"||!!e.encoding.tooltip||!!e.markDef.tooltip}:null}class ZL extends YL{constructor(t,n,i,r={},o){super(t,"unit",n,i,o,void 0,H_(t)?t.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[],this.correctDataNames=l=>(l.from?.data&&(l.from.data=this.lookupDataSource(l.from.data),"time"in this.encoding&&(l.from.data=l.from.data+L4)),l.from?.facet?.data&&(l.from.facet.data=this.lookupDataSource(l.from.facet.data)),l);const s=Sr(t.mark)?{...t.mark}:{type:t.mark},a=s.type;s.filled===void 0&&(s.filled=Jue(s,o,{graticule:t.data&&dA(t.data)}));const u=this.encoding=tue(t.encoding||{},a,s.filled,o);this.markDef=w4(s,u,o),this.size=Zhe({encoding:u,size:H_(t)?{...r,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}:r}),this.stack=E4(this.markDef,u),this.specifiedScales=this.initScales(a,u),this.specifiedAxes=this.initAxes(u),this.specifiedLegends=this.initLegends(u),this.specifiedProjection=t.projection,this.selection=(t.params??[]).filter(l=>aA(l))}get hasProjection(){const{encoding:t}=this,n=this.mark===_6,i=t&&Vre.some(r=>fe(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 Aw.reduce((i,r)=>{const o=xt(n[r]);return o&&(i[r]=this.initScale(o.scale??{})),i},{})}initScale(t){const{domain:n,range:i}=t,r=Lt(t);return X(n)&&(r.domain=n.map(Vn)),X(i)&&(r.range=i.map(Vn)),r}initAxes(t){return So.reduce((n,i)=>{const r=t[i];if(fe(r)||i===et&&fe(t.x2)||i===Mt&&fe(t.y2)){const o=fe(r)?r.axis:void 0;n[i]=o&&this.initAxis({...o})}return n},{})}initAxis(t){const n=B(t),i={};for(const r of n){const o=t[r];i[r]=od(o)?VN(o):Vn(o)}return i}initLegends(t){return roe.reduce((n,i)=>{const r=xt(t[i]);if(r&&soe(i)){const o=r.legend;n[i]=o&&Lt(o)}return n},{})}parseData(){this.component.data=pm(this)}parseLayoutSize(){Lhe(this)}parseSelections(){this.component.selection=$fe(this,this.selection)}parseMarkGroup(){this.component.mark=ype(this)}parseAxesAndHeaders(){this.component.axes=Ghe(this)}assembleSelectionTopLevelSignals(t){return Wle(this,t)}assembleSignals(){return[...pL(this),...jle(this,[])]}assembleSelectionData(t){return Gle(this,t)}assembleLayout(){return null}assembleLayoutSignals(){return AA(this)}assembleMarks(){let t=this.component.mark??[];return(!this.parent||!Cl(this.parent))&&(t=B4(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 ea(this.encoding,t)}fieldDef(t){const n=this.encoding[t];return ji(n)}typedFieldDef(t){const n=this.fieldDef(t);return Cn(n)?n:null}}class LA extends TA{constructor(t,n,i,r,o){super(t,"layer",n,i,o,t.resolve,t.view);const s={...r,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}};this.children=t.layer.map((a,u)=>{if(H0(a))return new LA(a,this,this.getName(`layer_${u}`),s,o);if(Co(a))return new ZL(a,this,this.getName(`layer_${u}`),s,o);throw new Error(Cw(a))})}parseData(){this.component.data=pm(this);for(const t of this.children)t.parseData()}parseLayoutSize(){Rhe(this)}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of B(t.component.selection))this.component.selection[n]=t.component.selection[n]}Object.values(this.component.selection).some(t=>gr(t))&&Fw(_w)}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){Vhe(this)}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,i)=>i.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleSignals()),pL(this))}assembleLayoutSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleLayoutSignals()),AA(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 ct(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 Hle(this,this.children.flatMap(t=>t.assembleMarks()))}assembleLegends(){return this.children.reduce((t,n)=>t.concat(n.assembleLegends()),TL(this))}}function PA(e,t,n,i,r){if(z0(e))return new Ic(e,t,n,r);if(H0(e))return new LA(e,t,n,i,r);if(Co(e))return new ZL(e,t,n,i,r);if(Cue(e))return new Uhe(e,t,n,r);throw new Error(Cw(e))}function Spe(e,t={}){t.logger&&Fse(t.logger),t.fieldTitle&&G6(t.fieldTitle);try{const n=v4(SN(t.config,e.config)),i=k4(e,n),r=PA(i,null,"",void 0,n);return r.parse(),Yde(r.component.data,r),{spec:$pe(r,Cpe(e,i.autosize,n,r),e.datasets,e.usermeta),normalized:i}}finally{t.logger&&kse(),t.fieldTitle&&Hae()}}function Cpe(e,t,n,i){const r=i.component.layoutSize.get("width"),o=i.component.layoutSize.get("height");if(t===void 0?(t={type:"pad"},i.hasAxisOrientSignalRef()&&(t.resize=!0)):de(t)&&(t={type:t}),r&&o&&Mle(t.type)){if(r==="step"&&o==="step")j(D_()),t.type="pad";else if(r==="step"||o==="step"){const s=r==="step"?"width":"height";j(D_(F0(s)));const a=s==="width"?"height":"width";t.type=Ole(a)}}return{...B(t).length===1&&t.type?t.type==="pad"?{}:{autosize:t.type}:{autosize:t},...rF(n,!1),...rF(e,!0)}}function $pe(e,t,n={},i){const r=e.config?zue(e.config):void 0,o=Dhe(e.component.data,n),s=e.assembleSelectionData(o),a=e.assembleProjections(),u=e.assembleTitle(),l=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let f=e.assembleLayoutSignals();f=f.filter(p=>(p.name==="width"||p.name==="height")&&p.value!==void 0?(t[p.name]=+p.value,!1):!0);const{params:d,...h}=t;return{$schema:"https://vega.github.io/schema/vega/v5.json",...e.description?{description:e.description}:{},...h,...u?{title:u}:{},...l?{style:l}:{},...c?{encode:{update:c}}:{},data:s,...a.length>0?{projections:a}:{},...e.assembleGroup([...f,...e.assembleSelectionTopLevelSignals([]),...m4(d)]),...r?{config:r}:{},...i?{usermeta:i}:{}}}const _pe=_re.version,Fpe=Object.freeze(Object.defineProperty({__proto__:null,accessPathDepth:Gu,accessPathWithDatum:gw,accessWithDatumToUnescapedPath:Le,compile:Spe,contains:we,deepEqual:Xn,deleteNestedProperty:Np,duplicate:ce,entries:is,every:dw,fieldIntersection:pw,flatAccessWithDatum:FN,getFirstDefined:ft,hasIntersection:hw,hasProperty:U,hash:Ae,internalField:TN,isBoolean:uf,isEmpty:Ue,isEqual:qre,isInternalField:MN,isNullOrFalse:jb,isNumeric:w0,keys:B,logicalExpr:Nc,mergeDeep:$N,never:CN,normalize:k4,normalizeAngle:lf,omit:Rn,pick:qu,prefixGenerator:qb,removePathFromField:bl,replaceAll:ma,replacePathInField:bi,resetIdCounter:Gre,setEqual:_N,some:Wu,stringify:je,titleCase:Yf,unique:cr,uniqueId:DN,vals:qt,varName:Qe,version:_pe},Symbol.toStringTag,{value:"Module"}));function e8(e){const[t,n]=/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3);return{library:t,version:n}}var kpe="2.15.0",Dpe={version:kpe};const ou="#fff",jF="#888",Tpe={background:"#333",view:{stroke:jF},title:{color:ou,subtitleColor:ou},style:{"guide-label":{fill:ou},"guide-title":{fill:ou}},axis:{domainColor:ou,gridColor:jF,tickColor:ou}},Fs="#4572a7",Mpe={background:"#fff",arc:{fill:Fs},area:{fill:Fs},line:{stroke:Fs,strokeWidth:2},path:{stroke:Fs},rect:{fill:Fs},shape:{stroke:Fs},symbol:{fill:Fs,strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:!0,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:!1,tickExtra:!0},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}},ks="#30a2da",j1="#cbcbcb",Ope="#999",Rpe="#333",qF="#f0f0f0",WF="#333",Npe={arc:{fill:ks},area:{fill:ks},axis:{domainColor:j1,grid:!0,gridColor:j1,gridWidth:1,labelColor:Ope,labelFontSize:10,titleColor:Rpe,tickColor:j1,tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:!1},background:qF,group:{fill:qF},legend:{labelColor:WF,labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:WF,titleFontSize:14,titlePadding:10},line:{stroke:ks,strokeWidth:2},path:{stroke:ks,strokeWidth:.5},rect:{fill:ks},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},point:{filled:!0,shape:"circle"},shape:{stroke:ks},bar:{binSpacing:2,fill:ks,stroke:null},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},Ds="#000",Lpe={group:{fill:"#e5e5e5"},arc:{fill:Ds},area:{fill:Ds},line:{stroke:Ds},path:{stroke:Ds},rect:{fill:Ds},shape:{stroke:Ds},symbol:{fill:Ds,size:40},axis:{domain:!1,grid:!0,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}},Ppe=22,Ipe="normal",GF="Benton Gothic, sans-serif",HF=11.5,zpe="normal",Ts="#82c6df",q1="Benton Gothic Bold, sans-serif",VF="normal",YF=13,Xl={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"]},Bpe={background:"#ffffff",title:{anchor:"start",color:"#000000",font:q1,fontSize:Ppe,fontWeight:Ipe},arc:{fill:Ts},area:{fill:Ts},line:{stroke:Ts,strokeWidth:2},path:{stroke:Ts},rect:{fill:Ts},shape:{stroke:Ts},symbol:{fill:Ts,size:30},axis:{labelFont:GF,labelFontSize:HF,labelFontWeight:zpe,titleFont:q1,titleFontSize:YF,titleFontWeight:VF},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:GF,labelFontSize:HF,symbolType:"square",titleFont:q1,titleFontSize:YF,titleFontWeight:VF},range:{category:Xl["category-6"],diverging:Xl["fireandice-6"],heatmap:Xl["fire-7"],ordinal:Xl["fire-7"],ramp:Xl["fire-7"]}},Ms="#ab5787",Hd="#979797",Upe={background:"#f9f9f9",arc:{fill:Ms},area:{fill:Ms},line:{stroke:Ms},path:{stroke:Ms},rect:{fill:Ms},shape:{stroke:Ms},symbol:{fill:Ms,size:30},axis:{domainColor:Hd,domainWidth:.5,gridWidth:.2,labelColor:Hd,tickColor:Hd,tickWidth:.2,titleColor:Hd},axisBand:{grid:!1},axisX:{grid:!0,tickSize:10},axisY:{domain:!1,grid:!0,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}},Os="#3e5c69",jpe={background:"#fff",arc:{fill:Os},area:{fill:Os},line:{stroke:Os},path:{stroke:Os},rect:{fill:Os},shape:{stroke:Os},symbol:{fill:Os},axis:{domainWidth:.5,grid:!0,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:!1},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}},si="#1696d2",XF="#000000",qpe="#FFFFFF",Vd="Lato",W1="Lato",Wpe="Lato",Gpe="#DEDDDD",Hpe=18,Kl={"shades-blue":["#CFE8F3","#A2D4EC","#73BFE2","#46ABDB","#1696D2","#12719E","#0A4C6A","#062635"],"six-groups-cat-1":["#1696d2","#ec008b","#fdbf11","#000000","#d2d2d2","#55b748"],"six-groups-seq":["#cfe8f3","#a2d4ec","#73bfe2","#46abdb","#1696d2","#12719e"],"diverging-colors":["#ca5800","#fdbf11","#fdd870","#fff2cf","#cfe8f3","#73bfe2","#1696d2","#0a4c6a"]},Vpe={background:qpe,title:{anchor:"start",fontSize:Hpe,font:Vd},axisX:{domain:!0,domainColor:XF,domainWidth:1,grid:!1,labelFontSize:12,labelFont:W1,labelAngle:0,tickColor:XF,tickSize:5,titleFontSize:12,titlePadding:10,titleFont:Vd},axisY:{domain:!1,domainWidth:1,grid:!0,gridColor:Gpe,gridWidth:1,labelFontSize:12,labelFont:W1,labelPadding:8,ticks:!1,titleFontSize:12,titlePadding:10,titleFont:Vd,titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:W1,symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:Vd,orient:"right",offset:10},view:{stroke:"transparent"},range:{category:Kl["six-groups-cat-1"],diverging:Kl["diverging-colors"],heatmap:Kl["diverging-colors"],ordinal:Kl["six-groups-seq"],ramp:Kl["shades-blue"]},area:{fill:si},rect:{fill:si},line:{color:si,stroke:si,strokeWidth:5},trail:{color:si,stroke:si,strokeWidth:0,size:1},path:{stroke:si,strokeWidth:.5},point:{filled:!0},text:{font:Wpe,color:si,fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:si,stroke:null}},arc:{fill:si},shape:{stroke:si},symbol:{fill:si,size:30}},Rs="#3366CC",KF="#ccc",Yd="Arial, sans-serif",Ype={arc:{fill:Rs},area:{fill:Rs},path:{stroke:Rs},rect:{fill:Rs},shape:{stroke:Rs},symbol:{stroke:Rs},circle:{fill:Rs},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:Yd,fontSize:12},"guide-title":{font:Yd,fontSize:12},"group-title":{font:Yd,fontSize:12}},title:{font:Yd,fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:KF,tickColor:KF,domain:!1,grid:!0},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}},IA=e=>e*(1/3+1),JF=IA(9),QF=IA(10),ZF=IA(12),Jl="Segoe UI",ek="wf_standard-font, helvetica, arial, sans-serif",tk="#252423",Ql="#605E5C",nk="transparent",Xpe="#C8C6C4",Ci="#118DFF",Kpe="#12239E",Jpe="#E66C37",Qpe="#6B007B",Zpe="#E044A7",ege="#744EC2",tge="#D9B300",nge="#D64550",t8=Ci,n8="#DEEFFF",ik=[n8,t8],ige=[n8,"#c7e4ff","#b0d9ff","#9aceff","#83c3ff","#6cb9ff","#55aeff","#3fa3ff","#2898ff",t8],rge={view:{stroke:nk},background:nk,font:Jl,header:{titleFont:ek,titleFontSize:ZF,titleColor:tk,labelFont:Jl,labelFontSize:QF,labelColor:Ql},axis:{ticks:!1,grid:!1,domain:!1,labelColor:Ql,labelFontSize:JF,titleFont:ek,titleColor:tk,titleFontSize:ZF,titleFontWeight:"normal"},axisQuantitative:{tickCount:3,grid:!0,gridColor:Xpe,gridDash:[1,5],labelFlush:!1},axisBand:{tickExtra:!0},axisX:{labelPadding:5},axisY:{labelPadding:10},bar:{fill:Ci},line:{stroke:Ci,strokeWidth:3,strokeCap:"round",strokeJoin:"round"},text:{font:Jl,fontSize:JF,fill:Ql},arc:{fill:Ci},area:{fill:Ci,line:!0,opacity:.6},path:{stroke:Ci},rect:{fill:Ci},point:{fill:Ci,filled:!0,size:75},shape:{stroke:Ci},symbol:{fill:Ci,strokeWidth:1.5,size:50},legend:{titleFont:Jl,titleFontWeight:"bold",titleColor:Ql,labelFont:Jl,labelFontSize:QF,labelColor:Ql,symbolType:"circle",symbolSize:75},range:{category:[Ci,Kpe,Jpe,Qpe,Zpe,ege,tge,nge],diverging:ik,heatmap:ik,ordinal:ige}},G1='IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,".sfnstext-regular",sans-serif',oge='IBM Plex Sans Condensed, system-ui, -apple-system, BlinkMacSystemFont, ".SFNSText-Regular", sans-serif',H1=400,Xd={textPrimary:{g90:"#f4f4f4",g100:"#f4f4f4",white:"#161616",g10:"#161616"},textSecondary:{g90:"#c6c6c6",g100:"#c6c6c6",white:"#525252",g10:"#525252"},layerAccent01:{white:"#e0e0e0",g10:"#e0e0e0",g90:"#525252",g100:"#393939"},gridBg:{white:"#ffffff",g10:"#ffffff",g90:"#161616",g100:"#161616"}},sge=["#8a3ffc","#33b1ff","#007d79","#ff7eb6","#fa4d56","#fff1f1","#6fdc8c","#4589ff","#d12771","#d2a106","#08bdba","#bae6ff","#ba4e00","#d4bbff"],age=["#6929c4","#1192e8","#005d5d","#9f1853","#fa4d56","#570408","#198038","#002d9c","#ee538b","#b28600","#009d9a","#012749","#8a3800","#a56eff"];function gm({theme:e,background:t}){const n=["white","g10"].includes(e)?"light":"dark",i=Xd.gridBg[e],r=Xd.textPrimary[e],o=Xd.textSecondary[e],s=n==="dark"?sge:age,a=n==="dark"?"#d4bbff":"#6929c4";return{background:t,arc:{fill:a},area:{fill:a},path:{stroke:a},rect:{fill:a},shape:{stroke:a},symbol:{stroke:a},circle:{fill:a},view:{fill:i,stroke:i},group:{fill:i},title:{color:r,anchor:"start",dy:-15,fontSize:16,font:G1,fontWeight:600},axis:{labelColor:o,labelFontSize:12,labelFont:oge,labelFontWeight:H1,titleColor:r,titleFontWeight:600,titleFontSize:12,grid:!0,gridColor:Xd.layerAccent01[e],labelAngle:0},axisX:{titlePadding:10},axisY:{titlePadding:2.5},style:{"guide-label":{font:G1,fill:o,fontWeight:H1},"guide-title":{font:G1,fill:o,fontWeight:H1}},range:{category:s,diverging:["#750e13","#a2191f","#da1e28","#fa4d56","#ff8389","#ffb3b8","#ffd7d9","#fff1f1","#e5f6ff","#bae6ff","#82cfff","#33b1ff","#1192e8","#0072c3","#00539a","#003a6d"],heatmap:["#f6f2ff","#e8daff","#d4bbff","#be95ff","#a56eff","#8a3ffc","#6929c4","#491d8b","#31135e","#1c0f30"]}}}const uge=gm({theme:"white",background:"#ffffff"}),lge=gm({theme:"g10",background:"#f4f4f4"}),cge=gm({theme:"g90",background:"#262626"}),fge=gm({theme:"g100",background:"#161616"}),dge=Dpe.version,hge=Object.freeze(Object.defineProperty({__proto__:null,carbong10:lge,carbong100:fge,carbong90:cge,carbonwhite:uge,dark:Tpe,excel:Mpe,fivethirtyeight:Npe,ggplot2:Lpe,googlecharts:Ype,latimes:Bpe,powerbi:rge,quartz:Upe,urbaninstitute:Vpe,version:dge,vox:jpe},Symbol.toStringTag,{value:"Module"}));function $l(e,t,n){return e.fields=t||[],e.fname=n,e}function pge(e){return e.length===1?gge(e[0]):mge(e)}const gge=e=>function(t){return t[e]},mge=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function V1(e){throw Error(e)}function yge(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||V1("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&V1("Access path missing closing bracket: "+e),i&&V1("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function bge(e,t,n){const i=yge(e);return e=i.length===1?i[0]:e,$l(pge(i),[e],e)}bge("id");$l(e=>e,[],"identity");$l(()=>0,[],"zero");$l(()=>1,[],"one");$l(()=>!0,[],"true");$l(()=>!1,[],"false");var xge=Array.isArray;function rk(e){return e===Object(e)}function vge(e){return typeof e=="string"}function Ege(e,t,n,i){if(xge(e))return`[${e.map(r=>t(vge(r)?r:ok(r,n))).join(", ")}]`;if(rk(e)){let r="";const{title:o,image:s,...a}=e;o&&(r+=`<h2>${t(o)}</h2>`),s&&(r+=`<img src="${new URL(t(s),i||location.href).href}">`);const u=Object.keys(a);if(u.length>0){r+="<table>";for(const l of u){let c=a[l];c!==void 0&&(rk(c)&&(c=ok(c,n)),r+=`<tr><td class="key">${t(l)}</td><td class="value">${t(c)}</td></tr>`)}r+="</table>"}return r||"{}"}return t(e)}function wge(e){const t=[];return function(n,i){if(typeof i!="object"||i===null)return i;const r=t.indexOf(this)+1;return t.length=r,t.length>e?"[Object]":t.indexOf(i)>=0?"[Circular]":(t.push(i),i)}}function ok(e,t){return JSON.stringify(e,wge(t))}var Age=`#vg-tooltip-element {
18
18
  visibility: hidden;
@@ -200,4 +200,4 @@ ${a}`)}return l}(e,"",0)}function mre(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e
200
200
  <circle r="2" cy="8" cx="2"></circle>
201
201
  <circle r="2" cy="8" cx="8"></circle>
202
202
  <circle r="2" cy="8" cx="14"></circle>
203
- </svg>`,d0e="chart-wrapper";function h0e(e){return typeof e=="function"}function $k(e,t,n,i){const r=`<html><head>${t}</head><body><pre><code class="json">`,o=`</code></pre>${n}</body></html>`,s=window.open("");s.document.write(r+e+o),s.document.title=`${Ac[i]} JSON Source`}function p0e(e,t){if(e.$schema){const n=e8(e.$schema);t&&t!==n.library&&console.warn(`The given visualization spec is written in ${Ac[n.library]}, but mode argument sets ${Ac[t]??t}.`);const i=n.library;return f8(Qp[i],`^${n.version.slice(1)}`)||console.warn(`The input spec uses ${Ac[i]} ${n.version}, but the current version of ${Ac[i]} is v${Qp[i]}.`),i}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":t??"vega"}function h8(e){return!!(e&&"load"in e)}function _k(e){return h8(e)?e:ir.loader(e)}function g0e(e){const t=e.usermeta?.embedOptions??{};return to(t.defaultStyle)&&(t.defaultStyle=!1),t}async function m0e(e,t,n={}){let i,r;to(t)?(r=_k(n.loader),i=JSON.parse(await r.load(t))):i=t;const o=g0e(i),s=o.loader;(!r||s)&&(r=_k(n.loader??s));const a=await Fk(o,r),u=await Fk(n,r),l={...d8(u,a),config:Rx(u.config??{},a.config??{})};return await b0e(e,i,l,r)}async function Fk(e,t){const n=to(e.config)?JSON.parse(await t.load(e.config)):e.config??{},i=to(e.patch)?JSON.parse(await t.load(e.patch)):e.patch;return{...e,...i?{patch:i}:{},...n?{config:n}:{}}}function y0e(e){const t=e.getRootNode?e.getRootNode():document;return t instanceof ShadowRoot?{root:t,rootContainer:t}:{root:document,rootContainer:document.head??document.body}}async function b0e(e,t,n={},i){const r=n.theme?Rx(hge[n.theme],n.config??{}):n.config,o=Gk(n.actions)?n.actions:d8({},u0e,n.actions??{}),s={...l0e,...n.i18n},a=n.renderer??"canvas",u=n.logLevel??ir.Warn,l=n.downloadFileName??"visualization",c=typeof e=="string"?document.querySelector(e):e;if(!c)throw new Error(`${e} does not exist`);if(n.defaultStyle!==!1){const w="vega-embed-style",{root:A,rootContainer:E}=y0e(c);if(!A.getElementById(w)){const S=document.createElement("style");S.id=w,S.innerHTML=n.defaultStyle===void 0||n.defaultStyle===!0?s0e.toString():n.defaultStyle,E.appendChild(S)}}const f=p0e(t,n.mode);let d=c0e[f](t,r);if(f==="vega-lite"&&d.$schema){const w=e8(d.$schema);f8(Qp.vega,`^${w.version.slice(1)}`)||console.warn(`The compiled spec uses Vega ${w.version}, but current version is v${Qp.vega}.`)}c.classList.add("vega-embed"),o&&c.classList.add("has-actions"),c.innerHTML="";let h=c;if(o){const w=document.createElement("div");w.classList.add(d0e),c.appendChild(w),h=w}const p=n.patch;if(p&&(d=p instanceof Function?p(d):mm(d,p,!0,!1).newDocument),n.formatLocale&&ir.formatLocale(n.formatLocale),n.timeFormatLocale&&ir.timeFormatLocale(n.timeFormatLocale),n.expressionFunctions)for(const w in n.expressionFunctions){const A=n.expressionFunctions[w];"fn"in A?ir.expressionFunction(w,A.fn,A.visitor):A instanceof Function&&ir.expressionFunction(w,A)}const{ast:g}=n,m=ir.parse(d,f==="vega-lite"?{}:r,{ast:g}),y=new(n.viewClass||ir.View)(m,{loader:i,logLevel:u,renderer:a,...g?{expr:ir.expressionInterpreter??n.expr??Cre}:{}});if(y.addSignalListener("autosize",(w,A)=>{const{type:E}=A;E=="fit-x"?(h.classList.add("fit-x"),h.classList.remove("fit-y")):E=="fit-y"?(h.classList.remove("fit-x"),h.classList.add("fit-y")):E=="fit"?h.classList.add("fit-x","fit-y"):h.classList.remove("fit-x","fit-y")}),n.tooltip!==!1){const{loader:w,tooltip:A}=n,E=w&&!h8(w)?w?.baseURL:void 0,S=h0e(A)?A:new Dge({baseURL:E,...A===!0?{}:A}).call;y.tooltip(S)}let{hover:b}=n;if(b===void 0&&(b=f==="vega"),b){const{hoverSet:w,updateSet:A}=typeof b=="boolean"?{}:b;y.hover(w,A)}n&&(n.width!=null&&y.width(n.width),n.height!=null&&y.height(n.height),n.padding!=null&&y.padding(n.padding)),await y.initialize(h,n.bind).runAsync();let x;if(o!==!1){let w=c;if(n.defaultStyle!==!1||n.forceActionsMenu){const E=document.createElement("details");E.title=s.CLICK_TO_VIEW_ACTIONS,c.append(E),w=E;const S=document.createElement("summary");S.innerHTML=f0e,E.append(S),x=C=>{E.contains(C.target)||E.removeAttribute("open")},document.addEventListener("click",x)}const A=document.createElement("div");if(w.append(A),A.classList.add("vega-actions"),o===!0||o.export!==!1){for(const E of["svg","png"])if(o===!0||o.export===!0||o.export[E]){const S=s[`${E.toUpperCase()}_ACTION`],C=document.createElement("a"),_=oa(n.scaleFactor)?n.scaleFactor[E]:n.scaleFactor;C.text=S,C.href="#",C.target="_blank",C.download=`${l}.${E}`,C.addEventListener("mousedown",async function(k){k.preventDefault();const N=await y.toImageURL(E,_);this.href=N}),A.append(C)}}if(o===!0||o.source!==!1){const E=document.createElement("a");E.text=s.SOURCE_ACTION,E.href="#",E.addEventListener("click",function(S){$k(w1(t),n.sourceHeader??"",n.sourceFooter??"",f),S.preventDefault()}),A.append(E)}if(f==="vega-lite"&&(o===!0||o.compiled!==!1)){const E=document.createElement("a");E.text=s.COMPILED_ACTION,E.href="#",E.addEventListener("click",function(S){$k(w1(d),n.sourceHeader??"",n.sourceFooter??"","vega"),S.preventDefault()}),A.append(E)}if(o===!0||o.editor!==!1){const E=n.editorUrl??"https://vega.github.io/editor/",S=document.createElement("a");S.text=s.EDITOR_ACTION,S.href="#",S.addEventListener("click",function(C){o0e(window,E,{config:r,mode:p?"vega":f,renderer:a,spec:w1(p?d:t)}),C.preventDefault()}),A.append(S)}}function v(){x&&document.removeEventListener("click",x),y.finalize()}return{view:y,spec:t,vgSpec:d,finalize:v,embedOptions:n}}function Fl(e,t,n){return e.fields=t||[],e.fname=n,e}function x0e(e){return e.length===1?v0e(e[0]):E0e(e)}const v0e=e=>function(t){return t[e]},E0e=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function dy(e){throw Error(e)}function w0e(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||dy("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&dy("Access path missing closing bracket: "+e),i&&dy("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function A0e(e,t,n){const i=w0e(e);return e=i.length===1?i[0]:e,Fl(x0e(i),[e],e)}A0e("id");Fl(e=>e,[],"identity");Fl(()=>0,[],"zero");Fl(()=>1,[],"one");Fl(()=>!0,[],"true");Fl(()=>!1,[],"false");const S0e=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0);function C0e(e){return typeof e=="string"}function $0e(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e.x,e.x=e.x2,e.x2=i),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(i=e.y,e.y=e.y2,e.y2=i),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}var _0e={NaN:NaN,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,PI:Math.PI,SQRT1_2:Math.SQRT1_2,SQRT2:Math.SQRT2,MIN_VALUE:Number.MIN_VALUE,MAX_VALUE:Number.MAX_VALUE},F0e={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<<t,">>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},k0e={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const D0e=Array.prototype.slice,Ns=(e,t,n)=>{const i=n?n(t[0]):t[0];return i[e].apply(i,D0e.call(t,1))},T0e=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:0;return C0e(e)?new Date(e):new Date(e,t,n,i,r,o,s)};var M0e={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:T0e,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return Ns("join",arguments)},indexof:function(){return Ns("indexOf",arguments)},lastindexof:function(){return Ns("lastIndexOf",arguments)},slice:function(){return Ns("slice",arguments)},reverse:e=>e.slice().reverse(),sort:e=>e.slice().sort(S0e),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return Ns("substring",arguments,String)},split:function(){return Ns("split",arguments,String)},replace:function(){return Ns("replace",arguments,String)},trim:e=>String(e).trim(),btoa:e=>btoa(e),atob:e=>atob(e),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const O0e=["view","item","group","xy","x","y"],Ax=new Set([Function,eval,setTimeout,setInterval]);typeof setImmediate=="function"&&Ax.add(setImmediate);const R0e={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:n==="datum"?e.datum:n==="event"?e.event:n==="item"?e.item:_0e[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,i=e(t.object);n&&(e.memberDepth+=1);const r=e(t.property);if(n&&(e.memberDepth-=1),Ax.has(i[r])){console.error(`Prevented interpretation of member "${r}" which could lead to insecure code execution`);return}return i[r]},CallExpression:(e,t)=>{const n=t.arguments;let i=t.callee.name;return i.startsWith("_")&&(i=i.slice(1)),i==="if"?e(n[0])?e(n[1]):e(n[2]):(e.fn[i]||M0e[i]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>F0e[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>k0e[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce((n,i)=>{e.memberDepth+=1;const r=e(i.key);return e.memberDepth-=1,Ax.has(e(i.value))?console.error(`Prevented interpretation of property "${r}" which could lead to insecure code execution`):n[r]=e(i.value),n},{})};function Zl(e,t,n,i,r,o){const s=a=>R0e[a.type](s,a);return s.memberDepth=0,s.fn=Object.create(t),s.params=n,s.datum=i,s.event=r,s.item=o,O0e.forEach(a=>s.fn[a]=function(){return r.vega[a](...arguments)}),s(e)}var N0e={operator(e,t){const n=t.ast,i=e.functions;return r=>Zl(n,i,r)},parameter(e,t){const n=t.ast,i=e.functions;return(r,o)=>Zl(n,i,o,r)},event(e,t){const n=t.ast,i=e.functions;return r=>Zl(n,i,void 0,void 0,r)},handler(e,t){const n=t.ast,i=e.functions;return(r,o)=>{const s=o.item&&o.item.datum;return Zl(n,i,r,s,o)}},encode(e,t){const{marktype:n,channels:i}=t,r=e.functions,o=n==="group"||n==="image"||n==="rect";return(s,a)=>{const u=s.datum;let l=0,c;for(const f in i)c=Zl(i[f].ast,r,a,u,void 0,s),s[f]!==c&&(s[f]=c,l=1);return n!=="rule"&&$0e(s,i,o),l}}};const L0e={DATAFRAME_INDEX:"(index)"};function P0e(e){return!e||e.dimensions.numDataRows===0?null:Zp(e)}function I0e(e){const t=Sx(e);if(Cx(t))return null;const n={};for(const[i,r]of Object.entries(t))n[i]=Zp(r);return n}function Sx(e){if(e?.length===0)return null;const t={};return e.forEach(n=>{if(!n)return;const i=n.hasName?n.name:null;t[i]=n.data}),t}function Zp(e,t=0){if(e.dimensions.numDataRows===0)return[];const n=[],{numDataRows:i,numDataColumns:r,numIndexColumns:o}=e.dimensions,s=e.columnTypes[0]??void 0,a=s&&s.type===v8.INDEX&&(E8(s)||GA(s)||HA(s));for(let u=t;u<i;u++){const l={};if(a){const{content:c}=e.getCell(u,0);l[L0e.DATAFRAME_INDEX]=typeof c=="bigint"?Number(c):c}for(let c=0;c<r;c++){const f=c+o,{content:d,contentType:h}=e.getCell(u,f);if((d instanceof Date||typeof d=="number"&&Number.isFinite(d))&&(GA(h)||HA(h))&&!w8(h)){const p=new Date(d).getTimezoneOffset()*60*1e3;l[e.columnNames[0][f]]=d.valueOf()+p}else l[e.columnNames[0][f]]=typeof d=="bigint"?Number(d):d}n.push(l)}return n}const z0e=150,B0e=Dk.getLogger("useVegaLiteSelections"),U0e=(e,t,n)=>{const{id:i,formId:r,selectionMode:o}=e,s=Rt.useCallback(u=>{o.forEach(c=>{u.addSignalListener(c,A8(z0e,(f,d)=>{const h=u.getState({data:(b,x)=>o.some(v=>`${v}_store`===b),recurse:!1});VA(h)&&t.setElementState(i,"viewState",h);let p=d;"vlPoint"in d&&"or"in d.vlPoint&&(p=d.vlPoint.or);const g={id:i,formId:r},m=JSON.parse(t.getStringValue(g)||"{}"),y={selection:{...m?.selection||{},[f]:p||{}}};YA(m,y)||t.setStringValue(g,JSON.stringify(y),{fromUi:!0},n)}))});const l=t.getElementState(i,"viewState");if(VA(l))try{return u.setState(l)}catch(c){B0e.warn("Failed to restore view state",c)}return u},[i,o,t,r,n]),a=Rt.useCallback(()=>{const u={selection:{}};o.forEach(d=>{u.selection[d]={}});const l={id:i,formId:r},c=t.getStringValue(l),f=c?JSON.parse(c):u;YA(f,u)||t.setStringValue(l,JSON.stringify(u),{fromUi:!0},n)},[i,r,n,o,t]);return{maybeConfigureSelections:s,onFormCleared:a}},kk="source",j0e=Dk.getLogger("useVegaEmbed");function q0e(e,t,n){const i=Rt.useRef(null),r=Rt.useRef(null),o=Rt.useRef(kk),s=Rt.useRef(null),a=Rt.useRef([]),{maybeConfigureSelections:u,onFormCleared:l}=U0e(e,t,n);l9({widgetMgr:t,element:e,onFormCleared:l});const{data:c,datasets:f}=e;Rt.useEffect(()=>{i.current===null&&(s.current=c,a.current=f)},[c,f]);const d=Rt.useCallback(()=>{r.current&&r.current(),r.current=null,i.current=null},[]),h=Rt.useCallback(async(m,y)=>{if(m.current===null)throw new Error("Element missing.");d();const b={ast:!0,expr:N0e,tooltip:{disableDefaultStyle:!0},defaultStyle:!1,forceActionsMenu:!0},{vgSpec:x,view:v,finalize:w}=await m0e(m.current,y,b);i.current=u(v),r.current=w;const A=I0e(a.current),E=A?Object.keys(A):[];if(E.length===1){const[C]=E;o.current=C}else E.length===0&&x.data&&(o.current=kk);const S=P0e(s.current);if(S&&i.current.insert(o.current,S),A)for(const[C,_]of Object.entries(A))i.current.insert(C,_);return await i.current.runAsync(),await i.current.resize().runAsync(),i.current},[d,u]),p=Rt.useCallback((m,y,b,x)=>{if(!x||x.dimensions.numDataRows===0){try{m.remove(y,Nk)}finally{}return}if(!b||b.dimensions.numDataRows===0){m.insert(y,Zp(x));return}x.hash!==b.hash&&(m.data(y,Zp(x)),j0e.info(`Had to clear the ${y} dataset before inserting data through Vega view.`))},[]),g=Rt.useCallback(async(m,y)=>{if(i.current===null)return null;const b=s.current,x=a.current;(b||m)&&p(i.current,o.current,b,m);const v=Sx(x)??{},w=Sx(y)??{};for(const[A,E]of Object.entries(w)){const S=A||o.current,C=v[S];p(i.current,S,C,E)}for(const A of Object.keys(v))!Object.hasOwn(w,A)&&A!==o.current&&p(i.current,A,null,null);return await i.current?.resize().runAsync(),s.current=m,a.current=y,i.current},[p]);return{createView:h,updateView:g,finalizeView:d}}const W0e=({disableFullscreenMode:e,element:t,fragmentId:n,widgetMgr:i})=>{const{expanded:r,height:o,expand:s,collapse:a}=S8(D8),[u,l]=C8(),c=m9(t,r,u,o??0),{createView:f,updateView:d,finalizeView:h}=q0e(c,i,n),{data:p,datasets:g,spec:m}=c;return Rt.useLayoutEffect(()=>(l.current!==null&&f(l,m),h),[f,h,m,u,o,l]),Rt.useEffect(()=>{d(p,g)},[p,g,d]),$8(XA,{height:o,useContainerWidth:c.useContainerWidth,children:[bm(F8,{target:XA,isFullScreen:r,onExpand:s,onCollapse:a,disableFullscreenMode:e}),bm(_8,{styles:[c9]}),bm(f9,{"data-testid":"stVegaLiteChart",className:"stVegaLiteChart",useContainerWidth:c.useContainerWidth,isFullScreen:r,ref:l})]})},G0e=k8(W0e),Pme=Rt.memo(G0e);export{Pme as default};
203
+ </svg>`,d0e="chart-wrapper";function h0e(e){return typeof e=="function"}function $k(e,t,n,i){const r=`<html><head>${t}</head><body><pre><code class="json">`,o=`</code></pre>${n}</body></html>`,s=window.open("");s.document.write(r+e+o),s.document.title=`${Ac[i]} JSON Source`}function p0e(e,t){if(e.$schema){const n=e8(e.$schema);t&&t!==n.library&&console.warn(`The given visualization spec is written in ${Ac[n.library]}, but mode argument sets ${Ac[t]??t}.`);const i=n.library;return f8(Qp[i],`^${n.version.slice(1)}`)||console.warn(`The input spec uses ${Ac[i]} ${n.version}, but the current version of ${Ac[i]} is v${Qp[i]}.`),i}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":t??"vega"}function h8(e){return!!(e&&"load"in e)}function _k(e){return h8(e)?e:ir.loader(e)}function g0e(e){const t=e.usermeta?.embedOptions??{};return to(t.defaultStyle)&&(t.defaultStyle=!1),t}async function m0e(e,t,n={}){let i,r;to(t)?(r=_k(n.loader),i=JSON.parse(await r.load(t))):i=t;const o=g0e(i),s=o.loader;(!r||s)&&(r=_k(n.loader??s));const a=await Fk(o,r),u=await Fk(n,r),l={...d8(u,a),config:Rx(u.config??{},a.config??{})};return await b0e(e,i,l,r)}async function Fk(e,t){const n=to(e.config)?JSON.parse(await t.load(e.config)):e.config??{},i=to(e.patch)?JSON.parse(await t.load(e.patch)):e.patch;return{...e,...i?{patch:i}:{},...n?{config:n}:{}}}function y0e(e){const t=e.getRootNode?e.getRootNode():document;return t instanceof ShadowRoot?{root:t,rootContainer:t}:{root:document,rootContainer:document.head??document.body}}async function b0e(e,t,n={},i){const r=n.theme?Rx(hge[n.theme],n.config??{}):n.config,o=Gk(n.actions)?n.actions:d8({},u0e,n.actions??{}),s={...l0e,...n.i18n},a=n.renderer??"canvas",u=n.logLevel??ir.Warn,l=n.downloadFileName??"visualization",c=typeof e=="string"?document.querySelector(e):e;if(!c)throw new Error(`${e} does not exist`);if(n.defaultStyle!==!1){const w="vega-embed-style",{root:A,rootContainer:E}=y0e(c);if(!A.getElementById(w)){const S=document.createElement("style");S.id=w,S.innerHTML=n.defaultStyle===void 0||n.defaultStyle===!0?s0e.toString():n.defaultStyle,E.appendChild(S)}}const f=p0e(t,n.mode);let d=c0e[f](t,r);if(f==="vega-lite"&&d.$schema){const w=e8(d.$schema);f8(Qp.vega,`^${w.version.slice(1)}`)||console.warn(`The compiled spec uses Vega ${w.version}, but current version is v${Qp.vega}.`)}c.classList.add("vega-embed"),o&&c.classList.add("has-actions"),c.innerHTML="";let h=c;if(o){const w=document.createElement("div");w.classList.add(d0e),c.appendChild(w),h=w}const p=n.patch;if(p&&(d=p instanceof Function?p(d):mm(d,p,!0,!1).newDocument),n.formatLocale&&ir.formatLocale(n.formatLocale),n.timeFormatLocale&&ir.timeFormatLocale(n.timeFormatLocale),n.expressionFunctions)for(const w in n.expressionFunctions){const A=n.expressionFunctions[w];"fn"in A?ir.expressionFunction(w,A.fn,A.visitor):A instanceof Function&&ir.expressionFunction(w,A)}const{ast:g}=n,m=ir.parse(d,f==="vega-lite"?{}:r,{ast:g}),y=new(n.viewClass||ir.View)(m,{loader:i,logLevel:u,renderer:a,...g?{expr:ir.expressionInterpreter??n.expr??Cre}:{}});if(y.addSignalListener("autosize",(w,A)=>{const{type:E}=A;E=="fit-x"?(h.classList.add("fit-x"),h.classList.remove("fit-y")):E=="fit-y"?(h.classList.remove("fit-x"),h.classList.add("fit-y")):E=="fit"?h.classList.add("fit-x","fit-y"):h.classList.remove("fit-x","fit-y")}),n.tooltip!==!1){const{loader:w,tooltip:A}=n,E=w&&!h8(w)?w?.baseURL:void 0,S=h0e(A)?A:new Dge({baseURL:E,...A===!0?{}:A}).call;y.tooltip(S)}let{hover:b}=n;if(b===void 0&&(b=f==="vega"),b){const{hoverSet:w,updateSet:A}=typeof b=="boolean"?{}:b;y.hover(w,A)}n&&(n.width!=null&&y.width(n.width),n.height!=null&&y.height(n.height),n.padding!=null&&y.padding(n.padding)),await y.initialize(h,n.bind).runAsync();let x;if(o!==!1){let w=c;if(n.defaultStyle!==!1||n.forceActionsMenu){const E=document.createElement("details");E.title=s.CLICK_TO_VIEW_ACTIONS,c.append(E),w=E;const S=document.createElement("summary");S.innerHTML=f0e,E.append(S),x=C=>{E.contains(C.target)||E.removeAttribute("open")},document.addEventListener("click",x)}const A=document.createElement("div");if(w.append(A),A.classList.add("vega-actions"),o===!0||o.export!==!1){for(const E of["svg","png"])if(o===!0||o.export===!0||o.export[E]){const S=s[`${E.toUpperCase()}_ACTION`],C=document.createElement("a"),_=oa(n.scaleFactor)?n.scaleFactor[E]:n.scaleFactor;C.text=S,C.href="#",C.target="_blank",C.download=`${l}.${E}`,C.addEventListener("mousedown",async function(k){k.preventDefault();const N=await y.toImageURL(E,_);this.href=N}),A.append(C)}}if(o===!0||o.source!==!1){const E=document.createElement("a");E.text=s.SOURCE_ACTION,E.href="#",E.addEventListener("click",function(S){$k(w1(t),n.sourceHeader??"",n.sourceFooter??"",f),S.preventDefault()}),A.append(E)}if(f==="vega-lite"&&(o===!0||o.compiled!==!1)){const E=document.createElement("a");E.text=s.COMPILED_ACTION,E.href="#",E.addEventListener("click",function(S){$k(w1(d),n.sourceHeader??"",n.sourceFooter??"","vega"),S.preventDefault()}),A.append(E)}if(o===!0||o.editor!==!1){const E=n.editorUrl??"https://vega.github.io/editor/",S=document.createElement("a");S.text=s.EDITOR_ACTION,S.href="#",S.addEventListener("click",function(C){o0e(window,E,{config:r,mode:p?"vega":f,renderer:a,spec:w1(p?d:t)}),C.preventDefault()}),A.append(S)}}function v(){x&&document.removeEventListener("click",x),y.finalize()}return{view:y,spec:t,vgSpec:d,finalize:v,embedOptions:n}}function Fl(e,t,n){return e.fields=t||[],e.fname=n,e}function x0e(e){return e.length===1?v0e(e[0]):E0e(e)}const v0e=e=>function(t){return t[e]},E0e=e=>{const t=e.length;return function(n){for(let i=0;i<t;++i)n=n[e[i]];return n}};function dy(e){throw Error(e)}function w0e(e){const t=[],n=e.length;let i=null,r=0,o="",s,a,u;e=e+"";function l(){t.push(o+e.substring(s,a)),o="",s=a+1}for(s=a=0;a<n;++a)if(u=e[a],u==="\\")o+=e.substring(s,a++),s=a;else if(u===i)l(),i=null,r=-1;else{if(i)continue;s===r&&u==='"'||s===r&&u==="'"?(s=a+1,i=u):u==="."&&!r?a>s?l():s=a+1:u==="["?(a>s&&l(),r=s=a+1):u==="]"&&(r||dy("Access path missing open bracket: "+e),r>0&&l(),r=0,s=a+1)}return r&&dy("Access path missing closing bracket: "+e),i&&dy("Access path missing closing quote: "+e),a>s&&(a++,l()),t}function A0e(e,t,n){const i=w0e(e);return e=i.length===1?i[0]:e,Fl(x0e(i),[e],e)}A0e("id");Fl(e=>e,[],"identity");Fl(()=>0,[],"zero");Fl(()=>1,[],"one");Fl(()=>!0,[],"true");Fl(()=>!1,[],"false");const S0e=(e,t)=>(e<t||e==null)&&t!=null?-1:(e>t||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0);function C0e(e){return typeof e=="string"}function $0e(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e.x,e.x=e.x2,e.x2=i),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(i=e.y,e.y=e.y2,e.y2=i),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}var _0e={NaN:NaN,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,PI:Math.PI,SQRT1_2:Math.SQRT1_2,SQRT2:Math.SQRT2,MIN_VALUE:Number.MIN_VALUE,MAX_VALUE:Number.MAX_VALUE},F0e={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<<t,">>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},k0e={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const D0e=Array.prototype.slice,Ns=(e,t,n)=>{const i=n?n(t[0]):t[0];return i[e].apply(i,D0e.call(t,1))},T0e=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:0;return C0e(e)?new Date(e):new Date(e,t,n,i,r,o,s)};var M0e={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:T0e,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return Ns("join",arguments)},indexof:function(){return Ns("indexOf",arguments)},lastindexof:function(){return Ns("lastIndexOf",arguments)},slice:function(){return Ns("slice",arguments)},reverse:e=>e.slice().reverse(),sort:e=>e.slice().sort(S0e),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return Ns("substring",arguments,String)},split:function(){return Ns("split",arguments,String)},replace:function(){return Ns("replace",arguments,String)},trim:e=>String(e).trim(),btoa:e=>btoa(e),atob:e=>atob(e),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const O0e=["view","item","group","xy","x","y"],Ax=new Set([Function,eval,setTimeout,setInterval]);typeof setImmediate=="function"&&Ax.add(setImmediate);const R0e={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:n==="datum"?e.datum:n==="event"?e.event:n==="item"?e.item:_0e[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,i=e(t.object);n&&(e.memberDepth+=1);const r=e(t.property);if(n&&(e.memberDepth-=1),Ax.has(i[r])){console.error(`Prevented interpretation of member "${r}" which could lead to insecure code execution`);return}return i[r]},CallExpression:(e,t)=>{const n=t.arguments;let i=t.callee.name;return i.startsWith("_")&&(i=i.slice(1)),i==="if"?e(n[0])?e(n[1]):e(n[2]):(e.fn[i]||M0e[i]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>F0e[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>k0e[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce((n,i)=>{e.memberDepth+=1;const r=e(i.key);return e.memberDepth-=1,Ax.has(e(i.value))?console.error(`Prevented interpretation of property "${r}" which could lead to insecure code execution`):n[r]=e(i.value),n},{})};function Zl(e,t,n,i,r,o){const s=a=>R0e[a.type](s,a);return s.memberDepth=0,s.fn=Object.create(t),s.params=n,s.datum=i,s.event=r,s.item=o,O0e.forEach(a=>s.fn[a]=function(){return r.vega[a](...arguments)}),s(e)}var N0e={operator(e,t){const n=t.ast,i=e.functions;return r=>Zl(n,i,r)},parameter(e,t){const n=t.ast,i=e.functions;return(r,o)=>Zl(n,i,o,r)},event(e,t){const n=t.ast,i=e.functions;return r=>Zl(n,i,void 0,void 0,r)},handler(e,t){const n=t.ast,i=e.functions;return(r,o)=>{const s=o.item&&o.item.datum;return Zl(n,i,r,s,o)}},encode(e,t){const{marktype:n,channels:i}=t,r=e.functions,o=n==="group"||n==="image"||n==="rect";return(s,a)=>{const u=s.datum;let l=0,c;for(const f in i)c=Zl(i[f].ast,r,a,u,void 0,s),s[f]!==c&&(s[f]=c,l=1);return n!=="rule"&&$0e(s,i,o),l}}};const L0e={DATAFRAME_INDEX:"(index)"};function P0e(e){return!e||e.dimensions.numDataRows===0?null:Zp(e)}function I0e(e){const t=Sx(e);if(Cx(t))return null;const n={};for(const[i,r]of Object.entries(t))n[i]=Zp(r);return n}function Sx(e){if(e?.length===0)return null;const t={};return e.forEach(n=>{if(!n)return;const i=n.hasName?n.name:null;t[i]=n.data}),t}function Zp(e,t=0){if(e.dimensions.numDataRows===0)return[];const n=[],{numDataRows:i,numDataColumns:r,numIndexColumns:o}=e.dimensions,s=e.columnTypes[0]??void 0,a=s&&s.type===v8.INDEX&&(E8(s)||GA(s)||HA(s));for(let u=t;u<i;u++){const l={};if(a){const{content:c}=e.getCell(u,0);l[L0e.DATAFRAME_INDEX]=typeof c=="bigint"?Number(c):c}for(let c=0;c<r;c++){const f=c+o,{content:d,contentType:h}=e.getCell(u,f);if((d instanceof Date||typeof d=="number"&&Number.isFinite(d))&&(GA(h)||HA(h))&&!w8(h)){const p=new Date(d).getTimezoneOffset()*60*1e3;l[e.columnNames[0][f]]=d.valueOf()+p}else l[e.columnNames[0][f]]=typeof d=="bigint"?Number(d):d}n.push(l)}return n}const z0e=150,B0e=Dk.getLogger("useVegaLiteSelections"),U0e=(e,t,n)=>{const{id:i,formId:r,selectionMode:o}=e,s=Rt.useCallback(u=>{o.forEach(c=>{u.addSignalListener(c,A8(z0e,(f,d)=>{const h=u.getState({data:(b,x)=>o.some(v=>`${v}_store`===b),recurse:!1});VA(h)&&t.setElementState(i,"viewState",h);let p=d;"vlPoint"in d&&"or"in d.vlPoint&&(p=d.vlPoint.or);const g={id:i,formId:r},m=JSON.parse(t.getStringValue(g)||"{}"),y={selection:{...m?.selection||{},[f]:p||{}}};YA(m,y)||t.setStringValue(g,JSON.stringify(y),{fromUi:!0},n)}))});const l=t.getElementState(i,"viewState");if(VA(l))try{return u.setState(l)}catch(c){B0e.warn("Failed to restore view state",c)}return u},[i,o,t,r,n]),a=Rt.useCallback(()=>{const u={selection:{}};o.forEach(d=>{u.selection[d]={}});const l={id:i,formId:r},c=t.getStringValue(l),f=c?JSON.parse(c):u;YA(f,u)||t.setStringValue(l,JSON.stringify(u),{fromUi:!0},n)},[i,r,n,o,t]);return{maybeConfigureSelections:s,onFormCleared:a}},kk="source",j0e=Dk.getLogger("useVegaEmbed");function q0e(e,t,n){const i=Rt.useRef(null),r=Rt.useRef(null),o=Rt.useRef(kk),s=Rt.useRef(null),a=Rt.useRef([]),{maybeConfigureSelections:u,onFormCleared:l}=U0e(e,t,n);l9({widgetMgr:t,element:e,onFormCleared:l});const{data:c,datasets:f}=e;Rt.useEffect(()=>{i.current===null&&(s.current=c,a.current=f)},[c,f]);const d=Rt.useCallback(()=>{r.current&&r.current(),r.current=null,i.current=null},[]),h=Rt.useCallback(async(m,y)=>{if(m.current===null)throw new Error("Element missing.");d();const b={ast:!0,expr:N0e,tooltip:{disableDefaultStyle:!0},defaultStyle:!1,forceActionsMenu:!0},{vgSpec:x,view:v,finalize:w}=await m0e(m.current,y,b);i.current=u(v),r.current=w;const A=I0e(a.current),E=A?Object.keys(A):[];if(E.length===1){const[C]=E;o.current=C}else E.length===0&&x.data&&(o.current=kk);const S=P0e(s.current);if(S&&i.current.insert(o.current,S),A)for(const[C,_]of Object.entries(A))i.current.insert(C,_);return await i.current.runAsync(),await i.current.resize().runAsync(),i.current},[d,u]),p=Rt.useCallback((m,y,b,x)=>{if(!x||x.dimensions.numDataRows===0){try{m.remove(y,Nk)}finally{}return}if(!b||b.dimensions.numDataRows===0){m.insert(y,Zp(x));return}x.hash!==b.hash&&(m.data(y,Zp(x)),j0e.info(`Had to clear the ${y} dataset before inserting data through Vega view.`))},[]),g=Rt.useCallback(async(m,y)=>{if(i.current===null)return null;const b=s.current,x=a.current;(b||m)&&p(i.current,o.current,b,m);const v=Sx(x)??{},w=Sx(y)??{};for(const[A,E]of Object.entries(w)){const S=A||o.current,C=v[S];p(i.current,S,C,E)}for(const A of Object.keys(v))!Object.hasOwn(w,A)&&A!==o.current&&p(i.current,A,null,null);return await i.current?.resize().runAsync(),s.current=m,a.current=y,i.current},[p]);return{createView:h,updateView:g,finalizeView:d}}function W0e(e){try{const t=typeof e=="string"?JSON.parse(e):e;return!!(t.facet||t.encoding?.row||t.encoding?.column||t.encoding?.facet)}catch{return!1}}const G0e=({disableFullscreenMode:e,element:t,fragmentId:n,widgetMgr:i})=>{const{expanded:r,height:o,width:s,expand:a,collapse:u}=S8(D8),[l,c]=C8(),f=W0e(t.spec),d=m9(t,r,f?s??0:l,o??0),{createView:h,updateView:p,finalizeView:g}=q0e(d,i,n),{data:m,datasets:y,spec:b}=d;return Rt.useLayoutEffect(()=>(c.current!==null&&h(c,b),g),[h,g,b,s,o,c]),Rt.useEffect(()=>{p(m,y)},[m,y,p]),$8(XA,{height:o,useContainerWidth:d.useContainerWidth,children:[bm(F8,{target:XA,isFullScreen:r,onExpand:a,onCollapse:u,disableFullscreenMode:e}),bm(_8,{styles:[c9]}),bm(f9,{"data-testid":"stVegaLiteChart",className:"stVegaLiteChart",useContainerWidth:d.useContainerWidth,isFullScreen:r,ref:c})]})},H0e=k8(G0e),Ime=Rt.memo(H0e);export{Ime as default};