@graphysdk/viz-engine 1.8.1-beta.1787150640613 → 2.0.0-beta.1786389736654

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,13 +1,16 @@
1
1
  # @graphysdk/viz-engine
2
2
 
3
- The Graphy chart engine. Build a spec and compile it — no DOM, no React.
3
+ Grammar-of-graphics engine for Graphy charts. Compiles a declarative `Spec` into a render-ready `CompiledSpec`. Framework-agnostic — no DOM, no React.
4
4
 
5
- React apps should start with [`@graphysdk/react`](https://www.npmjs.com/package/@graphysdk/react).
5
+ ## Docs
6
+
7
+ - [How a chart is built](https://docs.graphy.dev/sdk-next/concepts/how-a-chart-is-built)
8
+ - [Quickstart](https://docs.graphy.dev/sdk-next/quickstart) — start with `@graphysdk/react` for the batteries-included React path
6
9
 
7
10
  ## Install
8
11
 
9
12
  ```bash
10
- npm install @graphysdk/viz-engine
13
+ pnpm add @graphysdk/viz-engine
11
14
  ```
12
15
 
13
16
  ## Usage
@@ -19,17 +22,4 @@ const input = pipe(createSpec({ x: 'month', y: 'revenue' }), geom.bar(), scale.x
19
22
  const { compiled } = createCompiler().compile({ input, data });
20
23
  ```
21
24
 
22
- ## Docs
23
-
24
- - [How a chart is built](https://docs.graphy.dev/sdk-next/concepts/how-a-chart-is-built)
25
- - [Quickstart](https://docs.graphy.dev/sdk-next/quickstart)
26
-
27
25
  For React painting, use [`@graphysdk/react`](https://www.npmjs.com/package/@graphysdk/react) (recommended) or [`@graphysdk/react-renderer`](https://www.npmjs.com/package/@graphysdk/react-renderer).
28
-
29
- ## Licence
30
-
31
- This package is available under PolyForm Noncommercial, Small Business, or a 32-day Free Trial. Free Trial is local or internal evaluation only — it does not cover a public page. See [what you can do under the trial](https://docs.graphy.dev/licence/evaluation).
32
-
33
- ## Support
34
-
35
- Questions and community help: [Discord](https://discord.gg/yGmYCjkSr).
@@ -0,0 +1 @@
1
+ let l=require("date-fns"),fe=require("lodash-es"),_=require("arquero");var nr=e=>e.length>0;function q(e){return e!=null}function ar(e){if(e===null||typeof e!="object")return!1;const r=Object.getPrototypeOf(e);return r===Object.prototype||r===null}var ye="\0graphy\0_",d=e=>`${ye}${e}`,H={x:d("constantX")},X={count:d("count"),mean:d("mean"),sum:d("sum")},me={group:d("group")},pe={x:d("x"),y:d("y"),xMin:d("xMin"),xMax:d("xMax"),yMin:d("yMin"),yMax:d("yMax"),yRaw:d("yRaw")},be={role:d("stackRole")},ge={color:d("color"),size:d("size"),alpha:d("alpha"),strokeWidth:d("strokeWidth"),lineType:d("lineType")},he={y:d("ruleY"),x:d("ruleX")},yn={...H,...X,...me,...pe,...be,...ge,...he},ir=new Set(Object.values(X)),or=e=>d(`scaled_${e}`),sr=e=>e.startsWith(ye),ur=e=>ir.has(e);function lr(e){const{numeric:r,categorical:t,temporal:n}=e.groupVariableNamesByType();return n[0]??t[0]??r[0]??""}function cr(e){const r=Q(e.x);return r===null||r===H.x?"":r}function Q(e){return q(e)?typeof e=="string"?e:"variable"in e?e.variable:null:null}function ve(e){if(!(!q(e)||typeof e=="string")&&"value"in e)return e.value}function dr(e,r){return[...new Set([...Object.keys(e),...Object.keys(r)])].every(t=>ae(e[t])===ae(r[t]))}function ae(e){const r=Q(e);if(r!==null)return`variable:${r}`;const t=ve(e);return t===void 0?"":t===null?"value:null":t instanceof Date?`value:date:${t.getTime()}`:`value:${typeof t}:${t}`}var x=e=>e instanceof Date&&(0,l.isValid)(e),fr=e=>x(e)||e===null,yr=e=>typeof e=="string",Ee=e=>typeof e=="number"&&!Number.isNaN(e)&&Number.isFinite(e),mr=e=>Ee(e)||e===null,J=e=>(Array.isArray(e)?e:[e]).map(r=>r instanceof Date?r.toISOString():String(r??"<null>")).join("\0"),pr=(e,r)=>e===r?!0:x(e)&&x(r)?e.getTime()===r.getTime():!1,A=process.env.NODE_ENV!=="production",Y=!0,br=e=>{Y=e},gr=()=>Y,hr=()=>{let e=null;const r={hits:0,misses:0};return Object.assign((n,a)=>{if(!Y)return A&&(r.misses+=1),a();if(e&&Oe(e.args,n))return A&&(r.hits+=1),e.out;A&&(r.misses+=1);const i=a();return e={args:n,out:i},i},{stats:r,reset:()=>{e=null}})},Me=()=>{const e=new WeakMap,r={hits:0,misses:0};return Object.assign((n,a,i)=>{if(!Y)return A&&(r.misses+=1),i();const o=e.get(n);if(o){for(const u of o)if(Oe(u.args,a))return A&&(r.hits+=1),u.out}A&&(r.misses+=1);const s=i();return o?o.push({args:a,out:s}):e.set(n,[{args:a,out:s}]),s},{stats:r})},vr=(...e)=>e.reduce((r,t)=>({hits:r.hits+t.hits,misses:r.misses+t.misses}),{hits:0,misses:0}),Oe=(e,r)=>{if(e.length!==r.length)return!1;for(let t=0;t<e.length;t+=1)if(e[t]!==r[t])return!1;return!0},_e=class{constructor(){this.memo=Me(),this.singletonKey={}}get stats(){return this.memo.stats}compile(e){return this.memo(this.key(e),this.dependencies(e),()=>this.run(e))}key(e){return this.singletonKey}},Z=class extends Error{constructor(e){super(e.message,e.cause!==void 0?{cause:e.cause}:void 0),this.name=new.target.name,this.code=e.code,this.context=e.context,this.suggestion=e.suggestion}},L=class extends Z{constructor(e){super(e),this.kind="user-input"}},h=class extends Z{constructor(e){super({...e,code:e.code??"INTERNAL_INVARIANT"}),this.kind="internal"}},ee=e=>e.type==="lookup",Ae=e=>e.type==="text",V=e=>e.type==="date"||e.type==="datetime"||e.type==="year"||e.type==="month_year"||e.type==="month"||e.type==="day_month"||e.type==="weekly_date_range"||e.type==="weekly_date_range_with_year"||e.type==="quarter"||e.type==="time",Te=e=>e.type==="decimal"||e.type==="integer"||e.type==="percentage"||e.type==="duration"||e.type==="currency",Er=e=>e.type==="currency",Mr=e=>e.type==="month"||e.type==="day_month"||e.type==="weekly_date_range",De=e=>{if(ee(e))return De(e.fallback);if(V(e))return"temporal";if(Te(e))return"numeric";if(Ae(e))return"categorical";throw new h({message:`No data type found for value format: ${e.type}`})},Or=e=>ee(e)?e.fallback:e,Fe={k:1e3,m:1e6,b:1e9,t:1e12},re=["k","m","b","t"],_r=new RegExp(`^-?(\\d{1,3}(,\\d{3})*|\\d+)\\.?\\d*(${re.join("|")})?$`,"i"),Ar=/^-?\d{1,3}(?:,\d{3})*(?:\.\d+)?%?$/,T=e=>e===null||e instanceof Date||Array.isArray(e)||typeof e=="boolean"?!1:typeof e=="string"?_r.test(e)&&!Number.isNaN(Number(e.replace(new RegExp(`[,${re.join("")}]`,"gi"),""))):!Number.isNaN(Number(e)),Se=e=>T(e)?!0:typeof e=="string"?Ar.test(e):!1,Pe={$:"usd","£":"gbp","€":"eur","¥":"jpy","₹":"inr","₱":"php",P:"php","₩":"krw","₪":"ils","₫":"vnd","₽":"rub","฿":"thb",R$:"brl",Rp:"idr",RM:"myr","₦":"ngn",zł:"pln","₺":"try",kr:"dkk",Fr:"chf",R:"zar","د.إ":"aed","﷼":"sar",Ch$:"clp",NT$:"twd",HK$:"hkd",S$:"sgd",A$:"aud",C$:"cad",NZ$:"nzd",MX$:"mxn"},Ne=e=>{if(typeof e=="string"){const r=je(e);return r.length?T(r):!1}return T(e)},Tr=e=>{const r=Re(e),t=r?Pe[r]:void 0;if(!t)throw new h({message:"Could not get currency ISO"});return t},je=e=>{const r=Re(e);let t=e;if(r){const n=e.indexOf(r);n===0?t=e.slice(r.length):n===e.length-r.length?t=e.slice(0,e.length-r.length):e[0]==="-"&&n===1&&(t=`-${e.slice(r.length+1)}`)}return T(t)?t.split(",").join(""):""},Re=e=>Object.keys(Pe).sort((r,t)=>t.length-r.length).find(r=>e.includes(r)),Le=e=>{const r=Object.entries(e);return!r.length||!r.some(([,t])=>!w(t))},w=e=>typeof e=="string"&&e.trim()===""||e===void 0||e===null||e==="-",te="en-GB",Ie=class{constructor(){this.currentYear=new Date().getUTCFullYear(),this.previousDate=null,this.previousYear=null}incrementYearIfNeeded(e){this.previousYear===null?this.previousYear=e.getUTCFullYear():this.previousDate!==null&&(0,l.isBefore)(new Date(this.currentYear,e.getUTCMonth(),e.getUTCDate()),new Date(this.currentYear,this.previousDate.getUTCMonth(),this.previousDate.getUTCDate()))&&this.previousYear++;const r=new Date(e.getTime());return r.setUTCFullYear(this.previousYear),this.previousDate=r,r}},Dr=/^\d{4}-\d{2}-\d{2}(T|\s)\d{1,2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|\+00:00)?$/,Fr=/^\s*(19\d{2}|2[01]\d{2})\s*$/,Sr=[[/\bJan\b/i,"January"],[/\bFeb\b/i,"February"],[/\bMar\b/i,"March"],[/\bApr\b/i,"April"],[/\bJun\b/i,"June"],[/\bJul\b/i,"July"],[/\bAug\b/i,"August"],[/\bSept?\b/i,"September"],[/\bOct\b/i,"October"],[/\bNov\b/i,"November"],[/\bDec\b/i,"December"]],Pr={"en-US":"MDY","en-GB":"DMY","pt-PT":"DMY",ar:"DMY"},Ve=["/","-","."," "],ie=[["d","M","yy"],["d","MM","yy"],["d","MMMM","yy"],["dd","M","yy"],["dd","MM","yy"],["dd","MMMM","yy"],["do","MMMM","yy"],["d","M","yyyy"],["d","MM","yyyy"],["d","MMMM","yyyy"],["dd","M","yyyy"],["dd","MM","yyyy"],["dd","MMMM","yyyy"],["do","MMMM","yyyy"]],oe=[["M","d","yy"],["M","dd","yy"],["MM","d","yy"],["MM","dd","yy"],["MMMM","d","yy"],["MMMM","dd","yy"],["MMMM","do","yy"],["M","d","yyyy"],["M","dd","yyyy"],["MM","d","yyyy"],["MM","dd","yyyy"],["MMMM","d","yyyy"],["MMMM","dd","yyyy"],["MMMM","do","yyyy"]],se=[["yyyy","M","d"],["yyyy","M","dd"],["yyyy","MM","d"],["yyyy","MM","dd"],["yyyy","MMMM","d"],["yyyy","MMMM","dd"],["yyyy","MMMM","do"]],we=[["d","MMMM"],["dd","MMMM"],["do","MMMM"],["MMMM","d"],["MMMM","dd"],["MMMM","do"]],Nr=[{dateFormat:"MMMM d, yyyy",type:"date"},{dateFormat:"MMMM dd, yyyy",type:"date"},{dateFormat:"MMMM do, yyyy",type:"date"},{dateFormat:"yyyy-MM",type:"month_year"}],Ce=1900,ke=2199,jr=3,Rr=6,Lr=5,Ir=1,Vr=28,wr=/\s*[–—]\s*|\s-\s/,Cr=e=>typeof e=="number"?Number.isNaN(e)?!1:e>=Ce&&e<=ke:typeof e=="string"?Fr.test(e):!1,Ue=(e,r)=>{const t=I(e);return!r&&T(t)?xr(t):typeof t=="string"?r?(0,l.isValid)((0,l.parse)(t,r,new Date)):!!Be(t)||z(t)&&(0,l.isValid)(new Date(t)):(0,l.isValid)(t)},I=e=>{if(typeof e!="string")return e;let r=e;for(const[t,n]of Sr)r=r.replace(t,n);return r},Be=(e,r=te)=>{const t=I(e);return z(t)?{type:"datetime"}:xe(r).find(n=>!V(n)||n.type==="month"&&t.length<jr?!1:n.dateFormat&&(0,l.isValid)((0,l.parse)(t,n.dateFormat,new Date)))},z=e=>Dr.test(e.trim()),kr=e=>{if(e instanceof Date)return(0,l.isValid)(e)?e:null;if(typeof e!="string"||!z(e))return null;const r=new Date(e.trim());return(0,l.isValid)(r)?r:null},Ur=(e,r=te)=>{const[t,n]=e.split(wr);if(!t||!n)return;const a=I(t).trim(),i=I(n).trim();return Br(r).find(o=>{if(!V(o)||!o.dateFormat)return!1;const s=(0,l.parse)(a,o.dateFormat,new Date),u=(0,l.parse)(i,o.dateFormat,new Date);if(!(0,l.isValid)(s)||!(0,l.isValid)(u))return!1;const c=new Ie,f=c.incrementYearIfNeeded(s),M=c.incrementYearIfNeeded(u),y=(0,l.differenceInDays)(M,f);return(0,l.isWithinInterval)(new Date(f.getFullYear(),Ir,Vr),{start:f,end:M})&&y===Lr?!0:y===Rr})},xe=e=>{const r={date:$e(e),year:[["yyyy"]],day_month:we,month_year:[["MMMM","yyyy"],["yyyy","MMMM"]],month:[["MMMM"]],quarter:[["QQQ","yyyy"],["yyyy","QQQ"]]};return[...Nr,...Object.entries(r).flatMap(([t,n])=>n.flatMap(a=>Ve.map(i=>({dateFormat:a.join(i),type:t}))))]},$e=e=>Pr[e]==="MDY"?[...oe,...ie,...se]:[...ie,...oe,...se],Br=e=>{const r={weekly_date_range:we,weekly_date_range_with_year:$e(e)};return Object.entries(r).flatMap(([t,n])=>n.flatMap(a=>Ve.map(i=>({dateFormat:a.join(i),type:t}))))},xr=e=>{const r=Number(e);if(!(0,fe.isInteger)(r))return!1;const t=new Date(r),n=new Date(r*1e3),a=i=>(0,l.isValid)(i)&&i.getFullYear()>=Ce&&i.getFullYear()<=ke;return a(t)||a(n)},$r=/\s*[–—]\s*|\s-\s/,Ye=(e,r,t)=>{if(w(e))return null;switch(r.type){case"decimal":case"integer":case"duration":return We(e);case"percentage":return Yr(e);case"currency":return zr(e);case"datetime":case"date":case"year":case"month_year":case"month":case"day_month":case"quarter":case"time":return ze(e,r.dateFormat,t);case"weekly_date_range":case"weekly_date_range_with_year":return Wr(e,r.dateFormat,t);case"text":return Gr(e);case"lookup":throw new h({message:"Cannot parse: lookup value formats are produced by transforms, not raw input"});default:throw new h({message:`Unhandled value format: ${r.type}`})}},ze=(e,r,t)=>{if(e instanceof Date)return(0,l.isValid)(e)?e:null;const n=I(String(e).trim());if(n.length===0)return null;const a=new Date;if(r){const o=(0,l.parse)(n,r,a);return(0,l.isValid)(o)?G(o):null}for(const o of xe(t)){if(!V(o)||!o.dateFormat)continue;const s=(0,l.parse)(n,o.dateFormat,a);if((0,l.isValid)(s))return G(s)}const i=new Date(n);return Ue(i)?z(n)?i:G(i):null},We=e=>{if(typeof e=="number")return Number.isNaN(e)?null:e;if(typeof e!="string")return null;let r=e.trim();if(!T(r))return null;let t=1;for(const n of re)if(new RegExp(`${n}$`,"i").test(r)){t=Fe[n],r=r.slice(0,-1);break}return Number(r.split(",").join(""))*t},Yr=e=>{if(typeof e=="number")return Number.isNaN(e)?null:e;if(typeof e!="string")return null;const r=e.trim();if(!Se(r))return null;const t=Number(r.replace(/%/g,"").replace(/,/g,""))/100;return Number.isNaN(t)?null:t},zr=e=>{if(typeof e=="number")return Number.isNaN(e)?null:e;if(typeof e!="string")return null;const r=e.trim();return Ne(r)?We(je(r)):null},Wr=(e,r,t)=>{const n=String(e).trim().split($r),[a,i]=[n[0]?.trim(),n[1]?.trim()];return!a||!i?null:ze(a,r,t)},Gr=e=>String(e).trim(),G=e=>new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())),Kr=new Set(["count","sum","mean","median"]);function Ge(e,r){return Kr.has(e)?"numeric":r}var qr="value",ue="\0__rowMaskIndex",R={numeric:{type:"decimal"},categorical:{type:"text"},temporal:{type:"datetime"}},Hr={eq:(e,r)=>e[r.__variableName]===r.__value,neq:(e,r)=>e[r.__variableName]!==r.__value,gt:(e,r)=>e[r.__variableName]>r.__value,gte:(e,r)=>e[r.__variableName]>=r.__value,lt:(e,r)=>e[r.__variableName]<r.__value,lte:(e,r)=>e[r.__variableName]<=r.__value},Xr={eq:(e,r)=>e===r,neq:(e,r)=>e!==r,gt:(e,r)=>e!==null&&r!==null&&e>r,gte:(e,r)=>e!==null&&r!==null&&e>=r,lt:(e,r)=>e!==null&&r!==null&&e<r,lte:(e,r)=>e!==null&&r!==null&&e<=r},le=e=>e===null?null:e instanceof Date?e.getTime():new Date(e).getTime(),Ke=(e,r)=>e==="count"?{type:"integer"}:r,$=class b{constructor(r={}){const{table:t,variableMetadata:n}=this.parseVariableMap(r);this.table=t,this.variableMetadata=n}static fromTrusted(r,t){const n=Object.create(b.prototype);return n.table=r,n.variableMetadata=t,n}size(){return this.table.numRows()}getVariableNames(){return this.table.columnNames()}hasVariable(r){return this.table.column(r)!==void 0}addVariable(r,t,n,a){const i={...this.variableMetadata,[r]:{type:t,valueFormat:this.resolveAddedVariableFormat(r,t,a)}},o=this.normalizeRawValues(t,n),s=this.table.assign((0,_.table)({[r]:o}));return b.fromTrusted(s,i)}addConstantVariable(r,t,n,a){const i={...this.variableMetadata,[r]:{type:t,valueFormat:this.resolveAddedVariableFormat(r,t,a),constant:{value:n}}},[o]=this.normalizeRawValues(t,[n]),s=this.table.assign((0,_.table)({[r]:Array(this.size()).fill(o)}));return b.fromTrusted(s,i)}getConstant(r){return this.variableMetadata[r]?.constant}deriveVariable(r,t,n,a){const i=Array.from({length:this.size()},(o,s)=>n(this.table.object(s)));return this.addVariable(r,t,i,a)}renameVariable(r,t){const n=this.variableMetadata[r];if(!n)throw new h({message:`Variable ${r} not defined`});const a=this.table.rename({[r]:t}),{[r]:i,...o}=this.variableMetadata,s={...o,[t]:n};return b.fromTrusted(a,s)}selectVariables(...r){const t=this.table.select(...r),n=Object.fromEntries(Object.entries(this.variableMetadata).filter(([a])=>r.includes(a)));return b.fromTrusted(t,n)}getType(r){const t=this.variableMetadata[r];if(!t)throw new h({message:`Variable ${r} not defined`});return t.type}getValueFormat(r){const t=this.variableMetadata[r];if(!t)throw new h({message:`Variable ${r} not defined`});return t.valueFormat}groupVariableNamesByType(){const r={numeric:[],categorical:[],temporal:[]};for(const[t,{type:n}]of Object.entries(this.variableMetadata))r[n].push(t);return r}getValues(r,t){if(!this.hasVariable(r))throw new h({message:`Variable '${r}' not defined`});const n=this.getType(r);if(t?.type!==void 0&&n!==t.type)throw new h({message:`Variable '${r}' has type '${n}', expected '${t.type}'`});let a=this.table.array(r);return t?.distinct&&(a=this.getDistinctValues(n,a)),t?.skipNulls&&(a=this.skipNulls(a)),a}filter(r,t,n){if(this.hasVariable(r)&&this.getType(r)==="temporal")return this.filterByTimestamp(r,t,n);const a=Hr[t],i=this.table.params({__variableName:r,__value:n}).filter(a);return b.fromTrusted(i,this.variableMetadata)}filterByMask(r){if(r.length!==this.size())throw new h({message:`Row mask length ${r.length} does not match dataset size ${this.size()}`});const t=Array.from({length:r.length},(a,i)=>i),n=this.table.assign((0,_.table)({[ue]:t})).params({__indexColumnName:ue,__mask:r}).filter((a,i)=>i.__mask[a[i.__indexColumnName]]===1).select(...this.table.columnNames());return b.fromTrusted(n,this.variableMetadata)}orderBy(r,t="asc"){const n=this.table.orderby(t==="asc"?r:(0,_.desc)(r));return b.fromTrusted(n,this.variableMetadata)}getAt(r){return r<0||r>=this.size()?null:this.table.object(r)}getFirst(){return this.getAt(0)}getLast(){return this.getAt(this.size()-1)}findLast(r){for(let t=this.size()-1;t>=0;t--){const n=this.table.object(t);if(r(n))return n}return null}groupBy(...r){const t=this.table.groupby(...r);return new Qr(r,t,this.variableMetadata)}rollup(r){const t=this.table.rollup(Object.fromEntries(Object.entries(r).map(([a,i])=>[a,_.op[i.aggregation](i.variableName)]))),n={};for(const[a,{variableName:i,aggregation:o}]of Object.entries(r)){const s=this.variableMetadata[i],u=s?.type??"numeric",c=s?.valueFormat??R[u];n[a]={type:Ge(o,u),valueFormat:Ke(o,c)}}return b.fromTrusted(t,n)}reshapeFromWideToLong({keep:r,reshape:t,keyName:n="key",valueName:a=qr}={}){const{numeric:i,categorical:o,temporal:s}=this.groupVariableNamesByType(),u=r??[...o,...s],c=t??i.filter(y=>!u.includes(y));if(u.includes(n)||u.includes(a))throw new L({code:"INVALID_DATA_SHAPE",message:`The variables to keep includes the variables '${n}' or '${a}' to create the key and value variables`});if(c.length===0){const y={};for(const N of u){const W=this.variableMetadata[N];W&&(y[N]={type:W.type,values:[],valueFormat:W.valueFormat})}return y[n]={type:"categorical",values:[],valueFormat:{type:"text"}},y[a]={type:"numeric",values:[],valueFormat:{type:"decimal"}},new b(y)}if(c.filter(y=>this.variableMetadata[y]?.type!=="numeric").length>0)throw new L({code:"INVALID_DATA_SHAPE",message:"Only numeric variables can be reshaped"});const f=this.table.select([...u,...c]).fold(c,{as:[n,a]}),M={};for(const y of u){const N=this.variableMetadata[y];N&&(M[y]=N)}return M[n]={type:"categorical",valueFormat:{type:"text"}},M[a]={type:"numeric",valueFormat:Jr(this.variableMetadata,c,n)},b.fromTrusted(f,M)}print(){console.table(this.variableMetadata),this.table.print()}[Symbol.iterator](){return this.table[Symbol.iterator]()}filterByTimestamp(r,t,n){const a=Xr[t],i=le(n),o=this.getValues(r,{type:"temporal"}),s=new Uint8Array(o.length);return o.forEach((u,c)=>{s[c]=a(le(u),i)?1:0}),this.filterByMask(s)}resolveAddedVariableFormat(r,t,n){if(n!==void 0)return n;const a=this.variableMetadata[r];return a?a.valueFormat:R[t]}parseVariableMap(r){const t={},n={};for(const[a,{type:i,values:o,valueFormat:s}]of Object.entries(r))t[a]=o,n[a]={type:i,valueFormat:s??R[i]};return{table:(0,_.table)(t),variableMetadata:n}}normalizeRawValues(r,t){switch(r){case"numeric":return t.map(n=>typeof n!="number"||Number.isNaN(n)?null:n);case"categorical":return t.map(n=>typeof n!="string"?null:n);case"temporal":return t.map(n=>!(n instanceof Date)||!(0,l.isValid)(n)?null:n);default:throw new h({message:`Cannot normalize raw value of unknown type: ${r}`})}}skipNulls(r){return r.filter(t=>t!==null)}getDistinctValues(r,t){const n=r==="temporal",a=new Set,i=[];for(const o of t){const s=n&&o instanceof Date?o.getTime():o;a.has(s)||(a.add(s),i.push(o))}return i}},Qr=class{constructor(e,r,t){this.groupedBy=e,this.grouped=r,this.variableMetadata=t}forEach(e){const r=this.grouped.partitions(),t=this.grouped.columnNames(),n=this.groupedBy.map(i=>this.grouped.column(i)).filter(i=>i!==void 0);let a=0;for(const i of r){const o=i[0];if(o===void 0)continue;const s=this.getStableKey(n,o),u=(0,_.table)(Object.fromEntries(t.map(c=>{const f=this.grouped.column(c);return[c,i.map(M=>f?.get(M))]})));e($.fromTrusted(u,this.variableMetadata),s,a++)}}rollup(e){const r=this.grouped.rollup(Object.fromEntries(Object.entries(e).map(([n,a])=>[n,_.op[a.aggregation](a.variableName)]))),t=Object.fromEntries(this.groupedBy.map(n=>{const a=this.variableMetadata[n],i=a?.type??"categorical";return[n,{type:i,valueFormat:a?.valueFormat??R[i]}]}));for(const[n,{variableName:a,aggregation:i}]of Object.entries(e)){const o=this.variableMetadata[a],s=o?.type??"numeric",u=o?.valueFormat??R[s];t[n]={type:Ge(i,s),valueFormat:Ke(i,u)}}return $.fromTrusted(r,t)}getStableKey(e,r){return J(e.map(t=>t.get(r)))}};function Jr(e,r,t){const n=r.map(s=>e[s]?.valueFormat??{type:"decimal"}),[a,...i]=n;if(!a)return{type:"decimal"};for(const s of n)if(s.type==="lookup")throw new L({code:"INVALID_DATA_SHAPE",message:"Cannot reshape: a source column has a lookup format and lookups cannot nest"});if(i.every(s=>(0,fe.isEqual)(s,a))||a.type==="lookup")return a;const o={};for(const[s,u]of r.entries()){const c=J([u]),f=n[s];f&&f.type!=="lookup"&&(o[c]=f)}return{type:"lookup",byVariable:t,cases:o,fallback:a}}var qe=class{constructor(e){this.label=e,this.items=new Map}register(e,r){return this.items.set(e,r),this}get(e){if(!this.items.has(e)){const r=[...this.items.keys()].map(t=>`'${t}'`).join(", ");throw new L({code:"UNKNOWN_REGISTERED_TYPE",message:`Unknown ${this.label}: '${e}' (available: ${r})`,context:{kind:this.label,requested:e,available:[...this.items.keys()]},suggestion:`Register a custom ${this.label} named '${e}' in the \`plugins\` array, or use one of: ${r}.`})}return this.items.get(e)}getAll(){return[...this.items.values()]}has(e){return this.items.has(e)}},Zr=(e,r)=>{const t=typeof e=="string"?e.trim():e;if(T(t))return{type:"decimal"};const n=typeof t=="string"&&Be(t,r);if(n)return n;const a=typeof t=="string"&&Ur(t,r);return a||(Ue(e)?{type:"date"}:Se(e)?{type:"percentage"}:Ne(e)&&typeof e=="string"?{type:"currency",iso:Tr(e)}:{type:"text"})},et={type:"year",dateFormat:"yyyy"},He=e=>{const r=e._metadata?.parsingLocale??"en-GB",t={},n=at(e),a=tt(e);for(const[i,o]of e.columns.entries()){if(o._metadata?.isHidden)continue;const s=n.get(o.key);if(w(s))continue;const u=i===a?et:Zr(s,r),c=De(u);t[o.key]=nt(o.key,e.rows,u,c,r)}return new $(t)},rt=class extends _e{dependencies(e){return[e]}run(e){return He(e)}},tt=e=>{const r=it(e.rows,5);return e.columns.findIndex(t=>{const n=r.map(a=>a[t.key]).filter(a=>!w(a));return n.length>=2&&n.every(Cr)})},nt=(e,r,t,n,a)=>({type:n,values:r.reduce((i,o)=>(Le(o)||i.push(Ye(o[e],t,a)),i),[]),valueFormat:t}),at=e=>{const r=new Map,t=new Set(e.columns.map(n=>n.key));for(const n of e.rows){for(const a of t){const i=n[a];w(i)||(r.set(a,i),t.delete(a))}if(t.size===0)break}return r},it=(e,r)=>{const t=[];for(const n of e)if(Le(n)||t.push(n),t.length===r)return t;return t},ot=class{constructor(){this.transformType="aggregate"}apply(e,r){const{options:t}=r,n={};for(const a of t.operations)n[a.as]={variableName:a.variableName,aggregation:a.op};return e.groupBy(...t.groupby).rollup(n)}},st=class{constructor(){this.transformType="constant"}apply(e,r){const{options:t}=r;return e.addConstantVariable(t.variableName,t.type,t.value)}getIntroducedVariables(e){const{options:r}=e;return[r.variableName]}},ut=class{constructor(){this.transformType="filter"}apply(e,r){const{options:t}=r;return e.filter(t.variableName,t.operator,t.value)}},lt=class{constructor(){this.transformType="reshape"}apply(e,r){const{options:t}=r;return e.reshapeFromWideToLong({keep:t.keep,reshape:t.reshape,keyName:t.keyName,valueName:t.valueName})}getIntroducedVariables(e){const{options:r}=e;return[r.keyName??"key"]}},ct=class{constructor(){this.transformType="sort"}apply(e,r){const{options:t}=r;return e.orderBy(t.variableName,t.direction??"asc")}},dt=[new ot,new st,new ut,new lt,new ct],ft=class extends qe{constructor(){super("transform");for(const e of dt)this.register(e.transformType,e)}},yt=["grey","red","orange","yellow","green","cyan","blue","purple","pink"],mt=["cyan","pink","purple","red","orange","yellow","green","blue"],ne=["#B399FE","#FC7E91","#33B6E0","#FFC849","#25CDA5","#FA9B65","#D93C95","#845FD8","#3F8EEB","#58C8D8","#F35074","#6EA0DA"],g={red:"#E83562",orange:"#F38650",yellow:"#FBBC30",green:"#31FCB4",cyan:"#40F8FF",blue:"#279EFF",purple:"#B399FD",dark_purple:"#6D48D2",plum:"#C82184",pink:"#FC8497"},pt=[g.purple,g.dark_purple],bt=[g.purple,g.pink,g.yellow,g.blue,g.red,g.cyan,g.orange,g.plum,g.green,g.dark_purple],v={green:"#B2DDC9",cyan:"#A2D5E2",blue:"#AAC4FF",purple:"#B2A4FF",plum:"#DCA8C7",pink:"#FFCCD3",red:"#FFADAD",orange:"#FFDEB4",yellow:"#FDF7C3"},gt=[v.green,v.purple,v.red,v.cyan,v.pink,v.blue,v.orange,v.plum,v.yellow],K={grey900:"#1c1917",grey800:"#292524",grey700:"#44403c",grey600:"#57534e",grey500:"#78716c",grey400:"#a8a29e",grey300:"#d6d3d1",grey200:"#e7e5e4",grey100:"#f5f5f4",grey50:"#fafaf9",red900:"#7f1d1d",red800:"#991b1b",red700:"#b91c1c",red600:"#dc2626",red500:"#ef4444",red400:"#f87171",red300:"#fca5a5",red200:"#fecaca",red100:"#fee2e2",red50:"#fef2f2",orange900:"#7c2d12",orange800:"#9a3412",orange700:"#c2410c",orange600:"#ea580c",orange500:"#f97316",orange400:"#fb923c",orange300:"#fdba74",orange200:"#fed7aa",orange100:"#ffedd5",orange50:"#fff7ed",yellow900:"#553B0C",yellow800:"#6F4B08",yellow700:"#8D6300",yellow600:"#BD8A00",yellow500:"#E5B400",yellow400:"#FFC800",yellow300:"#FBDA2B",yellow200:"#FEED72",yellow100:"#FEF8B4",yellow50:"#FEFCE2",green900:"#064e3b",green800:"#065f46",green700:"#047857",green600:"#059669",green500:"#10b981",green400:"#34d399",green300:"#6ee7b7",green200:"#a7f3d0",green100:"#d1fae5",green50:"#ecfdf5",cyan900:"#164e63",cyan800:"#155e75",cyan700:"#0e7490",cyan600:"#0891B2",cyan500:"#06b6d4",cyan400:"#22d3ee",cyan300:"#67e8f9",cyan200:"#a5f3fc",cyan100:"#cffafe",cyan50:"#ecfeff",blue900:"#1e3a8a",blue800:"#1e40af",blue700:"#1d4ed8",blue600:"#2563eb",blue500:"#3b82f6",blue400:"#60a5fa",blue300:"#93c5fd",blue200:"#bfdbfe",blue100:"#dbeafe",blue50:"#eff6ff",purple900:"#4c1d95",purple800:"#5b21b6",purple700:"#6d28d9",purple600:"#7c3aed",purple500:"#8b5cf6",purple400:"#a78bfa",purple300:"#c4b5fd",purple200:"#ddd6fe",purple100:"#ede9fe",purple50:"#f5f3ff",pink900:"#751A5E",pink800:"#8F1972",pink700:"#AF1C8A",pink600:"#D326A8",pink500:"#E845BF",pink400:"#F979D9",pink300:"#FCABE8",pink200:"#FED0F3",pink100:"#FFE8F9",pink50:"#FFF4FC"},ht=[K.grey200,v.green,v.red,K.grey200],ce={dark:{1:[500],2:[600,400],3:[600,400,200],4:[600,500,300,100],5:[700,600,400,200,50],6:[600,500,400,300,200,100],7:[600,500,400,300,200,100,50],default:[700,600,500,400,300,200,100,50]},light:{1:[600],2:[700,500],3:[800,600,400],4:[800,600,400,300],5:[800,700,600,500,400],6:[800,700,600,500,400,300],7:[900,800,700,600,500,400,300],default:[900,800,700,600,500,400,300,200]}},p={cyan:"#22D3EE",pink:"#F377EF",purple:"#6528F7",red:"#FB2576",orange:"#FF9300",yellow:"#FBFF00",green:"#06FF00",blue:"#0079FF"},C=[p.cyan,p.pink,p.purple,p.red,p.orange,p.yellow,p.green,p.blue],vt=[p.cyan,p.green,p.red,p.cyan],k={start:"#84D1FC",positive:"#84FC89",negative:"#FC8497",total:"#84D1FC"},Et=[k.start,k.positive,k.negative,k.total],Mt={transform:"linear",reverse:!1,nice:!0,zero:!1,domainMin:null,domainMax:null,range:null,scheme:null,interpolate:"lab",domainMid:null,symmetric:!1},Ot={size:[4,20],alpha:[.1,1],strokeWidth:[1,4]},_t={domainMin:null,domainMax:null,nice:!1,reverse:!1},At={range:null,domain:null,padding:.1,reverse:!1},de={palette:{type:"default"}};function Tt(e,r="light",t){return((t!==void 0?ce[r][t]:void 0)??ce[r].default).map(n=>K[`${e}${n}`])}function Dt(e){const r=C.indexOf(p[e]);return r<=0?C:[...C.slice(r),...C.slice(0,r)]}function Ft(e,r){switch(e.type){case"default":return ne;case"graphy":return e.variant==="waterfall"?Et:bt;case"pastel":return e.variant==="waterfall"?ht:gt;case"neon":return e.variant==="waterfall"?vt:Dt(e.base);case"mono":return Tt(e.base,e.variant??"light",r);case"custom":return e.colors}}function St(e,r){if(!r)return e;const t=[...e];for(const[n,a]of Object.entries(r)){const i=Number(n);if(!Number.isInteger(i)||i<1)continue;const o=i-1;o<t.length&&(t[o]=a)}return t}function Pt(e,r,t,n){if(!r)return;const a=t?.type==="custom"?n[t.id]:void 0,i={};for(const[o,s]of Object.entries(r)){const u=Number(o);if(!(!Number.isInteger(u)||u<1)){if(s.hex!==void 0){i[u]=s.hex;continue}if(s.id!==void 0){const c=a?.find(f=>f.id===s.id)?.hex;c!==void 0?i[u]=c:e.diagnostics.addWarning({code:"PALETTE_NOT_FOUND",message:`Palette override at slot ${u} with id '${s.id}' did not resolve against the active palette — falling back to palette color.`,context:{requested:s.id,available:a?.map(f=>f.id)??[]},suggestion:"Define the override id in the active custom palette, or use a hex value instead."})}}}return Object.keys(i).length>0?i:void 0}function Nt(e,r,t){if(!r)return de.palette;if(r.type==="custom"){const n=t[r.id];if(!n)return e.diagnostics.addWarning({code:"PALETTE_NOT_FOUND",message:`Custom palette with id "${r.id}" not found — falling back to the default palette.`,context:{requested:r.id,available:Object.keys(t)},suggestion:"Register the palette in customPalettes, or reference an existing palette id."}),de.palette;const a=n.map(i=>i.hex);return{type:"custom",id:r.id,colors:a}}return r}function m(e,r={}){const t=r;return{type:"scale",scaledAesthetic:e,scaleType:"continuous",transform:r.transform,reverse:r.reverse,nice:r.nice,zero:r.zero,clamp:r.clamp,domainMin:r.domainMin??null,domainMax:r.domainMax??null,range:r.range,scheme:t.scheme??null,interpolate:t.interpolate,domainMid:t.domainMid??null,symmetric:t.symmetric}}function U(e,r={}){return{type:"scale",scaledAesthetic:e,scaleType:"datetime",domainMin:r.domainMin??null,domainMax:r.domainMax??null,nice:r.nice,reverse:r.reverse,clamp:r.clamp}}function O(e,r={}){return{type:"scale",scaledAesthetic:e,scaleType:"discrete",range:r.range,domain:r.domain??null,padding:r.padding,reverse:r.reverse}}function j(e,r={}){return{type:"scale",scaledAesthetic:e,scaleType:"identity"}}function B(e,r){return{type:"scale",scaledAesthetic:e,scaleType:"inferred",options:r}}function Xe(e,r={}){return{type:"scale",scaledAesthetic:e,scaleType:"palette",palette:r.palette,overrides:r.overrides}}var Qe=["none","xs","sm","md","lg","xl","full"],jt={point:Lt,line:It,area:Vt,bar:wt,rule:Ct},Rt=e=>typeof e=="string"&&Qe.includes(e);function P(e,r){return{type:"layer",id:r.id,geom:e,mapping:r.aes,stat:r.stat,params:r.params,position:r.position,yScaleType:r.yScaleType,transforms:r.transforms,interactive:r.interactive,dataLabels:r.dataLabels}}function Lt(e={}){return P("point",e)}function It(e={}){return P("line",e)}function Vt(e={}){return P("area",e)}function wt(e={}){return P("bar",e)}function Ct(e={}){return P("rule",e)}var kt=["dimmed","hovered"],Ut=e=>typeof e=="object"&&e!==null&&typeof e.light=="string"&&typeof e.dark=="string",Bt=e=>typeof e=="object"&&e!==null&&typeof e.token=="string";function xt(e){return{type:"styles",...e}}function S(e){return{token:e}}var D=e=>{const r={...e?.where===void 0?{}:{where:e.where},...e?.state===void 0?{}:{state:e.state}};return{...e?.id===void 0?{}:{id:e.id},...Object.keys(r).length===0?{}:{when:r}}},F=e=>e?.layer===void 0?{}:{layer:e.layer},E={geom:Object.assign((e,r)=>({...D(r),select:{target:"geom",...F(r)},declarations:e}),{bar:(e,r)=>({...D(r),select:{target:"geom",kind:"bar",...F(r)},declarations:e}),line:(e,r)=>({...D(r),select:{target:"geom",kind:"line",...F(r)},declarations:e}),area:(e,r)=>({...D(r),select:{target:"geom",kind:"area",...F(r)},declarations:e}),point:(e,r)=>({...D(r),select:{target:"geom",kind:"point",...F(r)},declarations:e}),rule:(e,r)=>({...D(r),select:{target:"geom",kind:"rule",...F(r)},declarations:e})})},Je=ne[0],$t=Object.freeze({light:"#1D2129",dark:"#FFFFFF"}),Ze="#ffffff",er=.4,Yt="sm",zt=1,Wt=2,rr=.3,Gt=8,Kt={geomColor:Je,ruleColor:$t,pointBorderColor:"#ffffff",hoverAffordanceColor:Ze},tr=[E.geom({color:S("geomColor"),alpha:1}),E.geom.bar({borderRadius:"sm",borderWidth:1}),E.geom.line({strokeWidth:2,lineType:"solid"}),E.geom.area({alpha:rr,strokeWidth:2,lineType:"solid",strokeAlpha:1}),E.geom.point({size:8,borderColor:S("pointBorderColor"),borderWidth:1}),E.geom.rule({color:S("ruleColor"),strokeWidth:1,lineType:"dashed"}),E.geom({alpha:er},{state:"dimmed"}),E.geom.point({borderColor:S("hoverAffordanceColor")},{state:"hovered"}),E.geom.bar({borderColor:S("hoverAffordanceColor")},{state:"hovered"})];for(const e of tr){Object.freeze(e.select);for(const r of Object.values(e.declarations))typeof r=="object"&&Object.freeze(r);Object.freeze(e.declarations),e.when!==void 0&&Object.freeze(e.when),Object.freeze(e)}var qt=Object.freeze({tokens:Object.freeze(Kt),defaults:Object.freeze(tr),overrides:Object.freeze([])}),Ht={cartesian:(e={})=>({type:"coord",coordType:"cartesian",params:e}),flip:(e={})=>({type:"coord",coordType:"flip",params:e}),polar:(e={})=>({type:"coord",coordType:"polar",params:e})},Xt={x:Object.assign(e=>B("x",e),{continuous:e=>m("x",e),discrete:e=>O("x",e),datetime:e=>U("x",e),log:e=>m("x",{...e,transform:"log"}),sqrt:e=>m("x",{...e,transform:"sqrt"})}),y:Object.assign(e=>B("y",e),{continuous:e=>m("y",e),discrete:e=>O("y",e),datetime:e=>U("y",e),log:e=>m("y",{...e,transform:"log"}),sqrt:e=>m("y",{...e,transform:"sqrt"})}),ySecondary:Object.assign(e=>B("ySecondary",e),{continuous:e=>m("ySecondary",e),discrete:e=>O("ySecondary",e),datetime:e=>U("ySecondary",e),log:e=>m("ySecondary",{...e,transform:"log"}),sqrt:e=>m("ySecondary",{...e,transform:"sqrt"})}),color:{continuous:e=>m("color",e),discrete:e=>O("color",e),palette:e=>Xe("color",e)},size:{continuous:e=>m("size",e),discrete:e=>O("size",e),identity:e=>j("size",e)},alpha:{continuous:e=>m("alpha",e),discrete:e=>O("alpha",e),identity:e=>j("alpha",e)},strokeWidth:{continuous:e=>m("strokeWidth",e),discrete:e=>O("strokeWidth",e),identity:e=>j("strokeWidth",e)},lineType:{discrete:e=>O("lineType",e),identity:e=>j("lineType",e)}},Qt={identity:Zt,count:en,smooth:Jt,mean:rn,sum:tn};function Jt(e){return{type:"smooth",method:e.method,order:e.order,bandwidth:e.bandwidth}}function Zt(){return{type:"identity"}}function en(){return{type:"count"}}function rn(){return{type:"mean"}}function tn(){return{type:"sum"}}var nn={reshape:an,filter:on,sort:sn,aggregate:un,constant:ln};function an(e={}){return{type:"transform",transformType:"reshape",options:e}}function on(e){return{type:"transform",transformType:"filter",options:e}}function sn(e){return{type:"transform",transformType:"sort",options:e}}function un(e){return{type:"transform",transformType:"aggregate",options:e}}function ln(e){return{type:"transform",transformType:"constant",options:e}}function cn(e){const r=e.layout?.gaps;if(r===void 0)return e;const t={};for(const n of Object.keys(r)){const a=r[n];a!==void 0&&(t[n]=typeof a=="number"?{after:a}:a)}return{...e,layout:{...e.layout,gaps:t}}}var dn=["lilac","neon_pink","blackberry","sun","iceland","sunset","ultraviolet","purple","ice_cream","mint","cool","fresh"];function fn(e){return{type:"config",config:cn(e)}}Object.defineProperty(exports,"BORDER_PRESETS",{enumerable:!0,get:function(){return dn}});Object.defineProperty(exports,"BORDER_RADIUS_TOKENS",{enumerable:!0,get:function(){return Qe}});Object.defineProperty(exports,"BUILTIN_STYLES",{enumerable:!0,get:function(){return qt}});Object.defineProperty(exports,"CONSTANT_VARIABLES",{enumerable:!0,get:function(){return H}});Object.defineProperty(exports,"CONTINUOUS_SCALE_DEFAULTS",{enumerable:!0,get:function(){return Mt}});Object.defineProperty(exports,"ChronologicalDateManager",{enumerable:!0,get:function(){return Ie}});Object.defineProperty(exports,"DATETIME_SCALE_DEFAULTS",{enumerable:!0,get:function(){return _t}});Object.defineProperty(exports,"DEFAULT_AREA_ALPHA",{enumerable:!0,get:function(){return rr}});Object.defineProperty(exports,"DEFAULT_BAR_BORDER_RADIUS",{enumerable:!0,get:function(){return Yt}});Object.defineProperty(exports,"DEFAULT_BORDER_WIDTH",{enumerable:!0,get:function(){return zt}});Object.defineProperty(exports,"DEFAULT_COLOR_PALETTE",{enumerable:!0,get:function(){return ne}});Object.defineProperty(exports,"DEFAULT_DIMMED_ALPHA",{enumerable:!0,get:function(){return er}});Object.defineProperty(exports,"DEFAULT_GEOM_COLOR",{enumerable:!0,get:function(){return Je}});Object.defineProperty(exports,"DEFAULT_HOVER_AFFORDANCE_COLOR",{enumerable:!0,get:function(){return Ze}});Object.defineProperty(exports,"DEFAULT_LOCALE",{enumerable:!0,get:function(){return te}});Object.defineProperty(exports,"DEFAULT_POINT_SIZE",{enumerable:!0,get:function(){return Gt}});Object.defineProperty(exports,"DEFAULT_SEQUENTIAL_RAMP",{enumerable:!0,get:function(){return pt}});Object.defineProperty(exports,"DEFAULT_STROKE_WIDTH",{enumerable:!0,get:function(){return Wt}});Object.defineProperty(exports,"DISCRETE_SCALE_DEFAULTS",{enumerable:!0,get:function(){return At}});Object.defineProperty(exports,"DataCompiler",{enumerable:!0,get:function(){return rt}});Object.defineProperty(exports,"Dataset",{enumerable:!0,get:function(){return $}});Object.defineProperty(exports,"GROUP_VARIABLES",{enumerable:!0,get:function(){return me}});Object.defineProperty(exports,"IS_DEV",{enumerable:!0,get:function(){return A}});Object.defineProperty(exports,"InternalError",{enumerable:!0,get:function(){return h}});Object.defineProperty(exports,"MONO_BASES",{enumerable:!0,get:function(){return yt}});Object.defineProperty(exports,"NEON_BASES",{enumerable:!0,get:function(){return mt}});Object.defineProperty(exports,"NON_POSITION_RANGE_DEFAULTS",{enumerable:!0,get:function(){return Ot}});Object.defineProperty(exports,"POSITION_VARIABLES",{enumerable:!0,get:function(){return pe}});Object.defineProperty(exports,"RULE_VARIABLES",{enumerable:!0,get:function(){return he}});Object.defineProperty(exports,"Registry",{enumerable:!0,get:function(){return qe}});Object.defineProperty(exports,"STACK_VARIABLES",{enumerable:!0,get:function(){return be}});Object.defineProperty(exports,"STAT_VARIABLES",{enumerable:!0,get:function(){return X}});Object.defineProperty(exports,"STYLE_STATES",{enumerable:!0,get:function(){return kt}});Object.defineProperty(exports,"SUFFIX_MULTIPLIERS",{enumerable:!0,get:function(){return Fe}});Object.defineProperty(exports,"Stage",{enumerable:!0,get:function(){return _e}});Object.defineProperty(exports,"TransformRegistry",{enumerable:!0,get:function(){return ft}});Object.defineProperty(exports,"UserInputError",{enumerable:!0,get:function(){return L}});Object.defineProperty(exports,"VISUAL_VARIABLES",{enumerable:!0,get:function(){return ge}});Object.defineProperty(exports,"VizError",{enumerable:!0,get:function(){return Z}});Object.defineProperty(exports,"applyOverrides",{enumerable:!0,get:function(){return St}});Object.defineProperty(exports,"areDataValuesEqual",{enumerable:!0,get:function(){return pr}});Object.defineProperty(exports,"areMappingsEquivalent",{enumerable:!0,get:function(){return dr}});Object.defineProperty(exports,"buildLayerInput",{enumerable:!0,get:function(){return P}});Object.defineProperty(exports,"config",{enumerable:!0,get:function(){return fn}});Object.defineProperty(exports,"continuous",{enumerable:!0,get:function(){return m}});Object.defineProperty(exports,"coord",{enumerable:!0,get:function(){return Ht}});Object.defineProperty(exports,"createPerKeyMemo",{enumerable:!0,get:function(){return Me}});Object.defineProperty(exports,"createSingleSlotMemo",{enumerable:!0,get:function(){return hr}});Object.defineProperty(exports,"datetime",{enumerable:!0,get:function(){return U}});Object.defineProperty(exports,"discrete",{enumerable:!0,get:function(){return O}});Object.defineProperty(exports,"extractConstantValue",{enumerable:!0,get:function(){return ve}});Object.defineProperty(exports,"extractVariableName",{enumerable:!0,get:function(){return Q}});Object.defineProperty(exports,"geom",{enumerable:!0,get:function(){return jt}});Object.defineProperty(exports,"getStableKey",{enumerable:!0,get:function(){return J}});Object.defineProperty(exports,"identity",{enumerable:!0,get:function(){return j}});Object.defineProperty(exports,"inferXVariable",{enumerable:!0,get:function(){return lr}});Object.defineProperty(exports,"inferred",{enumerable:!0,get:function(){return B}});Object.defineProperty(exports,"isBorderRadiusToken",{enumerable:!0,get:function(){return Rt}});Object.defineProperty(exports,"isCategoricalValueFormat",{enumerable:!0,get:function(){return Ae}});Object.defineProperty(exports,"isCompilerCachingEnabled",{enumerable:!0,get:function(){return gr}});Object.defineProperty(exports,"isCurrencyValueFormat",{enumerable:!0,get:function(){return Er}});Object.defineProperty(exports,"isDateWithoutYearValueFormat",{enumerable:!0,get:function(){return Mr}});Object.defineProperty(exports,"isDefined",{enumerable:!0,get:function(){return q}});Object.defineProperty(exports,"isInternalVariable",{enumerable:!0,get:function(){return sr}});Object.defineProperty(exports,"isLightDarkColor",{enumerable:!0,get:function(){return Ut}});Object.defineProperty(exports,"isLookupValueFormat",{enumerable:!0,get:function(){return ee}});Object.defineProperty(exports,"isNonEmptyArray",{enumerable:!0,get:function(){return nr}});Object.defineProperty(exports,"isNumericDataValue",{enumerable:!0,get:function(){return mr}});Object.defineProperty(exports,"isNumericValueFormat",{enumerable:!0,get:function(){return Te}});Object.defineProperty(exports,"isPlainObject",{enumerable:!0,get:function(){return ar}});Object.defineProperty(exports,"isStatVariable",{enumerable:!0,get:function(){return ur}});Object.defineProperty(exports,"isStrictCategoricalDataValue",{enumerable:!0,get:function(){return yr}});Object.defineProperty(exports,"isStrictNumericDataValue",{enumerable:!0,get:function(){return Ee}});Object.defineProperty(exports,"isStrictTemporalDataValue",{enumerable:!0,get:function(){return x}});Object.defineProperty(exports,"isStyleTokenRef",{enumerable:!0,get:function(){return Bt}});Object.defineProperty(exports,"isTemporalDataValue",{enumerable:!0,get:function(){return fr}});Object.defineProperty(exports,"isTemporalValueFormat",{enumerable:!0,get:function(){return V}});Object.defineProperty(exports,"palette",{enumerable:!0,get:function(){return Xe}});Object.defineProperty(exports,"parseDataset",{enumerable:!0,get:function(){return He}});Object.defineProperty(exports,"parseValue",{enumerable:!0,get:function(){return Ye}});Object.defineProperty(exports,"prefixInternalVariable",{enumerable:!0,get:function(){return d}});Object.defineProperty(exports,"readISOInstant",{enumerable:!0,get:function(){return kr}});Object.defineProperty(exports,"readMainAxisVariable",{enumerable:!0,get:function(){return cr}});Object.defineProperty(exports,"resolvePaletteConfig",{enumerable:!0,get:function(){return Nt}});Object.defineProperty(exports,"resolvePaletteOverrides",{enumerable:!0,get:function(){return Pt}});Object.defineProperty(exports,"resolvePaletteRange",{enumerable:!0,get:function(){return Ft}});Object.defineProperty(exports,"resolveScaledAestheticVariable",{enumerable:!0,get:function(){return or}});Object.defineProperty(exports,"scale",{enumerable:!0,get:function(){return Xt}});Object.defineProperty(exports,"setCompilerCachingEnabled",{enumerable:!0,get:function(){return br}});Object.defineProperty(exports,"stat",{enumerable:!0,get:function(){return Qt}});Object.defineProperty(exports,"style",{enumerable:!0,get:function(){return E}});Object.defineProperty(exports,"styles",{enumerable:!0,get:function(){return xt}});Object.defineProperty(exports,"sumMemoStats",{enumerable:!0,get:function(){return vr}});Object.defineProperty(exports,"toExplicitValueFormat",{enumerable:!0,get:function(){return Or}});Object.defineProperty(exports,"token",{enumerable:!0,get:function(){return S}});Object.defineProperty(exports,"transform",{enumerable:!0,get:function(){return nn}});