@marimo-team/frontend 0.17.5 → 0.17.6

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 (79) hide show
  1. package/dist/assets/{CellStatus-DjUtGUqj.js → CellStatus-CHA41gSk.js} +1 -1
  2. package/dist/assets/{ConnectedDataExplorerComponent-Bjfp6wiJ.js → ConnectedDataExplorerComponent-cTGPcGbT.js} +1 -1
  3. package/dist/assets/{ConsoleOutput-C4nRvbNL.js → ConsoleOutput-CcWTsPJI.js} +1 -1
  4. package/dist/assets/{LazyAnyLanguageCodeMirror-BzY5E2SR.js → LazyAnyLanguageCodeMirror-De4wCXx1.js} +2 -2
  5. package/dist/assets/{MarimoErrorOutput-DKtP9DfP.js → MarimoErrorOutput-ZIgqDBQe.js} +1 -1
  6. package/dist/assets/{Output-x6LACtkd.js → Output-BNpy6qAs.js} +1 -1
  7. package/dist/assets/{RenderHTML-B4Xlxz9Q.js → RenderHTML-BBVeCFEd.js} +1 -1
  8. package/dist/assets/{TinyCode-CgC7YtPL.js → TinyCode-CSwZ6pBr.js} +1 -1
  9. package/dist/assets/{add-cell-with-ai-D94Om7DS.js → add-cell-with-ai-DF_F9Sqz.js} +1 -1
  10. package/dist/assets/{add-database-form-BDX2uZCC.js → add-database-form-C6bWFcDu.js} +1 -1
  11. package/dist/assets/{add-missing-import-Cy6g_y6i.js → add-missing-import-pmcK06GU.js} +1 -1
  12. package/dist/assets/{agent-panel-DPCsTGPU.js → agent-panel-Cy7eGnp2.js} +1 -1
  13. package/dist/assets/{any-language-editor-CgFodhrt.js → any-language-editor-CtKaNSoA.js} +1 -1
  14. package/dist/assets/{app-config-button-C02qSaV5.js → app-config-button-DkPbZ9Gv.js} +1 -1
  15. package/dist/assets/{cell-actions-CNcpitg7.js → cell-actions-BwzVQ6Dx.js} +1 -1
  16. package/dist/assets/{cell-editor-oXchtd-2.js → cell-editor-HcAVCF81.js} +4 -4
  17. package/dist/assets/{cell-link-d9BMXpwm.js → cell-link-Bp_0p3CR.js} +1 -1
  18. package/dist/assets/cells-DV6dfoCq.js +142 -0
  19. package/dist/assets/{chat-components-u_00E1Iv.js → chat-components-laNRM4nR.js} +2 -2
  20. package/dist/assets/{chat-panel-BBQVqm6k.js → chat-panel-D0ofjONu.js} +1 -1
  21. package/dist/assets/{client-Co0Fvwib.js → client-CHkG9bdV.js} +2 -2
  22. package/dist/assets/{column-preview-BsCKvnq_.js → column-preview-BavQbx6K.js} +1 -1
  23. package/dist/assets/{command-palette-C9_cNlJc.js → command-palette-BeIRV-WM.js} +1 -1
  24. package/dist/assets/{common-BWlM0NQw.js → common-C3tRfmeF.js} +1 -1
  25. package/dist/assets/{datasources-panel-CRS3I41j.js → datasources-panel-MHkoQPff.js} +1 -1
  26. package/dist/assets/{dependency-graph-panel-PEDmfewV.js → dependency-graph-panel-qI_Vzr7L.js} +1 -1
  27. package/dist/assets/dist-Dv7WCK3M.js +2 -0
  28. package/dist/assets/{documentation-panel-Caz5K_OT.js → documentation-panel-BSLe420O.js} +1 -1
  29. package/dist/assets/{edit-page-DuRQ1eIB.js → edit-page-BWiHWYlZ.js} +3 -3
  30. package/dist/assets/{error-panel-D0ZJmprT.js → error-panel-BXZjD7vi.js} +1 -1
  31. package/dist/assets/{esm-D8ZMWeYP.js → esm-C1NahKuy.js} +1 -1
  32. package/dist/assets/{file-explorer-panel-Jnmw434H.js → file-explorer-panel-Dfhel-3W.js} +1 -1
  33. package/dist/assets/{floating-outline-BXSB3SQ6.js → floating-outline-CgxonLQ-.js} +1 -1
  34. package/dist/assets/{focus-CUS3ckCE.js → focus--Piy3rX5.js} +1 -1
  35. package/dist/assets/{form-nAUuUhu3.js → form-Cdn744fY.js} +1 -1
  36. package/dist/assets/{form-BlnK1x-p.js → form-q5HZfP0M.js} +1 -1
  37. package/dist/assets/{glide-data-editor-BFKn2tIP.js → glide-data-editor-DyfmOgFY.js} +1 -1
  38. package/dist/assets/{home-page-DIYkvTFf.js → home-page-CQvcO2-r.js} +1 -1
  39. package/dist/assets/{index-DsdBxblV.js → index-vG-gdKWq.js} +7 -7
  40. package/dist/assets/{kiosk-mode-CHVximkk.js → kiosk-mode-OsMWvXhW.js} +1 -1
  41. package/dist/assets/{layout-CRXL9551.js → layout-BaosNuEp.js} +1 -1
  42. package/dist/assets/{logs-panel-9HAqKVuS.js → logs-panel-DzPVobVI.js} +1 -1
  43. package/dist/assets/{mermaid-D4G-AG2G.js → mermaid-DEUZM6JF.js} +1 -1
  44. package/dist/assets/{mode-CtH3Xe58.js → mode-BK9SOQXS.js} +1 -1
  45. package/dist/assets/{name-cell-input-DZWpmHYT.js → name-cell-input-VEOAxqMs.js} +1 -1
  46. package/dist/assets/{outline-panel-D0DvfWbQ.js → outline-panel-h_xN2aCi.js} +1 -1
  47. package/dist/assets/{packages-panel-DmqfeORQ.js → packages-panel-MgK5SK20.js} +1 -1
  48. package/dist/assets/{readonly-python-code-Ba_IF_mK.js → readonly-python-code-ChK3PfU6.js} +1 -1
  49. package/dist/assets/{run-page-Dtlg4eqe.js → run-page-BGTVY0j4.js} +1 -1
  50. package/dist/assets/{scratchpad-panel-5EljtEkX.js → scratchpad-panel-DZbJOjct.js} +1 -1
  51. package/dist/assets/{snippets-panel-Cg9ksbKX.js → snippets-panel-BkDWOzb7.js} +1 -1
  52. package/dist/assets/{state-7Nd5UYc6.js → state-BHcVA2dC.js} +1 -1
  53. package/dist/assets/{state-BDyZ5-wH.js → state-CjZ41ddG.js} +1 -1
  54. package/dist/assets/{storage-DczTxxXy.js → storage-Q85CaPfH.js} +1 -1
  55. package/dist/assets/{tracing-CbAnhOdo.js → tracing-DZ3Q4ew0.js} +1 -1
  56. package/dist/assets/{tracing-panel-B3iny2EN.js → tracing-panel-cWcQ0_7O.js} +2 -2
  57. package/dist/assets/{types-h5wz3HYN.js → types--mPsPGF4.js} +1 -1
  58. package/dist/assets/{useAddCell-CWXmrhes.js → useAddCell-Ig4Te4YX.js} +1 -1
  59. package/dist/assets/{useCellActionButton-fVEGFa_R.js → useCellActionButton-Dxhr7c1D.js} +1 -1
  60. package/dist/assets/{useDeleteCell-Bg8Hgk6e.js → useDeleteCell-Ba4wqcnv.js} +1 -1
  61. package/dist/assets/{useNotebookActions-BurReKKo.js → useNotebookActions-ClgDTwuq.js} +1 -1
  62. package/dist/assets/{useRunCells-BiWuvMY1.js → useRunCells-WnlQjiPG.js} +1 -1
  63. package/dist/assets/{useSplitCell-DhhZ7xVP.js → useSplitCell-BDVxP5U-.js} +1 -1
  64. package/dist/assets/useTheme-CJkb1R7C.js +1 -0
  65. package/dist/assets/{utilities.esm-CCw2KKJk.js → utilities.esm-SfrtJjbv.js} +1 -1
  66. package/dist/assets/{variable-panel-Dkhq2h3W.js → variable-panel-1cBDHa5H.js} +1 -1
  67. package/dist/assets/{vega-component-CrZQsWq8.js → vega-component-DBpZ-MEj.js} +1 -1
  68. package/dist/index.html +27 -27
  69. package/package.json +1 -1
  70. package/src/components/app-config/data-form.tsx +3 -3
  71. package/src/core/codemirror/language/languages/sql/sql.ts +2 -1
  72. package/dist/assets/cells-CZmitpcp.js +0 -151
  73. package/dist/assets/dist-CzgFQFBf.js +0 -2
  74. package/dist/assets/node-sql-parser-B60nzzE3.js +0 -68
  75. package/dist/assets/useTheme-DcMAIbRt.js +0 -1
  76. /package/dist/assets/{esm-DuHka6En.js → esm-D3_a5hg-.js} +0 -0
  77. /package/dist/assets/{react-plotly-B5BZoChE.js → react-plotly-BedjJ4JE.js} +0 -0
  78. /package/dist/assets/{wasm-BU5edgJp.js → wasm-86TLpKv7.js} +0 -0
  79. /package/dist/assets/{web-vitals-DxEe-Gv6.js → web-vitals-DCCm3RCd.js} +0 -0
@@ -1 +1 @@
1
- import{a as Ca,n as q,r as sr,s as H,t as ce}from"./chunk-DZLz74EQ.js";import{c as Lt,d as wa,f as Aa,o as Oa}from"./jotai-BTnrNcC1.js";import{t as ka}from"./react-BcIddLXZ.js";import"./react-dom-D6bRRS5R.js";import"./zod-U2NFpcFA.js";import{t as Wt}from"./compiler-runtime-Cr9loedd.js";import"./_Uint8Array-D5Z9rM2X.js";import"./isSymbol-xTSywenE.js";import"./_arrayMap-DQI2GUNb.js";import"./toString-CBnct2wx.js";import"./isArrayLikeObject-DKyJYtr8.js";import"./_getTag-CVRrQL_Q.js";import"./_baseIsEqual-CVFfFJm2.js";import"./merge-Dvc5opZF.js";import"./_baseSlice-BWZ0PeaJ.js";import"./upperFirst-CBQfDRod.js";import"./_hasUnicode-3DIK_jNi.js";import"./_arrayReduce-DV4IVFuG.js";import{t as Ma}from"./startCase-RfubwhHM.js";import{t as Ia}from"./isString-Cwbr2gIw.js";import{r as Ua,t as Fa}from"./tooltip-Yli91_uW.js";import{a as Da,u as _a}from"./hotkeys-ClCtr3_I.js";import{t as ja}from"./invariant-D5a0EE05.js";import"./utils-BpjB6B-Y.js";import"./useEventListener-D1FLsfmf.js";import{t as Pa}from"./jsx-runtime-mwDPpfh_.js";import{t as Ra}from"./cn-DEUt_IsG.js";import{t as lr}from"./button-Zjtz1syG.js";import{t as $a}from"./createReducer-C6dJ71nW.js";import{t as Ba}from"./useLifecycle-CxNbfWnk.js";import{r as La}from"./useTheme-DcMAIbRt.js";import{t as cr}from"./createLucideIcon-CaU6_Jtx.js";import{t as Wa}from"./spec-Cdxt7KQF.js";import{i as qa,n as Ha,r as Ga,t as za}from"./type-DVCC-93H.js";import"./chart-no-axes-column-C2nGNVra.js";import{n as Ya}from"./table-CmDieCGZ.js";import"./check-Dc7YCRim.js";import{a as ur,c as dr,i as Se,n as Ze,o as fr,r as We,s as et,t as tt}from"./select-Di-JjADd.js";import{t as Qa}from"./square-function-DncO0xCM.js";import{t as Va}from"./badge-CxcKOiwY.js";import"./Combination-DWHMUa0d.js";import"./dist-1ZdxNBaX.js";import{t as Ka}from"./tooltip-CerBk_un.js";import"./menu-items-Dm8s6sMr.js";import"./alert-dialog-BZHeDuaE.js";import"./SSRProvider-CMB_HLxO.js";import{t as Ja}from"./useDateFormatter-CQ9jB95h.js";import"./context-BqH7Jigl.js";import{t as Xa}from"./useNumberFormatter-BPGR7t2W.js";import"./useEvent-itkPNnCe.js";import{n as Za}from"./error-banner-rdjPobI5.js";import"./vega-loader.browser-Cp1bHVeU.js";import"./precisionRound-BLxyDkD7.js";import"./linear-DJH0XBa7.js";import{i as eo,n as pr}from"./react-vega-CoPJaJAh.js";import"./ordinal-DqAR8B4U.js";import"./time-BCTJgqbM.js";import"./range-BT9bu4c7.js";import"./defaultLocale-DEWTIUVh.js";import"./defaultLocale-B9-NA0ur.js";import{n as to}from"./useAsyncData-BPaRR7vx.js";import{t as no}from"./label-FIGQlkj5.js";import"./timer-DPMc0rso.js";import"./path-BAcG87qb.js";import"./math-DLEBRToQ.js";import"./arc-BTae1mqv.js";import"./array-6SpcN0ID.js";import"./step-mihdlsAu.js";import"./line-qKT-og2f.js";import"./init-CRjlCkYX.js";import"./colors-C4hWizf4.js";import"./treemap-C00L9CMp.js";var ro=cr("chart-column-big",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"15",y:"5",width:"4",height:"12",rx:"1",key:"q8uenq"}],["rect",{x:"7",y:"8",width:"4",height:"9",rx:"1",key:"sr5ea"}]]),io=cr("list-ordered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]),hr=H(Wt(),1);function Ue(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}var ao=ce(((e,t)=>{var n=(function(){function r(f,d){return d!=null&&f instanceof d}var a;try{a=Map}catch{a=function(){}}var i;try{i=Set}catch{i=function(){}}var s;try{s=Promise}catch{s=function(){}}function c(f,d,g,y,v){typeof d=="object"&&(g=d.depth,y=d.prototype,v=d.includeNonEnumerable,d=d.circular);var b=[],x=[],S=typeof Buffer<"u";d===void 0&&(d=!0),g===void 0&&(g=1/0);function C(T,w){if(T===null)return null;if(w===0)return T;var N,D;if(typeof T!="object")return T;if(r(T,a))N=new a;else if(r(T,i))N=new i;else if(r(T,s))N=new s(function(he,M){T.then(function(Z){he(C(Z,w-1))},function(Z){M(C(Z,w-1))})});else if(c.__isArray(T))N=[];else if(c.__isRegExp(T))N=new RegExp(T.source,p(T)),T.lastIndex&&(N.lastIndex=T.lastIndex);else if(c.__isDate(T))N=new Date(T.getTime());else{if(S&&Buffer.isBuffer(T))return N=Buffer.allocUnsafe?Buffer.allocUnsafe(T.length):new Buffer(T.length),T.copy(N),N;r(T,Error)?N=Object.create(T):y===void 0?(D=Object.getPrototypeOf(T),N=Object.create(D)):(N=Object.create(y),D=y)}if(d){var k=b.indexOf(T);if(k!=-1)return x[k];b.push(T),x.push(N)}for(var I in r(T,a)&&T.forEach(function(he,M){var Z=C(M,w-1),Xe=C(he,w-1);N.set(Z,Xe)}),r(T,i)&&T.forEach(function(he){var M=C(he,w-1);N.add(M)}),T){var _;D&&(_=Object.getOwnPropertyDescriptor(D,I)),!(_&&_.set==null)&&(N[I]=C(T[I],w-1))}if(Object.getOwnPropertySymbols)for(var Ee=Object.getOwnPropertySymbols(T),I=0;I<Ee.length;I++){var X=Ee[I],W=Object.getOwnPropertyDescriptor(T,X);W&&!W.enumerable&&!v||(N[X]=C(T[X],w-1),W.enumerable||Object.defineProperty(N,X,{enumerable:!1}))}if(v)for(var pe=Object.getOwnPropertyNames(T),I=0;I<pe.length;I++){var Te=pe[I],W=Object.getOwnPropertyDescriptor(T,Te);W&&W.enumerable||(N[Te]=C(T[Te],w-1),Object.defineProperty(N,Te,{enumerable:!1}))}return N}return C(f,g)}c.clonePrototype=function(f){if(f===null)return null;var d=function(){};return d.prototype=f,new d};function h(f){return Object.prototype.toString.call(f)}c.__objToStr=h;function o(f){return typeof f=="object"&&h(f)==="[object Date]"}c.__isDate=o;function l(f){return typeof f=="object"&&h(f)==="[object Array]"}c.__isArray=l;function u(f){return typeof f=="object"&&h(f)==="[object RegExp]"}c.__isRegExp=u;function p(f){var d="";return f.global&&(d+="g"),f.ignoreCase&&(d+="i"),f.multiline&&(d+="m"),d}return c.__getRegExpFlags=p,c})();typeof t=="object"&&t.exports&&(t.exports=n)})),oo=ce(((e,t)=>{var n=Array.isArray,r=Object.keys,a=Object.prototype.hasOwnProperty;t.exports=function i(s,c){if(s===c)return!0;if(s&&c&&typeof s=="object"&&typeof c=="object"){var h=n(s),o=n(c),l,u,p;if(h&&o){if(u=s.length,u!=c.length)return!1;for(l=u;l--!==0;)if(!i(s[l],c[l]))return!1;return!0}if(h!=o)return!1;var f=s instanceof Date,d=c instanceof Date;if(f!=d)return!1;if(f&&d)return s.getTime()==c.getTime();var g=s instanceof RegExp,y=c instanceof RegExp;if(g!=y)return!1;if(g&&y)return s.toString()==c.toString();var v=r(s);if(u=v.length,u!==r(c).length)return!1;for(l=u;l--!==0;)if(!a.call(c,v[l]))return!1;for(l=u;l--!==0;)if(p=v[l],!i(s[p],c[p]))return!1;return!0}return s!==s&&c!==c}})),mr=H(ce(((e,t)=>{t.exports=function(n,r){r||(r={}),typeof r=="function"&&(r={cmp:r});var a=typeof r.cycles=="boolean"?r.cycles:!1,i=r.cmp&&(function(c){return function(h){return function(o,l){return c({key:o,value:h[o]},{key:l,value:h[l]})}}})(r.cmp),s=[];return(function c(h){if(h&&h.toJSON&&typeof h.toJSON=="function"&&(h=h.toJSON()),h!==void 0){if(typeof h=="number")return isFinite(h)?""+h:"null";if(typeof h!="object")return JSON.stringify(h);var o,l;if(Array.isArray(h)){for(l="[",o=0;o<h.length;o++)o&&(l+=","),l+=c(h[o])||"null";return l+"]"}if(h===null)return"null";if(s.indexOf(h)!==-1){if(a)return JSON.stringify("__cycle__");throw TypeError("Converting circular structure to JSON")}var u=s.push(h)-1,p=Object.keys(h).sort(i&&i(h));for(l="",o=0;o<p.length;o++){var f=p[o],d=c(h[f]);d&&(l&&(l+=","),l+=JSON.stringify(f)+":"+d)}return s.splice(u,1),"{"+l+"}"}})(n)}}))());oo(),ao();function Fe(e,t,n){return e.fields=t||[],e.fname=n,e}function qt(e){throw Error(e)}function Ht(e){var t=[],n=null,r=0,a=e.length,i="",s,c,h;e+="";function o(){t.push(i+e.substring(s,c)),i="",s=c+1}for(s=c=0;c<a;++c)if(h=e[c],h==="\\")i+=e.substring(s,c),s=++c;else if(h===n)o(),n=null,r=-1;else{if(n)continue;s===r&&h==='"'||s===r&&h==="'"?(s=c+1,n=h):h==="."&&!r?c>s?o():s=c+1:h==="["?(c>s&&o(),r=s=c+1):h==="]"&&(r||qt("Access path missing open bracket: "+e),r>0&&o(),r=0,s=c+1)}return r&&qt("Access path missing closing bracket: "+e),n&&qt("Access path missing closing quote: "+e),c>s&&(c++,o()),t}var nt=Array.isArray;function gr(e){return e===Object(e)}function Gt(e){return typeof e=="string"}function zt(e){return nt(e)?"["+e.map(zt)+"]":gr(e)||Gt(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function so(e,t){var n=Ht(e),r="return _["+n.map(zt).join("][")+"];";return Fe(Function("_",r),[e=n.length===1?n[0]:e],t||e)}var qe=[];so("id"),Fe(function(e){return e},qe,"identity"),Fe(function(){return 0},qe,"zero"),Fe(function(){return 1},qe,"one"),Fe(function(){return!0},qe,"true"),Fe(function(){return!1},qe,"false");function rt(e,t,n){var r=[t].concat([].slice.call(n));console[e](...r)}function lo(e,t){var n=e||0;return{level:function(r){return arguments.length?(n=+r,this):n},error:function(){return n>=1&&rt(t||"error","ERROR",arguments),this},warn:function(){return n>=2&&rt(t||"warn","WARN",arguments),this},info:function(){return n>=3&&rt(t||"log","INFO",arguments),this},debug:function(){return n>=4&&rt(t||"log","DEBUG",arguments),this}}}function Yt(e){return typeof e=="boolean"}function De(e){for(var t={},n=0,r=e.length;n<r;++n)t[e[n]]=!0;return t}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>(0,mr.default)(e)).join(",")})`};const Q=mr.default;function G(e,t){return e.indexOf(t)>-1}function co(e,t){let n=0;for(let[r,a]of e.entries())if(t(a,r,n++))return!0;return!1}const j=Object.keys;function uo(e){let t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function fo(e,t="datum"){return`${t}[${zt(Ht(e).join("."))}]`}function po(e){return`${Ht(e).map(t=>t.replace(".","\\.")).join("\\.")}`}function ho(...e){for(let t of e)if(t!==void 0)return t}function mo(e){return go(e)?e:`__${e}`}function go(e){return e.indexOf("__")===0}const Ne="column",yr="facet",vr="latitude",br="longitude",xr="latitude2",Er="longitude2",ue="color",it="fill",at="stroke",ot="shape",He="size",st="opacity",lt="fillOpacity",ct="strokeOpacity",ut="strokeWidth",Qt="text",Tr="order",Sr="detail",Nr="tooltip",Cr="href";var yo={x:1,y:1,x2:1,y2:1},wr={longitude:1,longitude2:1,latitude:1,latitude2:1};j(wr);var dt=Object.assign({},yo,wr,{color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,size:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1});function ft(e){return e==="color"||e==="fill"||e==="stroke"}var Ar={row:1,column:1,facet:1};j(Ar);var Ge=Object.assign({},dt,Ar);const vo=j(Ge);var{order:Sf,detail:Nf}=Ge,bo=Ue(Ge,["order","detail"]),{order:Cf,detail:wf,row:Af,column:Of,facet:kf}=Ge,xo=Ue(Ge,["order","detail","row","column","facet"]);j(bo),j(xo),j(dt);var{x:Mf,y:If,x2:Uf,y2:Ff,latitude:Df,longitude:_f,latitude2:jf,longitude2:Pf}=dt,Vt=Ue(dt,["x","y","x2","y2","latitude","longitude","latitude2","longitude2"]);const Or=j(Vt);var kr={x:1,y:1};j(kr);var{text:Rf,tooltip:$f,href:Bf,detail:Lf,key:Wf,order:qf}=Vt,Mr=Ue(Vt,["text","tooltip","href","detail","key","order"]);j(Mr);var Ir=Object.assign({},kr,Mr);j(Ir);function Eo(e){return!!Ir[e]}function To(e,t){return No(e)[t]}var Kt={area:"always",bar:"always",circle:"always",geoshape:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Hf}=Kt,So=Ue(Kt,["geoshape"]);function No(e){switch(e){case ue:case it:case at:case Sr:case"key":case Nr:case Cr:case Tr:case st:case lt:case ct:case ut:case yr:case"row":case Ne:return Kt;case"x":case"y":case vr:case br:return So;case"x2":case"y2":case xr:case Er:return{rule:"always",bar:"always",rect:"always",area:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case He:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case ot:return{point:"always",geoshape:"always"};case Qt:return{text:"always"}}}function Jt(e){switch(e){case"x":case"y":case He:case ut:case st:case lt:case ct:case"x2":case"y2":return;case yr:case"row":case Ne:case ot:case Qt:case Nr:case Cr:return"discrete";case ue:case it:case at:return"flexible";case vr:case br:case xr:case Er:case Sr:case"key":case Tr:return}throw Error("rangeType not implemented for "+e)}var Ur={orient:1,bandPosition:1,domain:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid: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,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position: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,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,values:1,zindex:1},Co=Object.assign({},Ur,{encoding:1});j(Object.assign({gridScale:1,scale:1},Ur,{encode:1}));const Fr=j(Co);var Dr={clipHeight:1,columnPadding:1,columns:1,cornerRadius: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,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,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},wo=Object.assign({},Dr,{opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,encode:1});const _r=j(Dr);j(wo);var Ao=sr({BAR_WITH_POINT_SCALE_AND_RANGESTEP_NULL:()=>ls,CANNOT_FIX_RANGE_STEP_WITH_FIT:()=>Mo,CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN:()=>ds,CONCAT_CANNOT_SHARE_AXIS:()=>$o,FIT_NON_SINGLE:()=>ko,INVALID_CHANNEL_FOR_AXIS:()=>Os,INVALID_SPEC:()=>Oo,LINE_WITH_VARYING_SIZE:()=>ns,MORE_THAN_ONE_SORT:()=>As,NO_FIELDS_NEEDS_AS:()=>Ho,NO_INIT_SCALE_BINDINGS:()=>jo,REPEAT_CANNOT_SHARE_AXIS:()=>Bo,SCALE_BINDINGS_CONTINUOUS:()=>_o,UNABLE_TO_MERGE_DOMAINS:()=>ws,cannotApplySizeToNonOrientedMark:()=>gs,cannotProjectOnChannelWithoutField:()=>Io,cannotStackNonLinearScale:()=>Ms,cannotStackRangedMark:()=>ks,cannotUseScalePropertyWithNonColor:()=>fs,channelRequiredForBinned:()=>Bs,columnsNotSupportByRowCol:()=>Ro,dayReplacedWithDate:()=>Fs,differentParse:()=>Wo,discreteChannelCannotEncode:()=>ss,domainRequiredForThresholdScale:()=>Ls,domainSortDropped:()=>Cs,droppedDay:()=>Ds,droppingColor:()=>Zo,emptyFieldDef:()=>es,encodingOverridden:()=>Go,errorBand1DNotSupport:()=>$s,errorBarCenterAndExtentAreNotNeeded:()=>_s,errorBarCenterIsNotNeeded:()=>Rs,errorBarCenterIsUsedWithWrongExtent:()=>js,errorBarContinuousAxisHasCustomizedAggregate:()=>Ps,facetChannelDropped:()=>os,facetChannelShouldBeDiscrete:()=>as,incompatibleChannel:()=>rs,independentScaleMeansIndependentGuide:()=>Ns,invalidAggregate:()=>Jo,invalidEncodingChannel:()=>is,invalidFieldType:()=>Qo,invalidFieldTypeForCountAggregate:()=>Ko,invalidTimeUnit:()=>Us,invalidTransformIgnored:()=>qo,latLongDeprecated:()=>ts,lineWithRange:()=>cs,mergeConflictingDomainProperty:()=>Ss,mergeConflictingProperty:()=>Ts,missingFieldType:()=>Xo,nearestNotSupportForContinuous:()=>Uo,noSuchRepeatedValue:()=>Po,nonZeroScaleUsedWithLengthMark:()=>Vo,orientOverridden:()=>us,primitiveChannelDef:()=>Yo,projectionOverridden:()=>zo,rangeStepDropped:()=>ys,scalePropertyNotWorkWithScaleType:()=>xs,scaleTypeNotWorkWithChannel:()=>vs,scaleTypeNotWorkWithFieldDef:()=>bs,scaleTypeNotWorkWithMark:()=>Es,selectionNotFound:()=>Do,selectionNotSupported:()=>Fo,stackNonSummativeAggregate:()=>Is,unaggregateDomainHasNoEffectForRawField:()=>ps,unaggregateDomainWithNonSharedDomainOp:()=>hs,unaggregatedDomainWithLogScale:()=>ms,unrecognizedParse:()=>Lo});const Oo="Invalid spec",ko='Autosize "fit" only works for single views and layered views.',Mo='Cannot use a fixed value of "rangeStep" when "autosize" is "fit".';function Io(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Uo(e){return`The "nearest" transform is not supported for ${e} marks.`}function Fo(e){return`Selection not supported for ${e} yet`}function Do(e){return`Cannot find a selection named "${e}"`}const _o="Scale bindings are currently only supported for scales with unbinned, continuous domains.",jo="Selections bound to scales cannot be separately initialized.";function Po(e){return`Unknown repeated value "${e}".`}function Ro(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const $o="Axes cannot be shared in concatenated views yet (https://github.com/vega/vega-lite/issues/2415).",Bo="Axes cannot be shared in repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function Lo(e){return`Unrecognized parse "${e}".`}function Wo(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function qo(e){return`Ignoring an invalid transform: ${Q(e)}.`}const Ho='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 Go(e){return`Layer's shared ${e.join(",")} channel ${e.length===1?"is":"are"} overriden`}function zo(e){let{parentProjection:t,projection:n}=e;return`Layer's shared projection ${Q(t)} is overridden by a child projection ${Q(n)}.`}function Yo(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${Q(n)}}.`}function Qo(e){return`Invalid field type "${e}"`}function Vo(e,t,n){return`A ${n.scaleType?`${n.scaleType} scale`:n.zeroFalse?"scale with zero=false":"scale with custom domain that excludes zero"} is used to encode ${e}'s ${t}. This can be misleading as the ${t==="x"?"width":"height"} of the ${e} can be arbitrary based on the scale domain. You may want to use point mark instead.`}function Ko(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}function Jo(e){return`Invalid aggregation operator "${e}"`}function Xo(e,t){return`Missing type for channel "${e}", using "${t}" instead.`}function Zo(e,t){let{fill:n,stroke:r}=t;return`Dropping color ${e} as the plot also has `+(n&&r?"fill and stroke":n?"fill":"stroke")}function es(e,t){return`Dropping ${Q(e)} from channel "${t}" since it does not contain data field or value.`}function ts(e,t,n){return`${e}-encoding with type ${t} is deprecated. Replacing with ${n}-encoding.`}const ns="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function rs(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`}function is(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function as(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function os(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function ss(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}const ls="Bar mark should not be used with point scale when rangeStep is null. Please use band scale instead.";function cs(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 us(e,t){return`Specified orient "${e}" overridden with "${t}"`}const ds="custom domain scale cannot be unioned with default field-based domain";function fs(e){return`Cannot use the scale property "${e}" with non-color channel.`}function ps(e){return`Using unaggregated domain with raw field has no effect (${Q(e)}).`}function hs(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function ms(e){return`Unaggregated domain is currently unsupported for log scale (${Q(e)}).`}function gs(e){return`Cannot apply size to non-oriented mark "${e}".`}function ys(e){return`rangeStep for "${e}" is dropped as top-level ${e==="x"?"width":"height"} is provided.`}function vs(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}function bs(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}function xs(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function Es(e,t){return`Scale type "${t}" does not work with mark "${e}".`}function Ts(e,t,n,r){return`Conflicting ${t.toString()} property "${e.toString()}" (${Q(n)} and ${Q(r)}). Using ${Q(n)}.`}function Ss(e,t,n,r){return`Conflicting ${t.toString()} property "${e.toString()}" (${Q(n)} and ${Q(r)}). Using the union of the two domains.`}function Ns(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 Cs(e){return`Dropping sort property ${Q(e)} as unioned domains only support boolean or op 'count'.`}const ws="Unable to merge domains",As="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",Os="Invalid channel for axis.";function ks(e){return`Cannot stack "${e}" if there is already "${e}2"`}function Ms(e){return`Cannot stack non-linear scale (${e})`}function Is(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}")`}function Us(e,t){return`Invalid ${e}: ${Q(t)}`}function Fs(e){return`Time unit "${e}" is not supported. We are replacing it with ${e.replace("day","date")}.`}function Ds(e){return`Dropping day from datetime ${Q(e)} as day cannot be combined with other units.`}function _s(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}function js(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}function Ps(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}function Rs(e,t){return`Center is not needed to be specified in ${t} when extent is ${e}.`}function $s(e){return`1D error band does not support ${e}`}function Bs(e){return`Channel ${e} is required for "binned" bin`}function Ls(e){return`Domain for ${e} is required for threshold scale`}const ee=Ao;var jr=lo(2);function ge(...e){jr.warn.apply(jr,arguments)}const Ws={quantitative:1,ordinal:1,temporal:1,nominal:1,geojson:1},te="quantitative",Ce="ordinal",ye="temporal",we="nominal";function qs(e){if(e)switch(e=e.toLowerCase(),e){case"q":case te:return"quantitative";case"t":case ye:return"temporal";case"o":case Ce:return"ordinal";case"n":case we:return"nominal";case"geojson":return"geojson"}}var F;(function(e){e.LINEAR="linear",e.LOG="log",e.POW="pow",e.SQRT="sqrt",e.SYMLOG="symlog",e.TIME="time",e.UTC="utc",e.QUANTILE="quantile",e.QUANTIZE="quantize",e.THRESHOLD="threshold",e.BIN_ORDINAL="bin-ordinal",e.ORDINAL="ordinal",e.POINT="point",e.BAND="band"})(F||(F={}));const Hs=j({linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"}),Pr=["linear","log","pow","sqrt","symlog","time","utc"];var Gs=De(Pr),zs=De(["quantile","quantize","threshold"]),Ys=De(Pr.concat(["quantile","quantize","threshold"])),Qs=De(["ordinal","bin-ordinal","point","band"]);function Ae(e){return e in Qs}function Vs(e){return e in Ys}function _e(e){return e in Gs}function Ks(e){return e in zs}var Xt={type:1,domain:1,align:1,range:1,rangeStep: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};const Rr=j(Xt);var{type:Gf,domain:zf,range:Yf,rangeStep:Qf,scheme:Vf}=Xt;j(Ue(Xt,["type","domain","range","rangeStep","scheme"])),Xs();function Zt(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!G(["point","band","identity"],e);case"bins":return!G(["point","band","identity","ordinal"],e);case"round":return _e(e)||e==="band"||e==="point";case"padding":return _e(e)||G(["point","band"],e);case"paddingOuter":case"rangeStep":case"align":return G(["point","band"],e);case"paddingInner":return e==="band";case"clamp":return _e(e);case"nice":return _e(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return Vs(e)&&!G(["log","time","utc","threshold","quantile"],e)}}function Js(e,t){switch(t){case"interpolate":case"scheme":return ft(e)?void 0:ee.cannotUseScalePropertyWithNonColor(e);case"align":case"type":case"bins":case"domain":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeStep":case"reverse":case"round":case"clamp":case"zero":return}}function $r(e,t){return G(["ordinal","nominal"],t)?e===void 0||Ae(e):t==="temporal"?G([F.TIME,F.UTC,void 0],e):t==="quantitative"?G([F.LOG,F.POW,F.SQRT,F.SYMLOG,F.QUANTILE,F.QUANTIZE,F.THRESHOLD,F.LINEAR,void 0],e):!0}function Br(e,t){switch(e){case"x":case"y":return _e(t)||G(["band","point"],t);case He:case ut:case st:case lt:case ct:return _e(t)||Ks(t)||G(["band","point"],t);case ue:case it:case at:return t!=="band";case ot:return t==="ordinal"}return!1}function Xs(){let e={};for(let t of vo)for(let n of j(Ws))for(let r of Hs){let a=Zs(t,n);Br(t,r)&&$r(r,n)&&(e[a]=e[a]||[],e[a].push(r))}return e}function Zs(e,t){return e+"_"+t}var ne=ce(((e,t)=>{var n=t.exports,r="__name__";n.namedfunc=function(o,l){return l[r]=o,l},n.name=function(o){return o==null?null:o[r]},n.identity=function(o){return o},n.true=n.namedfunc("true",function(){return!0}),n.false=n.namedfunc("false",function(){return!1}),n.duplicate=function(o){return JSON.parse(JSON.stringify(o))},n.equal=function(o,l){return JSON.stringify(o)===JSON.stringify(l)},n.extend=function(o){for(var l,u,p=1,f=arguments.length;p<f;++p)for(u in l=arguments[p],l)o[u]=l[u];return o},n.length=function(o){return o!=null&&o.length!=null?o.length:null},n.keys=function(o){var l=[],u;for(u in o)l.push(u);return l},n.vals=function(o){var l=[],u;for(u in o)l.push(o[u]);return l},n.toMap=function(o,l){return(l=n.$(l))?o.reduce(function(u,p){return u[l(p)]=1,u},{}):o.reduce(function(u,p){return u[p]=1,u},{})},n.keystr=function(o){var l=o.length;if(!l)return"";for(var u=String(o[0]),p=1;p<l;++p)u+="|"+String(o[p]);return u};var a=Object.prototype.toString;n.isObject=function(o){return o===Object(o)},n.isFunction=function(o){return a.call(o)==="[object Function]"},n.isString=function(o){return typeof value=="string"||a.call(o)==="[object String]"},n.isArray=Array.isArray||function(o){return a.call(o)==="[object Array]"},n.isNumber=function(o){return typeof o=="number"||a.call(o)==="[object Number]"},n.isBoolean=function(o){return o===!0||o===!1||a.call(o)=="[object Boolean]"},n.isDate=function(o){return a.call(o)==="[object Date]"},n.isValid=function(o){return o!=null&&o===o},n.isBuffer=typeof Buffer=="function"&&Buffer.isBuffer||n.false,n.number=function(o){return o==null||o===""?null:+o},n.boolean=function(o){return o==null||o===""?null:o==="false"?!1:!!o},n.date=function(o,l){var u=l||Date;return o==null||o===""?null:u.parse(o)},n.array=function(o){return o==null?[]:n.isArray(o)?o:[o]},n.str=function(o){return n.isArray(o)?"["+o.map(n.str)+"]":n.isObject(o)||n.isString(o)?JSON.stringify(o).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):o};var i=/\[(.*?)\]|[^.\[]+/g;n.field=function(o){return String(o).match(i).map(function(l){return l[0]==="["?l[1]!=="'"&&l[1]!=='"'?l.slice(1,-1):l.slice(2,-2).replace(/\\(["'])/g,"$1"):l})},n.accessor=function(o){return o==null||n.isFunction(o)?o:n.namedfunc(o,Function("x","return x["+n.field(o).map(n.str).join("][")+"];"))},n.$=n.accessor,n.mutator=function(o){var l;return n.isString(o)&&(l=n.field(o)).length>1?function(u,p){for(var f=0;f<l.length-1;++f)u=u[l[f]];u[l[f]]=p}:function(u,p){u[o]=p}},n.$func=function(o,l){return function(u){u=n.$(u)||n.identity;var p=o+(n.name(u)?"_"+n.name(u):"");return n.namedfunc(p,function(f){return l(u(f))})}},n.$valid=n.$func("valid",n.isValid),n.$length=n.$func("length",n.length),n.$in=function(o,l){o=n.$(o);var u=n.isArray(l)?n.toMap(l):l;return function(p){return!!u[o(p)]}},n.comparator=function(o){var l=[];return o===void 0&&(o=[]),o=n.array(o).map(function(u){var p=1;return u[0]==="-"?(p=-1,u=u.slice(1)):u[0]==="+"&&(p=1,u=u.slice(1)),l.push(p),n.accessor(u)}),function(u,p){var f,d,g,y;for(f=0,d=o.length;f<d;++f)if(g=o[f],y=n.cmp(g(u),g(p)),y)return y*l[f];return 0}},n.cmp=function(o,l){return(o<l||o==null)&&l!=null?-1:(o>l||l==null)&&o!=null?1:(l=l instanceof Date?+l:l,(o=o instanceof Date?+o:o)!==o&&l===l?-1:l!==l&&o===o?1:0)},n.numcmp=function(o,l){return o-l},n.stablesort=function(o,l,u){var p=o.reduce(function(f,d,g){return f[u(d)]=g,f},{});return o.sort(function(f,d){var g=l(f),y=l(d);return g<y?-1:g>y?1:p[u(f)]-p[u(d)]}),o},n.permute=function(o){for(var l=o.length,u,p;l;)p=Math.floor(Math.random()*l--),u=o[l],o[l]=o[p],o[p]=u},n.pad=function(o,l,u,p){p||(p=" ");var f=l-o.length;if(f<=0)return o;switch(u){case"left":return s(f,p)+o;case"middle":case"center":return s(Math.floor(f/2),p)+o+s(Math.ceil(f/2),p);default:return o+s(f,p)}};function s(o,l){var u="",p;for(p=0;p<o;++p)u+=l;return u}n.truncate=function(o,l,u,p,f){var d=o.length;if(d<=l)return o;f=f===void 0?"\u2026":String(f);var g=Math.max(0,l-f.length);switch(u){case"left":return f+(p?c(o,g,1):o.slice(d-g));case"middle":case"center":var y=Math.ceil(g/2),v=Math.floor(g/2);return(p?c(o,y):o.slice(0,y))+f+(p?c(o,v,1):o.slice(d-v));default:return(p?c(o,g):o.slice(0,g))+f}};function c(o,l,u){var p=0,f=o.split(h);return o=u?(f=f.reverse()).filter(function(d){return p+=d.length,p<=l}).reverse():f.filter(function(d){return p+=d.length,p<=l}),o.length?o.join("").trim():f[0].slice(0,l)}var h=/([\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u2028\u2029\u3000\uFEFF])/})),Lr=H(ne()),U=H(ne());function K(e,t){return e.indexOf(t)!==-1}function oe(e,t){for(let n=0;n<e.length;n++)if(!t(e[n],n))return!1;return!0}function z(e,t,n){if(e.forEach)e.forEach.call(n,t);else for(let r in e)t.call(n,e[r],r,e)}function de(e,t){let n=0,r;for(r in e)if(t(e[r],r,n++))return!0;return!1}function el(e,t){return e.filter(function(n){return!K(t,n)})}function tl(e){return Object.keys(e)}function se(e){return!!e.parent}var Wr={channel:1,aggregate:1,autoCount:1,bin:1,timeUnit:1,hasFn:1,sort:1,stack:1,field:1,type:1,format:1,scale:1,axis:1,legend:1,value:1};const en=tl(Wr);function nl(e){return e in Wr}var rl={bin:1,scale:1,sort:1,axis:1,legend:1};function tn(e){return rl[e]}const il=["maxbins","divide","extent","base","step","steps","minstep"],al=["field","op","order"];var qr=il.map(e=>({parent:"bin",child:e}));const nn=al.map(e=>({parent:"sort",child:e})),pt=Rr.map(e=>({parent:"scale",child:e}));var Hr=Fr.map(e=>({parent:"axis",child:e})),Gr=_r.map(e=>({parent:"legend",child:e}));const ht=[].concat(qr,nn,pt,Hr,Gr),zr=["width","height","background","padding","title"];var Yr=".";function mt(e){return se(e)?e.parent+Yr+e.child:e}function ol(e){let t=e.split(Yr);if(t.length===1)return e;if(t.length===2)return{parent:t[0],child:t[1]};throw"Invalid property key with "+t.length+" dots: "+e}var sl=ht.reduce((e,t)=>(e[t.parent]=e[t.parent]||[],e[t.parent][t.child]=t,e),{});function fe(e,t){return(sl[e]||{})[t]}function Qr(e){return nl(e)||se(e)}const ll=[].concat(en,ht),Vr=["type","field","bin","timeUnit","aggregate","autoCount","channel","mark","stack","scale","sort","axis","legend"].concat(qr,pt,Hr,Gr,nn);var m;(function(e){e.MARK="mark",e.TRANSFORM="transform",e.STACK="stack",e.FORMAT="format",e.CHANNEL="channel",e.AGGREGATE="aggregate",e.AUTOCOUNT="autoCount",e.BIN="bin",e.HAS_FN="hasFn",e.TIMEUNIT="timeUnit",e.FIELD="field",e.TYPE="type",e.SORT="sort",e.SCALE="scale",e.AXIS="axis",e.LEGEND="legend",e.WIDTH="width",e.HEIGHT="height",e.BACKGROUND="background",e.PADDING="padding",e.TITLE="title"})(m||(m={}));const ze="area",gt="line",Ye="point",rn="rect",an="rule",yt="text",vt="tick",on="circle",sn="square";var cl={area:1,bar:1,line:1,point:1,text:1,tick:1,trail:1,rect:1,geoshape:1,rule:1,circle:1,square:1};function ul(e){return G(["line","area","trail"],e)}const dl=j(cl);function fl(e){return e.type}De(dl),["january","february","march","april","may","june","july","august","september","october","november","december"].map(e=>e.substr(0,3)),["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].map(e=>e.substr(0,3));var B;(function(e){e.YEAR="year",e.MONTH="month",e.DAY="day",e.DATE="date",e.HOURS="hours",e.MINUTES="minutes",e.SECONDS="seconds",e.MILLISECONDS="milliseconds",e.YEARMONTH="yearmonth",e.YEARMONTHDATE="yearmonthdate",e.YEARMONTHDATEHOURS="yearmonthdatehours",e.YEARMONTHDATEHOURSMINUTES="yearmonthdatehoursminutes",e.YEARMONTHDATEHOURSMINUTESSECONDS="yearmonthdatehoursminutesseconds",e.MONTHDATE="monthdate",e.MONTHDATEHOURS="monthdatehours",e.HOURSMINUTES="hoursminutes",e.HOURSMINUTESSECONDS="hoursminutesseconds",e.MINUTESSECONDS="minutesseconds",e.SECONDSMILLISECONDS="secondsmilliseconds",e.QUARTER="quarter",e.YEARQUARTER="yearquarter",e.QUARTERMONTH="quartermonth",e.YEARQUARTERMONTH="yearquartermonth",e.UTCYEAR="utcyear",e.UTCMONTH="utcmonth",e.UTCDAY="utcday",e.UTCDATE="utcdate",e.UTCHOURS="utchours",e.UTCMINUTES="utcminutes",e.UTCSECONDS="utcseconds",e.UTCMILLISECONDS="utcmilliseconds",e.UTCYEARMONTH="utcyearmonth",e.UTCYEARMONTHDATE="utcyearmonthdate",e.UTCYEARMONTHDATEHOURS="utcyearmonthdatehours",e.UTCYEARMONTHDATEHOURSMINUTES="utcyearmonthdatehoursminutes",e.UTCYEARMONTHDATEHOURSMINUTESSECONDS="utcyearmonthdatehoursminutesseconds",e.UTCMONTHDATE="utcmonthdate",e.UTCMONTHDATEHOURS="utcmonthdatehours",e.UTCHOURSMINUTES="utchoursminutes",e.UTCHOURSMINUTESSECONDS="utchoursminutesseconds",e.UTCMINUTESSECONDS="utcminutesseconds",e.UTCSECONDSMILLISECONDS="utcsecondsmilliseconds",e.UTCQUARTER="utcquarter",e.UTCYEARQUARTER="utcyearquarter",e.UTCQUARTERMONTH="utcquartermonth",e.UTCYEARQUARTERMONTH="utcyearquartermonth"})(B||(B={}));var ln={year:1,quarter:1,month:1,day:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};const Kr=j(ln);function pl(e){return!!ln[e]}var cn={utcyear:1,utcquarter:1,utcmonth:1,utcday:1,utcdate:1,utchours:1,utcminutes:1,utcseconds:1,utcmilliseconds:1};function hl(e){return!!cn[e]}var ml={yearquarter:1,yearquartermonth:1,yearmonth:1,yearmonthdate:1,yearmonthdatehours:1,yearmonthdatehoursminutes:1,yearmonthdatehoursminutesseconds:1,quartermonth:1,monthdate:1,monthdatehours:1,hoursminutes:1,hoursminutesseconds:1,minutesseconds:1,secondsmilliseconds:1},Jr={utcyearquarter:1,utcyearquartermonth:1,utcyearmonth:1,utcyearmonthdate:1,utcyearmonthdatehours:1,utcyearmonthdatehoursminutes:1,utcyearmonthdatehoursminutesseconds:1,utcquartermonth:1,utcmonthdate:1,utcmonthdatehours:1,utchoursminutes:1,utchoursminutesseconds:1,utcminutesseconds:1,utcsecondsmilliseconds:1},gl=Object.assign({},cn,Jr);function yl(e){return!!gl[e]}var Xr=Object.assign({},ln,cn,ml,Jr);j(Xr);function vl(e){return!!Xr[e]}var bl={year:"setFullYear",month:"setMonth",date:"setDate",hours:"setHours",minutes:"setMinutes",seconds:"setSeconds",milliseconds:"setMilliseconds",quarter:null,day:null};function xl(e,t){let n=yl(e),r=n?new Date(Date.UTC(1972,0,1,0,0,0,0)):new Date(1972,0,1,0,0,0,0);for(let a of Kr)if(ei(e,a))switch(a){case B.DAY:throw Error("Cannot convert to TimeUnits containing 'day'");case B.QUARTER:{let{getDateMethod:i,setDateMethod:s}=Zr("month",n);r[s](Math.floor(t[i]()/3)*3);break}default:{let{getDateMethod:i,setDateMethod:s}=Zr(a,n);r[s](t[i]())}}return r}function Zr(e,t){let n=bl[e];return{setDateMethod:t?"setUTC"+n.substr(3):n,getDateMethod:"get"+(t?"UTC":"")+n.substr(3)}}function ei(e,t){let n=e.indexOf(t);return n>-1&&(t!==B.SECONDS||n===0||e.charAt(n-1)!=="i")}function A(e){return bt(e)||El(e)}function bt(e){return e==="?"}function El(e){return e!==void 0&&e!=null&&(!!e.enum||!!e.name)&&!(0,Lr.isArray)(e)}function un(e,t,n){return(0,U.extend)({},{name:t,enum:n},e==="?"?{}:e)}function dn(e){let t={},n={};for(let r of e){let a=[0];for(let s=0;s<r.length;s++)r.charAt(s).toUpperCase()===r.charAt(s)&&a.push(s);let i=a.map(s=>r.charAt(s)).join("").toLowerCase();if(!n[i]){t[r]=i,n[i]=!0;continue}if(a[a.length-1]!==r.length-1&&(i=a.concat([r.length-1]).map(s=>r.charAt(s)).join("").toLowerCase(),!n[i])){t[r]=i,n[i]=!0;continue}for(let s=1;!t[r];s++){let c=i+"_"+s;if(!n[c]){t[r]=c,n[c]=!0;break}}}return t}const xt={mark:"m",channel:"c",aggregate:"a",autoCount:"#",hasFn:"h",bin:"b",sort:"so",stack:"st",scale:"s",format:"f",axis:"ax",legend:"l",value:"v",timeUnit:"tu",field:"f",type:"t",binProps:{maxbins:"mb",min:"mi",max:"ma",base:"b",step:"s",steps:"ss",minstep:"ms",divide:"d"},sortProps:{field:"f",op:"o",order:"or"},scaleProps:dn(Rr),axisProps:dn(Fr),legendProps:dn(_r)};function Qe(e){if(se(e))return xt[e.parent]+"-"+xt[e.parent+"Props"][e.child];if(xt[e])return xt[e];throw Error("Default name undefined for "+e)}var V=[!1,!0],Tl={maxbins:[5,10,20],extent:[void 0],base:[10],step:[void 0],steps:[void 0],minstep:[void 0],divide:[[5,2]],binned:[!1],anchor:[void 0],nice:[!0]},Sl={field:[void 0],op:["min","mean"],order:["ascending","descending"]},Nl={type:[void 0,F.LOG],domain:[void 0],base:[void 0],exponent:[1,2],constant:[void 0],bins:[void 0],clamp:V,nice:V,reverse:V,round:V,zero:V,padding:[void 0],paddingInner:[void 0],paddingOuter:[void 0],interpolate:[void 0],range:[void 0],rangeStep:[17,21],scheme:[void 0]},Cl={zindex:[1,0],offset:[void 0],orient:[void 0],values:[void 0],bandPosition:[void 0],encoding:[void 0],domain:V,domainColor:[void 0],domainDash:[void 0],domainDashOffset:[void 0],domainOpacity:[void 0],domainWidth:[void 0],formatType:[void 0],grid:V,gridColor:[void 0],gridDash:[void 0],gridDashOffset:[void 0],gridOpacity:[void 0],gridWidth:[void 0],format:[void 0],labels:V,labelAlign:[void 0],labelAngle:[void 0],labelBaseline:[void 0],labelColor:[void 0],labelFlushOffset:[void 0],labelFont:[void 0],labelFontSize:[void 0],labelFontStyle:[void 0],labelFontWeight:[void 0],labelLimit:[void 0],labelOpacity:[void 0],labelSeparation:[void 0],labelOverlap:[void 0],labelPadding:[void 0],labelBound:[void 0],labelFlush:[void 0],maxExtent:[void 0],minExtent:[void 0],position:[void 0],ticks:V,tickColor:[void 0],tickCount:[void 0],tickDash:[void 0],tickExtra:[void 0],tickDashOffset:[void 0],tickMinStep:[void 0],tickOffset:[void 0],tickOpacity:[void 0],tickRound:[void 0],tickSize:[void 0],tickWidth:[void 0],title:[void 0],titleAlign:[void 0],titleAnchor:[void 0],titleAngle:[void 0],titleBaseline:[void 0],titleColor:[void 0],titleFont:[void 0],titleFontSize:[void 0],titleFontStyle:[void 0],titleFontWeight:[void 0],titleLimit:[void 0],titleOpacity:[void 0],titlePadding:[void 0],titleX:[void 0],titleY:[void 0]};const wl={mark:[Ye,"bar",gt,ze,rn,vt,yt],channel:["x","y","row",Ne,He,ue],aggregate:[void 0,"mean"],autoCount:V,bin:V,hasFn:V,timeUnit:[void 0,B.YEAR,B.MONTH,B.MINUTES,B.SECONDS],field:[void 0],type:[we,Ce,te,ye],sort:["ascending","descending"],stack:["zero","normalize","center",null],value:[void 0],format:[void 0],title:[void 0],scale:[!0],axis:V,legend:V,binProps:Tl,sortProps:Sl,scaleProps:Nl,axisProps:Cl,legendProps:{orient:["left","right"],format:[void 0],type:[void 0],values:[void 0],zindex:[void 0],clipHeight:[void 0],columnPadding:[void 0],columns:[void 0],cornerRadius:[void 0],direction:[void 0],encoding:[void 0],fillColor:[void 0],formatType:[void 0],gridAlign:[void 0],offset:[void 0],padding:[void 0],rowPadding:[void 0],strokeColor:[void 0],labelAlign:[void 0],labelBaseline:[void 0],labelColor:[void 0],labelFont:[void 0],labelFontSize:[void 0],labelFontStyle:[void 0],labelFontWeight:[void 0],labelLimit:[void 0],labelOffset:[void 0],labelOpacity:[void 0],labelOverlap:[void 0],labelPadding:[void 0],labelSeparation:[void 0],legendX:[void 0],legendY:[void 0],gradientLength:[void 0],gradientOpacity:[void 0],gradientStrokeColor:[void 0],gradientStrokeWidth:[void 0],gradientThickness:[void 0],symbolDash:[void 0],symbolDashOffset:[void 0],symbolFillColor:[void 0],symbolOffset:[void 0],symbolOpacity:[void 0],symbolSize:[void 0],symbolStrokeColor:[void 0],symbolStrokeWidth:[void 0],symbolType:[void 0],tickCount:[void 0],tickMinStep:[void 0],title:[void 0],titleAnchor:[void 0],titleAlign:[void 0],titleBaseline:[void 0],titleColor:[void 0],titleFont:[void 0],titleFontSize:[void 0],titleFontStyle:[void 0],titleFontWeight:[void 0],titleLimit:[void 0],titleOpacity:[void 0],titleOrient:[void 0],titlePadding:[void 0]}};function fn(e,t,n){if(e==="field"||se(e)&&e.parent==="sort"&&e.child==="field")return t.fieldNames();let r;if(r=se(e)?n.enum[e.parent+"Props"][e.child]:n.enum[e],r!==void 0)return r;throw Error("No default enumValues for "+JSON.stringify(e))}const Ve={verbose:!1,defaultSpecConfig:{line:{point:!0},scale:{useUnaggregatedDomain:!0}},propertyPrecedence:Vr.map(mt),enum:wl,numberNominalProportion:.05,numberNominalLimit:40,constraintManuallySpecifiedValue:!1,autoAddCount:!1,hasAppropriateGraphicTypeForMark:!0,omitAggregate:!1,omitAggregatePlotWithDimensionOnlyOnFacet:!0,omitAggregatePlotWithoutDimension:!1,omitBarLineAreaWithOcclusion:!0,omitBarTickWithSize:!0,omitMultipleNonPositionalChannels:!0,omitRaw:!1,omitRawContinuousFieldForAggregatePlot:!0,omitRepeatedField:!0,omitNonPositionalOrFacetOverPositionalChannels:!0,omitTableWithOcclusionIfAutoAddCount:!0,omitVerticalDotPlot:!1,omitInvalidStackSpec:!0,omitNonSumStack:!0,preferredBinAxis:"x",preferredTemporalAxis:"x",preferredOrdinalAxis:"y",preferredNominalAxis:"y",preferredFacet:"row",minCardinalityForBin:15,maxCardinalityForCategoricalColor:20,maxCardinalityForFacet:20,maxCardinalityForShape:6,timeUnitShouldHaveVariation:!0,typeMatchesSchemaType:!0,stylize:!0,smallRangeStepForHighCardinalityOrFacet:{maxCardinality:10,rangeStep:12},nominalColorScaleForHighCardinality:{maxCardinality:10,palette:"category20"},xAxisOnTopForHighYCardinalityWithoutColumn:{maxCardinality:30},maxGoodCardinalityForFacet:5,maxGoodCardinalityForColor:7,minPercentUniqueForKey:.8,minCardinalityForKey:50};var ti={argmax:1,argmin:1,average:1,count:1,distinct: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};function Al(e){return!!e&&!!e.argmin}function Ol(e){return!!e&&!!e.argmax}j(ti);function kl(e){return Gt(e)&&!!ti[e]}const ni=["count","sum","distinct","valid","missing"];De(["mean","average","median","q1","q3","min","max"]);function Ml(e){return Yt(e)&&(e=jl(e,void 0)),"bin"+j(e).map(t=>uo(`_${t}_${e[t]}`)).join("")}function ri(e){return e===!0||Il(e)&&!e.binned}function Il(e){return gr(e)}function pn(e){switch(e){case"row":case Ne:case He:case ue:case it:case at:case ut:case st:case lt:case ct:case ot:return 6;default:return 10}}function ii(e){return!!e&&!!e.condition&&!nt(e.condition)&&ve(e.condition)}function ve(e){return!!e&&(!!e.field||e.aggregate==="count")}function hn(e){return ve(e)&&Gt(e.field)}function Ul(e){return!!e.op}function mn(e,t={}){let n=e.field,r=t.prefix,a=t.suffix,i="";if(Dl(e))n=mo("count");else{let s;if(!t.nofn)if(Ul(e))s=e.op;else{let{bin:c,aggregate:h,timeUnit:o}=e;ri(c)?(s=Ml(c),a=(t.binSuffix||"")+(t.suffix||"")):h?Ol(h)?(i=`.${n}`,n=`argmax_${h.argmax}`):Al(h)?(i=`.${n}`,n=`argmin_${h.argmin}`):s=String(h):o&&(s=String(o))}s&&(n=n?`${s}_${n}`:s)}return a&&(n=`${n}_${a}`),r&&(n=`${r}_${n}`),t.forAs?n:t.expr?fo(n,t.expr)+i:po(n)+i}function ai(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return!!e.bin;case"temporal":return!1}throw Error(ee.invalidFieldType(e.type))}function Fl(e){return!ai(e)}function Dl(e){return e.aggregate==="count"}function _l(e){if(ve(e))return e;if(ii(e))return e.condition}function jl(e,t){return Yt(e)?{maxbins:pn(t)}:e==="binned"?{binned:!0}:!e.maxbins&&!e.step?Object.assign({},e,{maxbins:pn(t)}):e}var je={compatible:!0};function Pl(e,t){let 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"row":case"column":case"facet":return Fl(e)?{compatible:!1,warning:ee.facetChannelShouldBeDiscrete(t)}:je;case"x":case"y":case"color":case"fill":case"stroke":case"text":case"detail":case"key":case"tooltip":case"href":return je;case"longitude":case"longitude2":case"latitude":case"latitude2":return n==="quantitative"?je:{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`};case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":case"size":case"x2":case"y2":return n==="nominal"&&!e.sort?{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`}:je;case"shape":return G(["ordinal","nominal","geojson"],e.type)?je:{compatible:!1,warning:"Shape channel should be used with only either discrete or geojson data."};case"order":return e.type==="nominal"&&!("sort"in e)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:je}throw Error("channelCompatability not implemented for channel "+t)}function Rl(e,t,n,r){let a=$l(t,n,r),{type:i}=e;return Eo(t)?i===void 0?a:Br(t,i)?$r(i,n.type)?i:(ge(ee.scaleTypeNotWorkWithFieldDef(i,a)),a):(ge(ee.scaleTypeNotWorkWithChannel(t,i,a)),a):null}function $l(e,t,n){switch(t.type){case"nominal":case"ordinal":return ft(e)||Jt(e)==="discrete"?(e==="shape"&&t.type==="ordinal"&&ge(ee.discreteChannelCannotEncode(e,"ordinal")),"ordinal"):G(["x","y"],e)&&(G(["rect","bar","rule"],n)||n==="bar")?"band":"point";case"temporal":return ft(e)?"time":Jt(e)==="discrete"?(ge(ee.discreteChannelCannotEncode(e,"temporal")),"ordinal"):"time";case"quantitative":return ft(e)?ri(t.bin)?"bin-ordinal":"linear":Jt(e)==="discrete"?(ge(ee.discreteChannelCannotEncode(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw Error(ee.invalidFieldType(t.type))}var le;(function(e){e.QUANTITATIVE=te,e.ORDINAL=Ce,e.TEMPORAL=ye,e.NOMINAL=we,e.KEY="key"})(le||(le={}));function oi(e){return e==="ordinal"||e==="nominal"||e===le.KEY}var re=class ir{constructor(t=null){this.index=t?Object.assign({},t):{}}has(t){return mt(t)in this.index}get(t){return this.index[mt(t)]}set(t,n){return this.index[mt(t)]=n,this}setByKey(t,n){this.index[t]=n}map(t){let n=new ir;for(let r in this.index)n.index[r]=t(this.index[r]);return n}size(){return(0,U.keys)(this.index).length}duplicate(){return new ir(this.index)}};function si(e,t){let n=e&&e[t];return n?nt(n)?co(n,r=>!!r.field):ve(n)||ii(n):!1}var Bl={zero:1,center:1,normalize:1};function Ll(e){return!!Bl[e]}const Wl=["bar",ze,an,Ye,on,sn,gt,yt,vt],ql=["bar",ze];function Hl(e){let t=e.x,n=e.y;if(ve(t)&&ve(n))if(t.type==="quantitative"&&n.type==="quantitative"){if(t.stack)return"x";if(n.stack)return"y";if(!!t.aggregate!=!!n.aggregate)return t.aggregate?"x":"y"}else{if(t.type==="quantitative")return"x";if(n.type==="quantitative")return"y"}else{if(ve(t)&&t.type==="quantitative")return"x";if(ve(n)&&n.type==="quantitative")return"y"}}function Gl(e,t,n,r={}){let a=fl(e)?e.type:e;if(!G(Wl,a))return null;let i=Hl(t);if(!i)return null;let s=t[i],c=hn(s)?mn(s,{}):void 0,h=i==="x"?"y":"x",o=t[h],l=hn(o)?mn(o,{}):void 0,u=Or.reduce((f,d)=>{if(d!=="tooltip"&&si(t,d)){let g=t[d];(nt(g)?g:[g]).forEach(y=>{let v=_l(y);if(v.aggregate)return;let b=hn(v)?mn(v,{}):void 0;(!b||b!==l&&b!==c)&&f.push({channel:d,fieldDef:v})})}return f},[]),p;if(s.stack===void 0?u.length>0&&(p=G(ql,a)?ho(n,"zero"):n):p=Yt(s.stack)?s.stack?"zero":null:s.stack,!p||!Ll(p))return null;if(s.scale&&s.scale.type&&s.scale.type!==F.LINEAR){if(r.disallowNonLinearStack)return null;ge(ee.cannotStackNonLinearScale(s.scale.type))}return si(t,i==="x"?"x2":"y2")?(s.stack!==void 0&&ge(ee.cannotStackRangedMark(i)),null):(s.aggregate&&!G(ni,s.aggregate)&&ge(ee.stackNonSummativeAggregate(s.aggregate)),{groupbyChannel:o?h:void 0,fieldChannel:i,impute:ul(a),stackBy:u,offset:p})}var zl=H(ne());function Yl(e){return de(e.encodings,t=>O(t)&&!A(t.aggregate)&&!!t.aggregate||Tt(t))}function li(e){if(!Kl(e))return null;let t=hi(e.encodings,{schema:null,wildcardMode:"null"}),n=e.mark;return Gl(n,t,void 0,{disallowNonLinearStack:!0})}function Ql(e){for(let t of e.encodings)if(t[m.STACK]!==void 0&&!A(t[m.STACK]))return t[m.STACK]}function Vl(e){for(let t of e.encodings)if(t[m.STACK]!==void 0&&!A(t.channel))return t.channel;return null}function Kl(e){if(A(e.mark))return!1;let t=(0,zl.toMap)(el(ll,[m.STACK,m.CHANNEL,m.MARK,m.FIELD,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE])),n=e.encodings.filter(r=>!ae(r));for(let r of n)if(ci(r,{exclude:t}))return!1;return!0}function ci(e,t={}){if(!(0,U.isObject)(e))return!1;for(let n in e)if(e.hasOwnProperty(n)&&(A(e[n])&&(!t.exclude||!t.exclude[n])||ci(e[n],t)))return!0;return!1}var ui=H(ne());function Jl(e){return e.map(t=>Xl(t))}function Xl(e){return t=>e[t]===void 0?t:e[t]}function Oe(e,t){return A(e)?!bt(e)&&e.enum?"?"+JSON.stringify(e.enum):"?":t?t(e):e}function Et(e,t){return t?t(e):e}const gn=new re,yn=[].concat(Vr,nn,[m.TRANSFORM,m.STACK],zr).reduce((e,t)=>e.set(t,!0),new re),vn={axis:{x:!0,y:!0,row:!0,column:!0},legend:{color:!0,opacity:!0,size:!0,shape:!0},scale:{x:!0,y:!0,color:!0,opacity:!0,row:!0,column:!0,size:!0,shape:!0},sort:{x:!0,y:!0,path:!0,order:!0},stack:{x:!0,y:!0}};function Pe(e,t=yn,n=gn){let r=[];t.get(m.MARK)&&r.push(Oe(e.mark,n.get(m.MARK))),e.transform&&e.transform.length>0&&r.push("transform:"+JSON.stringify(e.transform));let a;if(t.get(m.STACK)&&(a=li(e)),e.encodings){let i=e.encodings.reduce((s,c)=>{if(!ae(c)){let h;h=a&&c.channel===a.fieldChannel?di(Object.assign({},c,{stack:a.offset}),t,n):di(c,t,n),h&&s.push(h)}return s},[]).sort().join("|");i&&r.push(i)}for(let i of zr){let s=i.toString();if(t.get(i)&&e[s]){let c=e[s];r.push(`${s}=${JSON.stringify(c)}`)}}return r.join("|")}function di(e,t=yn,n=gn){let r=[];if(t.get(m.CHANNEL)&&r.push(Oe(e.channel,n.get(m.CHANNEL))),O(e)){let a=fi(e,t,n);a&&r.push(a)}else ie(e)?r.push(e.value):P(e)&&r.push("autocount()");return r.join(":")}function fi(e,t=yn,n=gn){if(t.get(m.AGGREGATE)&&ae(e))return"-";let r=Zl(e,t,n),a=ec(e,t,n),i;if(O(e)){if(i=t.get("field")?Oe(e.field,n.get("field")):"...",t.get(m.TYPE))if(A(e.type))i+=","+Oe(e.type,n.get(m.TYPE));else{let s=((e.type||"quantitative")+"").substr(0,1);i+=","+Oe(s,n.get(m.TYPE))}i+=a.map(s=>{let c=s.value instanceof Array?"["+s.value+"]":s.value;return","+s.key+"="+c}).join("")}else P(e)&&(i="*,q");return i?r?((0,ui.isString)(r)?r:"?"+((0,U.keys)(r).length>0?JSON.stringify(r):""))+"("+i+")":i:null}function Zl(e,t,n){if(t.get(m.AGGREGATE)&&e.aggregate&&!A(e.aggregate))return Et(e.aggregate,n.get(m.AGGREGATE));if(t.get(m.AGGREGATE)&&Tt(e))return Et("count",n.get(m.AGGREGATE));if(t.get(m.TIMEUNIT)&&e.timeUnit&&!A(e.timeUnit))return Et(e.timeUnit,n.get(m.TIMEUNIT));if(t.get(m.BIN)&&e.bin&&!A(e.bin))return"bin";{let r=null;for(let a of[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN]){let i=e[a];t.get(a)&&e[a]&&A(i)&&(r||(r={}),r[a]=bt(i)?i:i.enum)}return r&&e.hasFn&&(r.hasFn=!0),r}}function ec(e,t,n){let r=[];if(!(0,U.isBoolean)(e.bin)&&!bt(e.bin)){let a=e.bin;for(let i in a){let s=fe("bin",i);s&&t.get(s)&&a[i]!==void 0&&r.push({key:i,value:Oe(a[i],n.get(s))})}r.sort((i,s)=>i.key.localeCompare(s.key))}for(let a of[m.SCALE,m.SORT,m.STACK,m.AXIS,m.LEGEND])if(!(!A(e.channel)&&!vn[a][e.channel])&&t.get(a)&&e[a]!==void 0){let i=e[a];if((0,U.isBoolean)(i)||i===null)r.push({key:a+"",value:i||!1});else if((0,ui.isString)(i))r.push({key:a+"",value:Et(JSON.stringify(i),n.get(a))});else{let s=[];for(let c in i){let h=fe(a,c);h&&t.get(h)&&i[c]!==void 0&&s.push({key:c,value:Oe(i[c],n.get(h))})}if(s.length>0){let c=s.sort((h,o)=>h.key.localeCompare(o.key)).reduce((h,o)=>(h[o.key]=o.value,h),{});r.push({key:a+"",value:JSON.stringify(c)})}}}return r}function bn(e,t,n){let r=[],a=0;for(let i=0;i<n;i++){let s=e.indexOf(t,a);if(s!==-1)r.push(e.substring(a,s)),a=s+1;else break}if(r.push(e.substr(a)),r.length!==n+1)for(;r.length!==n+1;)r.push("");return r}var tc;(function(e){function t(i,s){let c=s.indexOf("(")===-1?n(bn(s,",",2)):a(s);return Object.assign({channel:i},c)}e.encoding=t;function n(i){let s={};s.field=i[0],s.type=qs(i[1].toUpperCase())||"?";let c=i[2],h=0,o=0;for(;o<c.length;){let l=c.indexOf("=",o),u;if(l!==-1){let p=c.substring(o,l);if(c[o+p.length+1]==="{"){let f=o+p.length+1;h=r(f,c,"}");let d=c.substring(f,h+1);u=JSON.parse(d),o=h+2}else if(c[o+p.length+1]==="["){let f=o+p.length+1,d=r(f,c,"]"),g=c.substring(f,d+1);u=JSON.parse(g),o=d+2}else{let f=o,d=c.indexOf(",",o+p.length);d===-1&&(d=c.length),o=d+1,u=JSON.parse(c.substring(f+p.length+1,d))}tn(p)?s[p]=u:(s.bin=s.bin||{},s.bin[p]=u)}else break}return s}e.rawFieldDef=n;function r(i,s,c){for(let h=i;h<s.length;h++)if(s[h]===c)return h}e.getClosingIndex=r;function a(i){let s={};if(i[0]==="?"){let c=r(1,i,"}"),h=JSON.parse(i.substring(1,c+1));for(let o in h)(0,Lr.isArray)(h[o])?s[o]={enum:h[o]}:s[o]=h[o];return Object.assign({},s,n(bn(i.substring(c+2,i.length-1),",",2)))}else{let c=i.substring(0,i.indexOf("(")),h=bn(i.substring(c.length+1,i.length-1),",",2);if(kl(c))return Object.assign({aggregate:c},n(h));if(vl(c))return Object.assign({timeUnit:c},n(h));if(c==="bin")return Object.assign({bin:{}},n(h))}}e.fn=a})(tc||(tc={}));var pi=H(ne());function ie(e){return e!=null&&e.value!==void 0}function O(e){return e!=null&&(e.field||e.aggregate==="count")}function P(e){return e!=null&&"autoCount"in e}function ae(e){return P(e)&&e.autoCount===!1}function Tt(e){return P(e)&&e.autoCount===!0}var nc=[m.AGGREGATE,m.BIN,m.TIMEUNIT,m.FIELD,m.TYPE,m.SCALE,m.SORT,m.AXIS,m.LEGEND,m.STACK,m.FORMAT];function hi(e,t){let{wildcardMode:n="skip"}=t,r={};for(let a of e){if(ae(a))continue;let{channel:i}=a;if(A(i))throw Error("Cannot convert wildcard channel to a fixed channel");let s=ie(a)?rc(a):xn(a,t);if(s===null){if(t.wildcardMode==="null")return null;continue}r[i]=s}return r}function rc(e){let{value:t}=e;return A(t)?null:{value:t}}function xn(e,t={}){let{props:n=nc,schema:r,wildcardMode:a="skip"}=t;if(O(e)){let i={};for(let s of n){let c=e[s];if(A(c)){if(a==="skip")continue;return null}if(c!==void 0){if(!(!vn[s]||vn[s][e.channel]))continue;if(tn(s)&&(0,pi.isObject)(c)){for(let h in c=Object.assign({},c),c)if(A(c[h])){if(a==="null")return null;delete c[h]}}if(s==="bin"&&c===!1)continue;s==="type"&&c==="key"?i.type="nominal":i[s]=c}if(s===m.SCALE&&r&&e.type==="ordinal"){let h=e.scale,{ordinalDomain:o}=r.fieldSchema(e.field);h!==null&&o&&(i[m.SCALE]=Object.assign({domain:o},(0,pi.isObject)(h)?h:{}))}}return i}else{if(e.autoCount===!1)throw Error("Cannot convert {autoCount: false} into a field def");return{aggregate:"count",field:"*",type:"quantitative"}}}function Ke(e){return O(e)?!be(e)&&e.type!=="temporal":P(e)}function be(e){if(O(e)){let t=xn(e,{props:["bin","timeUnit","type"]});return ai(t)||!!t.timeUnit}return!1}function ke(e){let t=e.scale===!0||e.scale==="?"?{}:e.scale||{},{type:n,channel:r,timeUnit:a,bin:i}=e;if(A(t.type)||A(n)||A(r)||A(i))return;if(t.type)return t.type;if(n==="temporal"&&A(a)||n==="quantitative"&&A(i))return;let s={type:n===le.KEY?"nominal":n,timeUnit:a,bin:i};return Rl({type:t.type},r,s,void 0)}function L(e,t,n,r){function a(i){return e(i=new Date(+i)),i}return a.floor=a,a.round=function(i){var s=new Date(+i),c=new Date(i-1);return e(s),e(c),t(c,1),i-s<c-i?s:c},a.ceil=function(i){return e(i=new Date(i-1)),t(i,1),i},a.offset=function(i,s){return t(i=new Date(+i),s==null?1:Math.floor(s)),i},a.range=function(i,s,c){var h=[];if(i=new Date(i-1),s=new Date(+s),c=c==null?1:Math.floor(c),!(i<s)||!(c>0))return h;for(t(i,1),e(i),i<s&&h.push(new Date(+i));t(i,c),e(i),i<s;)h.push(new Date(+i));return h},a.filter=function(i){return L(function(s){for(;e(s),!i(s);)s.setTime(s-1)},function(s,c){for(;--c>=0;)for(;t(s,1),!i(s););})},n&&(a.count=function(i,s){return St.setTime(+i),Nt.setTime(+s),e(St),e(Nt),Math.floor(n(St,Nt))},a.every=function(i){return i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?a.filter(r?function(s){return r(s)%i===0}:function(s){return a.count(0,s)%i===0}):a}),a}var St,Nt,Y=q((()=>{St=new Date,Nt=new Date})),Ct,wt,ic=q((()=>{Y(),Ct=L(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e}),Ct.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?L(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):Ct},wt=Ct})),En,ac=q((()=>{Y(),En=L(function(e){e.setMilliseconds(0)},function(e,t){e.setTime(+e+t*1e3)},function(e,t){return(t-e)/1e3},function(e){return e.getSeconds()})})),Tn,oc=q((()=>{Y(),Tn=L(function(e){e.setSeconds(0,0)},function(e,t){e.setTime(+e+t*6e4)},function(e,t){return(t-e)/6e4},function(e){return e.getMinutes()})})),Sn,sc=q((()=>{Y(),Sn=L(function(e){e.setMinutes(0,0,0)},function(e,t){e.setTime(+e+t*36e5)},function(e,t){return(t-e)/36e5},function(e){return e.getHours()})})),Nn,lc=q((()=>{Y(),Nn=L(function(e){e.setHours(0,0,0,0)},function(e,t){e.setDate(e.getDate()+t)},function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5},function(e){return e.getDate()-1})}));function Me(e){return L(function(t){t.setHours(0,0,0,0),t.setDate(t.getDate()-(t.getDay()+7-e)%7)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5})}var At,Cn,wn,An,On,kn,Mn,In,cc=q((()=>{Y(),At=Me(0),Cn=Me(1),wn=Me(2),An=Me(3),On=Me(4),kn=Me(5),Mn=Me(6),In=At})),Un,uc=q((()=>{Y(),Un=L(function(e){e.setHours(0,0,0,0),e.setDate(1)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()})})),Fn,dc=q((()=>{Y(),Fn=L(function(e){e.setHours(0,0,0,0),e.setMonth(0,1)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()})})),Dn,fc=q((()=>{Y(),Dn=L(function(e){e.setUTCMilliseconds(0)},function(e,t){e.setTime(+e+t*1e3)},function(e,t){return(t-e)/1e3},function(e){return e.getUTCSeconds()})})),_n,pc=q((()=>{Y(),_n=L(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*6e4)},function(e,t){return(t-e)/6e4},function(e){return e.getUTCMinutes()})})),jn,hc=q((()=>{Y(),jn=L(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*36e5)},function(e,t){return(t-e)/36e5},function(e){return e.getUTCHours()})})),Pn,mc=q((()=>{Y(),Pn=L(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/864e5},function(e){return e.getUTCDate()-1})}));function Ie(e){return L(function(t){t.setUTCHours(0,0,0,0),t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/6048e5})}var Ot,Rn,$n,Bn,Ln,Wn,qn,Hn,gc=q((()=>{Y(),Ot=Ie(0),Rn=Ie(1),$n=Ie(2),Bn=Ie(3),Ln=Ie(4),Wn=Ie(5),qn=Ie(6),Hn=Ot})),Gn,yc=q((()=>{Y(),Gn=L(function(e){e.setUTCHours(0,0,0,0),e.setUTCDate(1)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()})})),zn,vc=q((()=>{Y(),zn=L(function(e){e.setUTCHours(0,0,0,0),e.setUTCMonth(0,1)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()})})),bc=sr({day:()=>Nn,days:()=>vi,friday:()=>kn,fridays:()=>Ni,hour:()=>Sn,hours:()=>yi,interval:()=>L,millisecond:()=>wt,milliseconds:()=>Yn,minute:()=>Tn,minutes:()=>gi,monday:()=>Cn,mondays:()=>xi,month:()=>Un,months:()=>Ai,saturday:()=>Mn,saturdays:()=>Ci,second:()=>En,seconds:()=>mi,sunday:()=>At,sundays:()=>bi,thursday:()=>On,thursdays:()=>Si,tuesday:()=>wn,tuesdays:()=>Ei,utcDay:()=>Pn,utcDays:()=>Di,utcFriday:()=>Wn,utcFridays:()=>Bi,utcHour:()=>jn,utcHours:()=>Fi,utcMillisecond:()=>ki,utcMilliseconds:()=>Mi,utcMinute:()=>_n,utcMinutes:()=>Ui,utcMonday:()=>Rn,utcMondays:()=>ji,utcMonth:()=>Gn,utcMonths:()=>qi,utcSaturday:()=>qn,utcSaturdays:()=>Li,utcSecond:()=>Dn,utcSeconds:()=>Ii,utcSunday:()=>Ot,utcSundays:()=>_i,utcThursday:()=>Ln,utcThursdays:()=>$i,utcTuesday:()=>$n,utcTuesdays:()=>Pi,utcWednesday:()=>Bn,utcWednesdays:()=>Ri,utcWeek:()=>Hn,utcWeeks:()=>Wi,utcYear:()=>zn,utcYears:()=>Hi,wednesday:()=>An,wednesdays:()=>Ti,week:()=>In,weeks:()=>wi,year:()=>Fn,years:()=>Oi}),Yn,mi,gi,yi,vi,bi,xi,Ei,Ti,Si,Ni,Ci,wi,Ai,Oi,ki,Mi,Ii,Ui,Fi,Di,_i,ji,Pi,Ri,$i,Bi,Li,Wi,qi,Hi,xc=q((()=>{Y(),ic(),ac(),oc(),sc(),lc(),cc(),uc(),dc(),fc(),pc(),hc(),mc(),gc(),yc(),vc(),Yn=wt.range,mi=En.range,gi=Tn.range,yi=Sn.range,vi=Nn.range,bi=At.range,xi=Cn.range,Ei=wn.range,Ti=An.range,Si=On.range,Ni=kn.range,Ci=Mn.range,wi=In.range,Ai=Un.range,Oi=Fn.range,ki=wt,Mi=Yn,Ii=Dn.range,Ui=_n.range,Fi=jn.range,Di=Pn.range,_i=Ot.range,ji=Rn.range,Pi=$n.range,Ri=Bn.range,$i=Ln.range,Bi=Wn.range,Li=qn.range,Wi=Hn.range,qi=Gn.range,Hi=zn.range})),Ec=ce(((e,t)=>{var n=(xc(),Ca(bc)),r=new Date,a=new Date(0,0,1).setFullYear(0),i=new Date(Date.UTC(0,0,1)).setUTCFullYear(0);function s(d){return r.setTime(+d),r}function c(d,g,y,v,b,x){var S={type:d,date:g,unit:y};return v?S.step=v:S.minstep=1,b!=null&&(S.min=b),x!=null&&(S.max=x),S}function h(d,g,y,v,b,x){return c(d,function(S){return g.offset(y,S)},function(S){return g.count(y,S)},v,b,x)}var o=[h("second",n.second,a),h("minute",n.minute,a),h("hour",n.hour,a),h("day",n.day,a,[1,7]),h("month",n.month,a,[1,3,6]),h("year",n.year,a),c("seconds",function(d){return new Date(1970,0,1,0,0,d)},function(d){return s(d).getSeconds()},null,0,59),c("minutes",function(d){return new Date(1970,0,1,0,d)},function(d){return s(d).getMinutes()},null,0,59),c("hours",function(d){return new Date(1970,0,1,d)},function(d){return s(d).getHours()},null,0,23),c("weekdays",function(d){return new Date(1970,0,4+d)},function(d){return s(d).getDay()},[1],0,6),c("dates",function(d){return new Date(1970,0,d)},function(d){return s(d).getDate()},[1],1,31),c("months",function(d){return new Date(1970,d%12,1)},function(d){return s(d).getMonth()},[1],0,11)],l=[h("second",n.utcSecond,i),h("minute",n.utcMinute,i),h("hour",n.utcHour,i),h("day",n.utcDay,i,[1,7]),h("month",n.utcMonth,i,[1,3,6]),h("year",n.utcYear,i),c("seconds",function(d){return new Date(Date.UTC(1970,0,1,0,0,d))},function(d){return s(d).getUTCSeconds()},null,0,59),c("minutes",function(d){return new Date(Date.UTC(1970,0,1,0,d))},function(d){return s(d).getUTCMinutes()},null,0,59),c("hours",function(d){return new Date(Date.UTC(1970,0,1,d))},function(d){return s(d).getUTCHours()},null,0,23),c("weekdays",function(d){return new Date(Date.UTC(1970,0,4+d))},function(d){return s(d).getUTCDay()},[1],0,6),c("dates",function(d){return new Date(Date.UTC(1970,0,d))},function(d){return s(d).getUTCDate()},[1],1,31),c("months",function(d){return new Date(Date.UTC(1970,d%12,1))},function(d){return s(d).getUTCMonth()},[1],0,11)],u=[[31536e6,5],[7776e6,4],[2592e6,4],[12096e5,3],[6048e5,3],[1728e5,3],[864e5,3],[432e5,2],[216e5,2],[108e5,2],[36e5,2],[18e5,1],[9e5,1],[3e5,1],[6e4,1],[3e4,0],[15e3,0],[5e3,0],[1e3,0]];function p(d,g,y,v){var b=u[0],x,S,C;for(x=1,S=u.length;x<S;++x)if(b=u[x],g>b[0]){if(C=g/b[0],C>v)return d[u[x-1][1]];if(C>=y)return d[b[1]]}return d[u[S-1][1]]}function f(d){var g={},y,v;for(y=0,v=d.length;y<v;++y)g[d[y].type]=d[y];return g.find=function(b,x,S){return p(d,b,x,S)},g}t.exports=f(o),t.exports.utc=f(l)})),Tc=ce(((e,t)=>{var n=ne(),r=Ec(),a=1e-15;function i(u){if(!u)throw Error("Missing binning options.");var p=u.maxbins||15,f=u.base||10,d=Math.log(f),g=u.div||[5,2],y=u.min,v=u.max,b=v-y,x,S,C,T,w,N,D;if(u.step)x=u.step;else if(u.steps)x=u.steps[Math.min(u.steps.length-1,s(u.steps,b/p,0,u.steps.length))];else{for(S=Math.ceil(Math.log(p)/d),C=u.minstep||0,x=Math.max(C,f**+(Math.round(Math.log(b)/d)-S));Math.ceil(b/x)>p;)x*=f;for(N=0;N<g.length;++N)w=x/g[N],w>=C&&b/w<=p&&(x=w)}return w=Math.log(x),T=w>=0?0:~~(-w/d)+1,D=f**(-T-1),y=Math.min(y,Math.floor(y/x+D)*x),v=Math.ceil(v/x)*x,{start:y,stop:v,step:x,unit:{precision:T},value:c,index:h}}function s(u,p,f,d){for(;f<d;){var g=f+d>>>1;n.cmp(u[g],p)<0?f=g+1:d=g}return f}function c(u){return this.step*Math.floor(u/this.step+a)}function h(u){return Math.floor((u-this.start)/this.step+a)}function o(u){return this.unit.date(c.call(this,u))}function l(u){return h.call(this,this.unit.unit(u))}i.date=function(u){if(!u)throw Error("Missing date binning options.");var p=u.utc?r.utc:r,f=u.min,d=u.max,g=u.maxbins||20,y=u.minbins||4,v=d-+f,b=u.unit?p[u.unit]:p.find(v,y,g),x=i({min:b.min==null?b.unit(f):b.min,max:b.max==null?b.unit(d):b.max,maxbins:g,minstep:b.minstep,steps:b.step});return x.unit=b,x.index=l,u.raw||(x.value=o),x},t.exports=i})),Gi=ce(((e,t)=>{var n=ne(),r="__types__",a={boolean:n.boolean,integer:n.number,number:n.number,date:n.date,string:function(f){return f==null||f===""?null:f+""}},i={boolean:function(f){return f==="true"||f==="false"||n.isBoolean(f)},integer:function(f){return i.number(f)&&(f=+f)===~~f},number:function(f){return!isNaN(+f)&&!n.isDate(f)},date:function(f){return!isNaN(Date.parse(f))}};function s(f,d){if(!d)return f&&f[r]||null;f[r]=d}function c(f){return n.keys(f)}function h(f){return"["+f+"]"}function o(f,d){f=n.array(f),d=n.$(d);var g,y,v;if(f[r]&&(g=d(f[r]),n.isString(g)))return g;for(y=0,v=f.length;!n.isValid(g)&&y<v;++y)g=d?d(f[y]):f[y];return n.isDate(g)?"date":n.isNumber(g)?"number":n.isBoolean(g)?"boolean":n.isString(g)?"string":null}function l(f,d){if(f.length){var g=d?n.identity:(d=c(f[0]),h);return d.reduce(function(y,v){return y[v]=o(f,g(v)),y},{})}}function u(f,d){f=n.array(f),d=n.$(d);var g,y,v,b=["boolean","integer","number","date"];for(g=0;g<f.length;++g){for(v=d?d(f[g]):f[g],y=0;y<b.length;++y)n.isValid(v)&&!i[b[y]](v)&&(b.splice(y,1),--y);if(b.length===0)return"string"}return b[0]}function p(f,d){var g=d?n.identity:(d=c(f[0]),h);return d.reduce(function(y,v){return y[v]=u(f,g(v)),y},{})}o.annotation=s,o.all=l,o.infer=u,o.inferAll=p,o.parsers=a,t.exports=o})),Sc=ce(((e,t)=>{var n=ne(),r=t.exports;r.repeat=function(a,i){var s=Array(i),c;for(c=0;c<i;++c)s[c]=a;return s},r.zeros=function(a){return r.repeat(0,a)},r.range=function(a,i,s){if(arguments.length<3&&(s=1,arguments.length<2&&(i=a,a=0)),(i-a)/s==1/0)throw Error("Infinite range");var c=[],h=-1,o;if(s<0)for(;(o=a+s*++h)>i;)c.push(o);else for(;(o=a+s*++h)<i;)c.push(o);return c},r.random={},r.random.uniform=function(a,i){i===void 0&&(i=a===void 0?1:a,a=0);var s=i-a,c=function(){return a+s*Math.random()};return c.samples=function(h){return r.zeros(h).map(c)},c.pdf=function(h){return h>=a&&h<=i?1/s:0},c.cdf=function(h){return h<a?0:h>i?1:(h-a)/s},c.icdf=function(h){return h>=0&&h<=1?a+h*s:NaN},c},r.random.integer=function(a,i){i===void 0&&(i=a,a=0);var s=i-a,c=function(){return a+Math.floor(s*Math.random())};return c.samples=function(h){return r.zeros(h).map(c)},c.pdf=function(h){return h===Math.floor(h)&&h>=a&&h<i?1/s:0},c.cdf=function(h){var o=Math.floor(h);return o<a?0:o>=i?1:(o-a+1)/s},c.icdf=function(h){return h>=0&&h<=1?a-1+Math.floor(h*s):NaN},c},r.random.normal=function(a,i){a||(a=0),i||(i=1);var s,c=function(){var h=0,o=0,l,u;if(s!==void 0)return h=s,s=void 0,h;do h=Math.random()*2-1,o=Math.random()*2-1,l=h*h+o*o;while(l===0||l>1);return u=Math.sqrt(-2*Math.log(l)/l),s=a+o*u*i,a+h*u*i};return c.samples=function(h){return r.zeros(h).map(c)},c.pdf=function(h){var o=Math.exp((h-a)**2/(-2*i**2));return 1/(i*Math.sqrt(2*Math.PI))*o},c.cdf=function(h){var o,l=(h-a)/i,u=Math.abs(l);if(u>37)o=0;else{var p,f=Math.exp(-u*u/2);u<7.07106781186547?(p=.0352624965998911*u+.700383064443688,p=p*u+6.37396220353165,p=p*u+33.912866078383,p=p*u+112.079291497871,p=p*u+221.213596169931,p=p*u+220.206867912376,o=f*p,p=.0883883476483184*u+1.75566716318264,p=p*u+16.064177579207,p=p*u+86.7807322029461,p=p*u+296.564248779674,p=p*u+637.333633378831,p=p*u+793.826512519948,p=p*u+440.413735824752,o/=p):(p=u+.65,p=u+4/p,p=u+3/p,p=u+2/p,p=u+1/p,o=f/p/2.506628274631)}return l>0?1-o:o},c.icdf=function(h){if(h<=0||h>=1)return NaN;var o=2*h-1,l=8*(Math.PI-3)/(3*Math.PI*(4-Math.PI)),u=2/(Math.PI*l)+Math.log(1-o**2)/2,p=Math.log(1-o*o)/l,f=(o>0?1:-1)*Math.sqrt(Math.sqrt(u*u-p)-u);return a+i*Math.SQRT2*f},c},r.random.bootstrap=function(a,i){var s=a.filter(n.isValid),c=s.length,h=i?r.random.normal(0,i):null,o=function(){return s[~~(Math.random()*c)]+(h?h():0)};return o.samples=function(l){return r.zeros(l).map(o)},o}})),Nc=ce(((e,t)=>{var n=ne(),r=Gi(),a=Sc(),i=t.exports;i.unique=function(o,l,u){l=n.$(l),u||(u=[]);var p={},f,d,g;for(d=0,g=o.length;d<g;++d)f=l?l(o[d]):o[d],!(f in p)&&(p[f]=1,u.push(f));return u},i.count=function(o){return o&&o.length||0},i.count.valid=function(o,l){l=n.$(l);var u,p,f,d=0;for(p=0,f=o.length;p<f;++p)u=l?l(o[p]):o[p],n.isValid(u)&&(d+=1);return d},i.count.missing=function(o,l){l=n.$(l);var u,p,f,d=0;for(p=0,f=o.length;p<f;++p)u=l?l(o[p]):o[p],u??(d+=1);return d},i.count.distinct=function(o,l){l=n.$(l);var u={},p,f,d,g=0;for(f=0,d=o.length;f<d;++f)p=l?l(o[f]):o[f],!(p in u)&&(u[p]=1,g+=1);return g},i.count.map=function(o,l){l=n.$(l);var u={},p,f,d;for(f=0,d=o.length;f<d;++f)p=l?l(o[f]):o[f],u[p]=p in u?u[p]+1:1;return u},i.median=function(o,l){return l&&(o=o.map(n.$(l))),o=o.filter(n.isValid).sort(n.cmp),i.quantile(o,.5)},i.quartile=function(o,l){l&&(o=o.map(n.$(l))),o=o.filter(n.isValid).sort(n.cmp);var u=i.quantile;return[u(o,.25),u(o,.5),u(o,.75)]},i.quantile=function(o,l,u){u===void 0&&(u=l,l=n.identity),l=n.$(l);var p=(o.length-1)*u+1,f=Math.floor(p),d=+l(o[f-1]),g=p-f;return g?d+g*(l(o[f])-d):d},i.sum=function(o,l){l=n.$(l);for(var u=0,p=0,f=o.length,d;p<f;++p)d=l?l(o[p]):o[p],n.isValid(d)&&(u+=d);return u},i.mean=function(o,l){l=n.$(l);var u=0,p,f,d,g,y;for(f=0,g=0,d=o.length;f<d;++f)y=l?l(o[f]):o[f],n.isValid(y)&&(p=y-u,u+=p/++g);return u},i.mean.geometric=function(o,l){l=n.$(l);var u=1,p,f,d,g;for(g=0,p=0,f=o.length;g<f;++g)if(d=l?l(o[g]):o[g],n.isValid(d)){if(d<=0)throw Error("Geometric mean only defined for positive values.");u*=d,++p}return u=p>0?u**(1/p):0,u},i.mean.harmonic=function(o,l){l=n.$(l);var u=0,p,f,d,g;for(g=0,p=0,f=o.length;g<f;++g)d=l?l(o[g]):o[g],n.isValid(d)&&(u+=1/d,++p);return p/u},i.variance=function(o,l){if(l=n.$(l),!n.isArray(o)||o.length<2)return 0;var u=0,p=0,f,d,g,y;for(d=0,g=0;d<o.length;++d)y=l?l(o[d]):o[d],n.isValid(y)&&(f=y-u,u+=f/++g,p+=f*(y-u));return p/=g-1,p},i.stdev=function(o,l){return Math.sqrt(i.variance(o,l))},i.modeskew=function(o,l){var u=i.mean(o,l),p=i.median(o,l),f=i.stdev(o,l);return f===0?0:(u-p)/f},i.min=function(o,l){return i.extent(o,l)[0]},i.max=function(o,l){return i.extent(o,l)[1]},i.extent=function(o,l){l=n.$(l);var u,p,f,d,g=o.length;for(d=0;d<g;++d)if(f=l?l(o[d]):o[d],n.isValid(f)){u=p=f;break}for(;d<g;++d)f=l?l(o[d]):o[d],n.isValid(f)&&(f<u&&(u=f),f>p&&(p=f));return[u,p]},i.extent.index=function(o,l){l=n.$(l);var u=-1,p=-1,f,d,g,y,v=o.length;for(y=0;y<v;++y)if(g=l?l(o[y]):o[y],n.isValid(g)){f=d=g,u=p=y;break}for(;y<v;++y)g=l?l(o[y]):o[y],n.isValid(g)&&(g<f&&(f=g,u=y),g>d&&(d=g,p=y));return[u,p]},i.dot=function(o,l,u){var p=0,f,d;if(u)for(l=n.$(l),u=n.$(u),f=0;f<o.length;++f)d=l(o[f])*u(o[f]),d===d&&(p+=d);else{if(o.length!==l.length)throw Error("Array lengths must match.");for(f=0;f<o.length;++f)d=o[f]*l[f],d===d&&(p+=d)}return p},i.dist=function(o,l,u,p){var f=n.isFunction(u)||n.isString(u),d=o,g=f?o:l,y=f?p:u,v=y===2||y==null,b=o.length,x=0,S,C;for(f&&(l=n.$(l),u=n.$(u)),C=0;C<b;++C)S=f?l(d[C])-u(g[C]):d[C]-g[C],x+=v?S*S:Math.abs(S)**+y;return v?Math.sqrt(x):x**(1/y)},i.cohensd=function(o,l,u){var p=u?o.map(n.$(l)):o,f=u?o.map(n.$(u)):l,d=i.mean(p),g=i.mean(f),y=i.count.valid(p),v=i.count.valid(f);if(y+v-2<=0)return 0;var b=i.variance(p),x=i.variance(f),S=Math.sqrt(((y-1)*b+(v-1)*x)/(y+v-2));return S===0?0:(d-g)/S},i.covariance=function(o,l,u){var p=u?o.map(n.$(l)):o,f=u?o.map(n.$(u)):l,d=p.length,g=i.mean(p),y=i.mean(f),v=0,b=0,x,S,C,T,w;if(d!==f.length)throw Error("Input lengths must match.");for(x=0;x<d;++x)if(S=p[x],T=n.isValid(S),C=f[x],w=n.isValid(C),T&&w)v+=(S-g)*(C-y),++b;else if(T||w)throw Error("Valid values must align.");return v/(b-1)},i.rank=function(o,l){l=n.$(l)||n.identity;var u=o.map(function(x,S){return{idx:S,val:l(x)}}).sort(n.comparator("val")),p=o.length,f=Array(p),d=-1,g={},y,v,b;for(y=0;y<p;++y){if(v=u[y].val,d<0&&g===v)d=y-1;else if(d>-1&&g!==v){for(b=1+(y-1+d)/2;d<y;++d)f[u[d].idx]=b;d=-1}f[u[y].idx]=y+1,g=v}if(d>-1)for(b=1+(p-1+d)/2;d<p;++d)f[u[d].idx]=b;return f},i.cor=function(o,l,u){var p=u;u=p?o.map(n.$(u)):l,l=p?o.map(n.$(l)):o;var f=i.dot(l,u),d=i.mean(l),g=i.mean(u),y=i.stdev(l),v=i.stdev(u),b=o.length;return(f-b*d*g)/((b-1)*y*v)},i.cor.rank=function(o,l,u){var p=u?i.rank(o,l):i.rank(o),f=u?i.rank(o,u):i.rank(l),d=o.length,g,y,v;for(g=0,y=0;g<d;++g)v=p[g]-f[g],y+=v*v;return 1-6*y/(d*(d*d-1))},i.cor.dist=function(o,l,u){var p=u?o.map(n.$(l)):o,f=u?o.map(n.$(u)):l,d=i.dist.mat(p),g=i.dist.mat(f),y=d.length,v,b,x,S;for(v=0,b=0,x=0,S=0;v<y;++v)b+=d[v]*d[v],x+=g[v]*g[v],S+=d[v]*g[v];return Math.sqrt(S/Math.sqrt(b*x))},i.linearRegression=function(o,l,u){var p=u?o.map(n.$(l)):o,f=u?o.map(n.$(u)):l,d=p.length,g=i.covariance(p,f),y=i.stdev(p),v=i.stdev(f),b=g/(y*y),x=i.mean(f)-b*i.mean(p),S={slope:b,intercept:x,R:g/(y*v),rss:0},C,T;for(T=0;T<d;++T)n.isValid(p[T])&&n.isValid(f[T])&&(C=b*p[T]+x-f[T],S.rss+=C*C);return S},i.bootstrap={},i.bootstrap.ci=function(o,l,u,p,f){var d,g,y,v,b,x,S;for(n.isFunction(l)||n.isString(l)?(d=o.map(n.$(l)),g=u,y=p,v=f):(d=o,g=l,y=u,v=p),g=g?+g:1e3,y||(y=.05),b=a.random.bootstrap(d,v),S=0,x=Array(g);S<g;++S)x[S]=i.mean(b.samples(d.length));return x.sort(n.numcmp),[i.quantile(x,y/2),i.quantile(x,1-y/2)]},i.z={},i.z.ci=function(o,l,u){var p=o,f=l;(n.isFunction(l)||n.isString(l))&&(p=o.map(n.$(l)),f=u),f||(f=.05);var d=f===.05?1.96:a.random.normal(0,1).icdf(1-f/2),g=i.mean(p),y=i.stdev(p)/Math.sqrt(i.count.valid(p));return[g-d*y,g+d*y]},i.z.test=function(o,l,u,p){return n.isFunction(u)||n.isString(u)?(p&&p.paired?c:h)(p,o,l,u):n.isArray(l)?(u&&u.paired?c:h)(u,o,l):n.isFunction(l)||n.isString(l)?s(u,o,l):s(l,o)};function s(o,l,u){var p=o&&o.nullh||0,f=a.random.normal(0,1),d=i.mean(l,u),g=i.stdev(l,u)/Math.sqrt(i.count.valid(l,u));if(g===0)return d-p===0?1:0;var y=(d-p)/g;return 2*f.cdf(-Math.abs(y))}function c(o,l,u,p){var f=p?l.map(n.$(u)):l,d=p?l.map(n.$(p)):u,g=i.count(f),y=i.count(d),v=[],b;if(g!==y)throw Error("Array lengths must match.");for(b=0;b<g;++b)n.isValid(f[b])&&n.isValid(d[b])&&v.push(f[b]-d[b]);return i.z.test(v,o&&o.nullh||0)}function h(o,l,u,p){var f=p?l.map(n.$(u)):l,d=p?l.map(n.$(p)):u,g=i.count.valid(f),y=i.count.valid(d),v=a.random.normal(0,1),b=i.mean(f)-i.mean(d)-(o&&o.nullh||0),x=Math.sqrt(i.variance(f)/g+i.variance(d)/y);if(x===0)return b===0?1:0;var S=b/x;return 2*v.cdf(-Math.abs(S))}i.dist.mat=function(o){var l=o.length,u=l*l,p=Array(u),f=a.zeros(l),d=0,g,y,v;for(y=0;y<l;++y)for(p[y*l+y]=0,v=y+1;v<l;++v)p[y*l+v]=g=Math.abs(o[y]-o[v]),p[v*l+y]=g,f[y]+=g,f[v]+=g;for(y=0;y<l;++y)d+=f[y],f[y]/=l;for(d/=u,y=0;y<l;++y)for(v=y;v<l;++v)p[y*l+v]+=d-f[y]-f[v],p[v*l+y]=p[y*l+v];return p},i.entropy=function(o,l){l=n.$(l);var u,p,f=0,d=0,g=o.length;for(u=0;u<g;++u)f+=l?l(o[u]):o[u];if(f===0)return 0;for(u=0;u<g;++u)p=(l?l(o[u]):o[u])/f,p&&(d+=p*Math.log(p));return-d/Math.LN2},i.mutual=function(o,l,u,p){var f=p?o.map(n.$(l)):o,d=p?o.map(n.$(u)):l,g=p?o.map(n.$(p)):u,y={},v={},b=g.length,x=0,S=0,C=0,T,w,N;for(N=0;N<b;++N)y[f[N]]=0,v[d[N]]=0;for(N=0;N<b;++N)y[f[N]]+=g[N],v[d[N]]+=g[N],x+=g[N];for(w=1/(x*Math.LN2),N=0;N<b;++N)g[N]!==0&&(T=x*g[N]/(y[f[N]]*v[d[N]]),S+=g[N]*w*Math.log(T),C+=g[N]*w*Math.log(g[N]/x));return[S,1+S/C]},i.mutual.info=function(o,l,u,p){return i.mutual(o,l,u,p)[0]},i.mutual.dist=function(o,l,u,p){return i.mutual(o,l,u,p)[1]},i.profile=function(o,l){var u=0,p=0,f=0,d=0,g=null,y=null,v=0,b=[],x={},S,C,T,w,N;for(T=0;T<o.length;++T)w=l?l(o[T]):o[T],x[w]=w in x?x[w]+1:(d+=1,1),w==null?++f:n.isValid(w)&&(N=typeof w=="string"?w.length:w,(g===null||N<g)&&(g=N),(y===null||N>y)&&(y=N),S=N-u,u+=S/++p,v+=S*(N-u),b.push(N));return v/=p-1,C=Math.sqrt(v),b.sort(n.cmp),{type:r(o,l),unique:x,count:o.length,valid:p,missing:f,distinct:d,min:g,max:y,mean:u,stdev:C,median:w=i.quantile(b,.5),q1:i.quantile(b,.25),q3:i.quantile(b,.75),modeskew:C===0?0:(u-w)/C}},i.summary=function(o,l){l||(l=n.keys(o[0]));var u=l.map(function(p){var f=i.profile(o,n.$(p));return f.field=p,f});return u.__summary__=!0,u}})),Cc=H(Tc()),wc=H(Gi()),Ac=H(Nc()),Oc=Cc.default;function kc(e,t={},n={fields:[]}){t=(0,U.extend)({},Ve,t);let r=(0,Ac.summary)(e),a=(0,wc.inferAll)(e),i=n.fields.reduce((c,h)=>(c[h.name]=h,c),{}),s=r.map(function(c,h){let o=c.field,l=a[o]==="date"?R.DATETIME:a[o],u=c.distinct,p;if(l===R.NUMBER)p=te;else if(l===R.INTEGER)p=u<t.numberNominalLimit&&u/c.count<t.numberNominalProportion?we:te;else if(l===R.DATETIME){p=ye,c.min=new Date(e[0][o]),c.max=new Date(e[0][o]);for(let g of e){let y=new Date(g[o]).getTime();y<c.min.getTime()&&(c.min=new Date(y)),y>c.max.getTime()&&(c.max=new Date(y))}}else p=we;p==="nominal"&&u/c.count>t.minPercentUniqueForKey&&c.count>t.minCardinalityForKey&&(p=le.KEY);let f={name:o,originalIndex:h,vlType:p,type:l,stats:c,timeStats:{},binStats:{}},d=i[f.name];return f=(0,U.extend)(f,d),f});for(let c of s)if(c.vlType==="quantitative")for(let h of t.enum.binProps.maxbins)c.binStats[h]=zi(h,c.stats);else if(c.vlType==="temporal")for(let h of t.enum.timeUnit)h!==void 0&&(c.timeStats[h]=Yi(h,c.stats));return new Mc(Object.assign({},n,{fields:s}))}var kt={nominal:0,key:1,ordinal:2,temporal:3,quantitative:4},Mc=class{constructor(e){this._tableSchema=e,e.fields.sort(function(t,n){return kt[t.vlType]<kt[n.vlType]?-1:kt[t.vlType]>kt[n.vlType]?1:t.name.localeCompare(n.name)}),e.fields.forEach((t,n)=>t.index=n),this._fieldSchemaIndex=e.fields.reduce((t,n)=>(t[n.name]=n,t),{})}fieldNames(){return this._tableSchema.fields.map(e=>e.name)}get fieldSchemas(){return this._tableSchema.fields}fieldSchema(e){return this._fieldSchemaIndex[e]}tableSchema(){let e=(0,U.duplicate)(this._tableSchema);return e.fields.sort((t,n)=>t.originalIndex-n.originalIndex),e}primitiveType(e){return this._fieldSchemaIndex[e]?this._fieldSchemaIndex[e].type:null}vlType(e){return this._fieldSchemaIndex[e]?this._fieldSchemaIndex[e].vlType:null}cardinality(e,t=!0,n=!1){let r=this._fieldSchemaIndex[e.field];if(e.aggregate||P(e)&&e.autoCount)return 1;if(e.bin){let a;a=typeof e.bin=="boolean"?{maxbins:pn(e.channel)}:e.bin==="?"?{enum:[!0,!1]}:e.bin;let i=a.maxbins;return r.binStats[i]||(r.binStats[i]=zi(i,r.stats)),r.binStats[i].distinct}else if(e.timeUnit){if(t)switch(e.timeUnit){case B.SECONDS:return 60;case B.MINUTES:return 60;case B.HOURS:return 24;case B.DAY:return 7;case B.DATE:return 31;case B.MONTH:return 12;case B.QUARTER:return 4;case B.MILLISECONDS:return 1e3}let a=e.timeUnit,i=r.timeStats;return(!i||!i[a])&&(i=Object.assign({},i,{[a]:Yi(e.timeUnit,r.stats)})),n?i[a].distinct-Qi(i[a].unique,["Invalid Date",null]):i[a].distinct}else return r?n?r.stats.distinct-Qi(r.stats.unique,[NaN,null]):r.stats.distinct:null}timeUnitHasVariation(e){if(!e.timeUnit)return;if(e.timeUnit===B.DAY){let n=(0,U.extend)({},e,{timeUnit:B.DATE});if(this.cardinality(n,!1,!0)<=1)return!1}let t=e.timeUnit;for(let n of Kr)if(ei(t,n)){let r=(0,U.extend)({},e,{timeUnit:n});if(this.cardinality(r,!1,!0)<=1)return!1}return!0}domain(e){let t=this._fieldSchemaIndex[e.field],n=(0,U.keys)(t.stats.unique);return t.vlType==="quantitative"?[+t.stats.min,+t.stats.max]:t.type===R.DATETIME?[t.stats.min,t.stats.max]:t.type===R.INTEGER||t.type===R.NUMBER?(n=n.map(r=>+r),n.sort(U.cmp)):t.vlType==="ordinal"&&t.ordinalDomain?t.ordinalDomain:n.map(r=>r==="null"?null:r).sort(U.cmp)}stats(e){let t=this._fieldSchemaIndex[e.field];return t?t.stats:null}};function zi(e,t){let n=Oc({min:t.min,max:t.max,maxbins:e}),r=(0,U.extend)({},t);return r.unique=Ic(n,t.unique),r.distinct=(n.stop-n.start)/n.step,r.min=n.start,r.max=n.stop,r}function Yi(e,t){let n=(0,U.extend)({},t),r={};return(0,U.keys)(t.unique).forEach(function(a){let i=a==="null"?null:new Date(a),s;s=i===null?null:isNaN(i.getTime())?"Invalid Date":(e===B.DAY?i.getDay():xl(e,i)).toString(),r[s]=(r[s]||0)+t.unique[a]}),n.unique=r,n.distinct=(0,U.keys)(r).length,n}function Ic(e,t){let n={};for(let r in t){let a;a=r===null?null:isNaN(Number(r))?NaN:e.value(Number(r)),n[a]=(n[a]||0)+t[r]}return n}function Qi(e,t){return t.reduce(function(n,r){return e[r]?n+1:n},0)}var R;(function(e){e[e.STRING="string"]="STRING",e[e.NUMBER="number"]="NUMBER",e[e.INTEGER="integer"]="INTEGER",e[e.BOOLEAN="boolean"]="BOOLEAN",e[e.DATETIME="datetime"]="DATETIME"})(R||(R={}));var Vi=class{constructor(e){this.constraint=e}name(){return this.constraint.name}description(){return this.constraint.description}properties(){return this.constraint.properties}strict(){return this.constraint.strict}},Ki=class extends Vi{constructor(e){super(e)}hasAllRequiredPropertiesSpecific(e){return oe(this.constraint.properties,t=>{if(se(t)){let n=t.parent,r=t.child;return e[n]?!A(e[n][r]):!0}return e[t]?!A(e[t]):!0})}satisfy(e,t,n,r){return!this.constraint.allowWildcardForProperties&&!this.hasAllRequiredPropertiesSpecific(e)?!0:this.constraint.satisfy(e,t,n,r)}};const Ji=[{name:"aggregateOpSupportedByType",description:"Aggregate function should be supported by data type.",properties:[m.TYPE,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>e.aggregate?!oi(e.type):!0},{name:"asteriskFieldWithCountOnly",description:'Field="*" should be disallowed except aggregate="count"',properties:[m.FIELD,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>e.field==="*"==(e.aggregate==="count")},{name:"minCardinalityForBin",description:"binned quantitative field should not have too low cardinality",properties:[m.BIN,m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{if(e.bin&&e.type==="quantitative"){let a={channel:e.channel,field:e.field,type:e.type};return t.cardinality(a)>=r.minCardinalityForBin}return!0}},{name:"binAppliedForQuantitative",description:"bin should be applied to quantitative field only.",properties:[m.TYPE,m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>e.bin?e.type===te:!0},{name:"channelFieldCompatible",description:"encoding channel's range type be compatible with channel type.",properties:[m.CHANNEL,m.TYPE,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{let a=Object.assign({field:"f"},xn(e,{schema:t,props:["bin","timeUnit","type"]})),{compatible:i}=Pl(a,e.channel);return i?!0:!!((e.channel==="row"||e.channel==="column")&&(pl(a.timeUnit)||hl(a.timeUnit)))}},{name:"hasFn",description:"A field with as hasFn flag should have one of aggregate, timeUnit, or bin.",properties:[m.AGGREGATE,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>e.hasFn?!!e.aggregate||!!e.bin||!!e.timeUnit:!0},{name:"omitScaleZeroWithBinnedField",description:"Do not use scale zero with binned field",properties:[m.SCALE,fe("scale","zero"),m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!(e.bin&&e.scale&&e.scale.zero===!0)},{name:"onlyOneTypeOfFunction",description:"Only of of aggregate, autoCount, timeUnit, or bin should be applied at the same time.",properties:[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>O(e)?(!A(e.aggregate)&&e.aggregate?1:0)+(!A(e.bin)&&e.bin?1:0)+(!A(e.timeUnit)&&e.timeUnit?1:0)<=1:!0},{name:"timeUnitAppliedForTemporal",description:"Time unit should be applied to temporal field only.",properties:[m.TYPE,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!(e.timeUnit&&e.type!=="temporal")},{name:"timeUnitShouldHaveVariation",description:"A particular time unit should be applied only if they produce unique values.",properties:[m.TIMEUNIT,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.timeUnit&&e.type==="temporal"?!n.has("timeUnit")&&!r.constraintManuallySpecifiedValue?!0:t.timeUnitHasVariation(e):!0},{name:"scalePropertiesSupportedByScaleType",description:"Scale properties must be supported by correct scale type",properties:[].concat(pt,[m.SCALE,m.TYPE]),allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>{if(e.scale){let a=e.scale,i=ke(e);if(i==null)return!0;for(let s in a){if(s==="type"||s==="name"||s==="enum")continue;let c=s;if(i==="point"){if(!Zt("point",c)&&!Zt("band",c))return!1}else if(!Zt(i,c))return!1}}return!0}},{name:"scalePropertiesSupportedByChannel",description:"Not all scale properties are supported by all encoding channels",properties:[].concat(pt,[m.SCALE,m.CHANNEL]),allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>{if(e){let a=e.channel,i=e.scale;if(a&&!A(a)&&i){if(a==="row"||a==="column")return!1;for(let s in i)if(i.hasOwnProperty(s)&&!(s==="type"||s==="name"||s==="enum")&&Js(a,s)!==void 0)return!1}}return!0}},{name:"typeMatchesPrimitiveType",description:"Data type should be supported by field's primitive type.",properties:[m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{if(e.field==="*")return!0;let a=t.primitiveType(e.field),i=e.type;if(!n.has("field")&&!n.has("type")&&!r.constraintManuallySpecifiedValue)return!0;switch(a){case R.BOOLEAN:case R.STRING:return i!=="quantitative"&&i!=="temporal";case R.NUMBER:case R.INTEGER:return i!==ye;case R.DATETIME:return i===ye;case null:return!1}throw Error("Not implemented")}},{name:"typeMatchesSchemaType",description:"Enumerated data type of a field should match the field's type in the schema.",properties:[m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>!n.has("field")&&!n.has("type")&&!r.constraintManuallySpecifiedValue?!0:e.field==="*"?e.type===te:t.vlType(e.field)===e.type},{name:"maxCardinalityForCategoricalColor",description:"Categorical channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.channel==="color"&&(e.type==="nominal"||e.type===le.KEY)?t.cardinality(e)<=r.maxCardinalityForCategoricalColor:!0},{name:"maxCardinalityForFacet",description:"Row/column channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.channel==="row"||e.channel==="column"?t.cardinality(e)<=r.maxCardinalityForFacet:!0},{name:"maxCardinalityForShape",description:"Shape channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.channel==="shape"?t.cardinality(e)<=r.maxCardinalityForShape:!0},{name:"dataTypeAndFunctionMatchScaleType",description:"Scale type must match data type",properties:[m.TYPE,m.SCALE,fe("scale","type"),m.TIMEUNIT,m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{if(e.scale){let a=e.type,i=ke(e);if(oi(a))return i===void 0||Ae(i);if(a==="temporal")return e.timeUnit?K([F.TIME,F.UTC,void 0],i)||Ae(i):K([F.TIME,F.UTC,void 0],i);if(a==="quantitative")return e.bin?K([F.LINEAR,void 0],i):K([F.LOG,F.POW,F.SQRT,F.QUANTILE,F.QUANTIZE,F.LINEAR,void 0],i)}return!0}},{name:"stackIsOnlyUsedWithXY",description:"stack should only be allowed for x and y channels",properties:[m.STACK,m.CHANNEL],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>e.stack?e.channel==="x"||e.channel==="y":!0}].map(e=>new Ki(e));Ji.reduce((e,t)=>(e[t.name()]=t,e),{});const Uc=Ji.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re),Xi=[{name:"doesNotSupportConstantValue",description:"row, column, x, y, order, and detail should not work with constant values.",properties:[m.TYPE,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!K(["row","column","x","y","detail","order"],e.channel)}].map(e=>new Ki(e));Xi.reduce((e,t)=>(e[t.name()]=t,e),{});const Fc=Xi.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re);function Dc(e,t,n,r,a,i){let s=Uc.get(e)||[],c=r.getEncodingQueryByIndex(n);for(let o of s)if((o.strict()||i[o.name()])&&!o.satisfy(c,a,r.wildcardIndex.encodings[n],i)){let l="(enc) "+o.name();return i.verbose&&console.log(l+" failed with "+r.toShorthand()+" for "+t.name),l}let h=Fc.get(e)||[];for(let o of h)if((o.strict()||i[o.name()])&&ie(c)&&!o.satisfy(c,a,r.wildcardIndex.encodings[n],i)){let l="(enc) "+o.name();return i.verbose&&console.log(l+" failed with "+r.toShorthand()+" for "+t.name),l}return null}var _c=Or.reduce((e,t)=>(e[t]=!0,e),{}),jc=class extends Vi{constructor(e){super(e)}hasAllRequiredPropertiesSpecific(e){return oe(this.constraint.properties,t=>{if(t===m.MARK)return!A(e.getMark());if(se(t)){let n=t.parent,r=t.child;return oe(e.getEncodings(),a=>a[n]?!A(a[n][r]):!0)}if(!Qr(t))throw Error("UNIMPLEMENTED");return oe(e.getEncodings(),n=>n[t]?!A(n[t]):!0)})}satisfy(e,t,n){return!this.constraint.allowWildcardForProperties&&!this.hasAllRequiredPropertiesSpecific(e)?!0:this.constraint.satisfy(e,t,n)}};const Zi=[{name:"noRepeatedChannel",description:"Each encoding channel should only be used once.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n)=>{let r={};return oe(e.getEncodings(),a=>A(a.channel)?!0:r[a.channel]?!1:(r[a.channel]=!0,!0))}},{name:"alwaysIncludeZeroInScaleWithBarMark",description:"Do not recommend bar mark if scale does not start at zero",properties:[m.MARK,m.SCALE,fe("scale","zero"),m.CHANNEL,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let r=e.getMark(),a=e.getEncodings();if(r==="bar"){for(let i of a)if(O(i)&&(i.channel==="x"||i.channel==="y")&&i.type==="quantitative"&&i.scale&&i.scale.zero===!1)return!1}return!0}},{name:"autoAddCount",description:"Automatically adding count only for plots with only ordinal, binned quantitative, or temporal with timeunit fields.",properties:[m.BIN,m.TIMEUNIT,m.TYPE,m.AUTOCOUNT],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>de(e.getEncodings(),r=>Tt(r))?oe(e.getEncodings(),r=>{if(ie(r)||P(r))return!0;switch(r.type){case te:return!!r.bin;case ye:return!!r.timeUnit;case Ce:case le.KEY:case we:return!0}throw Error("Unsupported Type")}):oe(e.wildcardIndex.encodingIndicesByProperty.get("autoCount")||[],r=>{let a=e.getEncodingQueryByIndex(r);return P(a)&&!A(a.autoCount)})?de(e.getEncodings(),r=>(O(r)||P(r))&&r.type==="quantitative"?ae(r)?!1:O(r)&&(!r.bin||A(r.bin)):O(r)&&r.type==="temporal"?!r.timeUnit||A(r.timeUnit):!1):!0},{name:"channelPermittedByMarkType",description:"Each encoding channel should be supported by the mark type",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n)=>{let r=e.getMark();return A(r)?!0:oe(e.getEncodings(),a=>A(a.channel)?!0:!!To(a.channel,r))}},{name:"hasAllRequiredChannelsForMark",description:"All required channels for the specified mark should be specified",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let r=e.getMark();switch(r){case ze:case gt:return e.channelUsed("x")&&e.channelUsed("y");case yt:return e.channelUsed(Qt);case"bar":case on:case sn:case vt:case an:case rn:return e.channelUsed("x")||e.channelUsed("y");case Ye:return!e.wildcardIndex.hasProperty(m.CHANNEL)||e.channelUsed("x")||e.channelUsed("y")}throw Error("hasAllRequiredChannelsForMark not implemented for mark"+JSON.stringify(r))}},{name:"omitAggregate",description:"Omit aggregate plots.",properties:[m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>!e.isAggregate()},{name:"omitAggregatePlotWithDimensionOnlyOnFacet",description:"Omit aggregate plots with dimensions only on facets as that leads to inefficient use of space.",properties:[m.CHANNEL,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{if(e.isAggregate()){let r=!1,a=!1,i=!1;if(e.specQuery.encodings.forEach((s,c)=>{ie(s)||ae(s)||O(s)&&!s.aggregate&&(a=!0,K(["row","column"],s.channel)?e.wildcardIndex.hasEncodingProperty(c,m.CHANNEL)&&(i=!0):r=!0)}),a&&!r&&(i||n.constraintManuallySpecifiedValue))return!1}return!0}},{name:"omitAggregatePlotWithoutDimension",description:"Aggregate plots without dimension should be omitted",properties:[m.AGGREGATE,m.AUTOCOUNT,m.BIN,m.TIMEUNIT,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>e.isAggregate()?de(e.getEncodings(),r=>!!(be(r)||O(r)&&r.type==="temporal")):!0},{name:"omitBarLineAreaWithOcclusion",description:"Don't use bar, line or area to visualize raw plot as they often lead to occlusion.",properties:[m.MARK,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>K(["bar","line","area"],e.getMark())?e.isAggregate():!0},{name:"omitBarTickWithSize",description:"Do not map field to size channel with bar and tick mark",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{if(K(["tick","bar"],e.getMark())&&e.channelEncodingField("size")){if(n.constraintManuallySpecifiedValue)return!1;{let r=e.specQuery.encodings;for(let a=0;a<r.length;a++)if(r[a].channel==="size")return!e.wildcardIndex.hasEncodingProperty(a,m.CHANNEL)}}return!0}},{name:"omitBarAreaForLogScale",description:"Do not use bar and area mark for x and y's log scale",properties:[m.MARK,m.CHANNEL,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let r=e.getMark(),a=e.getEncodings();if(r==="area"||r==="bar"){for(let i of a)if(O(i)&&(i.channel==="x"||i.channel==="y")&&i.scale&&ke(i)===F.LOG)return!1}return!0}},{name:"omitMultipleNonPositionalChannels",description:"Unless manually specified, do not use multiple non-positional encoding channel to avoid over-encoding.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let r=e.specQuery.encodings,a=0,i=!1;for(let s=0;s<r.length;s++){let c=r[s];if(ie(c)||ae(c))continue;let h=c.channel;if(!A(h)&&_c[h+""]&&(a+=1,e.wildcardIndex.hasEncodingProperty(s,m.CHANNEL)&&(i=!0),a>1&&(i||n.constraintManuallySpecifiedValue)))return!1}return!0}},{name:"omitNonPositionalOrFacetOverPositionalChannels",description:"Do not use non-positional channels unless all positional channels are used",properties:[m.CHANNEL],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{let r=e.specQuery.encodings,a=!1,i=!1,s=!1,c=!1;for(let h=0;h<r.length;h++){let o=r[h];if(ie(o)||ae(o))continue;let l=o.channel;l==="x"?s=!0:l==="y"?c=!0:A(l)||(a=!0,e.wildcardIndex.hasEncodingProperty(h,m.CHANNEL)&&(i=!0))}return i||n.constraintManuallySpecifiedValue&&a?s&&c:!0}},{name:"omitRaw",description:"Omit raw plots.",properties:[m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>!!e.isAggregate()},{name:"omitRawContinuousFieldForAggregatePlot",description:"Aggregate plot should not use raw continuous field as group by values. (Quantitative should be binned. Temporal should have time unit.)",properties:[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN,m.TYPE],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{if(e.isAggregate()){let r=e.specQuery.encodings;for(let a=0;a<r.length;a++){let i=r[a];if(!(ie(i)||ae(i))&&(O(i)&&i.type==="temporal"&&!i.timeUnit&&(e.wildcardIndex.hasEncodingProperty(a,m.TIMEUNIT)||n.constraintManuallySpecifiedValue)||i.type==="quantitative"&&O(i)&&!i.bin&&!i.aggregate&&(e.wildcardIndex.hasEncodingProperty(a,m.BIN)||e.wildcardIndex.hasEncodingProperty(a,m.AGGREGATE)||e.wildcardIndex.hasEncodingProperty(a,m.AUTOCOUNT)||n.constraintManuallySpecifiedValue)))return!1}}return!0}},{name:"omitRawDetail",description:"Do not use detail channel with raw plot.",properties:[m.CHANNEL,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>e.isAggregate()?!0:oe(e.specQuery.encodings,(r,a)=>ie(r)||ae(r)?!0:!(r.channel==="detail"&&(e.wildcardIndex.hasEncodingProperty(a,m.CHANNEL)||n.constraintManuallySpecifiedValue)))},{name:"omitRepeatedField",description:"Each field should be mapped to only one channel",properties:[m.FIELD],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let r={},a={},i=e.specQuery.encodings;for(let s=0;s<i.length;s++){let c=i[s];if(ie(c)||P(c))continue;let h;if(c.field&&!A(c.field)&&(h=c.field),P(c)&&!A(c.autoCount)&&(h="count_*"),h){if(e.wildcardIndex.hasEncodingProperty(s,m.FIELD)&&(a[h]=!0),r[h]&&(a[h]||n.constraintManuallySpecifiedValue))return!1;r[h]=!0}}return!0}},{name:"omitVerticalDotPlot",description:"Do not output vertical dot plot.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let r=e.getEncodings();return!(r.length===1&&r[0].channel==="y")}},{name:"hasAppropriateGraphicTypeForMark",description:"Has appropriate graphic type for mark",properties:[m.CHANNEL,m.MARK,m.TYPE,m.TIMEUNIT,m.BIN,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{let r=e.getMark();switch(r){case ze:case gt:if(e.isAggregate()){let u=e.getEncodingQueryByChannel("x"),p=e.getEncodingQueryByChannel("y"),f=Ke(u),d=Ke(p);return u&&p&&f!==d&&!(O(u)&&!f&&K(["nominal","key"],u.type))&&!(O(p)&&!d&&K(["nominal","key"],p.type))}return!0;case yt:return!0;case"bar":case vt:if(e.channelEncodingField("size"))return!1;{let u=e.getEncodingQueryByChannel("x"),p=e.getEncodingQueryByChannel("y");return Ke(u)!==Ke(p)}case rn:let a=e.getEncodingQueryByChannel("x"),i=e.getEncodingQueryByChannel("y"),s=be(a),c=be(i),h=e.getEncodingQueryByChannel(ue),o=Ke(h),l=O(h)?h.type===Ce:!1;return(s&&c||s&&!e.channelUsed("y")||c&&!e.channelUsed("x"))&&(!h||h&&(o||l));case on:case Ye:case sn:case an:return!0}throw Error("hasAllRequiredChannelsForMark not implemented for mark"+r)}},{name:"omitInvalidStackSpec",description:"If stack is specified, must follow Vega-Lite stack rules",properties:[m.STACK,m.FIELD,m.CHANNEL,m.MARK,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{if(!e.wildcardIndex.hasProperty(m.STACK))return!0;let r=e.getVlStack();return!(r===null&&e.getStackOffset()!==null||r.fieldChannel!==e.getStackChannel())}},{name:"omitNonSumStack",description:"Stack specifications that use non-summative aggregates should be omitted (even implicit ones)",properties:[m.CHANNEL,m.MARK,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let r=e.getVlStack();return!(r!=null&&!K(ni,e.getEncodingQueryByChannel(r.fieldChannel).aggregate))}},{name:"omitTableWithOcclusionIfAutoAddCount",description:"Plots without aggregation or autocount where x and y are both discrete should be omitted if autoAddCount is enabled as they often lead to occlusion",properties:[m.CHANNEL,m.TYPE,m.TIMEUNIT,m.BIN,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{if(n.autoAddCount){let r=e.getEncodingQueryByChannel("x"),a=e.getEncodingQueryByChannel("y");if((!O(r)||be(r))&&(!O(a)||be(a)))return e.isAggregate()?oe(e.getEncodings(),i=>{let s=i.channel;return!(s!=="x"&&s!=="y"&&s!=="row"&&s!=="column"&&O(i)&&!i.aggregate)}):!1}return!0}}].map(e=>new jc(e));Zi.reduce((e,t)=>(e[t.name()]=t,e),{});var Pc=Zi.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re);function ea(e,t,n,r,a){let i=Pc.get(e)||[];for(let s of i)if((s.strict()||a[s.name()])&&!s.satisfy(n,r,a)){let c="(spec) "+s.name();return a.verbose&&console.log(c+" failed with "+n.toShorthand()+" for "+t.name),c}return null}var Mt=new re;function Rc(e){return Mt.get(e)}Mt.set("mark",(e,t,n)=>(r,a)=>(a.getMark().enum.forEach(i=>{a.setMark(i),ea("mark",e.mark,a,t,n)||r.push(a.duplicate())}),a.resetMark(),r)),en.forEach(e=>{Mt.set(e,ta(e))}),ht.forEach(e=>{Mt.set(e,ta(e))});function ta(e){return(t,n,r)=>(a,i)=>{let s=t.encodingIndicesByProperty.get(e);function c(h){if(h===s.length){a.push(i.duplicate());return}let o=s[h],l=t.encodings[o].get(e),u=i.getEncodingQueryByIndex(o),p=i.getEncodingProperty(o,e);ie(u)||ae(u)||!p?c(h+1):(l.enum.forEach(f=>{f===null&&(f=void 0),i.setEncodingProperty(o,e,f,l),!Dc(e,l,o,i,n,r)&&(ea(e,l,i,n,r)||c(h+1))}),i.resetEncodingProperty(o,e,l))}return c(0),a}}var $c=H(ne());function Bc(e){return(0,$c.isObject)(e)&&!!e.property}function Je(e,t,n){return t||(t=new re),n||(n=new re),e.forEach(r=>{Bc(r)?(t.setByKey(r.property,!0),n.setByKey(r.property,r.replace)):t.setByKey(r,!0)}),{include:t,replaceIndex:n,replacer:Jl(n)}}const na=[m.FIELD,m.TYPE,m.AGGREGATE,m.BIN,m.TIMEUNIT,m.STACK],Lc=na.concat([{property:m.CHANNEL,replace:{x:"xy",y:"xy",color:"style",size:"style",shape:"style",opacity:"style",row:"facet",column:"facet"}}]);var ra=H(ne()),Qn={};function It(e,t){Qn[e]=t}function Wc(e,t){if(t){let n={name:"",path:"",items:[]},r={},a=[],i=[],s=[];for(let c=0;c<t.length;c++){a.push(c>0?a[c-1].duplicate():new re),i.push(c>0?i[c-1].duplicate():new re);let h=t[c].groupBy;if((0,ra.isArray)(h)){let o=Je(h,a[c],i[c]);s.push(o.replacer)}}return e.forEach(c=>{let h="",o=n;for(let l=0;l<t.length;l++){let u=o.groupBy=t[l].groupBy;o.orderGroupBy=t[l].orderGroupBy;let p=(0,ra.isArray)(u)?Pe(c.specQuery,a[l],s[l]):Qn[u](c.specQuery);h+="/"+p,r[h]||(r[h]={name:p,path:h,items:[]},o.items.push(r[h])),o=r[h]}o.items.push(c)}),n}else return{name:"",path:"",items:e}}var ia=Je([m.FIELD]);function qc(e,t){return Qn[t](e)}It("field",e=>Pe(e,ia.include,ia.replacer));const aa=Je(na);It("fieldTransform",e=>Pe(e,aa.include,aa.replacer));const oa=Je(Lc);It("encoding",e=>Pe(e,oa.include,oa.replacer)),It("spec",e=>JSON.stringify(e));var Hc=class{constructor(){this._mark=void 0,this._encodings={},this._encodingIndicesByProperty=new re}setEncodingProperty(e,t,n){let r=this._encodings;(r[e]=r[e]||new re).set(t,n);let a=this._encodingIndicesByProperty;return a.set(t,a.get(t)||[]),a.get(t).push(e),this}hasEncodingProperty(e,t){return!!this._encodings[e]&&this._encodings[e].has(t)}hasProperty(e){if(Qr(e))return this.encodingIndicesByProperty.has(e);if(e==="mark")return!!this.mark;throw Error("Unimplemented for property "+e)}isEmpty(){return!this.mark&&this.encodingIndicesByProperty.size()===0}setMark(e){return this._mark=e,this}get mark(){return this._mark}get encodings(){return this._encodings}get encodingIndicesByProperty(){return this._encodingIndicesByProperty}},Gc=H(ne()),zc=class ar{constructor(t,n,r,a,i){this._rankingScore={},this._spec=t,this._channelFieldCount=t.encodings.reduce((s,c)=>(!A(c.channel)&&(!P(c)||c.autoCount!==!1)&&(s[c.channel+""]=1),s),{}),this._wildcardIndex=n,this._assignedWildcardIndex=i,this._opt=a,this._schema=r}static build(t,n,r){let a=new Hc;if(A(t.mark)){let i=Qe(m.MARK);t.mark=un(t.mark,i,r.enum.mark),a.setMark(t.mark)}if(t.encodings.forEach((i,s)=>{P(i)&&(console.warn("A field with autoCount should not be included as autoCount meant to be an internal object."),i.type=te),O(i)&&i.type===void 0&&(i.type="?"),en.forEach(c=>{if(A(i[c])){let h=Qe(c)+s,o=fn(c,n,r),l=i[c]=un(i[c],h,o);a.setEncodingProperty(s,c,l)}}),ht.forEach(c=>{let h=i[c.parent];if(h){let o=c.child;if(A(h[o])){let l=Qe(c)+s,u=fn(c,n,r),p=h[o]=un(h[o],l,u);a.setEncodingProperty(s,c,p)}}})}),r.autoAddCount){let i={name:Qe(m.CHANNEL)+t.encodings.length,enum:fn(m.CHANNEL,n,r)},s={name:Qe(m.AUTOCOUNT)+t.encodings.length,enum:[!1,!0]},c={channel:i,autoCount:s,type:te};t.encodings.push(c);let h=t.encodings.length-1;a.setEncodingProperty(h,m.CHANNEL,i),a.setEncodingProperty(h,m.AUTOCOUNT,s)}return new ar(t,a,n,r,{})}get wildcardIndex(){return this._wildcardIndex}get schema(){return this._schema}get specQuery(){return this._spec}duplicate(){return new ar((0,U.duplicate)(this._spec),this._wildcardIndex,this._schema,this._opt,(0,U.duplicate)(this._assignedWildcardIndex))}setMark(t){let n=this._wildcardIndex.mark.name;this._assignedWildcardIndex[n]=this._spec.mark=t}resetMark(){let t=this._spec.mark=this._wildcardIndex.mark;delete this._assignedWildcardIndex[t.name]}getMark(){return this._spec.mark}getEncodingProperty(t,n){let r=this._spec.encodings[t];return se(n)?r[n.parent][n.child]:r[n]}setEncodingProperty(t,n,r,a){let i=this._spec.encodings[t];n===m.CHANNEL&&i.channel&&!A(i.channel)&&this._channelFieldCount[i.channel]--,se(n)?i[n.parent][n.child]=r:tn(n)&&r===!0?i[n]=(0,U.extend)({},i[n],{enum:void 0,name:void 0}):i[n]=r,this._assignedWildcardIndex[a.name]=r,n===m.CHANNEL&&(this._channelFieldCount[r]=(this._channelFieldCount[r]||0)+1)}resetEncodingProperty(t,n,r){let a=this._spec.encodings[t];n===m.CHANNEL&&this._channelFieldCount[a.channel]--,se(n)?a[n.parent][n.child]=r:a[n]=r,delete this._assignedWildcardIndex[r.name]}channelUsed(t){return this._channelFieldCount[t]>0}channelEncodingField(t){return O(this.getEncodingQueryByChannel(t))}getEncodings(){return this._spec.encodings.filter(t=>!ae(t))}getEncodingQueryByChannel(t){for(let n of this._spec.encodings)if(n.channel===t)return n}getEncodingQueryByIndex(t){return this._spec.encodings[t]}isAggregate(){return Yl(this._spec)}getVlStack(){return li(this._spec)}getStackOffset(){return Ql(this._spec)}getStackChannel(){return Vl(this._spec)}toShorthand(t){if(t){if((0,Gc.isString)(t))return qc(this.specQuery,t);let n=Je(t);return Pe(this._spec,n.include,n.replacer)}return Pe(this._spec)}toSpec(t){if(A(this._spec.mark))return null;let n={};return t||(t=this._spec.data),t&&(n.data=t),this._spec.transform&&(n.transform=this._spec.transform),n.mark=this._spec.mark,n.encoding=hi(this.specQuery.encodings,{schema:this._schema,wildcardMode:"null"}),this._spec.width&&(n.width=this._spec.width),this._spec.height&&(n.height=this._spec.height),this._spec.background&&(n.background=this._spec.background),this._spec.padding&&(n.padding=this._spec.padding),this._spec.title&&(n.title=this._spec.title),n.encoding===null?null:((this._spec.config||this._opt.defaultSpecConfig)&&(n.config=(0,U.extend)({},this._opt.defaultSpecConfig,this._spec.config)),n)}getRankingScore(t){return this._rankingScore[t]}setRankingScore(t,n){this._rankingScore[t]=n}};function Yc(e){if(e.groupBy){let t={groupBy:e.groupBy};e.orderBy&&(t.orderGroupBy=e.orderBy);let n={spec:(0,U.duplicate)(e.spec),nest:[t]};return e.chooseBy&&(n.chooseBy=e.chooseBy),e.config&&(n.config=e.config),n}return(0,U.duplicate)(e)}function sa(e){return e.items!==void 0}function Vn(e){let t=e.items[0];for(;t&&sa(t);)t=t.items[0];return t}var Re=class{constructor(e){this.type=e,this.scoreIndex=this.initScore()}getFeatureScore(e){let t=this.type,n=this.scoreIndex[e];if(n!==void 0)return{type:t,feature:e,score:n}}},J;(function(e){e[e.Q=te]="Q",e[e.BIN_Q="bin_"+te]="BIN_Q",e[e.T=ye]="T",e[e.TIMEUNIT_T="timeUnit_time"]="TIMEUNIT_T",e[e.TIMEUNIT_O="timeUnit_"+Ce]="TIMEUNIT_O",e[e.O=Ce]="O",e[e.N=we]="N",e[e.K=le.KEY]="K",e[e.NONE="-"]="NONE"})(J||(J={}));const la=J.Q,Ut=J.BIN_Q,Kn=J.T,$e=J.TIMEUNIT_T,Ft=J.TIMEUNIT_O,Dt=J.O,_t=J.N,Jn=J.K,jt=J.NONE;function Pt(e){return e.bin?J.BIN_Q:e.timeUnit?Ae(ke(e))?J.TIMEUNIT_O:J.TIMEUNIT_T:e.type}var Qc=class extends Re{constructor(){super("Axis")}initScore(e={}){e=Object.assign({},Ve,e);let t={};return[{feature:Ut,opt:"preferredBinAxis"},{feature:Kn,opt:"preferredTemporalAxis"},{feature:$e,opt:"preferredTemporalAxis"},{feature:Ft,opt:"preferredTemporalAxis"},{feature:Dt,opt:"preferredOrdinalAxis"},{feature:_t,opt:"preferredNominalAxis"}].forEach(n=>{e[n.opt]==="x"?t[n.feature+"_y"]=-.01:e[n.opt]==="y"&&(t[n.feature+"_x"]=-.01)}),t}featurize(e,t){return e+"_"+t}getScore(e,t,n){return e.getEncodings().reduce((r,a)=>{if(O(a)||P(a)){let i=Pt(a),s=this.featurize(i,a.channel),c=this.getFeatureScore(s);c&&r.push(c)}return r},[])}},Vc=class extends Re{constructor(){super("Dimension")}initScore(){return{row:-2,column:-2,color:0,opacity:0,size:0,shape:0}}getScore(e,t,n){return e.isAggregate()&&e.getEncodings().reduce((r,a)=>{if(P(a)||O(a)&&!a.aggregate){let i=this.getFeatureScore(a.channel+"");if(i&&i.score>r.score)return i}return r},{type:"Dimension",feature:"No Dimension",score:-5}),[]}},Kc=class extends Re{constructor(){super("Facet")}initScore(e){e=Object.assign({},Ve,e);let t={};return e.preferredFacet==="row"?t[Ne]=-.01:e.preferredFacet==="column"&&(t.row=-.01),t}getScore(e,t,n){return e.getEncodings().reduce((r,a)=>{if(O(a)||P(a)){let i=this.getFeatureScore(a.channel);i&&r.push(i)}return r},[])}},Jc=class extends Re{constructor(){super("SizeChannel")}initScore(){return{bar_size:-2,tick_size:-2}}getScore(e,t,n){let r=e.getMark();return e.getEncodings().reduce((a,i)=>{if(O(i)||P(i)){let s=r+"_"+i.channel,c=this.getFeatureScore(s);c&&a.push(c)}return a},[])}},Xc=class extends Re{constructor(){super("TypeChannel")}initScore(){let e={},t={x:0,y:0,size:-.575,color:-.725,text:-2,opacity:-3,shape:-10,row:-10,column:-10,detail:-20};[la,Kn,$e].forEach(a=>{(0,U.keys)(t).forEach(i=>{e[this.featurize(a,i)]=t[i]})});let n=(0,U.extend)({},t,{row:-.75,column:-.75,shape:-3.1,text:-3.2,detail:-4});[Ut,Ft,Dt].forEach(a=>{(0,U.keys)(n).forEach(i=>{e[this.featurize(a,i)]=n[i]})});let r={x:0,y:0,color:-.6,shape:-.65,row:-.7,column:-.7,text:-.8,detail:-2,size:-3,opacity:-3.1};return(0,U.keys)(r).forEach(a=>{e[this.featurize(_t,a)]=r[a],e[this.featurize(Jn,a)]=K(["x","y","detail"],a)?-1:r[a]-2}),e}featurize(e,t){return e+"_"+t}getScore(e,t,n){let r=e.getEncodings().reduce((i,s)=>{if(O(s)||P(s)){let c=fi(s);(i[c]=i[c]||[]).push(s)}return i},{}),a=[];return z(r,i=>{let s=i.reduce((c,h)=>{if(O(h)||P(h)){let o=Pt(h),l=this.featurize(o,h.channel),u=this.getFeatureScore(l);if(c===null||u.score>c.score)return u}return c},null);a.push(s)}),a}},Zc=class extends Re{constructor(){super("Mark")}initScore(){return eu()}getScore(e,t,n){let r=e.getMark();(r==="circle"||r==="square")&&(r=Ye);let a=e.getEncodingQueryByChannel("x"),i=a?Pt(a):jt,s=e.getEncodingQueryByChannel("y"),c=s?Pt(s):jt,h=!e.isAggregate(),o=i+"_"+c+"_"+h+"_"+r,l=this.getFeatureScore(o);return l?[l]:(console.error("feature score missing for",o),[])}};function $(e,t,n,r){return e+"_"+t+"_"+n+"_"+r}function eu(){let e=[la,Kn],t=[Ut,Ft,Dt,_t,Jn,jt],n={};e.forEach(r=>{e.forEach(a=>{z({point:0,text:-.2,tick:-.5,rect:-1,bar:-2,line:-2,area:-2,rule:-2.5},(i,s)=>{let c=$(r,a,!0,s);n[c]=i}),z({point:0,text:-.2,tick:-.5,bar:-2,line:-2,area:-2,rule:-2.5},(i,s)=>{let c=$(r,a,!1,s);n[c]=i})})}),e.forEach(r=>{t.forEach(a=>{z({tick:0,point:-.2,text:-.5,bar:-2,line:-2,area:-2,rule:-2.5},(i,s)=>{let c=$(r,a,!0,s);n[c]=i;let h=$(a,r,!0,s);n[h]=i})}),[$e].forEach(a=>{z({point:0,text:-.5,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5},(i,s)=>{let c=$(r,a,!0,s);n[c]=i;let h=$(a,r,!0,s);n[h]=i})}),[jt,_t,Dt,Jn].forEach(a=>{z({bar:0,point:-.2,tick:-.25,text:-.3,line:-2,area:-2,rule:-2.5},(i,s)=>{let c=$(r,a,!1,s);n[c]=i;let h=$(a,r,!1,s);n[h]=i})}),[Ut].forEach(a=>{z({bar:0,point:-.2,tick:-.25,text:-.3,line:-.5,area:-.5,rule:-2.5},(i,s)=>{let c=$(r,a,!1,s);n[c]=i;let h=$(a,r,!1,s);n[h]=i})}),[$e,Ft].forEach(a=>{z({line:0,area:-.1,bar:-.2,point:-.3,tick:-.35,text:-.4,rule:-2.5},(i,s)=>{let c=$(r,a,!1,s);n[c]=i;let h=$(a,r,!1,s);n[h]=i})})}),[$e].forEach(r=>{[$e].forEach(a=>{let i={point:0,rect:-.1,text:-.5,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(i,(s,c)=>{let h=$(r,a,!0,c);n[h]=s}),z(i,(s,c)=>{let h=$(r,a,!1,c);n[h]=s})}),t.forEach(a=>{let i={tick:0,point:-.2,text:-.5,rect:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(i,(s,c)=>{let h=$(r,a,!0,c);n[h]=s}),z(i,(s,c)=>{let h=$(a,r,!0,c);n[h]=s}),z(i,(s,c)=>{let h=$(r,a,!1,c);n[h]=s}),z(i,(s,c)=>{let h=$(a,r,!1,c);n[h]=s})})});for(let r of t)for(let a of t){let i={point:0,rect:0,text:-.1,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(i,(s,c)=>{let h=$(r,a,!0,c);n[h]=s}),z(i,(s,c)=>{let h=$(r,a,!1,c);n[h]=s})}return n}var tu=[new Qc,new Vc,new Kc,new Zc,new Jc,new Xc];function nu(e,t,n){let r=tu.reduce((a,i)=>{let s=i.getScore(e,t,n);return a.concat(s)},[]);return{score:r.reduce((a,i)=>a+i.score,0),features:r}}const xe="aggregationQuality";function ru(e,t,n){let r=iu(e,t,n);return{score:r.score,features:[r]}}function iu(e,t,n){let r=e.getEncodings();if(e.isAggregate()){if(de(r,a=>O(a)&&(a.type==="quantitative"&&!a.bin&&!a.aggregate||a.type==="temporal"&&!a.timeUnit)))return{type:xe,score:.1,feature:"Aggregate with raw continuous"};if(de(r,a=>O(a)&&be(a))){let a=de(r,s=>O(s)&&s.aggregate==="count"||Tt(s)),i=de(r,s=>O(s)&&!!s.bin);return a?{type:xe,score:.8,feature:"Aggregate with count"}:i?{type:xe,score:.7,feature:"Aggregate with bin but without count"}:{type:xe,score:.9,feature:"Aggregate without count and without bin"}}return{type:xe,score:.3,feature:"Aggregate without dimension"}}else return de(r,a=>O(a)&&!be(a))?{type:xe,score:1,feature:"Raw with measure"}:{type:xe,score:.2,feature:"Raw without measure"}}function au(e,t,n){let r=e.wildcardIndex.encodingIndicesByProperty.get("field");if(!r)return{score:0,features:[]};let a=e.specQuery.encodings,i=t.fieldSchemas.length,s=[],c=0,h=1;for(let o=r.length-1;o>=0;o--){let l=r[o],u=a[l],p;if(O(u))p=u.field;else continue;let f=e.wildcardIndex.encodings[l].get("field"),d=t.fieldSchema(p).index,g=-d*h;c+=g,s.push({score:g,type:"fieldOrder",feature:`field ${f.name} is ${p} (#${d} in the schema)`}),h*=i}return{score:c,features:s}}var ca={};function Xn(e,t){ca[e]=t}function ou(e){return ca[e]}function ua(e,t,n,r){return!t.nest||r===t.nest.length?(t.orderBy||t.chooseBy)&&(e.items.sort(su(t.orderBy||t.chooseBy,n,t.config)),t.chooseBy&&e.items.length>0&&e.items.splice(1)):(e.items.forEach(a=>{ua(a,t,n,r+1)}),t.nest[r].orderGroupBy&&e.items.sort(lu(t.nest[r].orderGroupBy,n,t.config))),e}function su(e,t,n){return(r,a)=>e instanceof Array?Rt(e,r,a,t,n):Rt([e],r,a,t,n)}function lu(e,t,n){return(r,a)=>{let i=Vn(r),s=Vn(a);return e instanceof Array?Rt(e,i,s,t,n):Rt([e],i,s,t,n)}}function Rt(e,t,n,r,a){for(let i of e){let s=da(n,i,r,a).score-da(t,i,r,a).score;if(s!==0)return s}return 0}function da(e,t,n,r){if(e.getRankingScore(t)!==void 0)return e.getRankingScore(t);let a=ou(t)(e,n,r);return e.setRankingScore(t,a),a}Xn("effectiveness",nu),Xn(xe,ru),Xn("fieldOrder",au);function cu(e,t,n){let r={};return e=e.map(function(a){return n.smallRangeStepForHighCardinalityOrFacet&&(a=uu(a,t,r,n)),n.nominalColorScaleForHighCardinality&&(a=du(a,t,r,n)),n.xAxisOnTopForHighYCardinalityWithoutColumn&&(a=fu(a,t,r,n)),a}),e}function uu(e,t,n,r){["row","y",Ne,"x"].forEach(s=>{n[s]=e.getEncodingQueryByChannel(s)});let a=n.y;if(a!==void 0&&O(a)&&(n.row||t.cardinality(a)>r.smallRangeStepForHighCardinalityOrFacet.maxCardinality)){a.scale===void 0&&(a.scale={});let s=ke(a);a.scale&&(s===void 0||Ae(s))&&(a.scale.rangeStep||(a.scale.rangeStep=12))}let i=n.x;if(O(i)&&(n.column||t.cardinality(i)>r.smallRangeStepForHighCardinalityOrFacet.maxCardinality)){i.scale===void 0&&(i.scale={});let s=ke(i);i.scale&&(s===void 0||Ae(s))&&(i.scale.rangeStep||(i.scale.rangeStep=12))}return e}function du(e,t,n,r){n[ue]=e.getEncodingQueryByChannel(ue);let a=n[ue];return O(a)&&a!==void 0&&(a.type==="nominal"||a.type===le.KEY)&&t.cardinality(a)>r.nominalColorScaleForHighCardinality.maxCardinality&&(a.scale===void 0&&(a.scale={}),a.scale&&(a.scale.range||(a.scale.scheme=r.nominalColorScaleForHighCardinality.palette))),e}function fu(e,t,n,r){if([Ne,"x","y"].forEach(a=>{n[a]=e.getEncodingQueryByChannel(a)}),n.column===void 0){let a=n.x,i=n.y;O(a)&&O(i)&&i!==void 0&&i.field&&Ae(ke(i))&&a!==void 0&&t.cardinality(i)>r.xAxisOnTopForHighYCardinalityWithoutColumn.maxCardinality&&(a.axis===void 0&&(a.axis={}),a.axis&&!a.axis.orient&&(a.axis.orient="top"))}return e}function pu(e,t,n=Ve){let r=zc.build(e,t,n),a=r.wildcardIndex,i=[r];return n.propertyPrecedence.forEach(s=>{let c=ol(s);if(a.hasProperty(c)){let h=Rc(c)(a,t,n);i=i.reduce(h,[])}}),n.stylize&&(n.nominalColorScaleForHighCardinality!==null||n.smallRangeStepForHighCardinalityOrFacet!==null||n.xAxisOnTopForHighYCardinalityWithoutColumn!==null)?cu(i,t,n):i}function fa(e,t,n){e=Object.assign({},Yc(e),{config:Object.assign({},Ve,n,e.config)});let r=ua(Wc(pu(e.spec,t,e.config),e.nest),e,t,0);return{query:e,result:r}}var Zn=H(ka(),1),E=H(Pa(),1);const Be={[R.BOOLEAN]:(0,E.jsx)(Ha,{className:"h-5 w-5 inline-flex opacity-60"}),[R.DATETIME]:(0,E.jsx)(qa,{className:"h-5 w-5 inline-flex opacity-60"}),[R.NUMBER]:(0,E.jsx)(Ga,{className:"h-5 w-5 inline-flex opacity-60"}),[R.STRING]:(0,E.jsx)(za,{className:"h-5 w-5 inline-flex opacity-60"}),[R.INTEGER]:(0,E.jsx)(io,{className:"h-5 w-5 inline-flex opacity-60"})};var pa=12;const hu=e=>{let t=(0,hr.c)(45),{schema:n}=e,[r,a]=(0,Zn.useState)(),[i,s]=(0,Zn.useState)(),c,h,o,l,u,p,f,d;if(t[0]!==n||t[1]!==r||t[2]!==i){c=n.fieldNames();let k;t[11]!==n||t[12]!==r?(k=r?n.stats({field:r,channel:"x"}):void 0,t[11]=n,t[12]=r,t[13]=k):k=t[13],o=k;let I;t[14]===Symbol.for("react.memo_cache_sentinel")?(I=(0,E.jsx)(ro,{className:"text-muted-foreground",width:40,height:40,strokeWidth:1.5}),t[14]=I):I=t[14];let _=I,Ee=i?c:c.slice(0,pa);h=c.length>pa,p="flex flex-col justify-center items-center h-full flex-1 gap-2",f=_,d=(0,E.jsxs)("span",{className:"text-muted-foreground font-semibold",children:[c.length>0?c.length:"No"," fields"]}),l="hidden lg:grid grid-cols-2 xl:grid-cols-3 gap-2 p-2 bg-(--slate-1) border rounded lg:items-center items-start w-fit grid-flow-dense max-h-[300px] overflow-auto";let X;t[15]!==n||t[16]!==r?(X=W=>{let pe=n.cardinality({channel:"x",field:W});return(0,E.jsxs)("span",{className:Ra("hover:bg-muted self-start px-2 py-2 rounded flex flex-row gap-1 items-center cursor-pointer lg:justify-center text-sm truncate shrink-0 overflow-hidden",r===W&&"bg-muted"),onClick:()=>{if(r===W){a(void 0);return}a(W)},children:[Be[n.primitiveType(W)],W,pe>1&&(0,E.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",pe,")"]})]},W)},t[15]=n,t[16]=r,t[17]=X):X=t[17],u=Ee.map(X),t[0]=n,t[1]=r,t[2]=i,t[3]=c,t[4]=h,t[5]=o,t[6]=l,t[7]=u,t[8]=p,t[9]=f,t[10]=d}else c=t[3],h=t[4],o=t[5],l=t[6],u=t[7],p=t[8],f=t[9],d=t[10];let g;t[18]!==h||t[19]!==i?(g=h&&(0,E.jsx)(lr,{"data-testid":"marimo-plugin-data-explorer-show-more-columns",variant:"link",size:"sm",className:"self-center col-span-3 -mt-1",onClick:()=>s(yu),children:i?"Show less":"Show more"}),t[18]=h,t[19]=i,t[20]=g):g=t[20];let y;t[21]!==l||t[22]!==u||t[23]!==g?(y=(0,E.jsxs)("div",{className:l,children:[u,g]}),t[21]=l,t[22]=u,t[23]=g,t[24]=y):y=t[24];let v=r||"",b=c.length===0,x;t[25]===Symbol.for("react.memo_cache_sentinel")?(x=k=>{a(k)},t[25]=x):x=t[25];let S;t[26]===Symbol.for("react.memo_cache_sentinel")?(S=(0,E.jsx)(et,{className:"min-w-[210px] h-full",children:(0,E.jsx)(dr,{placeholder:"Select a column"})}),t[26]=S):S=t[26];let C;t[27]===n?C=t[28]:(C=n.fieldNames().map(k=>(0,E.jsx)(Se,{value:k.toString(),children:(0,E.jsxs)("span",{className:"flex items-center gap-2 flex-1",children:[Be[n.primitiveType(k)],(0,E.jsx)("span",{className:"flex-1",children:k}),(0,E.jsxs)("span",{className:"text-muted-foreground text-xs font-semibold",children:["(",n.vlType(k),")"]})]})},k)),t[27]=n,t[28]=C);let T;t[29]===C?T=t[30]:(T=(0,E.jsx)(Ze,{children:(0,E.jsx)(We,{children:C})}),t[29]=C,t[30]=T);let w;t[31]!==T||t[32]!==v||t[33]!==b?(w=(0,E.jsx)("div",{className:"lg:hidden",children:(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-column-select",value:v,disabled:b,onValueChange:x,children:[S,T]})}),t[31]=T,t[32]=v,t[33]=b,t[34]=w):w=t[34];let N;t[35]!==r||t[36]!==o?(N=r&&(0,E.jsx)("div",{className:"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-2 p-2 text-sm",children:mu.map(k=>(0,E.jsxs)("div",{className:"flex flex-row gap-2 min-w-[100px]",children:[(0,E.jsx)("span",{className:"font-semibold",children:k}),(0,E.jsx)("span",{children:(0,E.jsx)(gu,{value:o==null?void 0:o[k]})})]},k))}),t[35]=r,t[36]=o,t[37]=N):N=t[37];let D;return t[38]!==w||t[39]!==N||t[40]!==p||t[41]!==f||t[42]!==d||t[43]!==y?(D=(0,E.jsxs)("div",{className:p,children:[f,d,y,w,N]}),t[38]=w,t[39]=N,t[40]=p,t[41]=f,t[42]=d,t[43]=y,t[44]=D):D=t[44],D};var mu=["distinct","min","max","mean","median","q1","q3","stdev"],gu=e=>{let t=(0,hr.c)(8),{value:n}=e,r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={maximumFractionDigits:2},t[0]=r):r=t[0];let a=Xa(r),i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i={year:"numeric",month:"short",day:"numeric"},t[1]=i):i=t[1];let s=Ja(i);if(typeof n=="number"){let c;return t[2]!==a||t[3]!==n?(c=a.format(n),t[2]=a,t[3]=n,t[4]=c):c=t[4],c}if(typeof n=="string")return n;if(typeof n=="object"&&n instanceof Date){let c;return t[5]!==s||t[6]!==n?(c=s.format(n),t[5]=s,t[6]=n,t[7]=c):c=t[7],c}return String(n)};function yu(e){return!e}var vu=["argmax","argmin","average","count","distinct","exponential","exponentialb","product","max","mean","median","min","missing","q1","q3","ci0","ci1","stderr","stdev","stdevp","sum","valid","values","variance","variancep"];const bu=e=>Ia(e)?vu.includes(e):!1;function xu(e){return e?e==="bin"?{bin:!0}:bu(e)?{aggregate:e}:Eu(e)?{timeUnit:e}:{}:{}}function Eu(e){return e?ha.includes(e)||ma.includes(e):!1}const Tu=["bin","min","max","mean","median","sum"],ha=["year","month","date","day","hours","minutes","seconds","milliseconds"],ma=["yearmonth","yearmonthdate","monthdate"];function Su(e){let{aggregate:t,bin:n,timeUnit:r}=e;if(n)return"bin";if(t)return t.toString();if(r)return r.toString()}const Nu=["?","area","bar","circle","geoshape","line","point","rect","rule","square","text","tick","trail"],Cu={type:"histograms",limit:12,createQuery(e){return{spec:{data:e.spec.data,mark:"?",transform:e.spec.transform,encodings:[{channel:"?",bin:"?",timeUnit:"?",field:"?",type:"?"},{channel:"?",aggregate:"count",field:"*",type:"quantitative"}]},groupBy:"fieldTransform",orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:{autoAddCount:!1}}}};function ga(e){let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t}function wu(e,t){let{fn:n,...r}=e;return{channel:t,...xu(n),...r}}function Au(e){let{aggregate:t,bin:n,timeUnit:r,field:a,scale:i,legend:s,axis:c,sort:h,description:o}=e,{type:l}=e;if(A(l))throw Error("Wildcard not support");l==="ordinal"&&(_a.warn("Ordinal type is not supported. Using nominal type instead."),l="nominal");let u=Su({aggregate:t,bin:n,timeUnit:r});return ja(a!==void 0,"Field is required for fieldQ"),ga({field:a,fn:u,type:l,sort:h,scale:i,axis:c,legend:s,description:o})}function Ou(e){return{mark:e.mark,encodings:ku(e.encoding),config:e.config}}function ku(e){return e?Object.entries(e).map(([t,n])=>wu(n,t)):[]}function er(e){let{type:t,limit:n,additionalFieldQuery:r}=e;return{type:t,limit:n,createQuery(a){return{spec:{...a.spec,encodings:[...a.spec.encodings,r]},groupBy:"field",orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:{autoAddCount:!0}}}}}const Mu=er({type:"addCategoricalField",limit:4,additionalFieldQuery:{channel:"?",field:"?",type:"nominal"}}),Iu=er({type:"addQuantitativeField",limit:4,additionalFieldQuery:{channel:"?",bin:"?",aggregate:"?",field:"?",type:"quantitative"}}),Uu=er({type:"addTemporalField",limit:2,additionalFieldQuery:{channel:"?",hasFn:!0,timeUnit:"?",field:"?",type:"temporal"}}),Fu=["color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","strokeDash","angle","time"];function Du(e){return!va(e).hasAnyWildcard}function _u(e){let t=["x","y","color"],n=["row","column"],r=new Set(e.encodings.map(s=>s.channel)),a=t.every(s=>r.has(s)),i=n.some(s=>r.has(s));return a&&i}function ya(e){return e.encodings.length===0}function va(e){let t=!1,n=!1,r=!1;for(let a of e.encodings)ie(a)||(P(a)?A(a.autoCount)&&(n=!0):(A(a.field)&&(t=!0),(A(a.aggregate)||A(a.bin)||A(a.timeUnit))&&(n=!0),A(a.channel)&&(r=!0)));return{hasAnyWildcard:r||t||n,hasWildcardField:t,hasWildcardFn:n,hasWildcardChannel:r}}var ba={name:"source"};function ju(e){let t=!1,n=!1,r=!1;return e.encodings.forEach(a=>{a.channel==="x"||a.channel==="y"?t=!0:a.channel==="row"||a.channel==="column"?r=!0:typeof a.channel=="string"&&eo(Fu,a.channel)&&(n=!0)}),{hasOpenPosition:t,hasStyleChannel:n,hasOpenFacet:r}}function Pu(e,t){let n={},{hasOpenPosition:r,hasStyleChannel:a,hasOpenFacet:i}=ju(e.spec);return(r||a)&&(n.addQuantitativeField=$t(Iu,e,t)),(r||a||i)&&(n.addCategoricalField=$t(Mu,e,t)),r&&(n.addTemporalField=$t(Uu,e,t)),n}function tr(e,t){if(ya(e.spec))return{plots:[],query:e,limit:1};let n=fa(e,t).result;return{plots:[xa(n,ba)[0]],query:e,limit:1}}function $t(e,t,n){let r=e.createQuery(t),a=fa(r,n).result;return{plots:xa(a,ba),query:r,limit:e.limit}}function xa(e,t){return e.items.map(n=>sa(n)?Ea(t,Vn(n)):Ea(t,n))}function Ea(e,t){return{fieldInfos:t.getEncodings().filter(O).map(n=>({fieldDef:Au(n),channel:n.channel})),spec:t.toSpec(e)}}function Ru(e){let{spec:t,autoAddCount:n}=e,r=Ou(t),{hasAnyWildcard:a,hasWildcardFn:i,hasWildcardField:s}=va(r);return{spec:r,groupBy:$u({hasWildcardFn:i,hasWildcardField:s}),orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:a?{autoAddCount:n}:void 0}}function $u(e){let{hasWildcardFn:t,hasWildcardField:n}=e;return t?"fieldTransform":n?"field":"encoding"}function Bu(){return{mark:"?",encoding:{},config:{},schema:null}}var{valueAtom:Le,useActions:Lu}=$a(Bu,{setSchema:(e,t)=>({...e,schema:t}),setMark:(e,t)=>({...e,mark:t}),setEncoding:(e,t)=>{let n=ga({...e.encoding,...t});return{...e,encoding:n}},set:(e,t)=>{let{schema:n,...r}=t;return{...e,...r}}});function Ta(){return Lu()}const Wu=wa(e=>{let t=e(Le);if(!t.schema)return{};let n=Ru({spec:t,autoAddCount:!0});return ya(n.spec)?{main:tr(n,t.schema),histograms:$t(Cu,n,t.schema)}:Du(n.spec)&&!_u(n.spec)?{main:tr(n,t.schema),...Pu(n,t.schema)}:{main:tr(n,t.schema)}});var nr=H(Wt(),1),qu=["x","y","row","column"],Hu=["color","size","shape"];const Gu=e=>{let t=(0,nr.c)(26),{schema:n,mark:r}=e,a=Lt(Le),i=Ta(),s=a.encoding.x&&a.encoding.y,c;t[0]!==i||t[1]!==s||t[2]!==n||t[3]!==a.encoding?(c=C=>(0,E.jsx)(zu,{schema:n,label:C,disabled:(C==="row"||C==="column")&&!s,fieldDefinition:a.encoding[C],onChange:T=>i.setEncoding({[C]:T})},C),t[0]=i,t[1]=s,t[2]=n,t[3]=a.encoding,t[4]=c):c=t[4];let h=c,o;t[5]===r?o=t[6]:(o=r.toString(),t[5]=r,t[6]=o);let l;t[7]===i?l=t[8]:(l=C=>i.setMark(C),t[7]=i,t[8]=l);let u;t[9]===Symbol.for("react.memo_cache_sentinel")?(u=(0,E.jsx)(et,{children:(0,E.jsx)(dr,{placeholder:"Mark"})}),t[9]=u):u=t[9];let p;t[10]===Symbol.for("react.memo_cache_sentinel")?(p=(0,E.jsx)(Ze,{children:(0,E.jsxs)(We,{children:[(0,E.jsx)(ur,{children:"Mark"}),Nu.map(Qu)]})}),t[10]=p):p=t[10];let f;t[11]!==o||t[12]!==l?(f=(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-mark-select",value:o,onValueChange:l,children:[u,p]}),t[11]=o,t[12]=l,t[13]=f):f=t[13];let d=f,g;t[14]===Symbol.for("react.memo_cache_sentinel")?(g=(0,E.jsx)("span",{className:"col-span-2 flex items-center justify-between w-full",children:(0,E.jsx)("div",{className:"text-sm font-semibold",children:"Encodings"})}),t[14]=g):g=t[14];let y;t[15]===h?y=t[16]:(y=qu.map(h),t[15]=h,t[16]=y);let v;t[17]===Symbol.for("react.memo_cache_sentinel")?(v=(0,E.jsx)("div",{children:"Mark"}),t[17]=v):v=t[17];let b;t[18]===d?b=t[19]:(b=(0,E.jsxs)("span",{className:"col-span-2 text-sm font-semibold w-full border-t border-divider flex items-center justify-between pt-2 pr-[30px]",children:[v,d]}),t[18]=d,t[19]=b);let x;t[20]===h?x=t[21]:(x=Hu.map(h),t[20]=h,t[21]=x);let S;return t[22]!==b||t[23]!==x||t[24]!==y?(S=(0,E.jsxs)("div",{className:"grid gap-x-2 gap-y-4 justify-items-start py-3 pl-4 pr-2 bg-(--slate-1) border rounded items-center grid-template-columns-[repeat(2,_minmax(0,_min-content))] self-start",children:[g,y,b,x]}),t[22]=b,t[23]=x,t[24]=y,t[25]=S):S=t[25],S};var zu=e=>{let t=(0,nr.c)(43),{label:n,schema:r,fieldDefinition:a,disabled:i,onChange:s}=e,c;t[0]!==a||t[1]!==r?(c=()=>{if(!a)return"--";if(a.field==="*")return(0,E.jsxs)("span",{className:"flex gap-2 flex-1",children:[Be[R.NUMBER],(0,E.jsx)("span",{className:"text-left flex-1",children:"Count"})]});let _=a.field.toString();return(0,E.jsxs)("span",{className:"flex gap-2 flex-1",children:[Be[r.primitiveType(_)],(0,E.jsx)("span",{className:"text-left flex-1",children:a.fn?`${a.fn}(${a.field})`:_})]})},t[0]=a,t[1]=r,t[2]=c):c=t[2];let h=c,o;t[3]===s?o=t[4]:(o=()=>{s(void 0)},t[3]=s,t[4]=o);let l=o,u;t[5]===(a==null?void 0:a.field)?u=t[6]:(u=(a==null?void 0:a.field.toString())??"",t[5]=a==null?void 0:a.field,t[6]=u);let p=u,f;t[7]===n?f=t[8]:(f=(0,E.jsx)(no,{className:"text-(--slate-11) font-semibold",children:n}),t[7]=n,t[8]=f);let d;t[9]!==s||t[10]!==r?(d=_=>{s(_==="*"?{field:"*",fn:"count",type:"quantitative"}:{field:_,type:r.vlType(_)})},t[9]=s,t[10]=r,t[11]=d):d=t[11];let g=p?l:void 0,y;t[12]===h?y=t[13]:(y=h(),t[12]=h,t[13]=y);let v;t[14]!==g||t[15]!==y?(v=(0,E.jsx)(et,{className:"min-w-[140px] lg:min-w-[210px] h-full",onClear:g,children:y}),t[14]=g,t[15]=y,t[16]=v):v=t[16];let b;t[17]===r?b=t[18]:(b=r.fieldNames().map(_=>(0,E.jsx)(Se,{value:_.toString(),children:(0,E.jsxs)("span",{className:"flex items-center gap-2 flex-1",children:[Be[r.primitiveType(_)],(0,E.jsx)("span",{className:"flex-1",children:_}),(0,E.jsxs)("span",{className:"text-muted-foreground text-xs font-semibold",children:["(",r.vlType(_),")"]})]})},_)),t[17]=r,t[18]=b);let x;t[19]===r?x=t[20]:(x=r.fieldNames().length===0&&(0,E.jsx)(Se,{disabled:!0,value:"--",children:"No columns"}),t[19]=r,t[20]=x);let S;t[21]===Symbol.for("react.memo_cache_sentinel")?(S=(0,E.jsx)(fr,{}),t[21]=S):S=t[21];let C;t[22]===Symbol.for("react.memo_cache_sentinel")?(C=(0,E.jsx)(Se,{value:"*",children:(0,E.jsxs)("span",{className:"flex items-center gap-1 flex-1",children:[Be[R.NUMBER],(0,E.jsx)("span",{className:"flex-1",children:"Count"})]})},"*"),t[22]=C):C=t[22];let T;t[23]!==x||t[24]!==b?(T=(0,E.jsx)(Ze,{children:(0,E.jsxs)(We,{children:[b,x,S,C]})}),t[23]=x,t[24]=b,t[25]=T):T=t[25];let w;t[26]!==i||t[27]!==p||t[28]!==T||t[29]!==d||t[30]!==v?(w=(0,E.jsxs)(tt,{value:p,disabled:i,onValueChange:d,children:[v,T]}),t[26]=i,t[27]=p,t[28]=T,t[29]=d,t[30]=v,t[31]=w):w=t[31];let N;t[32]!==a||t[33]!==s?(N=a&&(0,E.jsx)(Yu,{field:a,onChange:s}),t[32]=a,t[33]=s,t[34]=N):N=t[34];let D;t[35]===N?D=t[36]:(D=(0,E.jsx)("div",{className:"w-[26px]",children:N}),t[35]=N,t[36]=D);let k;t[37]!==w||t[38]!==D?(k=(0,E.jsxs)("div",{className:"flex flex-row gap-1 h-[26px]",children:[w,D]}),t[37]=w,t[38]=D,t[39]=k):k=t[39];let I;return t[40]!==k||t[41]!==f?(I=(0,E.jsxs)(E.Fragment,{children:[f,k]}),t[40]=k,t[41]=f,t[42]=I):I=t[42],I},rr="__",Yu=e=>{let t=(0,nr.c)(10),{field:n,onChange:r}=e;if(n.field==="*")return null;let a;if(t[0]!==n||t[1]!==r){a=Symbol.for("react.early_return_sentinel");e:{let i=[];if(n.type===le.QUANTITATIVE&&(i=[["",Tu]]),n.type===le.TEMPORAL&&(i=[["Single",ha],["Multi",ma]]),i.length>0){let s=p=>{r({...n,fn:p===rr?void 0:p})},c;t[3]===Symbol.for("react.memo_cache_sentinel")?(c=(0,E.jsx)(et,{className:"h-full px-1",hideChevron:!0,variant:"ghost",children:(0,E.jsx)(Qa,{size:14,strokeWidth:1.5})}),t[3]=c):c=t[3];let h,o;t[4]===Symbol.for("react.memo_cache_sentinel")?(h=(0,E.jsx)(We,{children:(0,E.jsx)(Se,{value:rr,children:"None"})}),o=(0,E.jsx)(fr,{}),t[4]=h,t[5]=o):(h=t[4],o=t[5]);let l=(0,E.jsxs)(Ze,{children:[h,o,i.map(Ku)]}),u;t[6]!==n.fn||t[7]!==s||t[8]!==l?(u=(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-field-options",value:n.fn,onValueChange:s,children:[c,l]}),t[6]=n.fn,t[7]=s,t[8]=l,t[9]=u):u=t[9],a=u;break e}}t[0]=n,t[1]=r,t[2]=a}else a=t[2];return a===Symbol.for("react.early_return_sentinel")?null:a};function Qu(e){return(0,E.jsx)(Se,{value:e,children:e==="?"?"auto":e},e)}function Vu(e){return(0,E.jsx)(Se,{value:e??rr,children:Ma(e)},e)}function Ku(e){let[t,n]=e;return(0,E.jsxs)(We,{children:[t&&(0,E.jsx)(ur,{children:t}),n.map(Vu)]},t)}var Bt=H(Wt(),1),Ju=e=>{let t=(0,Bt.c)(5),n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n=Aa(),t[0]=n):n=t[0];let r=n,a;t[1]===e?a=t[2]:(a=()=>{let s=r.sub(Le,()=>{let{schema:h,...o}=r.get(Le);e.setValue(o)}),c=e.value;return c&&Object.keys(c).length>0&&r.set(Le,c),s},t[1]=e,t[2]=a),Ba(a);let i;return t[3]===e?i=t[4]:(i=(0,E.jsx)(Oa,{store:r,children:(0,E.jsx)(Na,{...e})}),t[3]=e,t[4]=i),i};function Sa(e){return{padding:{left:20,right:20,top:20,bottom:20},actions:{export:{svg:!0,png:!0},source:!1,compiled:!1,editor:!1},theme:e==="dark"?"dark":void 0,tooltip:Fa.call,renderer:"canvas"}}var Xu=Ju;const Na=e=>{var Ee,X,W,pe,Te,he;let t=(0,Bt.c)(41),{data:n}=e,r=Ta(),a;t[0]!==r||t[1]!==n?(a=async()=>{if(!n)return{};let M=await Ua(n,{type:"csv",parse:"auto"},{replacePeriod:!0}),Z=kc(M);return r.setSchema(Z),{chartData:M,schema:Z}},t[0]=r,t[1]=n,t[2]=a):a=t[2];let i;t[3]===n?i=t[4]:(i=[n],t[3]=n,t[4]=i);let{data:s,isPending:c,error:h}=to(a,i),{mark:o}=Lt(Le),l=Lt(Wu),{theme:u}=La();if(h){let M;return t[5]===h?M=t[6]:(M=(0,E.jsx)(Za,{error:h}),t[5]=h,t[6]=M),M}if(!s){let M;return t[7]===Symbol.for("react.memo_cache_sentinel")?(M=(0,E.jsx)("div",{}),t[7]=M):M=t[7],M}let{chartData:p,schema:f}=s;if(c||!f){let M;return t[8]===Symbol.for("react.memo_cache_sentinel")?(M=(0,E.jsx)("div",{}),t[8]=M):M=t[8],M}let d=(X=(Ee=l.main)==null?void 0:Ee.plots)==null?void 0:X[0],g;t[9]===(d==null?void 0:d.fieldInfos)?g=t[10]:(g=new Set(d==null?void 0:d.fieldInfos.map(nd)),t[9]=d==null?void 0:d.fieldInfos,t[10]=g);let y=g,v;t[11]!==p||t[12]!==d||t[13]!==f||t[14]!==u?(v=()=>{if(!d)return(0,E.jsx)(hu,{schema:f});let M=d.spec;return(0,E.jsx)("div",{className:"flex overflow-y-auto justify-center items-center flex-1 w-[90%]",children:(0,E.jsx)(pr,{spec:Wa(td(M),p),options:Sa(u)})})},t[11]=p,t[12]=d,t[13]=f,t[14]=u,t[15]=v):v=t[15];let b=v,x;t[16]!==o||t[17]!==f?(x=(0,E.jsx)(Gu,{mark:o,schema:f}),t[16]=o,t[17]=f,t[18]=x):x=t[18];let S;t[19]===b?S=t[20]:(S=b(),t[19]=b,t[20]=S);let C;t[21]!==x||t[22]!==S?(C=(0,E.jsxs)("div",{className:"flex items-center gap-2",children:[x,S]}),t[21]=x,t[22]=S,t[23]=C):C=t[23];let T=(W=l.histograms)==null?void 0:W.plots,w=(pe=l.addCategoricalField)==null?void 0:pe.plots,N=(Te=l.addQuantitativeField)==null?void 0:Te.plots,D=(he=l.addTemporalField)==null?void 0:he.plots,k;if(t[24]!==r||t[25]!==y||t[26]!==N||t[27]!==D||t[28]!==T||t[29]!==w||t[30]!==u){let M;t[32]!==r||t[33]!==y||t[34]!==u?(M=(Z,Xe)=>(0,E.jsx)(ed,{title:(0,E.jsx)("div",{className:"flex flex-row gap-1",children:Z.fieldInfos.map(me=>{let or=me.fieldDef.field==="*"?"Count":me.fieldDef.fn?`${me.fieldDef.fn}(${me.fieldDef.field})`:me.fieldDef.field.toString();return(0,E.jsx)(Va,{variant:y.has(me.fieldDef.field)?"secondary":"defaultOutline",children:or},or)})}),actions:(0,E.jsx)(Ka,{content:"Make main plot",children:(0,E.jsx)(lr,{"data-testid":"marimo-plugin-data-explorer-make-main-plot",variant:"text",size:"icon",onClick:()=>{let me=Da.fromEntries(Z.fieldInfos.map(rd));r.setEncoding(me)},children:(0,E.jsx)(Ya,{className:"w-4 h-4"})})}),children:(0,E.jsx)(pr,{options:Sa(u),spec:Z.spec},Xe)},Xe),t[32]=r,t[33]=y,t[34]=u,t[35]=M):M=t[35],k=[T,w,N,D].filter(Boolean).flat().map(M),t[24]=r,t[25]=y,t[26]=N,t[27]=D,t[28]=T,t[29]=w,t[30]=u,t[31]=k}else k=t[31];let I;t[36]===k?I=t[37]:(I=(0,E.jsx)(Zu,{children:k}),t[36]=k,t[37]=I);let _;return t[38]!==I||t[39]!==C?(_=(0,E.jsxs)("div",{className:"flex flex-col gap-2",children:[C,I]}),t[38]=I,t[39]=C,t[40]=_):_=t[40],_};var Zu=e=>{let t=(0,Bt.c)(2),{children:n}=e;if(Zn.Children.count(n)===0)return null;let r;return t[0]===n?r=t[1]:(r=(0,E.jsx)("div",{className:"flex flex-row overflow-x-auto overflow-y-hidden gap-4 snap-x pb-4",children:n}),t[0]=n,t[1]=r),r},ed=e=>{let t=(0,Bt.c)(10),{title:n,children:r,actions:a}=e,i;t[0]===n?i=t[1]:(i=(0,E.jsx)("div",{className:"text-sm font-medium",children:n}),t[0]=n,t[1]=i);let s;t[2]!==a||t[3]!==i?(s=(0,E.jsxs)("div",{className:"flex flex-row justify-between items-center bg-(--slate-3) py-0.5 px-2",children:[i,a]}),t[2]=a,t[3]=i,t[4]=s):s=t[4];let c;t[5]===r?c=t[6]:(c=(0,E.jsx)("div",{className:"px-6 pt-2 max-h-[280px] overflow-y-auto",children:r}),t[5]=r,t[6]=c);let h;return t[7]!==s||t[8]!==c?(h=(0,E.jsxs)("div",{className:"shrink-0 bg-card shadow-md border overflow-hidden rounded snap-start",children:[s,c]}),t[7]=s,t[8]=c,t[9]=h):h=t[9],h};function td(e){var t,n;return(t=e.encoding)!=null&&t.row||(n=e.encoding)!=null&&n.column||(e.width="container"),e}function nd(e){return e.fieldDef.field}function rd(e){return[e.channel,e.fieldDef]}export{Na as DataExplorerComponent,Xu as default};
1
+ import{a as Ca,n as q,r as sr,s as H,t as ce}from"./chunk-DZLz74EQ.js";import{c as Lt,d as wa,f as Aa,o as Oa}from"./jotai-BTnrNcC1.js";import{t as ka}from"./react-BcIddLXZ.js";import"./react-dom-D6bRRS5R.js";import"./zod-U2NFpcFA.js";import{t as Wt}from"./compiler-runtime-Cr9loedd.js";import"./_Uint8Array-D5Z9rM2X.js";import"./isSymbol-xTSywenE.js";import"./_arrayMap-DQI2GUNb.js";import"./toString-CBnct2wx.js";import"./isArrayLikeObject-DKyJYtr8.js";import"./_getTag-CVRrQL_Q.js";import"./_baseIsEqual-CVFfFJm2.js";import"./merge-Dvc5opZF.js";import"./_baseSlice-BWZ0PeaJ.js";import"./upperFirst-CBQfDRod.js";import"./_hasUnicode-3DIK_jNi.js";import"./_arrayReduce-DV4IVFuG.js";import{t as Ma}from"./startCase-RfubwhHM.js";import{t as Ia}from"./isString-Cwbr2gIw.js";import{r as Ua,t as Fa}from"./tooltip-Yli91_uW.js";import{a as Da,u as _a}from"./hotkeys-ClCtr3_I.js";import{t as ja}from"./invariant-D5a0EE05.js";import"./utils-BpjB6B-Y.js";import"./useEventListener-D1FLsfmf.js";import{t as Pa}from"./jsx-runtime-mwDPpfh_.js";import{t as Ra}from"./cn-DEUt_IsG.js";import{t as lr}from"./button-Zjtz1syG.js";import{t as $a}from"./createReducer-C6dJ71nW.js";import{t as Ba}from"./useLifecycle-CxNbfWnk.js";import{n as La}from"./useTheme-CJkb1R7C.js";import{t as cr}from"./createLucideIcon-CaU6_Jtx.js";import{t as Wa}from"./spec-Cdxt7KQF.js";import{i as qa,n as Ha,r as Ga,t as za}from"./type-DVCC-93H.js";import"./chart-no-axes-column-C2nGNVra.js";import{n as Ya}from"./table-CmDieCGZ.js";import"./check-Dc7YCRim.js";import{a as ur,c as dr,i as Se,n as Ze,o as fr,r as We,s as et,t as tt}from"./select-Di-JjADd.js";import{t as Qa}from"./square-function-DncO0xCM.js";import{t as Va}from"./badge-CxcKOiwY.js";import"./Combination-DWHMUa0d.js";import"./dist-1ZdxNBaX.js";import{t as Ka}from"./tooltip-CerBk_un.js";import"./menu-items-Dm8s6sMr.js";import"./alert-dialog-BZHeDuaE.js";import"./SSRProvider-CMB_HLxO.js";import{t as Ja}from"./useDateFormatter-CQ9jB95h.js";import"./context-BqH7Jigl.js";import{t as Xa}from"./useNumberFormatter-BPGR7t2W.js";import"./useEvent-itkPNnCe.js";import{n as Za}from"./error-banner-rdjPobI5.js";import"./vega-loader.browser-Cp1bHVeU.js";import"./precisionRound-BLxyDkD7.js";import"./linear-DJH0XBa7.js";import{i as eo,n as pr}from"./react-vega-CoPJaJAh.js";import"./ordinal-DqAR8B4U.js";import"./time-BCTJgqbM.js";import"./range-BT9bu4c7.js";import"./defaultLocale-DEWTIUVh.js";import"./defaultLocale-B9-NA0ur.js";import{n as to}from"./useAsyncData-BPaRR7vx.js";import{t as no}from"./label-FIGQlkj5.js";import"./timer-DPMc0rso.js";import"./path-BAcG87qb.js";import"./math-DLEBRToQ.js";import"./arc-BTae1mqv.js";import"./array-6SpcN0ID.js";import"./step-mihdlsAu.js";import"./line-qKT-og2f.js";import"./init-CRjlCkYX.js";import"./colors-C4hWizf4.js";import"./treemap-C00L9CMp.js";var ro=cr("chart-column-big",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["rect",{x:"15",y:"5",width:"4",height:"12",rx:"1",key:"q8uenq"}],["rect",{x:"7",y:"8",width:"4",height:"9",rx:"1",key:"sr5ea"}]]),io=cr("list-ordered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]),hr=H(Wt(),1);function Ue(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}var ao=ce(((e,t)=>{var n=(function(){function r(f,d){return d!=null&&f instanceof d}var a;try{a=Map}catch{a=function(){}}var i;try{i=Set}catch{i=function(){}}var s;try{s=Promise}catch{s=function(){}}function c(f,d,g,y,v){typeof d=="object"&&(g=d.depth,y=d.prototype,v=d.includeNonEnumerable,d=d.circular);var b=[],x=[],S=typeof Buffer<"u";d===void 0&&(d=!0),g===void 0&&(g=1/0);function C(T,w){if(T===null)return null;if(w===0)return T;var N,D;if(typeof T!="object")return T;if(r(T,a))N=new a;else if(r(T,i))N=new i;else if(r(T,s))N=new s(function(he,M){T.then(function(Z){he(C(Z,w-1))},function(Z){M(C(Z,w-1))})});else if(c.__isArray(T))N=[];else if(c.__isRegExp(T))N=new RegExp(T.source,p(T)),T.lastIndex&&(N.lastIndex=T.lastIndex);else if(c.__isDate(T))N=new Date(T.getTime());else{if(S&&Buffer.isBuffer(T))return N=Buffer.allocUnsafe?Buffer.allocUnsafe(T.length):new Buffer(T.length),T.copy(N),N;r(T,Error)?N=Object.create(T):y===void 0?(D=Object.getPrototypeOf(T),N=Object.create(D)):(N=Object.create(y),D=y)}if(d){var k=b.indexOf(T);if(k!=-1)return x[k];b.push(T),x.push(N)}for(var I in r(T,a)&&T.forEach(function(he,M){var Z=C(M,w-1),Xe=C(he,w-1);N.set(Z,Xe)}),r(T,i)&&T.forEach(function(he){var M=C(he,w-1);N.add(M)}),T){var _;D&&(_=Object.getOwnPropertyDescriptor(D,I)),!(_&&_.set==null)&&(N[I]=C(T[I],w-1))}if(Object.getOwnPropertySymbols)for(var Ee=Object.getOwnPropertySymbols(T),I=0;I<Ee.length;I++){var X=Ee[I],W=Object.getOwnPropertyDescriptor(T,X);W&&!W.enumerable&&!v||(N[X]=C(T[X],w-1),W.enumerable||Object.defineProperty(N,X,{enumerable:!1}))}if(v)for(var pe=Object.getOwnPropertyNames(T),I=0;I<pe.length;I++){var Te=pe[I],W=Object.getOwnPropertyDescriptor(T,Te);W&&W.enumerable||(N[Te]=C(T[Te],w-1),Object.defineProperty(N,Te,{enumerable:!1}))}return N}return C(f,g)}c.clonePrototype=function(f){if(f===null)return null;var d=function(){};return d.prototype=f,new d};function h(f){return Object.prototype.toString.call(f)}c.__objToStr=h;function o(f){return typeof f=="object"&&h(f)==="[object Date]"}c.__isDate=o;function l(f){return typeof f=="object"&&h(f)==="[object Array]"}c.__isArray=l;function u(f){return typeof f=="object"&&h(f)==="[object RegExp]"}c.__isRegExp=u;function p(f){var d="";return f.global&&(d+="g"),f.ignoreCase&&(d+="i"),f.multiline&&(d+="m"),d}return c.__getRegExpFlags=p,c})();typeof t=="object"&&t.exports&&(t.exports=n)})),oo=ce(((e,t)=>{var n=Array.isArray,r=Object.keys,a=Object.prototype.hasOwnProperty;t.exports=function i(s,c){if(s===c)return!0;if(s&&c&&typeof s=="object"&&typeof c=="object"){var h=n(s),o=n(c),l,u,p;if(h&&o){if(u=s.length,u!=c.length)return!1;for(l=u;l--!==0;)if(!i(s[l],c[l]))return!1;return!0}if(h!=o)return!1;var f=s instanceof Date,d=c instanceof Date;if(f!=d)return!1;if(f&&d)return s.getTime()==c.getTime();var g=s instanceof RegExp,y=c instanceof RegExp;if(g!=y)return!1;if(g&&y)return s.toString()==c.toString();var v=r(s);if(u=v.length,u!==r(c).length)return!1;for(l=u;l--!==0;)if(!a.call(c,v[l]))return!1;for(l=u;l--!==0;)if(p=v[l],!i(s[p],c[p]))return!1;return!0}return s!==s&&c!==c}})),mr=H(ce(((e,t)=>{t.exports=function(n,r){r||(r={}),typeof r=="function"&&(r={cmp:r});var a=typeof r.cycles=="boolean"?r.cycles:!1,i=r.cmp&&(function(c){return function(h){return function(o,l){return c({key:o,value:h[o]},{key:l,value:h[l]})}}})(r.cmp),s=[];return(function c(h){if(h&&h.toJSON&&typeof h.toJSON=="function"&&(h=h.toJSON()),h!==void 0){if(typeof h=="number")return isFinite(h)?""+h:"null";if(typeof h!="object")return JSON.stringify(h);var o,l;if(Array.isArray(h)){for(l="[",o=0;o<h.length;o++)o&&(l+=","),l+=c(h[o])||"null";return l+"]"}if(h===null)return"null";if(s.indexOf(h)!==-1){if(a)return JSON.stringify("__cycle__");throw TypeError("Converting circular structure to JSON")}var u=s.push(h)-1,p=Object.keys(h).sort(i&&i(h));for(l="",o=0;o<p.length;o++){var f=p[o],d=c(h[f]);d&&(l&&(l+=","),l+=JSON.stringify(f)+":"+d)}return s.splice(u,1),"{"+l+"}"}})(n)}}))());oo(),ao();function Fe(e,t,n){return e.fields=t||[],e.fname=n,e}function qt(e){throw Error(e)}function Ht(e){var t=[],n=null,r=0,a=e.length,i="",s,c,h;e+="";function o(){t.push(i+e.substring(s,c)),i="",s=c+1}for(s=c=0;c<a;++c)if(h=e[c],h==="\\")i+=e.substring(s,c),s=++c;else if(h===n)o(),n=null,r=-1;else{if(n)continue;s===r&&h==='"'||s===r&&h==="'"?(s=c+1,n=h):h==="."&&!r?c>s?o():s=c+1:h==="["?(c>s&&o(),r=s=c+1):h==="]"&&(r||qt("Access path missing open bracket: "+e),r>0&&o(),r=0,s=c+1)}return r&&qt("Access path missing closing bracket: "+e),n&&qt("Access path missing closing quote: "+e),c>s&&(c++,o()),t}var nt=Array.isArray;function gr(e){return e===Object(e)}function Gt(e){return typeof e=="string"}function zt(e){return nt(e)?"["+e.map(zt)+"]":gr(e)||Gt(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function so(e,t){var n=Ht(e),r="return _["+n.map(zt).join("][")+"];";return Fe(Function("_",r),[e=n.length===1?n[0]:e],t||e)}var qe=[];so("id"),Fe(function(e){return e},qe,"identity"),Fe(function(){return 0},qe,"zero"),Fe(function(){return 1},qe,"one"),Fe(function(){return!0},qe,"true"),Fe(function(){return!1},qe,"false");function rt(e,t,n){var r=[t].concat([].slice.call(n));console[e](...r)}function lo(e,t){var n=e||0;return{level:function(r){return arguments.length?(n=+r,this):n},error:function(){return n>=1&&rt(t||"error","ERROR",arguments),this},warn:function(){return n>=2&&rt(t||"warn","WARN",arguments),this},info:function(){return n>=3&&rt(t||"log","INFO",arguments),this},debug:function(){return n>=4&&rt(t||"log","DEBUG",arguments),this}}}function Yt(e){return typeof e=="boolean"}function De(e){for(var t={},n=0,r=e.length;n<r;++n)t[e[n]]=!0;return t}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>(0,mr.default)(e)).join(",")})`};const Q=mr.default;function G(e,t){return e.indexOf(t)>-1}function co(e,t){let n=0;for(let[r,a]of e.entries())if(t(a,r,n++))return!0;return!1}const j=Object.keys;function uo(e){let t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function fo(e,t="datum"){return`${t}[${zt(Ht(e).join("."))}]`}function po(e){return`${Ht(e).map(t=>t.replace(".","\\.")).join("\\.")}`}function ho(...e){for(let t of e)if(t!==void 0)return t}function mo(e){return go(e)?e:`__${e}`}function go(e){return e.indexOf("__")===0}const Ne="column",yr="facet",vr="latitude",br="longitude",xr="latitude2",Er="longitude2",ue="color",it="fill",at="stroke",ot="shape",He="size",st="opacity",lt="fillOpacity",ct="strokeOpacity",ut="strokeWidth",Qt="text",Tr="order",Sr="detail",Nr="tooltip",Cr="href";var yo={x:1,y:1,x2:1,y2:1},wr={longitude:1,longitude2:1,latitude:1,latitude2:1};j(wr);var dt=Object.assign({},yo,wr,{color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,size:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1});function ft(e){return e==="color"||e==="fill"||e==="stroke"}var Ar={row:1,column:1,facet:1};j(Ar);var Ge=Object.assign({},dt,Ar);const vo=j(Ge);var{order:Sf,detail:Nf}=Ge,bo=Ue(Ge,["order","detail"]),{order:Cf,detail:wf,row:Af,column:Of,facet:kf}=Ge,xo=Ue(Ge,["order","detail","row","column","facet"]);j(bo),j(xo),j(dt);var{x:Mf,y:If,x2:Uf,y2:Ff,latitude:Df,longitude:_f,latitude2:jf,longitude2:Pf}=dt,Vt=Ue(dt,["x","y","x2","y2","latitude","longitude","latitude2","longitude2"]);const Or=j(Vt);var kr={x:1,y:1};j(kr);var{text:Rf,tooltip:$f,href:Bf,detail:Lf,key:Wf,order:qf}=Vt,Mr=Ue(Vt,["text","tooltip","href","detail","key","order"]);j(Mr);var Ir=Object.assign({},kr,Mr);j(Ir);function Eo(e){return!!Ir[e]}function To(e,t){return No(e)[t]}var Kt={area:"always",bar:"always",circle:"always",geoshape:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Hf}=Kt,So=Ue(Kt,["geoshape"]);function No(e){switch(e){case ue:case it:case at:case Sr:case"key":case Nr:case Cr:case Tr:case st:case lt:case ct:case ut:case yr:case"row":case Ne:return Kt;case"x":case"y":case vr:case br:return So;case"x2":case"y2":case xr:case Er:return{rule:"always",bar:"always",rect:"always",area:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case He:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case ot:return{point:"always",geoshape:"always"};case Qt:return{text:"always"}}}function Jt(e){switch(e){case"x":case"y":case He:case ut:case st:case lt:case ct:case"x2":case"y2":return;case yr:case"row":case Ne:case ot:case Qt:case Nr:case Cr:return"discrete";case ue:case it:case at:return"flexible";case vr:case br:case xr:case Er:case Sr:case"key":case Tr:return}throw Error("rangeType not implemented for "+e)}var Ur={orient:1,bandPosition:1,domain:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid: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,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position: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,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,values:1,zindex:1},Co=Object.assign({},Ur,{encoding:1});j(Object.assign({gridScale:1,scale:1},Ur,{encode:1}));const Fr=j(Co);var Dr={clipHeight:1,columnPadding:1,columns:1,cornerRadius: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,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,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},wo=Object.assign({},Dr,{opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,encode:1});const _r=j(Dr);j(wo);var Ao=sr({BAR_WITH_POINT_SCALE_AND_RANGESTEP_NULL:()=>ls,CANNOT_FIX_RANGE_STEP_WITH_FIT:()=>Mo,CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN:()=>ds,CONCAT_CANNOT_SHARE_AXIS:()=>$o,FIT_NON_SINGLE:()=>ko,INVALID_CHANNEL_FOR_AXIS:()=>Os,INVALID_SPEC:()=>Oo,LINE_WITH_VARYING_SIZE:()=>ns,MORE_THAN_ONE_SORT:()=>As,NO_FIELDS_NEEDS_AS:()=>Ho,NO_INIT_SCALE_BINDINGS:()=>jo,REPEAT_CANNOT_SHARE_AXIS:()=>Bo,SCALE_BINDINGS_CONTINUOUS:()=>_o,UNABLE_TO_MERGE_DOMAINS:()=>ws,cannotApplySizeToNonOrientedMark:()=>gs,cannotProjectOnChannelWithoutField:()=>Io,cannotStackNonLinearScale:()=>Ms,cannotStackRangedMark:()=>ks,cannotUseScalePropertyWithNonColor:()=>fs,channelRequiredForBinned:()=>Bs,columnsNotSupportByRowCol:()=>Ro,dayReplacedWithDate:()=>Fs,differentParse:()=>Wo,discreteChannelCannotEncode:()=>ss,domainRequiredForThresholdScale:()=>Ls,domainSortDropped:()=>Cs,droppedDay:()=>Ds,droppingColor:()=>Zo,emptyFieldDef:()=>es,encodingOverridden:()=>Go,errorBand1DNotSupport:()=>$s,errorBarCenterAndExtentAreNotNeeded:()=>_s,errorBarCenterIsNotNeeded:()=>Rs,errorBarCenterIsUsedWithWrongExtent:()=>js,errorBarContinuousAxisHasCustomizedAggregate:()=>Ps,facetChannelDropped:()=>os,facetChannelShouldBeDiscrete:()=>as,incompatibleChannel:()=>rs,independentScaleMeansIndependentGuide:()=>Ns,invalidAggregate:()=>Jo,invalidEncodingChannel:()=>is,invalidFieldType:()=>Qo,invalidFieldTypeForCountAggregate:()=>Ko,invalidTimeUnit:()=>Us,invalidTransformIgnored:()=>qo,latLongDeprecated:()=>ts,lineWithRange:()=>cs,mergeConflictingDomainProperty:()=>Ss,mergeConflictingProperty:()=>Ts,missingFieldType:()=>Xo,nearestNotSupportForContinuous:()=>Uo,noSuchRepeatedValue:()=>Po,nonZeroScaleUsedWithLengthMark:()=>Vo,orientOverridden:()=>us,primitiveChannelDef:()=>Yo,projectionOverridden:()=>zo,rangeStepDropped:()=>ys,scalePropertyNotWorkWithScaleType:()=>xs,scaleTypeNotWorkWithChannel:()=>vs,scaleTypeNotWorkWithFieldDef:()=>bs,scaleTypeNotWorkWithMark:()=>Es,selectionNotFound:()=>Do,selectionNotSupported:()=>Fo,stackNonSummativeAggregate:()=>Is,unaggregateDomainHasNoEffectForRawField:()=>ps,unaggregateDomainWithNonSharedDomainOp:()=>hs,unaggregatedDomainWithLogScale:()=>ms,unrecognizedParse:()=>Lo});const Oo="Invalid spec",ko='Autosize "fit" only works for single views and layered views.',Mo='Cannot use a fixed value of "rangeStep" when "autosize" is "fit".';function Io(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Uo(e){return`The "nearest" transform is not supported for ${e} marks.`}function Fo(e){return`Selection not supported for ${e} yet`}function Do(e){return`Cannot find a selection named "${e}"`}const _o="Scale bindings are currently only supported for scales with unbinned, continuous domains.",jo="Selections bound to scales cannot be separately initialized.";function Po(e){return`Unknown repeated value "${e}".`}function Ro(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const $o="Axes cannot be shared in concatenated views yet (https://github.com/vega/vega-lite/issues/2415).",Bo="Axes cannot be shared in repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function Lo(e){return`Unrecognized parse "${e}".`}function Wo(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function qo(e){return`Ignoring an invalid transform: ${Q(e)}.`}const Ho='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 Go(e){return`Layer's shared ${e.join(",")} channel ${e.length===1?"is":"are"} overriden`}function zo(e){let{parentProjection:t,projection:n}=e;return`Layer's shared projection ${Q(t)} is overridden by a child projection ${Q(n)}.`}function Yo(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${Q(n)}}.`}function Qo(e){return`Invalid field type "${e}"`}function Vo(e,t,n){return`A ${n.scaleType?`${n.scaleType} scale`:n.zeroFalse?"scale with zero=false":"scale with custom domain that excludes zero"} is used to encode ${e}'s ${t}. This can be misleading as the ${t==="x"?"width":"height"} of the ${e} can be arbitrary based on the scale domain. You may want to use point mark instead.`}function Ko(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}function Jo(e){return`Invalid aggregation operator "${e}"`}function Xo(e,t){return`Missing type for channel "${e}", using "${t}" instead.`}function Zo(e,t){let{fill:n,stroke:r}=t;return`Dropping color ${e} as the plot also has `+(n&&r?"fill and stroke":n?"fill":"stroke")}function es(e,t){return`Dropping ${Q(e)} from channel "${t}" since it does not contain data field or value.`}function ts(e,t,n){return`${e}-encoding with type ${t} is deprecated. Replacing with ${n}-encoding.`}const ns="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function rs(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`}function is(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function as(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function os(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function ss(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}const ls="Bar mark should not be used with point scale when rangeStep is null. Please use band scale instead.";function cs(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 us(e,t){return`Specified orient "${e}" overridden with "${t}"`}const ds="custom domain scale cannot be unioned with default field-based domain";function fs(e){return`Cannot use the scale property "${e}" with non-color channel.`}function ps(e){return`Using unaggregated domain with raw field has no effect (${Q(e)}).`}function hs(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function ms(e){return`Unaggregated domain is currently unsupported for log scale (${Q(e)}).`}function gs(e){return`Cannot apply size to non-oriented mark "${e}".`}function ys(e){return`rangeStep for "${e}" is dropped as top-level ${e==="x"?"width":"height"} is provided.`}function vs(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}function bs(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}function xs(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function Es(e,t){return`Scale type "${t}" does not work with mark "${e}".`}function Ts(e,t,n,r){return`Conflicting ${t.toString()} property "${e.toString()}" (${Q(n)} and ${Q(r)}). Using ${Q(n)}.`}function Ss(e,t,n,r){return`Conflicting ${t.toString()} property "${e.toString()}" (${Q(n)} and ${Q(r)}). Using the union of the two domains.`}function Ns(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 Cs(e){return`Dropping sort property ${Q(e)} as unioned domains only support boolean or op 'count'.`}const ws="Unable to merge domains",As="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",Os="Invalid channel for axis.";function ks(e){return`Cannot stack "${e}" if there is already "${e}2"`}function Ms(e){return`Cannot stack non-linear scale (${e})`}function Is(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}")`}function Us(e,t){return`Invalid ${e}: ${Q(t)}`}function Fs(e){return`Time unit "${e}" is not supported. We are replacing it with ${e.replace("day","date")}.`}function Ds(e){return`Dropping day from datetime ${Q(e)} as day cannot be combined with other units.`}function _s(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}function js(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}function Ps(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}function Rs(e,t){return`Center is not needed to be specified in ${t} when extent is ${e}.`}function $s(e){return`1D error band does not support ${e}`}function Bs(e){return`Channel ${e} is required for "binned" bin`}function Ls(e){return`Domain for ${e} is required for threshold scale`}const ee=Ao;var jr=lo(2);function ge(...e){jr.warn.apply(jr,arguments)}const Ws={quantitative:1,ordinal:1,temporal:1,nominal:1,geojson:1},te="quantitative",Ce="ordinal",ye="temporal",we="nominal";function qs(e){if(e)switch(e=e.toLowerCase(),e){case"q":case te:return"quantitative";case"t":case ye:return"temporal";case"o":case Ce:return"ordinal";case"n":case we:return"nominal";case"geojson":return"geojson"}}var F;(function(e){e.LINEAR="linear",e.LOG="log",e.POW="pow",e.SQRT="sqrt",e.SYMLOG="symlog",e.TIME="time",e.UTC="utc",e.QUANTILE="quantile",e.QUANTIZE="quantize",e.THRESHOLD="threshold",e.BIN_ORDINAL="bin-ordinal",e.ORDINAL="ordinal",e.POINT="point",e.BAND="band"})(F||(F={}));const Hs=j({linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"}),Pr=["linear","log","pow","sqrt","symlog","time","utc"];var Gs=De(Pr),zs=De(["quantile","quantize","threshold"]),Ys=De(Pr.concat(["quantile","quantize","threshold"])),Qs=De(["ordinal","bin-ordinal","point","band"]);function Ae(e){return e in Qs}function Vs(e){return e in Ys}function _e(e){return e in Gs}function Ks(e){return e in zs}var Xt={type:1,domain:1,align:1,range:1,rangeStep: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};const Rr=j(Xt);var{type:Gf,domain:zf,range:Yf,rangeStep:Qf,scheme:Vf}=Xt;j(Ue(Xt,["type","domain","range","rangeStep","scheme"])),Xs();function Zt(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!G(["point","band","identity"],e);case"bins":return!G(["point","band","identity","ordinal"],e);case"round":return _e(e)||e==="band"||e==="point";case"padding":return _e(e)||G(["point","band"],e);case"paddingOuter":case"rangeStep":case"align":return G(["point","band"],e);case"paddingInner":return e==="band";case"clamp":return _e(e);case"nice":return _e(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return Vs(e)&&!G(["log","time","utc","threshold","quantile"],e)}}function Js(e,t){switch(t){case"interpolate":case"scheme":return ft(e)?void 0:ee.cannotUseScalePropertyWithNonColor(e);case"align":case"type":case"bins":case"domain":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeStep":case"reverse":case"round":case"clamp":case"zero":return}}function $r(e,t){return G(["ordinal","nominal"],t)?e===void 0||Ae(e):t==="temporal"?G([F.TIME,F.UTC,void 0],e):t==="quantitative"?G([F.LOG,F.POW,F.SQRT,F.SYMLOG,F.QUANTILE,F.QUANTIZE,F.THRESHOLD,F.LINEAR,void 0],e):!0}function Br(e,t){switch(e){case"x":case"y":return _e(t)||G(["band","point"],t);case He:case ut:case st:case lt:case ct:return _e(t)||Ks(t)||G(["band","point"],t);case ue:case it:case at:return t!=="band";case ot:return t==="ordinal"}return!1}function Xs(){let e={};for(let t of vo)for(let n of j(Ws))for(let r of Hs){let a=Zs(t,n);Br(t,r)&&$r(r,n)&&(e[a]=e[a]||[],e[a].push(r))}return e}function Zs(e,t){return e+"_"+t}var ne=ce(((e,t)=>{var n=t.exports,r="__name__";n.namedfunc=function(o,l){return l[r]=o,l},n.name=function(o){return o==null?null:o[r]},n.identity=function(o){return o},n.true=n.namedfunc("true",function(){return!0}),n.false=n.namedfunc("false",function(){return!1}),n.duplicate=function(o){return JSON.parse(JSON.stringify(o))},n.equal=function(o,l){return JSON.stringify(o)===JSON.stringify(l)},n.extend=function(o){for(var l,u,p=1,f=arguments.length;p<f;++p)for(u in l=arguments[p],l)o[u]=l[u];return o},n.length=function(o){return o!=null&&o.length!=null?o.length:null},n.keys=function(o){var l=[],u;for(u in o)l.push(u);return l},n.vals=function(o){var l=[],u;for(u in o)l.push(o[u]);return l},n.toMap=function(o,l){return(l=n.$(l))?o.reduce(function(u,p){return u[l(p)]=1,u},{}):o.reduce(function(u,p){return u[p]=1,u},{})},n.keystr=function(o){var l=o.length;if(!l)return"";for(var u=String(o[0]),p=1;p<l;++p)u+="|"+String(o[p]);return u};var a=Object.prototype.toString;n.isObject=function(o){return o===Object(o)},n.isFunction=function(o){return a.call(o)==="[object Function]"},n.isString=function(o){return typeof value=="string"||a.call(o)==="[object String]"},n.isArray=Array.isArray||function(o){return a.call(o)==="[object Array]"},n.isNumber=function(o){return typeof o=="number"||a.call(o)==="[object Number]"},n.isBoolean=function(o){return o===!0||o===!1||a.call(o)=="[object Boolean]"},n.isDate=function(o){return a.call(o)==="[object Date]"},n.isValid=function(o){return o!=null&&o===o},n.isBuffer=typeof Buffer=="function"&&Buffer.isBuffer||n.false,n.number=function(o){return o==null||o===""?null:+o},n.boolean=function(o){return o==null||o===""?null:o==="false"?!1:!!o},n.date=function(o,l){var u=l||Date;return o==null||o===""?null:u.parse(o)},n.array=function(o){return o==null?[]:n.isArray(o)?o:[o]},n.str=function(o){return n.isArray(o)?"["+o.map(n.str)+"]":n.isObject(o)||n.isString(o)?JSON.stringify(o).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):o};var i=/\[(.*?)\]|[^.\[]+/g;n.field=function(o){return String(o).match(i).map(function(l){return l[0]==="["?l[1]!=="'"&&l[1]!=='"'?l.slice(1,-1):l.slice(2,-2).replace(/\\(["'])/g,"$1"):l})},n.accessor=function(o){return o==null||n.isFunction(o)?o:n.namedfunc(o,Function("x","return x["+n.field(o).map(n.str).join("][")+"];"))},n.$=n.accessor,n.mutator=function(o){var l;return n.isString(o)&&(l=n.field(o)).length>1?function(u,p){for(var f=0;f<l.length-1;++f)u=u[l[f]];u[l[f]]=p}:function(u,p){u[o]=p}},n.$func=function(o,l){return function(u){u=n.$(u)||n.identity;var p=o+(n.name(u)?"_"+n.name(u):"");return n.namedfunc(p,function(f){return l(u(f))})}},n.$valid=n.$func("valid",n.isValid),n.$length=n.$func("length",n.length),n.$in=function(o,l){o=n.$(o);var u=n.isArray(l)?n.toMap(l):l;return function(p){return!!u[o(p)]}},n.comparator=function(o){var l=[];return o===void 0&&(o=[]),o=n.array(o).map(function(u){var p=1;return u[0]==="-"?(p=-1,u=u.slice(1)):u[0]==="+"&&(p=1,u=u.slice(1)),l.push(p),n.accessor(u)}),function(u,p){var f,d,g,y;for(f=0,d=o.length;f<d;++f)if(g=o[f],y=n.cmp(g(u),g(p)),y)return y*l[f];return 0}},n.cmp=function(o,l){return(o<l||o==null)&&l!=null?-1:(o>l||l==null)&&o!=null?1:(l=l instanceof Date?+l:l,(o=o instanceof Date?+o:o)!==o&&l===l?-1:l!==l&&o===o?1:0)},n.numcmp=function(o,l){return o-l},n.stablesort=function(o,l,u){var p=o.reduce(function(f,d,g){return f[u(d)]=g,f},{});return o.sort(function(f,d){var g=l(f),y=l(d);return g<y?-1:g>y?1:p[u(f)]-p[u(d)]}),o},n.permute=function(o){for(var l=o.length,u,p;l;)p=Math.floor(Math.random()*l--),u=o[l],o[l]=o[p],o[p]=u},n.pad=function(o,l,u,p){p||(p=" ");var f=l-o.length;if(f<=0)return o;switch(u){case"left":return s(f,p)+o;case"middle":case"center":return s(Math.floor(f/2),p)+o+s(Math.ceil(f/2),p);default:return o+s(f,p)}};function s(o,l){var u="",p;for(p=0;p<o;++p)u+=l;return u}n.truncate=function(o,l,u,p,f){var d=o.length;if(d<=l)return o;f=f===void 0?"\u2026":String(f);var g=Math.max(0,l-f.length);switch(u){case"left":return f+(p?c(o,g,1):o.slice(d-g));case"middle":case"center":var y=Math.ceil(g/2),v=Math.floor(g/2);return(p?c(o,y):o.slice(0,y))+f+(p?c(o,v,1):o.slice(d-v));default:return(p?c(o,g):o.slice(0,g))+f}};function c(o,l,u){var p=0,f=o.split(h);return o=u?(f=f.reverse()).filter(function(d){return p+=d.length,p<=l}).reverse():f.filter(function(d){return p+=d.length,p<=l}),o.length?o.join("").trim():f[0].slice(0,l)}var h=/([\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u2028\u2029\u3000\uFEFF])/})),Lr=H(ne()),U=H(ne());function K(e,t){return e.indexOf(t)!==-1}function oe(e,t){for(let n=0;n<e.length;n++)if(!t(e[n],n))return!1;return!0}function z(e,t,n){if(e.forEach)e.forEach.call(n,t);else for(let r in e)t.call(n,e[r],r,e)}function de(e,t){let n=0,r;for(r in e)if(t(e[r],r,n++))return!0;return!1}function el(e,t){return e.filter(function(n){return!K(t,n)})}function tl(e){return Object.keys(e)}function se(e){return!!e.parent}var Wr={channel:1,aggregate:1,autoCount:1,bin:1,timeUnit:1,hasFn:1,sort:1,stack:1,field:1,type:1,format:1,scale:1,axis:1,legend:1,value:1};const en=tl(Wr);function nl(e){return e in Wr}var rl={bin:1,scale:1,sort:1,axis:1,legend:1};function tn(e){return rl[e]}const il=["maxbins","divide","extent","base","step","steps","minstep"],al=["field","op","order"];var qr=il.map(e=>({parent:"bin",child:e}));const nn=al.map(e=>({parent:"sort",child:e})),pt=Rr.map(e=>({parent:"scale",child:e}));var Hr=Fr.map(e=>({parent:"axis",child:e})),Gr=_r.map(e=>({parent:"legend",child:e}));const ht=[].concat(qr,nn,pt,Hr,Gr),zr=["width","height","background","padding","title"];var Yr=".";function mt(e){return se(e)?e.parent+Yr+e.child:e}function ol(e){let t=e.split(Yr);if(t.length===1)return e;if(t.length===2)return{parent:t[0],child:t[1]};throw"Invalid property key with "+t.length+" dots: "+e}var sl=ht.reduce((e,t)=>(e[t.parent]=e[t.parent]||[],e[t.parent][t.child]=t,e),{});function fe(e,t){return(sl[e]||{})[t]}function Qr(e){return nl(e)||se(e)}const ll=[].concat(en,ht),Vr=["type","field","bin","timeUnit","aggregate","autoCount","channel","mark","stack","scale","sort","axis","legend"].concat(qr,pt,Hr,Gr,nn);var m;(function(e){e.MARK="mark",e.TRANSFORM="transform",e.STACK="stack",e.FORMAT="format",e.CHANNEL="channel",e.AGGREGATE="aggregate",e.AUTOCOUNT="autoCount",e.BIN="bin",e.HAS_FN="hasFn",e.TIMEUNIT="timeUnit",e.FIELD="field",e.TYPE="type",e.SORT="sort",e.SCALE="scale",e.AXIS="axis",e.LEGEND="legend",e.WIDTH="width",e.HEIGHT="height",e.BACKGROUND="background",e.PADDING="padding",e.TITLE="title"})(m||(m={}));const ze="area",gt="line",Ye="point",rn="rect",an="rule",yt="text",vt="tick",on="circle",sn="square";var cl={area:1,bar:1,line:1,point:1,text:1,tick:1,trail:1,rect:1,geoshape:1,rule:1,circle:1,square:1};function ul(e){return G(["line","area","trail"],e)}const dl=j(cl);function fl(e){return e.type}De(dl),["january","february","march","april","may","june","july","august","september","october","november","december"].map(e=>e.substr(0,3)),["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].map(e=>e.substr(0,3));var B;(function(e){e.YEAR="year",e.MONTH="month",e.DAY="day",e.DATE="date",e.HOURS="hours",e.MINUTES="minutes",e.SECONDS="seconds",e.MILLISECONDS="milliseconds",e.YEARMONTH="yearmonth",e.YEARMONTHDATE="yearmonthdate",e.YEARMONTHDATEHOURS="yearmonthdatehours",e.YEARMONTHDATEHOURSMINUTES="yearmonthdatehoursminutes",e.YEARMONTHDATEHOURSMINUTESSECONDS="yearmonthdatehoursminutesseconds",e.MONTHDATE="monthdate",e.MONTHDATEHOURS="monthdatehours",e.HOURSMINUTES="hoursminutes",e.HOURSMINUTESSECONDS="hoursminutesseconds",e.MINUTESSECONDS="minutesseconds",e.SECONDSMILLISECONDS="secondsmilliseconds",e.QUARTER="quarter",e.YEARQUARTER="yearquarter",e.QUARTERMONTH="quartermonth",e.YEARQUARTERMONTH="yearquartermonth",e.UTCYEAR="utcyear",e.UTCMONTH="utcmonth",e.UTCDAY="utcday",e.UTCDATE="utcdate",e.UTCHOURS="utchours",e.UTCMINUTES="utcminutes",e.UTCSECONDS="utcseconds",e.UTCMILLISECONDS="utcmilliseconds",e.UTCYEARMONTH="utcyearmonth",e.UTCYEARMONTHDATE="utcyearmonthdate",e.UTCYEARMONTHDATEHOURS="utcyearmonthdatehours",e.UTCYEARMONTHDATEHOURSMINUTES="utcyearmonthdatehoursminutes",e.UTCYEARMONTHDATEHOURSMINUTESSECONDS="utcyearmonthdatehoursminutesseconds",e.UTCMONTHDATE="utcmonthdate",e.UTCMONTHDATEHOURS="utcmonthdatehours",e.UTCHOURSMINUTES="utchoursminutes",e.UTCHOURSMINUTESSECONDS="utchoursminutesseconds",e.UTCMINUTESSECONDS="utcminutesseconds",e.UTCSECONDSMILLISECONDS="utcsecondsmilliseconds",e.UTCQUARTER="utcquarter",e.UTCYEARQUARTER="utcyearquarter",e.UTCQUARTERMONTH="utcquartermonth",e.UTCYEARQUARTERMONTH="utcyearquartermonth"})(B||(B={}));var ln={year:1,quarter:1,month:1,day:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};const Kr=j(ln);function pl(e){return!!ln[e]}var cn={utcyear:1,utcquarter:1,utcmonth:1,utcday:1,utcdate:1,utchours:1,utcminutes:1,utcseconds:1,utcmilliseconds:1};function hl(e){return!!cn[e]}var ml={yearquarter:1,yearquartermonth:1,yearmonth:1,yearmonthdate:1,yearmonthdatehours:1,yearmonthdatehoursminutes:1,yearmonthdatehoursminutesseconds:1,quartermonth:1,monthdate:1,monthdatehours:1,hoursminutes:1,hoursminutesseconds:1,minutesseconds:1,secondsmilliseconds:1},Jr={utcyearquarter:1,utcyearquartermonth:1,utcyearmonth:1,utcyearmonthdate:1,utcyearmonthdatehours:1,utcyearmonthdatehoursminutes:1,utcyearmonthdatehoursminutesseconds:1,utcquartermonth:1,utcmonthdate:1,utcmonthdatehours:1,utchoursminutes:1,utchoursminutesseconds:1,utcminutesseconds:1,utcsecondsmilliseconds:1},gl=Object.assign({},cn,Jr);function yl(e){return!!gl[e]}var Xr=Object.assign({},ln,cn,ml,Jr);j(Xr);function vl(e){return!!Xr[e]}var bl={year:"setFullYear",month:"setMonth",date:"setDate",hours:"setHours",minutes:"setMinutes",seconds:"setSeconds",milliseconds:"setMilliseconds",quarter:null,day:null};function xl(e,t){let n=yl(e),r=n?new Date(Date.UTC(1972,0,1,0,0,0,0)):new Date(1972,0,1,0,0,0,0);for(let a of Kr)if(ei(e,a))switch(a){case B.DAY:throw Error("Cannot convert to TimeUnits containing 'day'");case B.QUARTER:{let{getDateMethod:i,setDateMethod:s}=Zr("month",n);r[s](Math.floor(t[i]()/3)*3);break}default:{let{getDateMethod:i,setDateMethod:s}=Zr(a,n);r[s](t[i]())}}return r}function Zr(e,t){let n=bl[e];return{setDateMethod:t?"setUTC"+n.substr(3):n,getDateMethod:"get"+(t?"UTC":"")+n.substr(3)}}function ei(e,t){let n=e.indexOf(t);return n>-1&&(t!==B.SECONDS||n===0||e.charAt(n-1)!=="i")}function A(e){return bt(e)||El(e)}function bt(e){return e==="?"}function El(e){return e!==void 0&&e!=null&&(!!e.enum||!!e.name)&&!(0,Lr.isArray)(e)}function un(e,t,n){return(0,U.extend)({},{name:t,enum:n},e==="?"?{}:e)}function dn(e){let t={},n={};for(let r of e){let a=[0];for(let s=0;s<r.length;s++)r.charAt(s).toUpperCase()===r.charAt(s)&&a.push(s);let i=a.map(s=>r.charAt(s)).join("").toLowerCase();if(!n[i]){t[r]=i,n[i]=!0;continue}if(a[a.length-1]!==r.length-1&&(i=a.concat([r.length-1]).map(s=>r.charAt(s)).join("").toLowerCase(),!n[i])){t[r]=i,n[i]=!0;continue}for(let s=1;!t[r];s++){let c=i+"_"+s;if(!n[c]){t[r]=c,n[c]=!0;break}}}return t}const xt={mark:"m",channel:"c",aggregate:"a",autoCount:"#",hasFn:"h",bin:"b",sort:"so",stack:"st",scale:"s",format:"f",axis:"ax",legend:"l",value:"v",timeUnit:"tu",field:"f",type:"t",binProps:{maxbins:"mb",min:"mi",max:"ma",base:"b",step:"s",steps:"ss",minstep:"ms",divide:"d"},sortProps:{field:"f",op:"o",order:"or"},scaleProps:dn(Rr),axisProps:dn(Fr),legendProps:dn(_r)};function Qe(e){if(se(e))return xt[e.parent]+"-"+xt[e.parent+"Props"][e.child];if(xt[e])return xt[e];throw Error("Default name undefined for "+e)}var V=[!1,!0],Tl={maxbins:[5,10,20],extent:[void 0],base:[10],step:[void 0],steps:[void 0],minstep:[void 0],divide:[[5,2]],binned:[!1],anchor:[void 0],nice:[!0]},Sl={field:[void 0],op:["min","mean"],order:["ascending","descending"]},Nl={type:[void 0,F.LOG],domain:[void 0],base:[void 0],exponent:[1,2],constant:[void 0],bins:[void 0],clamp:V,nice:V,reverse:V,round:V,zero:V,padding:[void 0],paddingInner:[void 0],paddingOuter:[void 0],interpolate:[void 0],range:[void 0],rangeStep:[17,21],scheme:[void 0]},Cl={zindex:[1,0],offset:[void 0],orient:[void 0],values:[void 0],bandPosition:[void 0],encoding:[void 0],domain:V,domainColor:[void 0],domainDash:[void 0],domainDashOffset:[void 0],domainOpacity:[void 0],domainWidth:[void 0],formatType:[void 0],grid:V,gridColor:[void 0],gridDash:[void 0],gridDashOffset:[void 0],gridOpacity:[void 0],gridWidth:[void 0],format:[void 0],labels:V,labelAlign:[void 0],labelAngle:[void 0],labelBaseline:[void 0],labelColor:[void 0],labelFlushOffset:[void 0],labelFont:[void 0],labelFontSize:[void 0],labelFontStyle:[void 0],labelFontWeight:[void 0],labelLimit:[void 0],labelOpacity:[void 0],labelSeparation:[void 0],labelOverlap:[void 0],labelPadding:[void 0],labelBound:[void 0],labelFlush:[void 0],maxExtent:[void 0],minExtent:[void 0],position:[void 0],ticks:V,tickColor:[void 0],tickCount:[void 0],tickDash:[void 0],tickExtra:[void 0],tickDashOffset:[void 0],tickMinStep:[void 0],tickOffset:[void 0],tickOpacity:[void 0],tickRound:[void 0],tickSize:[void 0],tickWidth:[void 0],title:[void 0],titleAlign:[void 0],titleAnchor:[void 0],titleAngle:[void 0],titleBaseline:[void 0],titleColor:[void 0],titleFont:[void 0],titleFontSize:[void 0],titleFontStyle:[void 0],titleFontWeight:[void 0],titleLimit:[void 0],titleOpacity:[void 0],titlePadding:[void 0],titleX:[void 0],titleY:[void 0]};const wl={mark:[Ye,"bar",gt,ze,rn,vt,yt],channel:["x","y","row",Ne,He,ue],aggregate:[void 0,"mean"],autoCount:V,bin:V,hasFn:V,timeUnit:[void 0,B.YEAR,B.MONTH,B.MINUTES,B.SECONDS],field:[void 0],type:[we,Ce,te,ye],sort:["ascending","descending"],stack:["zero","normalize","center",null],value:[void 0],format:[void 0],title:[void 0],scale:[!0],axis:V,legend:V,binProps:Tl,sortProps:Sl,scaleProps:Nl,axisProps:Cl,legendProps:{orient:["left","right"],format:[void 0],type:[void 0],values:[void 0],zindex:[void 0],clipHeight:[void 0],columnPadding:[void 0],columns:[void 0],cornerRadius:[void 0],direction:[void 0],encoding:[void 0],fillColor:[void 0],formatType:[void 0],gridAlign:[void 0],offset:[void 0],padding:[void 0],rowPadding:[void 0],strokeColor:[void 0],labelAlign:[void 0],labelBaseline:[void 0],labelColor:[void 0],labelFont:[void 0],labelFontSize:[void 0],labelFontStyle:[void 0],labelFontWeight:[void 0],labelLimit:[void 0],labelOffset:[void 0],labelOpacity:[void 0],labelOverlap:[void 0],labelPadding:[void 0],labelSeparation:[void 0],legendX:[void 0],legendY:[void 0],gradientLength:[void 0],gradientOpacity:[void 0],gradientStrokeColor:[void 0],gradientStrokeWidth:[void 0],gradientThickness:[void 0],symbolDash:[void 0],symbolDashOffset:[void 0],symbolFillColor:[void 0],symbolOffset:[void 0],symbolOpacity:[void 0],symbolSize:[void 0],symbolStrokeColor:[void 0],symbolStrokeWidth:[void 0],symbolType:[void 0],tickCount:[void 0],tickMinStep:[void 0],title:[void 0],titleAnchor:[void 0],titleAlign:[void 0],titleBaseline:[void 0],titleColor:[void 0],titleFont:[void 0],titleFontSize:[void 0],titleFontStyle:[void 0],titleFontWeight:[void 0],titleLimit:[void 0],titleOpacity:[void 0],titleOrient:[void 0],titlePadding:[void 0]}};function fn(e,t,n){if(e==="field"||se(e)&&e.parent==="sort"&&e.child==="field")return t.fieldNames();let r;if(r=se(e)?n.enum[e.parent+"Props"][e.child]:n.enum[e],r!==void 0)return r;throw Error("No default enumValues for "+JSON.stringify(e))}const Ve={verbose:!1,defaultSpecConfig:{line:{point:!0},scale:{useUnaggregatedDomain:!0}},propertyPrecedence:Vr.map(mt),enum:wl,numberNominalProportion:.05,numberNominalLimit:40,constraintManuallySpecifiedValue:!1,autoAddCount:!1,hasAppropriateGraphicTypeForMark:!0,omitAggregate:!1,omitAggregatePlotWithDimensionOnlyOnFacet:!0,omitAggregatePlotWithoutDimension:!1,omitBarLineAreaWithOcclusion:!0,omitBarTickWithSize:!0,omitMultipleNonPositionalChannels:!0,omitRaw:!1,omitRawContinuousFieldForAggregatePlot:!0,omitRepeatedField:!0,omitNonPositionalOrFacetOverPositionalChannels:!0,omitTableWithOcclusionIfAutoAddCount:!0,omitVerticalDotPlot:!1,omitInvalidStackSpec:!0,omitNonSumStack:!0,preferredBinAxis:"x",preferredTemporalAxis:"x",preferredOrdinalAxis:"y",preferredNominalAxis:"y",preferredFacet:"row",minCardinalityForBin:15,maxCardinalityForCategoricalColor:20,maxCardinalityForFacet:20,maxCardinalityForShape:6,timeUnitShouldHaveVariation:!0,typeMatchesSchemaType:!0,stylize:!0,smallRangeStepForHighCardinalityOrFacet:{maxCardinality:10,rangeStep:12},nominalColorScaleForHighCardinality:{maxCardinality:10,palette:"category20"},xAxisOnTopForHighYCardinalityWithoutColumn:{maxCardinality:30},maxGoodCardinalityForFacet:5,maxGoodCardinalityForColor:7,minPercentUniqueForKey:.8,minCardinalityForKey:50};var ti={argmax:1,argmin:1,average:1,count:1,distinct: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};function Al(e){return!!e&&!!e.argmin}function Ol(e){return!!e&&!!e.argmax}j(ti);function kl(e){return Gt(e)&&!!ti[e]}const ni=["count","sum","distinct","valid","missing"];De(["mean","average","median","q1","q3","min","max"]);function Ml(e){return Yt(e)&&(e=jl(e,void 0)),"bin"+j(e).map(t=>uo(`_${t}_${e[t]}`)).join("")}function ri(e){return e===!0||Il(e)&&!e.binned}function Il(e){return gr(e)}function pn(e){switch(e){case"row":case Ne:case He:case ue:case it:case at:case ut:case st:case lt:case ct:case ot:return 6;default:return 10}}function ii(e){return!!e&&!!e.condition&&!nt(e.condition)&&ve(e.condition)}function ve(e){return!!e&&(!!e.field||e.aggregate==="count")}function hn(e){return ve(e)&&Gt(e.field)}function Ul(e){return!!e.op}function mn(e,t={}){let n=e.field,r=t.prefix,a=t.suffix,i="";if(Dl(e))n=mo("count");else{let s;if(!t.nofn)if(Ul(e))s=e.op;else{let{bin:c,aggregate:h,timeUnit:o}=e;ri(c)?(s=Ml(c),a=(t.binSuffix||"")+(t.suffix||"")):h?Ol(h)?(i=`.${n}`,n=`argmax_${h.argmax}`):Al(h)?(i=`.${n}`,n=`argmin_${h.argmin}`):s=String(h):o&&(s=String(o))}s&&(n=n?`${s}_${n}`:s)}return a&&(n=`${n}_${a}`),r&&(n=`${r}_${n}`),t.forAs?n:t.expr?fo(n,t.expr)+i:po(n)+i}function ai(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return!!e.bin;case"temporal":return!1}throw Error(ee.invalidFieldType(e.type))}function Fl(e){return!ai(e)}function Dl(e){return e.aggregate==="count"}function _l(e){if(ve(e))return e;if(ii(e))return e.condition}function jl(e,t){return Yt(e)?{maxbins:pn(t)}:e==="binned"?{binned:!0}:!e.maxbins&&!e.step?Object.assign({},e,{maxbins:pn(t)}):e}var je={compatible:!0};function Pl(e,t){let 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"row":case"column":case"facet":return Fl(e)?{compatible:!1,warning:ee.facetChannelShouldBeDiscrete(t)}:je;case"x":case"y":case"color":case"fill":case"stroke":case"text":case"detail":case"key":case"tooltip":case"href":return je;case"longitude":case"longitude2":case"latitude":case"latitude2":return n==="quantitative"?je:{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`};case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":case"size":case"x2":case"y2":return n==="nominal"&&!e.sort?{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`}:je;case"shape":return G(["ordinal","nominal","geojson"],e.type)?je:{compatible:!1,warning:"Shape channel should be used with only either discrete or geojson data."};case"order":return e.type==="nominal"&&!("sort"in e)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:je}throw Error("channelCompatability not implemented for channel "+t)}function Rl(e,t,n,r){let a=$l(t,n,r),{type:i}=e;return Eo(t)?i===void 0?a:Br(t,i)?$r(i,n.type)?i:(ge(ee.scaleTypeNotWorkWithFieldDef(i,a)),a):(ge(ee.scaleTypeNotWorkWithChannel(t,i,a)),a):null}function $l(e,t,n){switch(t.type){case"nominal":case"ordinal":return ft(e)||Jt(e)==="discrete"?(e==="shape"&&t.type==="ordinal"&&ge(ee.discreteChannelCannotEncode(e,"ordinal")),"ordinal"):G(["x","y"],e)&&(G(["rect","bar","rule"],n)||n==="bar")?"band":"point";case"temporal":return ft(e)?"time":Jt(e)==="discrete"?(ge(ee.discreteChannelCannotEncode(e,"temporal")),"ordinal"):"time";case"quantitative":return ft(e)?ri(t.bin)?"bin-ordinal":"linear":Jt(e)==="discrete"?(ge(ee.discreteChannelCannotEncode(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw Error(ee.invalidFieldType(t.type))}var le;(function(e){e.QUANTITATIVE=te,e.ORDINAL=Ce,e.TEMPORAL=ye,e.NOMINAL=we,e.KEY="key"})(le||(le={}));function oi(e){return e==="ordinal"||e==="nominal"||e===le.KEY}var re=class ir{constructor(t=null){this.index=t?Object.assign({},t):{}}has(t){return mt(t)in this.index}get(t){return this.index[mt(t)]}set(t,n){return this.index[mt(t)]=n,this}setByKey(t,n){this.index[t]=n}map(t){let n=new ir;for(let r in this.index)n.index[r]=t(this.index[r]);return n}size(){return(0,U.keys)(this.index).length}duplicate(){return new ir(this.index)}};function si(e,t){let n=e&&e[t];return n?nt(n)?co(n,r=>!!r.field):ve(n)||ii(n):!1}var Bl={zero:1,center:1,normalize:1};function Ll(e){return!!Bl[e]}const Wl=["bar",ze,an,Ye,on,sn,gt,yt,vt],ql=["bar",ze];function Hl(e){let t=e.x,n=e.y;if(ve(t)&&ve(n))if(t.type==="quantitative"&&n.type==="quantitative"){if(t.stack)return"x";if(n.stack)return"y";if(!!t.aggregate!=!!n.aggregate)return t.aggregate?"x":"y"}else{if(t.type==="quantitative")return"x";if(n.type==="quantitative")return"y"}else{if(ve(t)&&t.type==="quantitative")return"x";if(ve(n)&&n.type==="quantitative")return"y"}}function Gl(e,t,n,r={}){let a=fl(e)?e.type:e;if(!G(Wl,a))return null;let i=Hl(t);if(!i)return null;let s=t[i],c=hn(s)?mn(s,{}):void 0,h=i==="x"?"y":"x",o=t[h],l=hn(o)?mn(o,{}):void 0,u=Or.reduce((f,d)=>{if(d!=="tooltip"&&si(t,d)){let g=t[d];(nt(g)?g:[g]).forEach(y=>{let v=_l(y);if(v.aggregate)return;let b=hn(v)?mn(v,{}):void 0;(!b||b!==l&&b!==c)&&f.push({channel:d,fieldDef:v})})}return f},[]),p;if(s.stack===void 0?u.length>0&&(p=G(ql,a)?ho(n,"zero"):n):p=Yt(s.stack)?s.stack?"zero":null:s.stack,!p||!Ll(p))return null;if(s.scale&&s.scale.type&&s.scale.type!==F.LINEAR){if(r.disallowNonLinearStack)return null;ge(ee.cannotStackNonLinearScale(s.scale.type))}return si(t,i==="x"?"x2":"y2")?(s.stack!==void 0&&ge(ee.cannotStackRangedMark(i)),null):(s.aggregate&&!G(ni,s.aggregate)&&ge(ee.stackNonSummativeAggregate(s.aggregate)),{groupbyChannel:o?h:void 0,fieldChannel:i,impute:ul(a),stackBy:u,offset:p})}var zl=H(ne());function Yl(e){return de(e.encodings,t=>O(t)&&!A(t.aggregate)&&!!t.aggregate||Tt(t))}function li(e){if(!Kl(e))return null;let t=hi(e.encodings,{schema:null,wildcardMode:"null"}),n=e.mark;return Gl(n,t,void 0,{disallowNonLinearStack:!0})}function Ql(e){for(let t of e.encodings)if(t[m.STACK]!==void 0&&!A(t[m.STACK]))return t[m.STACK]}function Vl(e){for(let t of e.encodings)if(t[m.STACK]!==void 0&&!A(t.channel))return t.channel;return null}function Kl(e){if(A(e.mark))return!1;let t=(0,zl.toMap)(el(ll,[m.STACK,m.CHANNEL,m.MARK,m.FIELD,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE])),n=e.encodings.filter(r=>!ae(r));for(let r of n)if(ci(r,{exclude:t}))return!1;return!0}function ci(e,t={}){if(!(0,U.isObject)(e))return!1;for(let n in e)if(e.hasOwnProperty(n)&&(A(e[n])&&(!t.exclude||!t.exclude[n])||ci(e[n],t)))return!0;return!1}var ui=H(ne());function Jl(e){return e.map(t=>Xl(t))}function Xl(e){return t=>e[t]===void 0?t:e[t]}function Oe(e,t){return A(e)?!bt(e)&&e.enum?"?"+JSON.stringify(e.enum):"?":t?t(e):e}function Et(e,t){return t?t(e):e}const gn=new re,yn=[].concat(Vr,nn,[m.TRANSFORM,m.STACK],zr).reduce((e,t)=>e.set(t,!0),new re),vn={axis:{x:!0,y:!0,row:!0,column:!0},legend:{color:!0,opacity:!0,size:!0,shape:!0},scale:{x:!0,y:!0,color:!0,opacity:!0,row:!0,column:!0,size:!0,shape:!0},sort:{x:!0,y:!0,path:!0,order:!0},stack:{x:!0,y:!0}};function Pe(e,t=yn,n=gn){let r=[];t.get(m.MARK)&&r.push(Oe(e.mark,n.get(m.MARK))),e.transform&&e.transform.length>0&&r.push("transform:"+JSON.stringify(e.transform));let a;if(t.get(m.STACK)&&(a=li(e)),e.encodings){let i=e.encodings.reduce((s,c)=>{if(!ae(c)){let h;h=a&&c.channel===a.fieldChannel?di(Object.assign({},c,{stack:a.offset}),t,n):di(c,t,n),h&&s.push(h)}return s},[]).sort().join("|");i&&r.push(i)}for(let i of zr){let s=i.toString();if(t.get(i)&&e[s]){let c=e[s];r.push(`${s}=${JSON.stringify(c)}`)}}return r.join("|")}function di(e,t=yn,n=gn){let r=[];if(t.get(m.CHANNEL)&&r.push(Oe(e.channel,n.get(m.CHANNEL))),O(e)){let a=fi(e,t,n);a&&r.push(a)}else ie(e)?r.push(e.value):P(e)&&r.push("autocount()");return r.join(":")}function fi(e,t=yn,n=gn){if(t.get(m.AGGREGATE)&&ae(e))return"-";let r=Zl(e,t,n),a=ec(e,t,n),i;if(O(e)){if(i=t.get("field")?Oe(e.field,n.get("field")):"...",t.get(m.TYPE))if(A(e.type))i+=","+Oe(e.type,n.get(m.TYPE));else{let s=((e.type||"quantitative")+"").substr(0,1);i+=","+Oe(s,n.get(m.TYPE))}i+=a.map(s=>{let c=s.value instanceof Array?"["+s.value+"]":s.value;return","+s.key+"="+c}).join("")}else P(e)&&(i="*,q");return i?r?((0,ui.isString)(r)?r:"?"+((0,U.keys)(r).length>0?JSON.stringify(r):""))+"("+i+")":i:null}function Zl(e,t,n){if(t.get(m.AGGREGATE)&&e.aggregate&&!A(e.aggregate))return Et(e.aggregate,n.get(m.AGGREGATE));if(t.get(m.AGGREGATE)&&Tt(e))return Et("count",n.get(m.AGGREGATE));if(t.get(m.TIMEUNIT)&&e.timeUnit&&!A(e.timeUnit))return Et(e.timeUnit,n.get(m.TIMEUNIT));if(t.get(m.BIN)&&e.bin&&!A(e.bin))return"bin";{let r=null;for(let a of[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN]){let i=e[a];t.get(a)&&e[a]&&A(i)&&(r||(r={}),r[a]=bt(i)?i:i.enum)}return r&&e.hasFn&&(r.hasFn=!0),r}}function ec(e,t,n){let r=[];if(!(0,U.isBoolean)(e.bin)&&!bt(e.bin)){let a=e.bin;for(let i in a){let s=fe("bin",i);s&&t.get(s)&&a[i]!==void 0&&r.push({key:i,value:Oe(a[i],n.get(s))})}r.sort((i,s)=>i.key.localeCompare(s.key))}for(let a of[m.SCALE,m.SORT,m.STACK,m.AXIS,m.LEGEND])if(!(!A(e.channel)&&!vn[a][e.channel])&&t.get(a)&&e[a]!==void 0){let i=e[a];if((0,U.isBoolean)(i)||i===null)r.push({key:a+"",value:i||!1});else if((0,ui.isString)(i))r.push({key:a+"",value:Et(JSON.stringify(i),n.get(a))});else{let s=[];for(let c in i){let h=fe(a,c);h&&t.get(h)&&i[c]!==void 0&&s.push({key:c,value:Oe(i[c],n.get(h))})}if(s.length>0){let c=s.sort((h,o)=>h.key.localeCompare(o.key)).reduce((h,o)=>(h[o.key]=o.value,h),{});r.push({key:a+"",value:JSON.stringify(c)})}}}return r}function bn(e,t,n){let r=[],a=0;for(let i=0;i<n;i++){let s=e.indexOf(t,a);if(s!==-1)r.push(e.substring(a,s)),a=s+1;else break}if(r.push(e.substr(a)),r.length!==n+1)for(;r.length!==n+1;)r.push("");return r}var tc;(function(e){function t(i,s){let c=s.indexOf("(")===-1?n(bn(s,",",2)):a(s);return Object.assign({channel:i},c)}e.encoding=t;function n(i){let s={};s.field=i[0],s.type=qs(i[1].toUpperCase())||"?";let c=i[2],h=0,o=0;for(;o<c.length;){let l=c.indexOf("=",o),u;if(l!==-1){let p=c.substring(o,l);if(c[o+p.length+1]==="{"){let f=o+p.length+1;h=r(f,c,"}");let d=c.substring(f,h+1);u=JSON.parse(d),o=h+2}else if(c[o+p.length+1]==="["){let f=o+p.length+1,d=r(f,c,"]"),g=c.substring(f,d+1);u=JSON.parse(g),o=d+2}else{let f=o,d=c.indexOf(",",o+p.length);d===-1&&(d=c.length),o=d+1,u=JSON.parse(c.substring(f+p.length+1,d))}tn(p)?s[p]=u:(s.bin=s.bin||{},s.bin[p]=u)}else break}return s}e.rawFieldDef=n;function r(i,s,c){for(let h=i;h<s.length;h++)if(s[h]===c)return h}e.getClosingIndex=r;function a(i){let s={};if(i[0]==="?"){let c=r(1,i,"}"),h=JSON.parse(i.substring(1,c+1));for(let o in h)(0,Lr.isArray)(h[o])?s[o]={enum:h[o]}:s[o]=h[o];return Object.assign({},s,n(bn(i.substring(c+2,i.length-1),",",2)))}else{let c=i.substring(0,i.indexOf("(")),h=bn(i.substring(c.length+1,i.length-1),",",2);if(kl(c))return Object.assign({aggregate:c},n(h));if(vl(c))return Object.assign({timeUnit:c},n(h));if(c==="bin")return Object.assign({bin:{}},n(h))}}e.fn=a})(tc||(tc={}));var pi=H(ne());function ie(e){return e!=null&&e.value!==void 0}function O(e){return e!=null&&(e.field||e.aggregate==="count")}function P(e){return e!=null&&"autoCount"in e}function ae(e){return P(e)&&e.autoCount===!1}function Tt(e){return P(e)&&e.autoCount===!0}var nc=[m.AGGREGATE,m.BIN,m.TIMEUNIT,m.FIELD,m.TYPE,m.SCALE,m.SORT,m.AXIS,m.LEGEND,m.STACK,m.FORMAT];function hi(e,t){let{wildcardMode:n="skip"}=t,r={};for(let a of e){if(ae(a))continue;let{channel:i}=a;if(A(i))throw Error("Cannot convert wildcard channel to a fixed channel");let s=ie(a)?rc(a):xn(a,t);if(s===null){if(t.wildcardMode==="null")return null;continue}r[i]=s}return r}function rc(e){let{value:t}=e;return A(t)?null:{value:t}}function xn(e,t={}){let{props:n=nc,schema:r,wildcardMode:a="skip"}=t;if(O(e)){let i={};for(let s of n){let c=e[s];if(A(c)){if(a==="skip")continue;return null}if(c!==void 0){if(!(!vn[s]||vn[s][e.channel]))continue;if(tn(s)&&(0,pi.isObject)(c)){for(let h in c=Object.assign({},c),c)if(A(c[h])){if(a==="null")return null;delete c[h]}}if(s==="bin"&&c===!1)continue;s==="type"&&c==="key"?i.type="nominal":i[s]=c}if(s===m.SCALE&&r&&e.type==="ordinal"){let h=e.scale,{ordinalDomain:o}=r.fieldSchema(e.field);h!==null&&o&&(i[m.SCALE]=Object.assign({domain:o},(0,pi.isObject)(h)?h:{}))}}return i}else{if(e.autoCount===!1)throw Error("Cannot convert {autoCount: false} into a field def");return{aggregate:"count",field:"*",type:"quantitative"}}}function Ke(e){return O(e)?!be(e)&&e.type!=="temporal":P(e)}function be(e){if(O(e)){let t=xn(e,{props:["bin","timeUnit","type"]});return ai(t)||!!t.timeUnit}return!1}function ke(e){let t=e.scale===!0||e.scale==="?"?{}:e.scale||{},{type:n,channel:r,timeUnit:a,bin:i}=e;if(A(t.type)||A(n)||A(r)||A(i))return;if(t.type)return t.type;if(n==="temporal"&&A(a)||n==="quantitative"&&A(i))return;let s={type:n===le.KEY?"nominal":n,timeUnit:a,bin:i};return Rl({type:t.type},r,s,void 0)}function L(e,t,n,r){function a(i){return e(i=new Date(+i)),i}return a.floor=a,a.round=function(i){var s=new Date(+i),c=new Date(i-1);return e(s),e(c),t(c,1),i-s<c-i?s:c},a.ceil=function(i){return e(i=new Date(i-1)),t(i,1),i},a.offset=function(i,s){return t(i=new Date(+i),s==null?1:Math.floor(s)),i},a.range=function(i,s,c){var h=[];if(i=new Date(i-1),s=new Date(+s),c=c==null?1:Math.floor(c),!(i<s)||!(c>0))return h;for(t(i,1),e(i),i<s&&h.push(new Date(+i));t(i,c),e(i),i<s;)h.push(new Date(+i));return h},a.filter=function(i){return L(function(s){for(;e(s),!i(s);)s.setTime(s-1)},function(s,c){for(;--c>=0;)for(;t(s,1),!i(s););})},n&&(a.count=function(i,s){return St.setTime(+i),Nt.setTime(+s),e(St),e(Nt),Math.floor(n(St,Nt))},a.every=function(i){return i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?a.filter(r?function(s){return r(s)%i===0}:function(s){return a.count(0,s)%i===0}):a}),a}var St,Nt,Y=q((()=>{St=new Date,Nt=new Date})),Ct,wt,ic=q((()=>{Y(),Ct=L(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e}),Ct.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?L(function(t){t.setTime(Math.floor(t/e)*e)},function(t,n){t.setTime(+t+n*e)},function(t,n){return(n-t)/e}):Ct},wt=Ct})),En,ac=q((()=>{Y(),En=L(function(e){e.setMilliseconds(0)},function(e,t){e.setTime(+e+t*1e3)},function(e,t){return(t-e)/1e3},function(e){return e.getSeconds()})})),Tn,oc=q((()=>{Y(),Tn=L(function(e){e.setSeconds(0,0)},function(e,t){e.setTime(+e+t*6e4)},function(e,t){return(t-e)/6e4},function(e){return e.getMinutes()})})),Sn,sc=q((()=>{Y(),Sn=L(function(e){e.setMinutes(0,0,0)},function(e,t){e.setTime(+e+t*36e5)},function(e,t){return(t-e)/36e5},function(e){return e.getHours()})})),Nn,lc=q((()=>{Y(),Nn=L(function(e){e.setHours(0,0,0,0)},function(e,t){e.setDate(e.getDate()+t)},function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5},function(e){return e.getDate()-1})}));function Me(e){return L(function(t){t.setHours(0,0,0,0),t.setDate(t.getDate()-(t.getDay()+7-e)%7)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5})}var At,Cn,wn,An,On,kn,Mn,In,cc=q((()=>{Y(),At=Me(0),Cn=Me(1),wn=Me(2),An=Me(3),On=Me(4),kn=Me(5),Mn=Me(6),In=At})),Un,uc=q((()=>{Y(),Un=L(function(e){e.setHours(0,0,0,0),e.setDate(1)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()})})),Fn,dc=q((()=>{Y(),Fn=L(function(e){e.setHours(0,0,0,0),e.setMonth(0,1)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()})})),Dn,fc=q((()=>{Y(),Dn=L(function(e){e.setUTCMilliseconds(0)},function(e,t){e.setTime(+e+t*1e3)},function(e,t){return(t-e)/1e3},function(e){return e.getUTCSeconds()})})),_n,pc=q((()=>{Y(),_n=L(function(e){e.setUTCSeconds(0,0)},function(e,t){e.setTime(+e+t*6e4)},function(e,t){return(t-e)/6e4},function(e){return e.getUTCMinutes()})})),jn,hc=q((()=>{Y(),jn=L(function(e){e.setUTCMinutes(0,0,0)},function(e,t){e.setTime(+e+t*36e5)},function(e,t){return(t-e)/36e5},function(e){return e.getUTCHours()})})),Pn,mc=q((()=>{Y(),Pn=L(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/864e5},function(e){return e.getUTCDate()-1})}));function Ie(e){return L(function(t){t.setUTCHours(0,0,0,0),t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/6048e5})}var Ot,Rn,$n,Bn,Ln,Wn,qn,Hn,gc=q((()=>{Y(),Ot=Ie(0),Rn=Ie(1),$n=Ie(2),Bn=Ie(3),Ln=Ie(4),Wn=Ie(5),qn=Ie(6),Hn=Ot})),Gn,yc=q((()=>{Y(),Gn=L(function(e){e.setUTCHours(0,0,0,0),e.setUTCDate(1)},function(e,t){e.setUTCMonth(e.getUTCMonth()+t)},function(e,t){return t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12},function(e){return e.getUTCMonth()})})),zn,vc=q((()=>{Y(),zn=L(function(e){e.setUTCHours(0,0,0,0),e.setUTCMonth(0,1)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()})})),bc=sr({day:()=>Nn,days:()=>vi,friday:()=>kn,fridays:()=>Ni,hour:()=>Sn,hours:()=>yi,interval:()=>L,millisecond:()=>wt,milliseconds:()=>Yn,minute:()=>Tn,minutes:()=>gi,monday:()=>Cn,mondays:()=>xi,month:()=>Un,months:()=>Ai,saturday:()=>Mn,saturdays:()=>Ci,second:()=>En,seconds:()=>mi,sunday:()=>At,sundays:()=>bi,thursday:()=>On,thursdays:()=>Si,tuesday:()=>wn,tuesdays:()=>Ei,utcDay:()=>Pn,utcDays:()=>Di,utcFriday:()=>Wn,utcFridays:()=>Bi,utcHour:()=>jn,utcHours:()=>Fi,utcMillisecond:()=>ki,utcMilliseconds:()=>Mi,utcMinute:()=>_n,utcMinutes:()=>Ui,utcMonday:()=>Rn,utcMondays:()=>ji,utcMonth:()=>Gn,utcMonths:()=>qi,utcSaturday:()=>qn,utcSaturdays:()=>Li,utcSecond:()=>Dn,utcSeconds:()=>Ii,utcSunday:()=>Ot,utcSundays:()=>_i,utcThursday:()=>Ln,utcThursdays:()=>$i,utcTuesday:()=>$n,utcTuesdays:()=>Pi,utcWednesday:()=>Bn,utcWednesdays:()=>Ri,utcWeek:()=>Hn,utcWeeks:()=>Wi,utcYear:()=>zn,utcYears:()=>Hi,wednesday:()=>An,wednesdays:()=>Ti,week:()=>In,weeks:()=>wi,year:()=>Fn,years:()=>Oi}),Yn,mi,gi,yi,vi,bi,xi,Ei,Ti,Si,Ni,Ci,wi,Ai,Oi,ki,Mi,Ii,Ui,Fi,Di,_i,ji,Pi,Ri,$i,Bi,Li,Wi,qi,Hi,xc=q((()=>{Y(),ic(),ac(),oc(),sc(),lc(),cc(),uc(),dc(),fc(),pc(),hc(),mc(),gc(),yc(),vc(),Yn=wt.range,mi=En.range,gi=Tn.range,yi=Sn.range,vi=Nn.range,bi=At.range,xi=Cn.range,Ei=wn.range,Ti=An.range,Si=On.range,Ni=kn.range,Ci=Mn.range,wi=In.range,Ai=Un.range,Oi=Fn.range,ki=wt,Mi=Yn,Ii=Dn.range,Ui=_n.range,Fi=jn.range,Di=Pn.range,_i=Ot.range,ji=Rn.range,Pi=$n.range,Ri=Bn.range,$i=Ln.range,Bi=Wn.range,Li=qn.range,Wi=Hn.range,qi=Gn.range,Hi=zn.range})),Ec=ce(((e,t)=>{var n=(xc(),Ca(bc)),r=new Date,a=new Date(0,0,1).setFullYear(0),i=new Date(Date.UTC(0,0,1)).setUTCFullYear(0);function s(d){return r.setTime(+d),r}function c(d,g,y,v,b,x){var S={type:d,date:g,unit:y};return v?S.step=v:S.minstep=1,b!=null&&(S.min=b),x!=null&&(S.max=x),S}function h(d,g,y,v,b,x){return c(d,function(S){return g.offset(y,S)},function(S){return g.count(y,S)},v,b,x)}var o=[h("second",n.second,a),h("minute",n.minute,a),h("hour",n.hour,a),h("day",n.day,a,[1,7]),h("month",n.month,a,[1,3,6]),h("year",n.year,a),c("seconds",function(d){return new Date(1970,0,1,0,0,d)},function(d){return s(d).getSeconds()},null,0,59),c("minutes",function(d){return new Date(1970,0,1,0,d)},function(d){return s(d).getMinutes()},null,0,59),c("hours",function(d){return new Date(1970,0,1,d)},function(d){return s(d).getHours()},null,0,23),c("weekdays",function(d){return new Date(1970,0,4+d)},function(d){return s(d).getDay()},[1],0,6),c("dates",function(d){return new Date(1970,0,d)},function(d){return s(d).getDate()},[1],1,31),c("months",function(d){return new Date(1970,d%12,1)},function(d){return s(d).getMonth()},[1],0,11)],l=[h("second",n.utcSecond,i),h("minute",n.utcMinute,i),h("hour",n.utcHour,i),h("day",n.utcDay,i,[1,7]),h("month",n.utcMonth,i,[1,3,6]),h("year",n.utcYear,i),c("seconds",function(d){return new Date(Date.UTC(1970,0,1,0,0,d))},function(d){return s(d).getUTCSeconds()},null,0,59),c("minutes",function(d){return new Date(Date.UTC(1970,0,1,0,d))},function(d){return s(d).getUTCMinutes()},null,0,59),c("hours",function(d){return new Date(Date.UTC(1970,0,1,d))},function(d){return s(d).getUTCHours()},null,0,23),c("weekdays",function(d){return new Date(Date.UTC(1970,0,4+d))},function(d){return s(d).getUTCDay()},[1],0,6),c("dates",function(d){return new Date(Date.UTC(1970,0,d))},function(d){return s(d).getUTCDate()},[1],1,31),c("months",function(d){return new Date(Date.UTC(1970,d%12,1))},function(d){return s(d).getUTCMonth()},[1],0,11)],u=[[31536e6,5],[7776e6,4],[2592e6,4],[12096e5,3],[6048e5,3],[1728e5,3],[864e5,3],[432e5,2],[216e5,2],[108e5,2],[36e5,2],[18e5,1],[9e5,1],[3e5,1],[6e4,1],[3e4,0],[15e3,0],[5e3,0],[1e3,0]];function p(d,g,y,v){var b=u[0],x,S,C;for(x=1,S=u.length;x<S;++x)if(b=u[x],g>b[0]){if(C=g/b[0],C>v)return d[u[x-1][1]];if(C>=y)return d[b[1]]}return d[u[S-1][1]]}function f(d){var g={},y,v;for(y=0,v=d.length;y<v;++y)g[d[y].type]=d[y];return g.find=function(b,x,S){return p(d,b,x,S)},g}t.exports=f(o),t.exports.utc=f(l)})),Tc=ce(((e,t)=>{var n=ne(),r=Ec(),a=1e-15;function i(u){if(!u)throw Error("Missing binning options.");var p=u.maxbins||15,f=u.base||10,d=Math.log(f),g=u.div||[5,2],y=u.min,v=u.max,b=v-y,x,S,C,T,w,N,D;if(u.step)x=u.step;else if(u.steps)x=u.steps[Math.min(u.steps.length-1,s(u.steps,b/p,0,u.steps.length))];else{for(S=Math.ceil(Math.log(p)/d),C=u.minstep||0,x=Math.max(C,f**+(Math.round(Math.log(b)/d)-S));Math.ceil(b/x)>p;)x*=f;for(N=0;N<g.length;++N)w=x/g[N],w>=C&&b/w<=p&&(x=w)}return w=Math.log(x),T=w>=0?0:~~(-w/d)+1,D=f**(-T-1),y=Math.min(y,Math.floor(y/x+D)*x),v=Math.ceil(v/x)*x,{start:y,stop:v,step:x,unit:{precision:T},value:c,index:h}}function s(u,p,f,d){for(;f<d;){var g=f+d>>>1;n.cmp(u[g],p)<0?f=g+1:d=g}return f}function c(u){return this.step*Math.floor(u/this.step+a)}function h(u){return Math.floor((u-this.start)/this.step+a)}function o(u){return this.unit.date(c.call(this,u))}function l(u){return h.call(this,this.unit.unit(u))}i.date=function(u){if(!u)throw Error("Missing date binning options.");var p=u.utc?r.utc:r,f=u.min,d=u.max,g=u.maxbins||20,y=u.minbins||4,v=d-+f,b=u.unit?p[u.unit]:p.find(v,y,g),x=i({min:b.min==null?b.unit(f):b.min,max:b.max==null?b.unit(d):b.max,maxbins:g,minstep:b.minstep,steps:b.step});return x.unit=b,x.index=l,u.raw||(x.value=o),x},t.exports=i})),Gi=ce(((e,t)=>{var n=ne(),r="__types__",a={boolean:n.boolean,integer:n.number,number:n.number,date:n.date,string:function(f){return f==null||f===""?null:f+""}},i={boolean:function(f){return f==="true"||f==="false"||n.isBoolean(f)},integer:function(f){return i.number(f)&&(f=+f)===~~f},number:function(f){return!isNaN(+f)&&!n.isDate(f)},date:function(f){return!isNaN(Date.parse(f))}};function s(f,d){if(!d)return f&&f[r]||null;f[r]=d}function c(f){return n.keys(f)}function h(f){return"["+f+"]"}function o(f,d){f=n.array(f),d=n.$(d);var g,y,v;if(f[r]&&(g=d(f[r]),n.isString(g)))return g;for(y=0,v=f.length;!n.isValid(g)&&y<v;++y)g=d?d(f[y]):f[y];return n.isDate(g)?"date":n.isNumber(g)?"number":n.isBoolean(g)?"boolean":n.isString(g)?"string":null}function l(f,d){if(f.length){var g=d?n.identity:(d=c(f[0]),h);return d.reduce(function(y,v){return y[v]=o(f,g(v)),y},{})}}function u(f,d){f=n.array(f),d=n.$(d);var g,y,v,b=["boolean","integer","number","date"];for(g=0;g<f.length;++g){for(v=d?d(f[g]):f[g],y=0;y<b.length;++y)n.isValid(v)&&!i[b[y]](v)&&(b.splice(y,1),--y);if(b.length===0)return"string"}return b[0]}function p(f,d){var g=d?n.identity:(d=c(f[0]),h);return d.reduce(function(y,v){return y[v]=u(f,g(v)),y},{})}o.annotation=s,o.all=l,o.infer=u,o.inferAll=p,o.parsers=a,t.exports=o})),Sc=ce(((e,t)=>{var n=ne(),r=t.exports;r.repeat=function(a,i){var s=Array(i),c;for(c=0;c<i;++c)s[c]=a;return s},r.zeros=function(a){return r.repeat(0,a)},r.range=function(a,i,s){if(arguments.length<3&&(s=1,arguments.length<2&&(i=a,a=0)),(i-a)/s==1/0)throw Error("Infinite range");var c=[],h=-1,o;if(s<0)for(;(o=a+s*++h)>i;)c.push(o);else for(;(o=a+s*++h)<i;)c.push(o);return c},r.random={},r.random.uniform=function(a,i){i===void 0&&(i=a===void 0?1:a,a=0);var s=i-a,c=function(){return a+s*Math.random()};return c.samples=function(h){return r.zeros(h).map(c)},c.pdf=function(h){return h>=a&&h<=i?1/s:0},c.cdf=function(h){return h<a?0:h>i?1:(h-a)/s},c.icdf=function(h){return h>=0&&h<=1?a+h*s:NaN},c},r.random.integer=function(a,i){i===void 0&&(i=a,a=0);var s=i-a,c=function(){return a+Math.floor(s*Math.random())};return c.samples=function(h){return r.zeros(h).map(c)},c.pdf=function(h){return h===Math.floor(h)&&h>=a&&h<i?1/s:0},c.cdf=function(h){var o=Math.floor(h);return o<a?0:o>=i?1:(o-a+1)/s},c.icdf=function(h){return h>=0&&h<=1?a-1+Math.floor(h*s):NaN},c},r.random.normal=function(a,i){a||(a=0),i||(i=1);var s,c=function(){var h=0,o=0,l,u;if(s!==void 0)return h=s,s=void 0,h;do h=Math.random()*2-1,o=Math.random()*2-1,l=h*h+o*o;while(l===0||l>1);return u=Math.sqrt(-2*Math.log(l)/l),s=a+o*u*i,a+h*u*i};return c.samples=function(h){return r.zeros(h).map(c)},c.pdf=function(h){var o=Math.exp((h-a)**2/(-2*i**2));return 1/(i*Math.sqrt(2*Math.PI))*o},c.cdf=function(h){var o,l=(h-a)/i,u=Math.abs(l);if(u>37)o=0;else{var p,f=Math.exp(-u*u/2);u<7.07106781186547?(p=.0352624965998911*u+.700383064443688,p=p*u+6.37396220353165,p=p*u+33.912866078383,p=p*u+112.079291497871,p=p*u+221.213596169931,p=p*u+220.206867912376,o=f*p,p=.0883883476483184*u+1.75566716318264,p=p*u+16.064177579207,p=p*u+86.7807322029461,p=p*u+296.564248779674,p=p*u+637.333633378831,p=p*u+793.826512519948,p=p*u+440.413735824752,o/=p):(p=u+.65,p=u+4/p,p=u+3/p,p=u+2/p,p=u+1/p,o=f/p/2.506628274631)}return l>0?1-o:o},c.icdf=function(h){if(h<=0||h>=1)return NaN;var o=2*h-1,l=8*(Math.PI-3)/(3*Math.PI*(4-Math.PI)),u=2/(Math.PI*l)+Math.log(1-o**2)/2,p=Math.log(1-o*o)/l,f=(o>0?1:-1)*Math.sqrt(Math.sqrt(u*u-p)-u);return a+i*Math.SQRT2*f},c},r.random.bootstrap=function(a,i){var s=a.filter(n.isValid),c=s.length,h=i?r.random.normal(0,i):null,o=function(){return s[~~(Math.random()*c)]+(h?h():0)};return o.samples=function(l){return r.zeros(l).map(o)},o}})),Nc=ce(((e,t)=>{var n=ne(),r=Gi(),a=Sc(),i=t.exports;i.unique=function(o,l,u){l=n.$(l),u||(u=[]);var p={},f,d,g;for(d=0,g=o.length;d<g;++d)f=l?l(o[d]):o[d],!(f in p)&&(p[f]=1,u.push(f));return u},i.count=function(o){return o&&o.length||0},i.count.valid=function(o,l){l=n.$(l);var u,p,f,d=0;for(p=0,f=o.length;p<f;++p)u=l?l(o[p]):o[p],n.isValid(u)&&(d+=1);return d},i.count.missing=function(o,l){l=n.$(l);var u,p,f,d=0;for(p=0,f=o.length;p<f;++p)u=l?l(o[p]):o[p],u??(d+=1);return d},i.count.distinct=function(o,l){l=n.$(l);var u={},p,f,d,g=0;for(f=0,d=o.length;f<d;++f)p=l?l(o[f]):o[f],!(p in u)&&(u[p]=1,g+=1);return g},i.count.map=function(o,l){l=n.$(l);var u={},p,f,d;for(f=0,d=o.length;f<d;++f)p=l?l(o[f]):o[f],u[p]=p in u?u[p]+1:1;return u},i.median=function(o,l){return l&&(o=o.map(n.$(l))),o=o.filter(n.isValid).sort(n.cmp),i.quantile(o,.5)},i.quartile=function(o,l){l&&(o=o.map(n.$(l))),o=o.filter(n.isValid).sort(n.cmp);var u=i.quantile;return[u(o,.25),u(o,.5),u(o,.75)]},i.quantile=function(o,l,u){u===void 0&&(u=l,l=n.identity),l=n.$(l);var p=(o.length-1)*u+1,f=Math.floor(p),d=+l(o[f-1]),g=p-f;return g?d+g*(l(o[f])-d):d},i.sum=function(o,l){l=n.$(l);for(var u=0,p=0,f=o.length,d;p<f;++p)d=l?l(o[p]):o[p],n.isValid(d)&&(u+=d);return u},i.mean=function(o,l){l=n.$(l);var u=0,p,f,d,g,y;for(f=0,g=0,d=o.length;f<d;++f)y=l?l(o[f]):o[f],n.isValid(y)&&(p=y-u,u+=p/++g);return u},i.mean.geometric=function(o,l){l=n.$(l);var u=1,p,f,d,g;for(g=0,p=0,f=o.length;g<f;++g)if(d=l?l(o[g]):o[g],n.isValid(d)){if(d<=0)throw Error("Geometric mean only defined for positive values.");u*=d,++p}return u=p>0?u**(1/p):0,u},i.mean.harmonic=function(o,l){l=n.$(l);var u=0,p,f,d,g;for(g=0,p=0,f=o.length;g<f;++g)d=l?l(o[g]):o[g],n.isValid(d)&&(u+=1/d,++p);return p/u},i.variance=function(o,l){if(l=n.$(l),!n.isArray(o)||o.length<2)return 0;var u=0,p=0,f,d,g,y;for(d=0,g=0;d<o.length;++d)y=l?l(o[d]):o[d],n.isValid(y)&&(f=y-u,u+=f/++g,p+=f*(y-u));return p/=g-1,p},i.stdev=function(o,l){return Math.sqrt(i.variance(o,l))},i.modeskew=function(o,l){var u=i.mean(o,l),p=i.median(o,l),f=i.stdev(o,l);return f===0?0:(u-p)/f},i.min=function(o,l){return i.extent(o,l)[0]},i.max=function(o,l){return i.extent(o,l)[1]},i.extent=function(o,l){l=n.$(l);var u,p,f,d,g=o.length;for(d=0;d<g;++d)if(f=l?l(o[d]):o[d],n.isValid(f)){u=p=f;break}for(;d<g;++d)f=l?l(o[d]):o[d],n.isValid(f)&&(f<u&&(u=f),f>p&&(p=f));return[u,p]},i.extent.index=function(o,l){l=n.$(l);var u=-1,p=-1,f,d,g,y,v=o.length;for(y=0;y<v;++y)if(g=l?l(o[y]):o[y],n.isValid(g)){f=d=g,u=p=y;break}for(;y<v;++y)g=l?l(o[y]):o[y],n.isValid(g)&&(g<f&&(f=g,u=y),g>d&&(d=g,p=y));return[u,p]},i.dot=function(o,l,u){var p=0,f,d;if(u)for(l=n.$(l),u=n.$(u),f=0;f<o.length;++f)d=l(o[f])*u(o[f]),d===d&&(p+=d);else{if(o.length!==l.length)throw Error("Array lengths must match.");for(f=0;f<o.length;++f)d=o[f]*l[f],d===d&&(p+=d)}return p},i.dist=function(o,l,u,p){var f=n.isFunction(u)||n.isString(u),d=o,g=f?o:l,y=f?p:u,v=y===2||y==null,b=o.length,x=0,S,C;for(f&&(l=n.$(l),u=n.$(u)),C=0;C<b;++C)S=f?l(d[C])-u(g[C]):d[C]-g[C],x+=v?S*S:Math.abs(S)**+y;return v?Math.sqrt(x):x**(1/y)},i.cohensd=function(o,l,u){var p=u?o.map(n.$(l)):o,f=u?o.map(n.$(u)):l,d=i.mean(p),g=i.mean(f),y=i.count.valid(p),v=i.count.valid(f);if(y+v-2<=0)return 0;var b=i.variance(p),x=i.variance(f),S=Math.sqrt(((y-1)*b+(v-1)*x)/(y+v-2));return S===0?0:(d-g)/S},i.covariance=function(o,l,u){var p=u?o.map(n.$(l)):o,f=u?o.map(n.$(u)):l,d=p.length,g=i.mean(p),y=i.mean(f),v=0,b=0,x,S,C,T,w;if(d!==f.length)throw Error("Input lengths must match.");for(x=0;x<d;++x)if(S=p[x],T=n.isValid(S),C=f[x],w=n.isValid(C),T&&w)v+=(S-g)*(C-y),++b;else if(T||w)throw Error("Valid values must align.");return v/(b-1)},i.rank=function(o,l){l=n.$(l)||n.identity;var u=o.map(function(x,S){return{idx:S,val:l(x)}}).sort(n.comparator("val")),p=o.length,f=Array(p),d=-1,g={},y,v,b;for(y=0;y<p;++y){if(v=u[y].val,d<0&&g===v)d=y-1;else if(d>-1&&g!==v){for(b=1+(y-1+d)/2;d<y;++d)f[u[d].idx]=b;d=-1}f[u[y].idx]=y+1,g=v}if(d>-1)for(b=1+(p-1+d)/2;d<p;++d)f[u[d].idx]=b;return f},i.cor=function(o,l,u){var p=u;u=p?o.map(n.$(u)):l,l=p?o.map(n.$(l)):o;var f=i.dot(l,u),d=i.mean(l),g=i.mean(u),y=i.stdev(l),v=i.stdev(u),b=o.length;return(f-b*d*g)/((b-1)*y*v)},i.cor.rank=function(o,l,u){var p=u?i.rank(o,l):i.rank(o),f=u?i.rank(o,u):i.rank(l),d=o.length,g,y,v;for(g=0,y=0;g<d;++g)v=p[g]-f[g],y+=v*v;return 1-6*y/(d*(d*d-1))},i.cor.dist=function(o,l,u){var p=u?o.map(n.$(l)):o,f=u?o.map(n.$(u)):l,d=i.dist.mat(p),g=i.dist.mat(f),y=d.length,v,b,x,S;for(v=0,b=0,x=0,S=0;v<y;++v)b+=d[v]*d[v],x+=g[v]*g[v],S+=d[v]*g[v];return Math.sqrt(S/Math.sqrt(b*x))},i.linearRegression=function(o,l,u){var p=u?o.map(n.$(l)):o,f=u?o.map(n.$(u)):l,d=p.length,g=i.covariance(p,f),y=i.stdev(p),v=i.stdev(f),b=g/(y*y),x=i.mean(f)-b*i.mean(p),S={slope:b,intercept:x,R:g/(y*v),rss:0},C,T;for(T=0;T<d;++T)n.isValid(p[T])&&n.isValid(f[T])&&(C=b*p[T]+x-f[T],S.rss+=C*C);return S},i.bootstrap={},i.bootstrap.ci=function(o,l,u,p,f){var d,g,y,v,b,x,S;for(n.isFunction(l)||n.isString(l)?(d=o.map(n.$(l)),g=u,y=p,v=f):(d=o,g=l,y=u,v=p),g=g?+g:1e3,y||(y=.05),b=a.random.bootstrap(d,v),S=0,x=Array(g);S<g;++S)x[S]=i.mean(b.samples(d.length));return x.sort(n.numcmp),[i.quantile(x,y/2),i.quantile(x,1-y/2)]},i.z={},i.z.ci=function(o,l,u){var p=o,f=l;(n.isFunction(l)||n.isString(l))&&(p=o.map(n.$(l)),f=u),f||(f=.05);var d=f===.05?1.96:a.random.normal(0,1).icdf(1-f/2),g=i.mean(p),y=i.stdev(p)/Math.sqrt(i.count.valid(p));return[g-d*y,g+d*y]},i.z.test=function(o,l,u,p){return n.isFunction(u)||n.isString(u)?(p&&p.paired?c:h)(p,o,l,u):n.isArray(l)?(u&&u.paired?c:h)(u,o,l):n.isFunction(l)||n.isString(l)?s(u,o,l):s(l,o)};function s(o,l,u){var p=o&&o.nullh||0,f=a.random.normal(0,1),d=i.mean(l,u),g=i.stdev(l,u)/Math.sqrt(i.count.valid(l,u));if(g===0)return d-p===0?1:0;var y=(d-p)/g;return 2*f.cdf(-Math.abs(y))}function c(o,l,u,p){var f=p?l.map(n.$(u)):l,d=p?l.map(n.$(p)):u,g=i.count(f),y=i.count(d),v=[],b;if(g!==y)throw Error("Array lengths must match.");for(b=0;b<g;++b)n.isValid(f[b])&&n.isValid(d[b])&&v.push(f[b]-d[b]);return i.z.test(v,o&&o.nullh||0)}function h(o,l,u,p){var f=p?l.map(n.$(u)):l,d=p?l.map(n.$(p)):u,g=i.count.valid(f),y=i.count.valid(d),v=a.random.normal(0,1),b=i.mean(f)-i.mean(d)-(o&&o.nullh||0),x=Math.sqrt(i.variance(f)/g+i.variance(d)/y);if(x===0)return b===0?1:0;var S=b/x;return 2*v.cdf(-Math.abs(S))}i.dist.mat=function(o){var l=o.length,u=l*l,p=Array(u),f=a.zeros(l),d=0,g,y,v;for(y=0;y<l;++y)for(p[y*l+y]=0,v=y+1;v<l;++v)p[y*l+v]=g=Math.abs(o[y]-o[v]),p[v*l+y]=g,f[y]+=g,f[v]+=g;for(y=0;y<l;++y)d+=f[y],f[y]/=l;for(d/=u,y=0;y<l;++y)for(v=y;v<l;++v)p[y*l+v]+=d-f[y]-f[v],p[v*l+y]=p[y*l+v];return p},i.entropy=function(o,l){l=n.$(l);var u,p,f=0,d=0,g=o.length;for(u=0;u<g;++u)f+=l?l(o[u]):o[u];if(f===0)return 0;for(u=0;u<g;++u)p=(l?l(o[u]):o[u])/f,p&&(d+=p*Math.log(p));return-d/Math.LN2},i.mutual=function(o,l,u,p){var f=p?o.map(n.$(l)):o,d=p?o.map(n.$(u)):l,g=p?o.map(n.$(p)):u,y={},v={},b=g.length,x=0,S=0,C=0,T,w,N;for(N=0;N<b;++N)y[f[N]]=0,v[d[N]]=0;for(N=0;N<b;++N)y[f[N]]+=g[N],v[d[N]]+=g[N],x+=g[N];for(w=1/(x*Math.LN2),N=0;N<b;++N)g[N]!==0&&(T=x*g[N]/(y[f[N]]*v[d[N]]),S+=g[N]*w*Math.log(T),C+=g[N]*w*Math.log(g[N]/x));return[S,1+S/C]},i.mutual.info=function(o,l,u,p){return i.mutual(o,l,u,p)[0]},i.mutual.dist=function(o,l,u,p){return i.mutual(o,l,u,p)[1]},i.profile=function(o,l){var u=0,p=0,f=0,d=0,g=null,y=null,v=0,b=[],x={},S,C,T,w,N;for(T=0;T<o.length;++T)w=l?l(o[T]):o[T],x[w]=w in x?x[w]+1:(d+=1,1),w==null?++f:n.isValid(w)&&(N=typeof w=="string"?w.length:w,(g===null||N<g)&&(g=N),(y===null||N>y)&&(y=N),S=N-u,u+=S/++p,v+=S*(N-u),b.push(N));return v/=p-1,C=Math.sqrt(v),b.sort(n.cmp),{type:r(o,l),unique:x,count:o.length,valid:p,missing:f,distinct:d,min:g,max:y,mean:u,stdev:C,median:w=i.quantile(b,.5),q1:i.quantile(b,.25),q3:i.quantile(b,.75),modeskew:C===0?0:(u-w)/C}},i.summary=function(o,l){l||(l=n.keys(o[0]));var u=l.map(function(p){var f=i.profile(o,n.$(p));return f.field=p,f});return u.__summary__=!0,u}})),Cc=H(Tc()),wc=H(Gi()),Ac=H(Nc()),Oc=Cc.default;function kc(e,t={},n={fields:[]}){t=(0,U.extend)({},Ve,t);let r=(0,Ac.summary)(e),a=(0,wc.inferAll)(e),i=n.fields.reduce((c,h)=>(c[h.name]=h,c),{}),s=r.map(function(c,h){let o=c.field,l=a[o]==="date"?R.DATETIME:a[o],u=c.distinct,p;if(l===R.NUMBER)p=te;else if(l===R.INTEGER)p=u<t.numberNominalLimit&&u/c.count<t.numberNominalProportion?we:te;else if(l===R.DATETIME){p=ye,c.min=new Date(e[0][o]),c.max=new Date(e[0][o]);for(let g of e){let y=new Date(g[o]).getTime();y<c.min.getTime()&&(c.min=new Date(y)),y>c.max.getTime()&&(c.max=new Date(y))}}else p=we;p==="nominal"&&u/c.count>t.minPercentUniqueForKey&&c.count>t.minCardinalityForKey&&(p=le.KEY);let f={name:o,originalIndex:h,vlType:p,type:l,stats:c,timeStats:{},binStats:{}},d=i[f.name];return f=(0,U.extend)(f,d),f});for(let c of s)if(c.vlType==="quantitative")for(let h of t.enum.binProps.maxbins)c.binStats[h]=zi(h,c.stats);else if(c.vlType==="temporal")for(let h of t.enum.timeUnit)h!==void 0&&(c.timeStats[h]=Yi(h,c.stats));return new Mc(Object.assign({},n,{fields:s}))}var kt={nominal:0,key:1,ordinal:2,temporal:3,quantitative:4},Mc=class{constructor(e){this._tableSchema=e,e.fields.sort(function(t,n){return kt[t.vlType]<kt[n.vlType]?-1:kt[t.vlType]>kt[n.vlType]?1:t.name.localeCompare(n.name)}),e.fields.forEach((t,n)=>t.index=n),this._fieldSchemaIndex=e.fields.reduce((t,n)=>(t[n.name]=n,t),{})}fieldNames(){return this._tableSchema.fields.map(e=>e.name)}get fieldSchemas(){return this._tableSchema.fields}fieldSchema(e){return this._fieldSchemaIndex[e]}tableSchema(){let e=(0,U.duplicate)(this._tableSchema);return e.fields.sort((t,n)=>t.originalIndex-n.originalIndex),e}primitiveType(e){return this._fieldSchemaIndex[e]?this._fieldSchemaIndex[e].type:null}vlType(e){return this._fieldSchemaIndex[e]?this._fieldSchemaIndex[e].vlType:null}cardinality(e,t=!0,n=!1){let r=this._fieldSchemaIndex[e.field];if(e.aggregate||P(e)&&e.autoCount)return 1;if(e.bin){let a;a=typeof e.bin=="boolean"?{maxbins:pn(e.channel)}:e.bin==="?"?{enum:[!0,!1]}:e.bin;let i=a.maxbins;return r.binStats[i]||(r.binStats[i]=zi(i,r.stats)),r.binStats[i].distinct}else if(e.timeUnit){if(t)switch(e.timeUnit){case B.SECONDS:return 60;case B.MINUTES:return 60;case B.HOURS:return 24;case B.DAY:return 7;case B.DATE:return 31;case B.MONTH:return 12;case B.QUARTER:return 4;case B.MILLISECONDS:return 1e3}let a=e.timeUnit,i=r.timeStats;return(!i||!i[a])&&(i=Object.assign({},i,{[a]:Yi(e.timeUnit,r.stats)})),n?i[a].distinct-Qi(i[a].unique,["Invalid Date",null]):i[a].distinct}else return r?n?r.stats.distinct-Qi(r.stats.unique,[NaN,null]):r.stats.distinct:null}timeUnitHasVariation(e){if(!e.timeUnit)return;if(e.timeUnit===B.DAY){let n=(0,U.extend)({},e,{timeUnit:B.DATE});if(this.cardinality(n,!1,!0)<=1)return!1}let t=e.timeUnit;for(let n of Kr)if(ei(t,n)){let r=(0,U.extend)({},e,{timeUnit:n});if(this.cardinality(r,!1,!0)<=1)return!1}return!0}domain(e){let t=this._fieldSchemaIndex[e.field],n=(0,U.keys)(t.stats.unique);return t.vlType==="quantitative"?[+t.stats.min,+t.stats.max]:t.type===R.DATETIME?[t.stats.min,t.stats.max]:t.type===R.INTEGER||t.type===R.NUMBER?(n=n.map(r=>+r),n.sort(U.cmp)):t.vlType==="ordinal"&&t.ordinalDomain?t.ordinalDomain:n.map(r=>r==="null"?null:r).sort(U.cmp)}stats(e){let t=this._fieldSchemaIndex[e.field];return t?t.stats:null}};function zi(e,t){let n=Oc({min:t.min,max:t.max,maxbins:e}),r=(0,U.extend)({},t);return r.unique=Ic(n,t.unique),r.distinct=(n.stop-n.start)/n.step,r.min=n.start,r.max=n.stop,r}function Yi(e,t){let n=(0,U.extend)({},t),r={};return(0,U.keys)(t.unique).forEach(function(a){let i=a==="null"?null:new Date(a),s;s=i===null?null:isNaN(i.getTime())?"Invalid Date":(e===B.DAY?i.getDay():xl(e,i)).toString(),r[s]=(r[s]||0)+t.unique[a]}),n.unique=r,n.distinct=(0,U.keys)(r).length,n}function Ic(e,t){let n={};for(let r in t){let a;a=r===null?null:isNaN(Number(r))?NaN:e.value(Number(r)),n[a]=(n[a]||0)+t[r]}return n}function Qi(e,t){return t.reduce(function(n,r){return e[r]?n+1:n},0)}var R;(function(e){e[e.STRING="string"]="STRING",e[e.NUMBER="number"]="NUMBER",e[e.INTEGER="integer"]="INTEGER",e[e.BOOLEAN="boolean"]="BOOLEAN",e[e.DATETIME="datetime"]="DATETIME"})(R||(R={}));var Vi=class{constructor(e){this.constraint=e}name(){return this.constraint.name}description(){return this.constraint.description}properties(){return this.constraint.properties}strict(){return this.constraint.strict}},Ki=class extends Vi{constructor(e){super(e)}hasAllRequiredPropertiesSpecific(e){return oe(this.constraint.properties,t=>{if(se(t)){let n=t.parent,r=t.child;return e[n]?!A(e[n][r]):!0}return e[t]?!A(e[t]):!0})}satisfy(e,t,n,r){return!this.constraint.allowWildcardForProperties&&!this.hasAllRequiredPropertiesSpecific(e)?!0:this.constraint.satisfy(e,t,n,r)}};const Ji=[{name:"aggregateOpSupportedByType",description:"Aggregate function should be supported by data type.",properties:[m.TYPE,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>e.aggregate?!oi(e.type):!0},{name:"asteriskFieldWithCountOnly",description:'Field="*" should be disallowed except aggregate="count"',properties:[m.FIELD,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>e.field==="*"==(e.aggregate==="count")},{name:"minCardinalityForBin",description:"binned quantitative field should not have too low cardinality",properties:[m.BIN,m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{if(e.bin&&e.type==="quantitative"){let a={channel:e.channel,field:e.field,type:e.type};return t.cardinality(a)>=r.minCardinalityForBin}return!0}},{name:"binAppliedForQuantitative",description:"bin should be applied to quantitative field only.",properties:[m.TYPE,m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>e.bin?e.type===te:!0},{name:"channelFieldCompatible",description:"encoding channel's range type be compatible with channel type.",properties:[m.CHANNEL,m.TYPE,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{let a=Object.assign({field:"f"},xn(e,{schema:t,props:["bin","timeUnit","type"]})),{compatible:i}=Pl(a,e.channel);return i?!0:!!((e.channel==="row"||e.channel==="column")&&(pl(a.timeUnit)||hl(a.timeUnit)))}},{name:"hasFn",description:"A field with as hasFn flag should have one of aggregate, timeUnit, or bin.",properties:[m.AGGREGATE,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>e.hasFn?!!e.aggregate||!!e.bin||!!e.timeUnit:!0},{name:"omitScaleZeroWithBinnedField",description:"Do not use scale zero with binned field",properties:[m.SCALE,fe("scale","zero"),m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!(e.bin&&e.scale&&e.scale.zero===!0)},{name:"onlyOneTypeOfFunction",description:"Only of of aggregate, autoCount, timeUnit, or bin should be applied at the same time.",properties:[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>O(e)?(!A(e.aggregate)&&e.aggregate?1:0)+(!A(e.bin)&&e.bin?1:0)+(!A(e.timeUnit)&&e.timeUnit?1:0)<=1:!0},{name:"timeUnitAppliedForTemporal",description:"Time unit should be applied to temporal field only.",properties:[m.TYPE,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!(e.timeUnit&&e.type!=="temporal")},{name:"timeUnitShouldHaveVariation",description:"A particular time unit should be applied only if they produce unique values.",properties:[m.TIMEUNIT,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.timeUnit&&e.type==="temporal"?!n.has("timeUnit")&&!r.constraintManuallySpecifiedValue?!0:t.timeUnitHasVariation(e):!0},{name:"scalePropertiesSupportedByScaleType",description:"Scale properties must be supported by correct scale type",properties:[].concat(pt,[m.SCALE,m.TYPE]),allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>{if(e.scale){let a=e.scale,i=ke(e);if(i==null)return!0;for(let s in a){if(s==="type"||s==="name"||s==="enum")continue;let c=s;if(i==="point"){if(!Zt("point",c)&&!Zt("band",c))return!1}else if(!Zt(i,c))return!1}}return!0}},{name:"scalePropertiesSupportedByChannel",description:"Not all scale properties are supported by all encoding channels",properties:[].concat(pt,[m.SCALE,m.CHANNEL]),allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n,r)=>{if(e){let a=e.channel,i=e.scale;if(a&&!A(a)&&i){if(a==="row"||a==="column")return!1;for(let s in i)if(i.hasOwnProperty(s)&&!(s==="type"||s==="name"||s==="enum")&&Js(a,s)!==void 0)return!1}}return!0}},{name:"typeMatchesPrimitiveType",description:"Data type should be supported by field's primitive type.",properties:[m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{if(e.field==="*")return!0;let a=t.primitiveType(e.field),i=e.type;if(!n.has("field")&&!n.has("type")&&!r.constraintManuallySpecifiedValue)return!0;switch(a){case R.BOOLEAN:case R.STRING:return i!=="quantitative"&&i!=="temporal";case R.NUMBER:case R.INTEGER:return i!==ye;case R.DATETIME:return i===ye;case null:return!1}throw Error("Not implemented")}},{name:"typeMatchesSchemaType",description:"Enumerated data type of a field should match the field's type in the schema.",properties:[m.FIELD,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>!n.has("field")&&!n.has("type")&&!r.constraintManuallySpecifiedValue?!0:e.field==="*"?e.type===te:t.vlType(e.field)===e.type},{name:"maxCardinalityForCategoricalColor",description:"Categorical channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.channel==="color"&&(e.type==="nominal"||e.type===le.KEY)?t.cardinality(e)<=r.maxCardinalityForCategoricalColor:!0},{name:"maxCardinalityForFacet",description:"Row/column channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.channel==="row"||e.channel==="column"?t.cardinality(e)<=r.maxCardinalityForFacet:!0},{name:"maxCardinalityForShape",description:"Shape channel should not have too high cardinality",properties:[m.CHANNEL,m.FIELD,m.BIN,m.TIMEUNIT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n,r)=>e.channel==="shape"?t.cardinality(e)<=r.maxCardinalityForShape:!0},{name:"dataTypeAndFunctionMatchScaleType",description:"Scale type must match data type",properties:[m.TYPE,m.SCALE,fe("scale","type"),m.TIMEUNIT,m.BIN],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>{if(e.scale){let a=e.type,i=ke(e);if(oi(a))return i===void 0||Ae(i);if(a==="temporal")return e.timeUnit?K([F.TIME,F.UTC,void 0],i)||Ae(i):K([F.TIME,F.UTC,void 0],i);if(a==="quantitative")return e.bin?K([F.LINEAR,void 0],i):K([F.LOG,F.POW,F.SQRT,F.QUANTILE,F.QUANTIZE,F.LINEAR,void 0],i)}return!0}},{name:"stackIsOnlyUsedWithXY",description:"stack should only be allowed for x and y channels",properties:[m.STACK,m.CHANNEL],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>e.stack?e.channel==="x"||e.channel==="y":!0}].map(e=>new Ki(e));Ji.reduce((e,t)=>(e[t.name()]=t,e),{});const Uc=Ji.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re),Xi=[{name:"doesNotSupportConstantValue",description:"row, column, x, y, order, and detail should not work with constant values.",properties:[m.TYPE,m.AGGREGATE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n,r)=>!K(["row","column","x","y","detail","order"],e.channel)}].map(e=>new Ki(e));Xi.reduce((e,t)=>(e[t.name()]=t,e),{});const Fc=Xi.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re);function Dc(e,t,n,r,a,i){let s=Uc.get(e)||[],c=r.getEncodingQueryByIndex(n);for(let o of s)if((o.strict()||i[o.name()])&&!o.satisfy(c,a,r.wildcardIndex.encodings[n],i)){let l="(enc) "+o.name();return i.verbose&&console.log(l+" failed with "+r.toShorthand()+" for "+t.name),l}let h=Fc.get(e)||[];for(let o of h)if((o.strict()||i[o.name()])&&ie(c)&&!o.satisfy(c,a,r.wildcardIndex.encodings[n],i)){let l="(enc) "+o.name();return i.verbose&&console.log(l+" failed with "+r.toShorthand()+" for "+t.name),l}return null}var _c=Or.reduce((e,t)=>(e[t]=!0,e),{}),jc=class extends Vi{constructor(e){super(e)}hasAllRequiredPropertiesSpecific(e){return oe(this.constraint.properties,t=>{if(t===m.MARK)return!A(e.getMark());if(se(t)){let n=t.parent,r=t.child;return oe(e.getEncodings(),a=>a[n]?!A(a[n][r]):!0)}if(!Qr(t))throw Error("UNIMPLEMENTED");return oe(e.getEncodings(),n=>n[t]?!A(n[t]):!0)})}satisfy(e,t,n){return!this.constraint.allowWildcardForProperties&&!this.hasAllRequiredPropertiesSpecific(e)?!0:this.constraint.satisfy(e,t,n)}};const Zi=[{name:"noRepeatedChannel",description:"Each encoding channel should only be used once.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n)=>{let r={};return oe(e.getEncodings(),a=>A(a.channel)?!0:r[a.channel]?!1:(r[a.channel]=!0,!0))}},{name:"alwaysIncludeZeroInScaleWithBarMark",description:"Do not recommend bar mark if scale does not start at zero",properties:[m.MARK,m.SCALE,fe("scale","zero"),m.CHANNEL,m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let r=e.getMark(),a=e.getEncodings();if(r==="bar"){for(let i of a)if(O(i)&&(i.channel==="x"||i.channel==="y")&&i.type==="quantitative"&&i.scale&&i.scale.zero===!1)return!1}return!0}},{name:"autoAddCount",description:"Automatically adding count only for plots with only ordinal, binned quantitative, or temporal with timeunit fields.",properties:[m.BIN,m.TIMEUNIT,m.TYPE,m.AUTOCOUNT],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>de(e.getEncodings(),r=>Tt(r))?oe(e.getEncodings(),r=>{if(ie(r)||P(r))return!0;switch(r.type){case te:return!!r.bin;case ye:return!!r.timeUnit;case Ce:case le.KEY:case we:return!0}throw Error("Unsupported Type")}):oe(e.wildcardIndex.encodingIndicesByProperty.get("autoCount")||[],r=>{let a=e.getEncodingQueryByIndex(r);return P(a)&&!A(a.autoCount)})?de(e.getEncodings(),r=>(O(r)||P(r))&&r.type==="quantitative"?ae(r)?!1:O(r)&&(!r.bin||A(r.bin)):O(r)&&r.type==="temporal"?!r.timeUnit||A(r.timeUnit):!1):!0},{name:"channelPermittedByMarkType",description:"Each encoding channel should be supported by the mark type",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!0,strict:!0,satisfy:(e,t,n)=>{let r=e.getMark();return A(r)?!0:oe(e.getEncodings(),a=>A(a.channel)?!0:!!To(a.channel,r))}},{name:"hasAllRequiredChannelsForMark",description:"All required channels for the specified mark should be specified",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let r=e.getMark();switch(r){case ze:case gt:return e.channelUsed("x")&&e.channelUsed("y");case yt:return e.channelUsed(Qt);case"bar":case on:case sn:case vt:case an:case rn:return e.channelUsed("x")||e.channelUsed("y");case Ye:return!e.wildcardIndex.hasProperty(m.CHANNEL)||e.channelUsed("x")||e.channelUsed("y")}throw Error("hasAllRequiredChannelsForMark not implemented for mark"+JSON.stringify(r))}},{name:"omitAggregate",description:"Omit aggregate plots.",properties:[m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>!e.isAggregate()},{name:"omitAggregatePlotWithDimensionOnlyOnFacet",description:"Omit aggregate plots with dimensions only on facets as that leads to inefficient use of space.",properties:[m.CHANNEL,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{if(e.isAggregate()){let r=!1,a=!1,i=!1;if(e.specQuery.encodings.forEach((s,c)=>{ie(s)||ae(s)||O(s)&&!s.aggregate&&(a=!0,K(["row","column"],s.channel)?e.wildcardIndex.hasEncodingProperty(c,m.CHANNEL)&&(i=!0):r=!0)}),a&&!r&&(i||n.constraintManuallySpecifiedValue))return!1}return!0}},{name:"omitAggregatePlotWithoutDimension",description:"Aggregate plots without dimension should be omitted",properties:[m.AGGREGATE,m.AUTOCOUNT,m.BIN,m.TIMEUNIT,m.TYPE],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>e.isAggregate()?de(e.getEncodings(),r=>!!(be(r)||O(r)&&r.type==="temporal")):!0},{name:"omitBarLineAreaWithOcclusion",description:"Don't use bar, line or area to visualize raw plot as they often lead to occlusion.",properties:[m.MARK,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>K(["bar","line","area"],e.getMark())?e.isAggregate():!0},{name:"omitBarTickWithSize",description:"Do not map field to size channel with bar and tick mark",properties:[m.CHANNEL,m.MARK],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{if(K(["tick","bar"],e.getMark())&&e.channelEncodingField("size")){if(n.constraintManuallySpecifiedValue)return!1;{let r=e.specQuery.encodings;for(let a=0;a<r.length;a++)if(r[a].channel==="size")return!e.wildcardIndex.hasEncodingProperty(a,m.CHANNEL)}}return!0}},{name:"omitBarAreaForLogScale",description:"Do not use bar and area mark for x and y's log scale",properties:[m.MARK,m.CHANNEL,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let r=e.getMark(),a=e.getEncodings();if(r==="area"||r==="bar"){for(let i of a)if(O(i)&&(i.channel==="x"||i.channel==="y")&&i.scale&&ke(i)===F.LOG)return!1}return!0}},{name:"omitMultipleNonPositionalChannels",description:"Unless manually specified, do not use multiple non-positional encoding channel to avoid over-encoding.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let r=e.specQuery.encodings,a=0,i=!1;for(let s=0;s<r.length;s++){let c=r[s];if(ie(c)||ae(c))continue;let h=c.channel;if(!A(h)&&_c[h+""]&&(a+=1,e.wildcardIndex.hasEncodingProperty(s,m.CHANNEL)&&(i=!0),a>1&&(i||n.constraintManuallySpecifiedValue)))return!1}return!0}},{name:"omitNonPositionalOrFacetOverPositionalChannels",description:"Do not use non-positional channels unless all positional channels are used",properties:[m.CHANNEL],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{let r=e.specQuery.encodings,a=!1,i=!1,s=!1,c=!1;for(let h=0;h<r.length;h++){let o=r[h];if(ie(o)||ae(o))continue;let l=o.channel;l==="x"?s=!0:l==="y"?c=!0:A(l)||(a=!0,e.wildcardIndex.hasEncodingProperty(h,m.CHANNEL)&&(i=!0))}return i||n.constraintManuallySpecifiedValue&&a?s&&c:!0}},{name:"omitRaw",description:"Omit raw plots.",properties:[m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>!!e.isAggregate()},{name:"omitRawContinuousFieldForAggregatePlot",description:"Aggregate plot should not use raw continuous field as group by values. (Quantitative should be binned. Temporal should have time unit.)",properties:[m.AGGREGATE,m.AUTOCOUNT,m.TIMEUNIT,m.BIN,m.TYPE],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{if(e.isAggregate()){let r=e.specQuery.encodings;for(let a=0;a<r.length;a++){let i=r[a];if(!(ie(i)||ae(i))&&(O(i)&&i.type==="temporal"&&!i.timeUnit&&(e.wildcardIndex.hasEncodingProperty(a,m.TIMEUNIT)||n.constraintManuallySpecifiedValue)||i.type==="quantitative"&&O(i)&&!i.bin&&!i.aggregate&&(e.wildcardIndex.hasEncodingProperty(a,m.BIN)||e.wildcardIndex.hasEncodingProperty(a,m.AGGREGATE)||e.wildcardIndex.hasEncodingProperty(a,m.AUTOCOUNT)||n.constraintManuallySpecifiedValue)))return!1}}return!0}},{name:"omitRawDetail",description:"Do not use detail channel with raw plot.",properties:[m.CHANNEL,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>e.isAggregate()?!0:oe(e.specQuery.encodings,(r,a)=>ie(r)||ae(r)?!0:!(r.channel==="detail"&&(e.wildcardIndex.hasEncodingProperty(a,m.CHANNEL)||n.constraintManuallySpecifiedValue)))},{name:"omitRepeatedField",description:"Each field should be mapped to only one channel",properties:[m.FIELD],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let r={},a={},i=e.specQuery.encodings;for(let s=0;s<i.length;s++){let c=i[s];if(ie(c)||P(c))continue;let h;if(c.field&&!A(c.field)&&(h=c.field),P(c)&&!A(c.autoCount)&&(h="count_*"),h){if(e.wildcardIndex.hasEncodingProperty(s,m.FIELD)&&(a[h]=!0),r[h]&&(a[h]||n.constraintManuallySpecifiedValue))return!1;r[h]=!0}}return!0}},{name:"omitVerticalDotPlot",description:"Do not output vertical dot plot.",properties:[m.CHANNEL],allowWildcardForProperties:!0,strict:!1,satisfy:(e,t,n)=>{let r=e.getEncodings();return!(r.length===1&&r[0].channel==="y")}},{name:"hasAppropriateGraphicTypeForMark",description:"Has appropriate graphic type for mark",properties:[m.CHANNEL,m.MARK,m.TYPE,m.TIMEUNIT,m.BIN,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{let r=e.getMark();switch(r){case ze:case gt:if(e.isAggregate()){let u=e.getEncodingQueryByChannel("x"),p=e.getEncodingQueryByChannel("y"),f=Ke(u),d=Ke(p);return u&&p&&f!==d&&!(O(u)&&!f&&K(["nominal","key"],u.type))&&!(O(p)&&!d&&K(["nominal","key"],p.type))}return!0;case yt:return!0;case"bar":case vt:if(e.channelEncodingField("size"))return!1;{let u=e.getEncodingQueryByChannel("x"),p=e.getEncodingQueryByChannel("y");return Ke(u)!==Ke(p)}case rn:let a=e.getEncodingQueryByChannel("x"),i=e.getEncodingQueryByChannel("y"),s=be(a),c=be(i),h=e.getEncodingQueryByChannel(ue),o=Ke(h),l=O(h)?h.type===Ce:!1;return(s&&c||s&&!e.channelUsed("y")||c&&!e.channelUsed("x"))&&(!h||h&&(o||l));case on:case Ye:case sn:case an:return!0}throw Error("hasAllRequiredChannelsForMark not implemented for mark"+r)}},{name:"omitInvalidStackSpec",description:"If stack is specified, must follow Vega-Lite stack rules",properties:[m.STACK,m.FIELD,m.CHANNEL,m.MARK,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{if(!e.wildcardIndex.hasProperty(m.STACK))return!0;let r=e.getVlStack();return!(r===null&&e.getStackOffset()!==null||r.fieldChannel!==e.getStackChannel())}},{name:"omitNonSumStack",description:"Stack specifications that use non-summative aggregates should be omitted (even implicit ones)",properties:[m.CHANNEL,m.MARK,m.AGGREGATE,m.AUTOCOUNT,m.SCALE,fe("scale","type"),m.TYPE],allowWildcardForProperties:!1,strict:!0,satisfy:(e,t,n)=>{let r=e.getVlStack();return!(r!=null&&!K(ni,e.getEncodingQueryByChannel(r.fieldChannel).aggregate))}},{name:"omitTableWithOcclusionIfAutoAddCount",description:"Plots without aggregation or autocount where x and y are both discrete should be omitted if autoAddCount is enabled as they often lead to occlusion",properties:[m.CHANNEL,m.TYPE,m.TIMEUNIT,m.BIN,m.AGGREGATE,m.AUTOCOUNT],allowWildcardForProperties:!1,strict:!1,satisfy:(e,t,n)=>{if(n.autoAddCount){let r=e.getEncodingQueryByChannel("x"),a=e.getEncodingQueryByChannel("y");if((!O(r)||be(r))&&(!O(a)||be(a)))return e.isAggregate()?oe(e.getEncodings(),i=>{let s=i.channel;return!(s!=="x"&&s!=="y"&&s!=="row"&&s!=="column"&&O(i)&&!i.aggregate)}):!1}return!0}}].map(e=>new jc(e));Zi.reduce((e,t)=>(e[t.name()]=t,e),{});var Pc=Zi.reduce((e,t)=>{for(let n of t.properties())e.set(n,e.get(n)||[]),e.get(n).push(t);return e},new re);function ea(e,t,n,r,a){let i=Pc.get(e)||[];for(let s of i)if((s.strict()||a[s.name()])&&!s.satisfy(n,r,a)){let c="(spec) "+s.name();return a.verbose&&console.log(c+" failed with "+n.toShorthand()+" for "+t.name),c}return null}var Mt=new re;function Rc(e){return Mt.get(e)}Mt.set("mark",(e,t,n)=>(r,a)=>(a.getMark().enum.forEach(i=>{a.setMark(i),ea("mark",e.mark,a,t,n)||r.push(a.duplicate())}),a.resetMark(),r)),en.forEach(e=>{Mt.set(e,ta(e))}),ht.forEach(e=>{Mt.set(e,ta(e))});function ta(e){return(t,n,r)=>(a,i)=>{let s=t.encodingIndicesByProperty.get(e);function c(h){if(h===s.length){a.push(i.duplicate());return}let o=s[h],l=t.encodings[o].get(e),u=i.getEncodingQueryByIndex(o),p=i.getEncodingProperty(o,e);ie(u)||ae(u)||!p?c(h+1):(l.enum.forEach(f=>{f===null&&(f=void 0),i.setEncodingProperty(o,e,f,l),!Dc(e,l,o,i,n,r)&&(ea(e,l,i,n,r)||c(h+1))}),i.resetEncodingProperty(o,e,l))}return c(0),a}}var $c=H(ne());function Bc(e){return(0,$c.isObject)(e)&&!!e.property}function Je(e,t,n){return t||(t=new re),n||(n=new re),e.forEach(r=>{Bc(r)?(t.setByKey(r.property,!0),n.setByKey(r.property,r.replace)):t.setByKey(r,!0)}),{include:t,replaceIndex:n,replacer:Jl(n)}}const na=[m.FIELD,m.TYPE,m.AGGREGATE,m.BIN,m.TIMEUNIT,m.STACK],Lc=na.concat([{property:m.CHANNEL,replace:{x:"xy",y:"xy",color:"style",size:"style",shape:"style",opacity:"style",row:"facet",column:"facet"}}]);var ra=H(ne()),Qn={};function It(e,t){Qn[e]=t}function Wc(e,t){if(t){let n={name:"",path:"",items:[]},r={},a=[],i=[],s=[];for(let c=0;c<t.length;c++){a.push(c>0?a[c-1].duplicate():new re),i.push(c>0?i[c-1].duplicate():new re);let h=t[c].groupBy;if((0,ra.isArray)(h)){let o=Je(h,a[c],i[c]);s.push(o.replacer)}}return e.forEach(c=>{let h="",o=n;for(let l=0;l<t.length;l++){let u=o.groupBy=t[l].groupBy;o.orderGroupBy=t[l].orderGroupBy;let p=(0,ra.isArray)(u)?Pe(c.specQuery,a[l],s[l]):Qn[u](c.specQuery);h+="/"+p,r[h]||(r[h]={name:p,path:h,items:[]},o.items.push(r[h])),o=r[h]}o.items.push(c)}),n}else return{name:"",path:"",items:e}}var ia=Je([m.FIELD]);function qc(e,t){return Qn[t](e)}It("field",e=>Pe(e,ia.include,ia.replacer));const aa=Je(na);It("fieldTransform",e=>Pe(e,aa.include,aa.replacer));const oa=Je(Lc);It("encoding",e=>Pe(e,oa.include,oa.replacer)),It("spec",e=>JSON.stringify(e));var Hc=class{constructor(){this._mark=void 0,this._encodings={},this._encodingIndicesByProperty=new re}setEncodingProperty(e,t,n){let r=this._encodings;(r[e]=r[e]||new re).set(t,n);let a=this._encodingIndicesByProperty;return a.set(t,a.get(t)||[]),a.get(t).push(e),this}hasEncodingProperty(e,t){return!!this._encodings[e]&&this._encodings[e].has(t)}hasProperty(e){if(Qr(e))return this.encodingIndicesByProperty.has(e);if(e==="mark")return!!this.mark;throw Error("Unimplemented for property "+e)}isEmpty(){return!this.mark&&this.encodingIndicesByProperty.size()===0}setMark(e){return this._mark=e,this}get mark(){return this._mark}get encodings(){return this._encodings}get encodingIndicesByProperty(){return this._encodingIndicesByProperty}},Gc=H(ne()),zc=class ar{constructor(t,n,r,a,i){this._rankingScore={},this._spec=t,this._channelFieldCount=t.encodings.reduce((s,c)=>(!A(c.channel)&&(!P(c)||c.autoCount!==!1)&&(s[c.channel+""]=1),s),{}),this._wildcardIndex=n,this._assignedWildcardIndex=i,this._opt=a,this._schema=r}static build(t,n,r){let a=new Hc;if(A(t.mark)){let i=Qe(m.MARK);t.mark=un(t.mark,i,r.enum.mark),a.setMark(t.mark)}if(t.encodings.forEach((i,s)=>{P(i)&&(console.warn("A field with autoCount should not be included as autoCount meant to be an internal object."),i.type=te),O(i)&&i.type===void 0&&(i.type="?"),en.forEach(c=>{if(A(i[c])){let h=Qe(c)+s,o=fn(c,n,r),l=i[c]=un(i[c],h,o);a.setEncodingProperty(s,c,l)}}),ht.forEach(c=>{let h=i[c.parent];if(h){let o=c.child;if(A(h[o])){let l=Qe(c)+s,u=fn(c,n,r),p=h[o]=un(h[o],l,u);a.setEncodingProperty(s,c,p)}}})}),r.autoAddCount){let i={name:Qe(m.CHANNEL)+t.encodings.length,enum:fn(m.CHANNEL,n,r)},s={name:Qe(m.AUTOCOUNT)+t.encodings.length,enum:[!1,!0]},c={channel:i,autoCount:s,type:te};t.encodings.push(c);let h=t.encodings.length-1;a.setEncodingProperty(h,m.CHANNEL,i),a.setEncodingProperty(h,m.AUTOCOUNT,s)}return new ar(t,a,n,r,{})}get wildcardIndex(){return this._wildcardIndex}get schema(){return this._schema}get specQuery(){return this._spec}duplicate(){return new ar((0,U.duplicate)(this._spec),this._wildcardIndex,this._schema,this._opt,(0,U.duplicate)(this._assignedWildcardIndex))}setMark(t){let n=this._wildcardIndex.mark.name;this._assignedWildcardIndex[n]=this._spec.mark=t}resetMark(){let t=this._spec.mark=this._wildcardIndex.mark;delete this._assignedWildcardIndex[t.name]}getMark(){return this._spec.mark}getEncodingProperty(t,n){let r=this._spec.encodings[t];return se(n)?r[n.parent][n.child]:r[n]}setEncodingProperty(t,n,r,a){let i=this._spec.encodings[t];n===m.CHANNEL&&i.channel&&!A(i.channel)&&this._channelFieldCount[i.channel]--,se(n)?i[n.parent][n.child]=r:tn(n)&&r===!0?i[n]=(0,U.extend)({},i[n],{enum:void 0,name:void 0}):i[n]=r,this._assignedWildcardIndex[a.name]=r,n===m.CHANNEL&&(this._channelFieldCount[r]=(this._channelFieldCount[r]||0)+1)}resetEncodingProperty(t,n,r){let a=this._spec.encodings[t];n===m.CHANNEL&&this._channelFieldCount[a.channel]--,se(n)?a[n.parent][n.child]=r:a[n]=r,delete this._assignedWildcardIndex[r.name]}channelUsed(t){return this._channelFieldCount[t]>0}channelEncodingField(t){return O(this.getEncodingQueryByChannel(t))}getEncodings(){return this._spec.encodings.filter(t=>!ae(t))}getEncodingQueryByChannel(t){for(let n of this._spec.encodings)if(n.channel===t)return n}getEncodingQueryByIndex(t){return this._spec.encodings[t]}isAggregate(){return Yl(this._spec)}getVlStack(){return li(this._spec)}getStackOffset(){return Ql(this._spec)}getStackChannel(){return Vl(this._spec)}toShorthand(t){if(t){if((0,Gc.isString)(t))return qc(this.specQuery,t);let n=Je(t);return Pe(this._spec,n.include,n.replacer)}return Pe(this._spec)}toSpec(t){if(A(this._spec.mark))return null;let n={};return t||(t=this._spec.data),t&&(n.data=t),this._spec.transform&&(n.transform=this._spec.transform),n.mark=this._spec.mark,n.encoding=hi(this.specQuery.encodings,{schema:this._schema,wildcardMode:"null"}),this._spec.width&&(n.width=this._spec.width),this._spec.height&&(n.height=this._spec.height),this._spec.background&&(n.background=this._spec.background),this._spec.padding&&(n.padding=this._spec.padding),this._spec.title&&(n.title=this._spec.title),n.encoding===null?null:((this._spec.config||this._opt.defaultSpecConfig)&&(n.config=(0,U.extend)({},this._opt.defaultSpecConfig,this._spec.config)),n)}getRankingScore(t){return this._rankingScore[t]}setRankingScore(t,n){this._rankingScore[t]=n}};function Yc(e){if(e.groupBy){let t={groupBy:e.groupBy};e.orderBy&&(t.orderGroupBy=e.orderBy);let n={spec:(0,U.duplicate)(e.spec),nest:[t]};return e.chooseBy&&(n.chooseBy=e.chooseBy),e.config&&(n.config=e.config),n}return(0,U.duplicate)(e)}function sa(e){return e.items!==void 0}function Vn(e){let t=e.items[0];for(;t&&sa(t);)t=t.items[0];return t}var Re=class{constructor(e){this.type=e,this.scoreIndex=this.initScore()}getFeatureScore(e){let t=this.type,n=this.scoreIndex[e];if(n!==void 0)return{type:t,feature:e,score:n}}},J;(function(e){e[e.Q=te]="Q",e[e.BIN_Q="bin_"+te]="BIN_Q",e[e.T=ye]="T",e[e.TIMEUNIT_T="timeUnit_time"]="TIMEUNIT_T",e[e.TIMEUNIT_O="timeUnit_"+Ce]="TIMEUNIT_O",e[e.O=Ce]="O",e[e.N=we]="N",e[e.K=le.KEY]="K",e[e.NONE="-"]="NONE"})(J||(J={}));const la=J.Q,Ut=J.BIN_Q,Kn=J.T,$e=J.TIMEUNIT_T,Ft=J.TIMEUNIT_O,Dt=J.O,_t=J.N,Jn=J.K,jt=J.NONE;function Pt(e){return e.bin?J.BIN_Q:e.timeUnit?Ae(ke(e))?J.TIMEUNIT_O:J.TIMEUNIT_T:e.type}var Qc=class extends Re{constructor(){super("Axis")}initScore(e={}){e=Object.assign({},Ve,e);let t={};return[{feature:Ut,opt:"preferredBinAxis"},{feature:Kn,opt:"preferredTemporalAxis"},{feature:$e,opt:"preferredTemporalAxis"},{feature:Ft,opt:"preferredTemporalAxis"},{feature:Dt,opt:"preferredOrdinalAxis"},{feature:_t,opt:"preferredNominalAxis"}].forEach(n=>{e[n.opt]==="x"?t[n.feature+"_y"]=-.01:e[n.opt]==="y"&&(t[n.feature+"_x"]=-.01)}),t}featurize(e,t){return e+"_"+t}getScore(e,t,n){return e.getEncodings().reduce((r,a)=>{if(O(a)||P(a)){let i=Pt(a),s=this.featurize(i,a.channel),c=this.getFeatureScore(s);c&&r.push(c)}return r},[])}},Vc=class extends Re{constructor(){super("Dimension")}initScore(){return{row:-2,column:-2,color:0,opacity:0,size:0,shape:0}}getScore(e,t,n){return e.isAggregate()&&e.getEncodings().reduce((r,a)=>{if(P(a)||O(a)&&!a.aggregate){let i=this.getFeatureScore(a.channel+"");if(i&&i.score>r.score)return i}return r},{type:"Dimension",feature:"No Dimension",score:-5}),[]}},Kc=class extends Re{constructor(){super("Facet")}initScore(e){e=Object.assign({},Ve,e);let t={};return e.preferredFacet==="row"?t[Ne]=-.01:e.preferredFacet==="column"&&(t.row=-.01),t}getScore(e,t,n){return e.getEncodings().reduce((r,a)=>{if(O(a)||P(a)){let i=this.getFeatureScore(a.channel);i&&r.push(i)}return r},[])}},Jc=class extends Re{constructor(){super("SizeChannel")}initScore(){return{bar_size:-2,tick_size:-2}}getScore(e,t,n){let r=e.getMark();return e.getEncodings().reduce((a,i)=>{if(O(i)||P(i)){let s=r+"_"+i.channel,c=this.getFeatureScore(s);c&&a.push(c)}return a},[])}},Xc=class extends Re{constructor(){super("TypeChannel")}initScore(){let e={},t={x:0,y:0,size:-.575,color:-.725,text:-2,opacity:-3,shape:-10,row:-10,column:-10,detail:-20};[la,Kn,$e].forEach(a=>{(0,U.keys)(t).forEach(i=>{e[this.featurize(a,i)]=t[i]})});let n=(0,U.extend)({},t,{row:-.75,column:-.75,shape:-3.1,text:-3.2,detail:-4});[Ut,Ft,Dt].forEach(a=>{(0,U.keys)(n).forEach(i=>{e[this.featurize(a,i)]=n[i]})});let r={x:0,y:0,color:-.6,shape:-.65,row:-.7,column:-.7,text:-.8,detail:-2,size:-3,opacity:-3.1};return(0,U.keys)(r).forEach(a=>{e[this.featurize(_t,a)]=r[a],e[this.featurize(Jn,a)]=K(["x","y","detail"],a)?-1:r[a]-2}),e}featurize(e,t){return e+"_"+t}getScore(e,t,n){let r=e.getEncodings().reduce((i,s)=>{if(O(s)||P(s)){let c=fi(s);(i[c]=i[c]||[]).push(s)}return i},{}),a=[];return z(r,i=>{let s=i.reduce((c,h)=>{if(O(h)||P(h)){let o=Pt(h),l=this.featurize(o,h.channel),u=this.getFeatureScore(l);if(c===null||u.score>c.score)return u}return c},null);a.push(s)}),a}},Zc=class extends Re{constructor(){super("Mark")}initScore(){return eu()}getScore(e,t,n){let r=e.getMark();(r==="circle"||r==="square")&&(r=Ye);let a=e.getEncodingQueryByChannel("x"),i=a?Pt(a):jt,s=e.getEncodingQueryByChannel("y"),c=s?Pt(s):jt,h=!e.isAggregate(),o=i+"_"+c+"_"+h+"_"+r,l=this.getFeatureScore(o);return l?[l]:(console.error("feature score missing for",o),[])}};function $(e,t,n,r){return e+"_"+t+"_"+n+"_"+r}function eu(){let e=[la,Kn],t=[Ut,Ft,Dt,_t,Jn,jt],n={};e.forEach(r=>{e.forEach(a=>{z({point:0,text:-.2,tick:-.5,rect:-1,bar:-2,line:-2,area:-2,rule:-2.5},(i,s)=>{let c=$(r,a,!0,s);n[c]=i}),z({point:0,text:-.2,tick:-.5,bar:-2,line:-2,area:-2,rule:-2.5},(i,s)=>{let c=$(r,a,!1,s);n[c]=i})})}),e.forEach(r=>{t.forEach(a=>{z({tick:0,point:-.2,text:-.5,bar:-2,line:-2,area:-2,rule:-2.5},(i,s)=>{let c=$(r,a,!0,s);n[c]=i;let h=$(a,r,!0,s);n[h]=i})}),[$e].forEach(a=>{z({point:0,text:-.5,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5},(i,s)=>{let c=$(r,a,!0,s);n[c]=i;let h=$(a,r,!0,s);n[h]=i})}),[jt,_t,Dt,Jn].forEach(a=>{z({bar:0,point:-.2,tick:-.25,text:-.3,line:-2,area:-2,rule:-2.5},(i,s)=>{let c=$(r,a,!1,s);n[c]=i;let h=$(a,r,!1,s);n[h]=i})}),[Ut].forEach(a=>{z({bar:0,point:-.2,tick:-.25,text:-.3,line:-.5,area:-.5,rule:-2.5},(i,s)=>{let c=$(r,a,!1,s);n[c]=i;let h=$(a,r,!1,s);n[h]=i})}),[$e,Ft].forEach(a=>{z({line:0,area:-.1,bar:-.2,point:-.3,tick:-.35,text:-.4,rule:-2.5},(i,s)=>{let c=$(r,a,!1,s);n[c]=i;let h=$(a,r,!1,s);n[h]=i})})}),[$e].forEach(r=>{[$e].forEach(a=>{let i={point:0,rect:-.1,text:-.5,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(i,(s,c)=>{let h=$(r,a,!0,c);n[h]=s}),z(i,(s,c)=>{let h=$(r,a,!1,c);n[h]=s})}),t.forEach(a=>{let i={tick:0,point:-.2,text:-.5,rect:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(i,(s,c)=>{let h=$(r,a,!0,c);n[h]=s}),z(i,(s,c)=>{let h=$(a,r,!0,c);n[h]=s}),z(i,(s,c)=>{let h=$(r,a,!1,c);n[h]=s}),z(i,(s,c)=>{let h=$(a,r,!1,c);n[h]=s})})});for(let r of t)for(let a of t){let i={point:0,rect:0,text:-.1,tick:-1,bar:-2,line:-2,area:-2,rule:-2.5};z(i,(s,c)=>{let h=$(r,a,!0,c);n[h]=s}),z(i,(s,c)=>{let h=$(r,a,!1,c);n[h]=s})}return n}var tu=[new Qc,new Vc,new Kc,new Zc,new Jc,new Xc];function nu(e,t,n){let r=tu.reduce((a,i)=>{let s=i.getScore(e,t,n);return a.concat(s)},[]);return{score:r.reduce((a,i)=>a+i.score,0),features:r}}const xe="aggregationQuality";function ru(e,t,n){let r=iu(e,t,n);return{score:r.score,features:[r]}}function iu(e,t,n){let r=e.getEncodings();if(e.isAggregate()){if(de(r,a=>O(a)&&(a.type==="quantitative"&&!a.bin&&!a.aggregate||a.type==="temporal"&&!a.timeUnit)))return{type:xe,score:.1,feature:"Aggregate with raw continuous"};if(de(r,a=>O(a)&&be(a))){let a=de(r,s=>O(s)&&s.aggregate==="count"||Tt(s)),i=de(r,s=>O(s)&&!!s.bin);return a?{type:xe,score:.8,feature:"Aggregate with count"}:i?{type:xe,score:.7,feature:"Aggregate with bin but without count"}:{type:xe,score:.9,feature:"Aggregate without count and without bin"}}return{type:xe,score:.3,feature:"Aggregate without dimension"}}else return de(r,a=>O(a)&&!be(a))?{type:xe,score:1,feature:"Raw with measure"}:{type:xe,score:.2,feature:"Raw without measure"}}function au(e,t,n){let r=e.wildcardIndex.encodingIndicesByProperty.get("field");if(!r)return{score:0,features:[]};let a=e.specQuery.encodings,i=t.fieldSchemas.length,s=[],c=0,h=1;for(let o=r.length-1;o>=0;o--){let l=r[o],u=a[l],p;if(O(u))p=u.field;else continue;let f=e.wildcardIndex.encodings[l].get("field"),d=t.fieldSchema(p).index,g=-d*h;c+=g,s.push({score:g,type:"fieldOrder",feature:`field ${f.name} is ${p} (#${d} in the schema)`}),h*=i}return{score:c,features:s}}var ca={};function Xn(e,t){ca[e]=t}function ou(e){return ca[e]}function ua(e,t,n,r){return!t.nest||r===t.nest.length?(t.orderBy||t.chooseBy)&&(e.items.sort(su(t.orderBy||t.chooseBy,n,t.config)),t.chooseBy&&e.items.length>0&&e.items.splice(1)):(e.items.forEach(a=>{ua(a,t,n,r+1)}),t.nest[r].orderGroupBy&&e.items.sort(lu(t.nest[r].orderGroupBy,n,t.config))),e}function su(e,t,n){return(r,a)=>e instanceof Array?Rt(e,r,a,t,n):Rt([e],r,a,t,n)}function lu(e,t,n){return(r,a)=>{let i=Vn(r),s=Vn(a);return e instanceof Array?Rt(e,i,s,t,n):Rt([e],i,s,t,n)}}function Rt(e,t,n,r,a){for(let i of e){let s=da(n,i,r,a).score-da(t,i,r,a).score;if(s!==0)return s}return 0}function da(e,t,n,r){if(e.getRankingScore(t)!==void 0)return e.getRankingScore(t);let a=ou(t)(e,n,r);return e.setRankingScore(t,a),a}Xn("effectiveness",nu),Xn(xe,ru),Xn("fieldOrder",au);function cu(e,t,n){let r={};return e=e.map(function(a){return n.smallRangeStepForHighCardinalityOrFacet&&(a=uu(a,t,r,n)),n.nominalColorScaleForHighCardinality&&(a=du(a,t,r,n)),n.xAxisOnTopForHighYCardinalityWithoutColumn&&(a=fu(a,t,r,n)),a}),e}function uu(e,t,n,r){["row","y",Ne,"x"].forEach(s=>{n[s]=e.getEncodingQueryByChannel(s)});let a=n.y;if(a!==void 0&&O(a)&&(n.row||t.cardinality(a)>r.smallRangeStepForHighCardinalityOrFacet.maxCardinality)){a.scale===void 0&&(a.scale={});let s=ke(a);a.scale&&(s===void 0||Ae(s))&&(a.scale.rangeStep||(a.scale.rangeStep=12))}let i=n.x;if(O(i)&&(n.column||t.cardinality(i)>r.smallRangeStepForHighCardinalityOrFacet.maxCardinality)){i.scale===void 0&&(i.scale={});let s=ke(i);i.scale&&(s===void 0||Ae(s))&&(i.scale.rangeStep||(i.scale.rangeStep=12))}return e}function du(e,t,n,r){n[ue]=e.getEncodingQueryByChannel(ue);let a=n[ue];return O(a)&&a!==void 0&&(a.type==="nominal"||a.type===le.KEY)&&t.cardinality(a)>r.nominalColorScaleForHighCardinality.maxCardinality&&(a.scale===void 0&&(a.scale={}),a.scale&&(a.scale.range||(a.scale.scheme=r.nominalColorScaleForHighCardinality.palette))),e}function fu(e,t,n,r){if([Ne,"x","y"].forEach(a=>{n[a]=e.getEncodingQueryByChannel(a)}),n.column===void 0){let a=n.x,i=n.y;O(a)&&O(i)&&i!==void 0&&i.field&&Ae(ke(i))&&a!==void 0&&t.cardinality(i)>r.xAxisOnTopForHighYCardinalityWithoutColumn.maxCardinality&&(a.axis===void 0&&(a.axis={}),a.axis&&!a.axis.orient&&(a.axis.orient="top"))}return e}function pu(e,t,n=Ve){let r=zc.build(e,t,n),a=r.wildcardIndex,i=[r];return n.propertyPrecedence.forEach(s=>{let c=ol(s);if(a.hasProperty(c)){let h=Rc(c)(a,t,n);i=i.reduce(h,[])}}),n.stylize&&(n.nominalColorScaleForHighCardinality!==null||n.smallRangeStepForHighCardinalityOrFacet!==null||n.xAxisOnTopForHighYCardinalityWithoutColumn!==null)?cu(i,t,n):i}function fa(e,t,n){e=Object.assign({},Yc(e),{config:Object.assign({},Ve,n,e.config)});let r=ua(Wc(pu(e.spec,t,e.config),e.nest),e,t,0);return{query:e,result:r}}var Zn=H(ka(),1),E=H(Pa(),1);const Be={[R.BOOLEAN]:(0,E.jsx)(Ha,{className:"h-5 w-5 inline-flex opacity-60"}),[R.DATETIME]:(0,E.jsx)(qa,{className:"h-5 w-5 inline-flex opacity-60"}),[R.NUMBER]:(0,E.jsx)(Ga,{className:"h-5 w-5 inline-flex opacity-60"}),[R.STRING]:(0,E.jsx)(za,{className:"h-5 w-5 inline-flex opacity-60"}),[R.INTEGER]:(0,E.jsx)(io,{className:"h-5 w-5 inline-flex opacity-60"})};var pa=12;const hu=e=>{let t=(0,hr.c)(45),{schema:n}=e,[r,a]=(0,Zn.useState)(),[i,s]=(0,Zn.useState)(),c,h,o,l,u,p,f,d;if(t[0]!==n||t[1]!==r||t[2]!==i){c=n.fieldNames();let k;t[11]!==n||t[12]!==r?(k=r?n.stats({field:r,channel:"x"}):void 0,t[11]=n,t[12]=r,t[13]=k):k=t[13],o=k;let I;t[14]===Symbol.for("react.memo_cache_sentinel")?(I=(0,E.jsx)(ro,{className:"text-muted-foreground",width:40,height:40,strokeWidth:1.5}),t[14]=I):I=t[14];let _=I,Ee=i?c:c.slice(0,pa);h=c.length>pa,p="flex flex-col justify-center items-center h-full flex-1 gap-2",f=_,d=(0,E.jsxs)("span",{className:"text-muted-foreground font-semibold",children:[c.length>0?c.length:"No"," fields"]}),l="hidden lg:grid grid-cols-2 xl:grid-cols-3 gap-2 p-2 bg-(--slate-1) border rounded lg:items-center items-start w-fit grid-flow-dense max-h-[300px] overflow-auto";let X;t[15]!==n||t[16]!==r?(X=W=>{let pe=n.cardinality({channel:"x",field:W});return(0,E.jsxs)("span",{className:Ra("hover:bg-muted self-start px-2 py-2 rounded flex flex-row gap-1 items-center cursor-pointer lg:justify-center text-sm truncate shrink-0 overflow-hidden",r===W&&"bg-muted"),onClick:()=>{if(r===W){a(void 0);return}a(W)},children:[Be[n.primitiveType(W)],W,pe>1&&(0,E.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",pe,")"]})]},W)},t[15]=n,t[16]=r,t[17]=X):X=t[17],u=Ee.map(X),t[0]=n,t[1]=r,t[2]=i,t[3]=c,t[4]=h,t[5]=o,t[6]=l,t[7]=u,t[8]=p,t[9]=f,t[10]=d}else c=t[3],h=t[4],o=t[5],l=t[6],u=t[7],p=t[8],f=t[9],d=t[10];let g;t[18]!==h||t[19]!==i?(g=h&&(0,E.jsx)(lr,{"data-testid":"marimo-plugin-data-explorer-show-more-columns",variant:"link",size:"sm",className:"self-center col-span-3 -mt-1",onClick:()=>s(yu),children:i?"Show less":"Show more"}),t[18]=h,t[19]=i,t[20]=g):g=t[20];let y;t[21]!==l||t[22]!==u||t[23]!==g?(y=(0,E.jsxs)("div",{className:l,children:[u,g]}),t[21]=l,t[22]=u,t[23]=g,t[24]=y):y=t[24];let v=r||"",b=c.length===0,x;t[25]===Symbol.for("react.memo_cache_sentinel")?(x=k=>{a(k)},t[25]=x):x=t[25];let S;t[26]===Symbol.for("react.memo_cache_sentinel")?(S=(0,E.jsx)(et,{className:"min-w-[210px] h-full",children:(0,E.jsx)(dr,{placeholder:"Select a column"})}),t[26]=S):S=t[26];let C;t[27]===n?C=t[28]:(C=n.fieldNames().map(k=>(0,E.jsx)(Se,{value:k.toString(),children:(0,E.jsxs)("span",{className:"flex items-center gap-2 flex-1",children:[Be[n.primitiveType(k)],(0,E.jsx)("span",{className:"flex-1",children:k}),(0,E.jsxs)("span",{className:"text-muted-foreground text-xs font-semibold",children:["(",n.vlType(k),")"]})]})},k)),t[27]=n,t[28]=C);let T;t[29]===C?T=t[30]:(T=(0,E.jsx)(Ze,{children:(0,E.jsx)(We,{children:C})}),t[29]=C,t[30]=T);let w;t[31]!==T||t[32]!==v||t[33]!==b?(w=(0,E.jsx)("div",{className:"lg:hidden",children:(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-column-select",value:v,disabled:b,onValueChange:x,children:[S,T]})}),t[31]=T,t[32]=v,t[33]=b,t[34]=w):w=t[34];let N;t[35]!==r||t[36]!==o?(N=r&&(0,E.jsx)("div",{className:"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-2 p-2 text-sm",children:mu.map(k=>(0,E.jsxs)("div",{className:"flex flex-row gap-2 min-w-[100px]",children:[(0,E.jsx)("span",{className:"font-semibold",children:k}),(0,E.jsx)("span",{children:(0,E.jsx)(gu,{value:o==null?void 0:o[k]})})]},k))}),t[35]=r,t[36]=o,t[37]=N):N=t[37];let D;return t[38]!==w||t[39]!==N||t[40]!==p||t[41]!==f||t[42]!==d||t[43]!==y?(D=(0,E.jsxs)("div",{className:p,children:[f,d,y,w,N]}),t[38]=w,t[39]=N,t[40]=p,t[41]=f,t[42]=d,t[43]=y,t[44]=D):D=t[44],D};var mu=["distinct","min","max","mean","median","q1","q3","stdev"],gu=e=>{let t=(0,hr.c)(8),{value:n}=e,r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={maximumFractionDigits:2},t[0]=r):r=t[0];let a=Xa(r),i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i={year:"numeric",month:"short",day:"numeric"},t[1]=i):i=t[1];let s=Ja(i);if(typeof n=="number"){let c;return t[2]!==a||t[3]!==n?(c=a.format(n),t[2]=a,t[3]=n,t[4]=c):c=t[4],c}if(typeof n=="string")return n;if(typeof n=="object"&&n instanceof Date){let c;return t[5]!==s||t[6]!==n?(c=s.format(n),t[5]=s,t[6]=n,t[7]=c):c=t[7],c}return String(n)};function yu(e){return!e}var vu=["argmax","argmin","average","count","distinct","exponential","exponentialb","product","max","mean","median","min","missing","q1","q3","ci0","ci1","stderr","stdev","stdevp","sum","valid","values","variance","variancep"];const bu=e=>Ia(e)?vu.includes(e):!1;function xu(e){return e?e==="bin"?{bin:!0}:bu(e)?{aggregate:e}:Eu(e)?{timeUnit:e}:{}:{}}function Eu(e){return e?ha.includes(e)||ma.includes(e):!1}const Tu=["bin","min","max","mean","median","sum"],ha=["year","month","date","day","hours","minutes","seconds","milliseconds"],ma=["yearmonth","yearmonthdate","monthdate"];function Su(e){let{aggregate:t,bin:n,timeUnit:r}=e;if(n)return"bin";if(t)return t.toString();if(r)return r.toString()}const Nu=["?","area","bar","circle","geoshape","line","point","rect","rule","square","text","tick","trail"],Cu={type:"histograms",limit:12,createQuery(e){return{spec:{data:e.spec.data,mark:"?",transform:e.spec.transform,encodings:[{channel:"?",bin:"?",timeUnit:"?",field:"?",type:"?"},{channel:"?",aggregate:"count",field:"*",type:"quantitative"}]},groupBy:"fieldTransform",orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:{autoAddCount:!1}}}};function ga(e){let t={};for(let n in e)e[n]!==void 0&&(t[n]=e[n]);return t}function wu(e,t){let{fn:n,...r}=e;return{channel:t,...xu(n),...r}}function Au(e){let{aggregate:t,bin:n,timeUnit:r,field:a,scale:i,legend:s,axis:c,sort:h,description:o}=e,{type:l}=e;if(A(l))throw Error("Wildcard not support");l==="ordinal"&&(_a.warn("Ordinal type is not supported. Using nominal type instead."),l="nominal");let u=Su({aggregate:t,bin:n,timeUnit:r});return ja(a!==void 0,"Field is required for fieldQ"),ga({field:a,fn:u,type:l,sort:h,scale:i,axis:c,legend:s,description:o})}function Ou(e){return{mark:e.mark,encodings:ku(e.encoding),config:e.config}}function ku(e){return e?Object.entries(e).map(([t,n])=>wu(n,t)):[]}function er(e){let{type:t,limit:n,additionalFieldQuery:r}=e;return{type:t,limit:n,createQuery(a){return{spec:{...a.spec,encodings:[...a.spec.encodings,r]},groupBy:"field",orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:{autoAddCount:!0}}}}}const Mu=er({type:"addCategoricalField",limit:4,additionalFieldQuery:{channel:"?",field:"?",type:"nominal"}}),Iu=er({type:"addQuantitativeField",limit:4,additionalFieldQuery:{channel:"?",bin:"?",aggregate:"?",field:"?",type:"quantitative"}}),Uu=er({type:"addTemporalField",limit:2,additionalFieldQuery:{channel:"?",hasFn:!0,timeUnit:"?",field:"?",type:"temporal"}}),Fu=["color","fill","stroke","opacity","fillOpacity","strokeOpacity","strokeWidth","size","shape","strokeDash","angle","time"];function Du(e){return!va(e).hasAnyWildcard}function _u(e){let t=["x","y","color"],n=["row","column"],r=new Set(e.encodings.map(s=>s.channel)),a=t.every(s=>r.has(s)),i=n.some(s=>r.has(s));return a&&i}function ya(e){return e.encodings.length===0}function va(e){let t=!1,n=!1,r=!1;for(let a of e.encodings)ie(a)||(P(a)?A(a.autoCount)&&(n=!0):(A(a.field)&&(t=!0),(A(a.aggregate)||A(a.bin)||A(a.timeUnit))&&(n=!0),A(a.channel)&&(r=!0)));return{hasAnyWildcard:r||t||n,hasWildcardField:t,hasWildcardFn:n,hasWildcardChannel:r}}var ba={name:"source"};function ju(e){let t=!1,n=!1,r=!1;return e.encodings.forEach(a=>{a.channel==="x"||a.channel==="y"?t=!0:a.channel==="row"||a.channel==="column"?r=!0:typeof a.channel=="string"&&eo(Fu,a.channel)&&(n=!0)}),{hasOpenPosition:t,hasStyleChannel:n,hasOpenFacet:r}}function Pu(e,t){let n={},{hasOpenPosition:r,hasStyleChannel:a,hasOpenFacet:i}=ju(e.spec);return(r||a)&&(n.addQuantitativeField=$t(Iu,e,t)),(r||a||i)&&(n.addCategoricalField=$t(Mu,e,t)),r&&(n.addTemporalField=$t(Uu,e,t)),n}function tr(e,t){if(ya(e.spec))return{plots:[],query:e,limit:1};let n=fa(e,t).result;return{plots:[xa(n,ba)[0]],query:e,limit:1}}function $t(e,t,n){let r=e.createQuery(t),a=fa(r,n).result;return{plots:xa(a,ba),query:r,limit:e.limit}}function xa(e,t){return e.items.map(n=>sa(n)?Ea(t,Vn(n)):Ea(t,n))}function Ea(e,t){return{fieldInfos:t.getEncodings().filter(O).map(n=>({fieldDef:Au(n),channel:n.channel})),spec:t.toSpec(e)}}function Ru(e){let{spec:t,autoAddCount:n}=e,r=Ou(t),{hasAnyWildcard:a,hasWildcardFn:i,hasWildcardField:s}=va(r);return{spec:r,groupBy:$u({hasWildcardFn:i,hasWildcardField:s}),orderBy:["fieldOrder","aggregationQuality","effectiveness"],chooseBy:["aggregationQuality","effectiveness"],config:a?{autoAddCount:n}:void 0}}function $u(e){let{hasWildcardFn:t,hasWildcardField:n}=e;return t?"fieldTransform":n?"field":"encoding"}function Bu(){return{mark:"?",encoding:{},config:{},schema:null}}var{valueAtom:Le,useActions:Lu}=$a(Bu,{setSchema:(e,t)=>({...e,schema:t}),setMark:(e,t)=>({...e,mark:t}),setEncoding:(e,t)=>{let n=ga({...e.encoding,...t});return{...e,encoding:n}},set:(e,t)=>{let{schema:n,...r}=t;return{...e,...r}}});function Ta(){return Lu()}const Wu=wa(e=>{let t=e(Le);if(!t.schema)return{};let n=Ru({spec:t,autoAddCount:!0});return ya(n.spec)?{main:tr(n,t.schema),histograms:$t(Cu,n,t.schema)}:Du(n.spec)&&!_u(n.spec)?{main:tr(n,t.schema),...Pu(n,t.schema)}:{main:tr(n,t.schema)}});var nr=H(Wt(),1),qu=["x","y","row","column"],Hu=["color","size","shape"];const Gu=e=>{let t=(0,nr.c)(26),{schema:n,mark:r}=e,a=Lt(Le),i=Ta(),s=a.encoding.x&&a.encoding.y,c;t[0]!==i||t[1]!==s||t[2]!==n||t[3]!==a.encoding?(c=C=>(0,E.jsx)(zu,{schema:n,label:C,disabled:(C==="row"||C==="column")&&!s,fieldDefinition:a.encoding[C],onChange:T=>i.setEncoding({[C]:T})},C),t[0]=i,t[1]=s,t[2]=n,t[3]=a.encoding,t[4]=c):c=t[4];let h=c,o;t[5]===r?o=t[6]:(o=r.toString(),t[5]=r,t[6]=o);let l;t[7]===i?l=t[8]:(l=C=>i.setMark(C),t[7]=i,t[8]=l);let u;t[9]===Symbol.for("react.memo_cache_sentinel")?(u=(0,E.jsx)(et,{children:(0,E.jsx)(dr,{placeholder:"Mark"})}),t[9]=u):u=t[9];let p;t[10]===Symbol.for("react.memo_cache_sentinel")?(p=(0,E.jsx)(Ze,{children:(0,E.jsxs)(We,{children:[(0,E.jsx)(ur,{children:"Mark"}),Nu.map(Qu)]})}),t[10]=p):p=t[10];let f;t[11]!==o||t[12]!==l?(f=(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-mark-select",value:o,onValueChange:l,children:[u,p]}),t[11]=o,t[12]=l,t[13]=f):f=t[13];let d=f,g;t[14]===Symbol.for("react.memo_cache_sentinel")?(g=(0,E.jsx)("span",{className:"col-span-2 flex items-center justify-between w-full",children:(0,E.jsx)("div",{className:"text-sm font-semibold",children:"Encodings"})}),t[14]=g):g=t[14];let y;t[15]===h?y=t[16]:(y=qu.map(h),t[15]=h,t[16]=y);let v;t[17]===Symbol.for("react.memo_cache_sentinel")?(v=(0,E.jsx)("div",{children:"Mark"}),t[17]=v):v=t[17];let b;t[18]===d?b=t[19]:(b=(0,E.jsxs)("span",{className:"col-span-2 text-sm font-semibold w-full border-t border-divider flex items-center justify-between pt-2 pr-[30px]",children:[v,d]}),t[18]=d,t[19]=b);let x;t[20]===h?x=t[21]:(x=Hu.map(h),t[20]=h,t[21]=x);let S;return t[22]!==b||t[23]!==x||t[24]!==y?(S=(0,E.jsxs)("div",{className:"grid gap-x-2 gap-y-4 justify-items-start py-3 pl-4 pr-2 bg-(--slate-1) border rounded items-center grid-template-columns-[repeat(2,_minmax(0,_min-content))] self-start",children:[g,y,b,x]}),t[22]=b,t[23]=x,t[24]=y,t[25]=S):S=t[25],S};var zu=e=>{let t=(0,nr.c)(43),{label:n,schema:r,fieldDefinition:a,disabled:i,onChange:s}=e,c;t[0]!==a||t[1]!==r?(c=()=>{if(!a)return"--";if(a.field==="*")return(0,E.jsxs)("span",{className:"flex gap-2 flex-1",children:[Be[R.NUMBER],(0,E.jsx)("span",{className:"text-left flex-1",children:"Count"})]});let _=a.field.toString();return(0,E.jsxs)("span",{className:"flex gap-2 flex-1",children:[Be[r.primitiveType(_)],(0,E.jsx)("span",{className:"text-left flex-1",children:a.fn?`${a.fn}(${a.field})`:_})]})},t[0]=a,t[1]=r,t[2]=c):c=t[2];let h=c,o;t[3]===s?o=t[4]:(o=()=>{s(void 0)},t[3]=s,t[4]=o);let l=o,u;t[5]===(a==null?void 0:a.field)?u=t[6]:(u=(a==null?void 0:a.field.toString())??"",t[5]=a==null?void 0:a.field,t[6]=u);let p=u,f;t[7]===n?f=t[8]:(f=(0,E.jsx)(no,{className:"text-(--slate-11) font-semibold",children:n}),t[7]=n,t[8]=f);let d;t[9]!==s||t[10]!==r?(d=_=>{s(_==="*"?{field:"*",fn:"count",type:"quantitative"}:{field:_,type:r.vlType(_)})},t[9]=s,t[10]=r,t[11]=d):d=t[11];let g=p?l:void 0,y;t[12]===h?y=t[13]:(y=h(),t[12]=h,t[13]=y);let v;t[14]!==g||t[15]!==y?(v=(0,E.jsx)(et,{className:"min-w-[140px] lg:min-w-[210px] h-full",onClear:g,children:y}),t[14]=g,t[15]=y,t[16]=v):v=t[16];let b;t[17]===r?b=t[18]:(b=r.fieldNames().map(_=>(0,E.jsx)(Se,{value:_.toString(),children:(0,E.jsxs)("span",{className:"flex items-center gap-2 flex-1",children:[Be[r.primitiveType(_)],(0,E.jsx)("span",{className:"flex-1",children:_}),(0,E.jsxs)("span",{className:"text-muted-foreground text-xs font-semibold",children:["(",r.vlType(_),")"]})]})},_)),t[17]=r,t[18]=b);let x;t[19]===r?x=t[20]:(x=r.fieldNames().length===0&&(0,E.jsx)(Se,{disabled:!0,value:"--",children:"No columns"}),t[19]=r,t[20]=x);let S;t[21]===Symbol.for("react.memo_cache_sentinel")?(S=(0,E.jsx)(fr,{}),t[21]=S):S=t[21];let C;t[22]===Symbol.for("react.memo_cache_sentinel")?(C=(0,E.jsx)(Se,{value:"*",children:(0,E.jsxs)("span",{className:"flex items-center gap-1 flex-1",children:[Be[R.NUMBER],(0,E.jsx)("span",{className:"flex-1",children:"Count"})]})},"*"),t[22]=C):C=t[22];let T;t[23]!==x||t[24]!==b?(T=(0,E.jsx)(Ze,{children:(0,E.jsxs)(We,{children:[b,x,S,C]})}),t[23]=x,t[24]=b,t[25]=T):T=t[25];let w;t[26]!==i||t[27]!==p||t[28]!==T||t[29]!==d||t[30]!==v?(w=(0,E.jsxs)(tt,{value:p,disabled:i,onValueChange:d,children:[v,T]}),t[26]=i,t[27]=p,t[28]=T,t[29]=d,t[30]=v,t[31]=w):w=t[31];let N;t[32]!==a||t[33]!==s?(N=a&&(0,E.jsx)(Yu,{field:a,onChange:s}),t[32]=a,t[33]=s,t[34]=N):N=t[34];let D;t[35]===N?D=t[36]:(D=(0,E.jsx)("div",{className:"w-[26px]",children:N}),t[35]=N,t[36]=D);let k;t[37]!==w||t[38]!==D?(k=(0,E.jsxs)("div",{className:"flex flex-row gap-1 h-[26px]",children:[w,D]}),t[37]=w,t[38]=D,t[39]=k):k=t[39];let I;return t[40]!==k||t[41]!==f?(I=(0,E.jsxs)(E.Fragment,{children:[f,k]}),t[40]=k,t[41]=f,t[42]=I):I=t[42],I},rr="__",Yu=e=>{let t=(0,nr.c)(10),{field:n,onChange:r}=e;if(n.field==="*")return null;let a;if(t[0]!==n||t[1]!==r){a=Symbol.for("react.early_return_sentinel");e:{let i=[];if(n.type===le.QUANTITATIVE&&(i=[["",Tu]]),n.type===le.TEMPORAL&&(i=[["Single",ha],["Multi",ma]]),i.length>0){let s=p=>{r({...n,fn:p===rr?void 0:p})},c;t[3]===Symbol.for("react.memo_cache_sentinel")?(c=(0,E.jsx)(et,{className:"h-full px-1",hideChevron:!0,variant:"ghost",children:(0,E.jsx)(Qa,{size:14,strokeWidth:1.5})}),t[3]=c):c=t[3];let h,o;t[4]===Symbol.for("react.memo_cache_sentinel")?(h=(0,E.jsx)(We,{children:(0,E.jsx)(Se,{value:rr,children:"None"})}),o=(0,E.jsx)(fr,{}),t[4]=h,t[5]=o):(h=t[4],o=t[5]);let l=(0,E.jsxs)(Ze,{children:[h,o,i.map(Ku)]}),u;t[6]!==n.fn||t[7]!==s||t[8]!==l?(u=(0,E.jsxs)(tt,{"data-testid":"marimo-plugin-data-explorer-field-options",value:n.fn,onValueChange:s,children:[c,l]}),t[6]=n.fn,t[7]=s,t[8]=l,t[9]=u):u=t[9],a=u;break e}}t[0]=n,t[1]=r,t[2]=a}else a=t[2];return a===Symbol.for("react.early_return_sentinel")?null:a};function Qu(e){return(0,E.jsx)(Se,{value:e,children:e==="?"?"auto":e},e)}function Vu(e){return(0,E.jsx)(Se,{value:e??rr,children:Ma(e)},e)}function Ku(e){let[t,n]=e;return(0,E.jsxs)(We,{children:[t&&(0,E.jsx)(ur,{children:t}),n.map(Vu)]},t)}var Bt=H(Wt(),1),Ju=e=>{let t=(0,Bt.c)(5),n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n=Aa(),t[0]=n):n=t[0];let r=n,a;t[1]===e?a=t[2]:(a=()=>{let s=r.sub(Le,()=>{let{schema:h,...o}=r.get(Le);e.setValue(o)}),c=e.value;return c&&Object.keys(c).length>0&&r.set(Le,c),s},t[1]=e,t[2]=a),Ba(a);let i;return t[3]===e?i=t[4]:(i=(0,E.jsx)(Oa,{store:r,children:(0,E.jsx)(Na,{...e})}),t[3]=e,t[4]=i),i};function Sa(e){return{padding:{left:20,right:20,top:20,bottom:20},actions:{export:{svg:!0,png:!0},source:!1,compiled:!1,editor:!1},theme:e==="dark"?"dark":void 0,tooltip:Fa.call,renderer:"canvas"}}var Xu=Ju;const Na=e=>{var Ee,X,W,pe,Te,he;let t=(0,Bt.c)(41),{data:n}=e,r=Ta(),a;t[0]!==r||t[1]!==n?(a=async()=>{if(!n)return{};let M=await Ua(n,{type:"csv",parse:"auto"},{replacePeriod:!0}),Z=kc(M);return r.setSchema(Z),{chartData:M,schema:Z}},t[0]=r,t[1]=n,t[2]=a):a=t[2];let i;t[3]===n?i=t[4]:(i=[n],t[3]=n,t[4]=i);let{data:s,isPending:c,error:h}=to(a,i),{mark:o}=Lt(Le),l=Lt(Wu),{theme:u}=La();if(h){let M;return t[5]===h?M=t[6]:(M=(0,E.jsx)(Za,{error:h}),t[5]=h,t[6]=M),M}if(!s){let M;return t[7]===Symbol.for("react.memo_cache_sentinel")?(M=(0,E.jsx)("div",{}),t[7]=M):M=t[7],M}let{chartData:p,schema:f}=s;if(c||!f){let M;return t[8]===Symbol.for("react.memo_cache_sentinel")?(M=(0,E.jsx)("div",{}),t[8]=M):M=t[8],M}let d=(X=(Ee=l.main)==null?void 0:Ee.plots)==null?void 0:X[0],g;t[9]===(d==null?void 0:d.fieldInfos)?g=t[10]:(g=new Set(d==null?void 0:d.fieldInfos.map(nd)),t[9]=d==null?void 0:d.fieldInfos,t[10]=g);let y=g,v;t[11]!==p||t[12]!==d||t[13]!==f||t[14]!==u?(v=()=>{if(!d)return(0,E.jsx)(hu,{schema:f});let M=d.spec;return(0,E.jsx)("div",{className:"flex overflow-y-auto justify-center items-center flex-1 w-[90%]",children:(0,E.jsx)(pr,{spec:Wa(td(M),p),options:Sa(u)})})},t[11]=p,t[12]=d,t[13]=f,t[14]=u,t[15]=v):v=t[15];let b=v,x;t[16]!==o||t[17]!==f?(x=(0,E.jsx)(Gu,{mark:o,schema:f}),t[16]=o,t[17]=f,t[18]=x):x=t[18];let S;t[19]===b?S=t[20]:(S=b(),t[19]=b,t[20]=S);let C;t[21]!==x||t[22]!==S?(C=(0,E.jsxs)("div",{className:"flex items-center gap-2",children:[x,S]}),t[21]=x,t[22]=S,t[23]=C):C=t[23];let T=(W=l.histograms)==null?void 0:W.plots,w=(pe=l.addCategoricalField)==null?void 0:pe.plots,N=(Te=l.addQuantitativeField)==null?void 0:Te.plots,D=(he=l.addTemporalField)==null?void 0:he.plots,k;if(t[24]!==r||t[25]!==y||t[26]!==N||t[27]!==D||t[28]!==T||t[29]!==w||t[30]!==u){let M;t[32]!==r||t[33]!==y||t[34]!==u?(M=(Z,Xe)=>(0,E.jsx)(ed,{title:(0,E.jsx)("div",{className:"flex flex-row gap-1",children:Z.fieldInfos.map(me=>{let or=me.fieldDef.field==="*"?"Count":me.fieldDef.fn?`${me.fieldDef.fn}(${me.fieldDef.field})`:me.fieldDef.field.toString();return(0,E.jsx)(Va,{variant:y.has(me.fieldDef.field)?"secondary":"defaultOutline",children:or},or)})}),actions:(0,E.jsx)(Ka,{content:"Make main plot",children:(0,E.jsx)(lr,{"data-testid":"marimo-plugin-data-explorer-make-main-plot",variant:"text",size:"icon",onClick:()=>{let me=Da.fromEntries(Z.fieldInfos.map(rd));r.setEncoding(me)},children:(0,E.jsx)(Ya,{className:"w-4 h-4"})})}),children:(0,E.jsx)(pr,{options:Sa(u),spec:Z.spec},Xe)},Xe),t[32]=r,t[33]=y,t[34]=u,t[35]=M):M=t[35],k=[T,w,N,D].filter(Boolean).flat().map(M),t[24]=r,t[25]=y,t[26]=N,t[27]=D,t[28]=T,t[29]=w,t[30]=u,t[31]=k}else k=t[31];let I;t[36]===k?I=t[37]:(I=(0,E.jsx)(Zu,{children:k}),t[36]=k,t[37]=I);let _;return t[38]!==I||t[39]!==C?(_=(0,E.jsxs)("div",{className:"flex flex-col gap-2",children:[C,I]}),t[38]=I,t[39]=C,t[40]=_):_=t[40],_};var Zu=e=>{let t=(0,Bt.c)(2),{children:n}=e;if(Zn.Children.count(n)===0)return null;let r;return t[0]===n?r=t[1]:(r=(0,E.jsx)("div",{className:"flex flex-row overflow-x-auto overflow-y-hidden gap-4 snap-x pb-4",children:n}),t[0]=n,t[1]=r),r},ed=e=>{let t=(0,Bt.c)(10),{title:n,children:r,actions:a}=e,i;t[0]===n?i=t[1]:(i=(0,E.jsx)("div",{className:"text-sm font-medium",children:n}),t[0]=n,t[1]=i);let s;t[2]!==a||t[3]!==i?(s=(0,E.jsxs)("div",{className:"flex flex-row justify-between items-center bg-(--slate-3) py-0.5 px-2",children:[i,a]}),t[2]=a,t[3]=i,t[4]=s):s=t[4];let c;t[5]===r?c=t[6]:(c=(0,E.jsx)("div",{className:"px-6 pt-2 max-h-[280px] overflow-y-auto",children:r}),t[5]=r,t[6]=c);let h;return t[7]!==s||t[8]!==c?(h=(0,E.jsxs)("div",{className:"shrink-0 bg-card shadow-md border overflow-hidden rounded snap-start",children:[s,c]}),t[7]=s,t[8]=c,t[9]=h):h=t[9],h};function td(e){var t,n;return(t=e.encoding)!=null&&t.row||(n=e.encoding)!=null&&n.column||(e.width="container"),e}function nd(e){return e.fieldDef.field}function rd(e){return[e.channel,e.fieldDef]}export{Na as DataExplorerComponent,Xu as default};