pivotkit-element 0.4.0 → 0.6.0

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 (51) hide show
  1. package/CHANGELOG.md +114 -1
  2. package/README.md +1 -0
  3. package/dist/THIRD_PARTY_LICENSES.txt +2 -2
  4. package/dist/chunks/chunk-5QXN3X2Q.js +1 -0
  5. package/dist/chunks/{chunk-VMHRXWK7.js → chunk-65G326ME.js} +1 -1
  6. package/dist/chunks/chunk-7V4PAOK7.js +1 -0
  7. package/dist/chunks/chunk-CHSIHYYE.js +2 -0
  8. package/dist/chunks/chunk-CXSW4YRL.js +13 -0
  9. package/dist/chunks/chunk-HFUBAP3D.js +1 -0
  10. package/dist/chunks/chunk-KO3EKDH5.js +1 -0
  11. package/dist/chunks/chunk-NSPPM3IJ.js +16 -0
  12. package/dist/chunks/chunk-NXZQI5LC.js +6 -0
  13. package/dist/chunks/chunk-OHKPNELV.js +1 -0
  14. package/dist/chunks/chunk-R6GXMVRO.js +1 -0
  15. package/dist/chunks/chunk-WKVC2RPA.js +1 -0
  16. package/dist/chunks/chunk-XR4CMFGN.js +1 -0
  17. package/dist/chunks/chunk-YMLEL3SK.js +8 -0
  18. package/dist/chunks/echarts-4DC3BQOK.js +5 -0
  19. package/dist/chunks/export-O6XO33DV.js +1 -0
  20. package/dist/chunks/import-csv-UCA275TR.js +1 -0
  21. package/dist/chunks/import-json-W4GCIW36.js +1 -0
  22. package/dist/chunks/import-ui-SZTWEYHK.js +1 -0
  23. package/dist/chunks/link-7K6I4SJS.js +1 -0
  24. package/dist/chunks/menu-texts-de-CRJ5OIVT.js +1 -0
  25. package/dist/chunks/menus-F36OYGXV.js +2 -0
  26. package/dist/chunks/report-run-BZBFOMPF-T26ENZEM.js +60 -0
  27. package/dist/chunks/unused-texts-Y4R67XSN-VYGDYJND.js +1 -0
  28. package/dist/chunks/unused-texts-de-6YVPTNVS-FL6CDBZX.js +1 -0
  29. package/dist/element.js +1 -1
  30. package/dist/import-worker.js +1 -1
  31. package/dist/index.js +1 -1
  32. package/package.json +11 -5
  33. package/types/element.d.ts +32 -4
  34. package/types/jsx.d.ts +1 -1
  35. package/dist/chunks/chunk-D2E6EFC7.js +0 -6
  36. package/dist/chunks/chunk-FUHQLTFM.js +0 -1
  37. package/dist/chunks/chunk-IBQE3N74.js +0 -1
  38. package/dist/chunks/chunk-MB64GADT.js +0 -1
  39. package/dist/chunks/chunk-O2TTHYGT.js +0 -1
  40. package/dist/chunks/chunk-WNTTPBZ5.js +0 -9
  41. package/dist/chunks/chunk-WXBFHMFX.js +0 -1
  42. package/dist/chunks/echarts-42T6EZ6B.js +0 -18
  43. package/dist/chunks/export-6ILXDVGS.js +0 -6
  44. package/dist/chunks/import-csv-TPSP3I44.js +0 -1
  45. package/dist/chunks/import-json-NCJFIKAC.js +0 -1
  46. package/dist/chunks/import-ui-YBYWR3Q5.js +0 -1
  47. package/dist/chunks/link-52SWRX4P.js +0 -1
  48. package/dist/chunks/menu-texts-de-YZIOIWPD.js +0 -1
  49. package/dist/chunks/menus-UWW77KFI.js +0 -1
  50. package/dist/chunks/unused-texts-K3VFH65P-5EAURTYC.js +0 -1
  51. package/dist/chunks/unused-texts-de-OW4TGIVX-GHETGXFE.js +0 -1
@@ -1 +0,0 @@
1
- import{b as Ve,c as z,d as le,f as Je,g as ue,h as Ge,i as ce,j as ee}from"./chunk-O2TTHYGT.js";import{a as Pe,b as $,c as x,d as I,f as ie,g as k,h as ae,i as y,j as P,k as S,m as Ze,n as Q,o as H,p as Be,q as K}from"./chunk-MB64GADT.js";var Se=Object.freeze(["string","number","boolean","date"]),Vt=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,Zt=100;function He(e){let t=e.trim();return t.length<=Zt&&Vt.test(t)}var Bt=100,Ke=e=>e==null||e===""||typeof e=="function"||typeof e=="symbol";function Jt(e,t){if(Ke(e))return null;switch(typeof e){case"number":return Number.isFinite(e)?"number":null;case"boolean":return"boolean";case"string":return Je(e)?"date":t&&He(e)?"number":"string";case"bigint":return"number";default:return e instanceof Date?Number.isNaN(e.getTime())?null:"date":"string"}}function We(e,t){let n=null;for(let o=0;o<e.length;o++){let r=Jt(e[o],t);if(r==="string")return"string";if(!(r===null||r===n))if(n===null)n=r;else return"string"}return n??"null"}function Gt(e){if(typeof e=="string")return e;if(e instanceof Date)return Number.isNaN(e.getTime())?"":e.toISOString();if(typeof e=="object")try{return JSON.stringify(e)??""}catch{return""}return String(e)}function Wt(e){if(typeof e=="number")return Number.isFinite(e)?e:NaN;if(typeof e=="bigint")return Number(e);if(typeof e=="boolean")return e?1:0;if(typeof e=="string"&&He(e)){let t=Number(e.trim());return Number.isFinite(t)?t:NaN}return NaN}function Ht(e){if(typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)?e!==0:null;if(typeof e=="string"){let t=e.trim().toLowerCase();if(t==="true"||t==="1"||t==="yes")return!0;if(t==="false"||t==="0"||t==="no")return!1}return null}var Kt={number:e=>{let t=Wt(e);return Number.isNaN(t)?null:t},boolean:Ht,date:(e,t)=>{let n=ee(e,t);return Number.isNaN(n)?null:n},string:e=>{let t=Gt(e);return t===""?null:t},null:()=>null};function Yt(e,t,n,o){let r=t.length,s=new Int32Array(r),i=[],a=new Map,u=n==="number"||n==="boolean"||n==="date"?new Float64Array(r):null,l=Kt[n],c=!0;for(let m=0;m<r;m++){let p=t[m],g=Ke(p)?null:l(p,o);if(g===null){s[m]=-1,u&&(u[m]=NaN);continue}n==="date"&&g%I!==0&&(c=!1);let h=a.get(g);h===void 0&&(h=i.length,i.push(g),a.set(g,h)),s[m]=h,u&&(u[m]=typeof g=="boolean"?g?1:0:g)}let f=e.toLowerCase(),d={name:e,key:f,id:`column:${f}`,type:n,codes:s,dict:i,values:u};return n==="date"&&(d.dateOnly=c),d}function qt(e){let t=e;return t!==null&&typeof t=="object"&&!Array.isArray(t)&&Array.isArray(t.columns)&&Array.isArray(t.data)}var Xt=e=>Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView);function Rr(e,t){t=k(t,"encode");let n=qt(e);$(n||Array.isArray(e),"encode(rows): rows must be an array of objects or columnar data { columns, data }");let o=z(t),r=ue(t.timeZone),s=ce(r),i=t.inferNumbers===!0,a=Array.isArray(t.columns)?new Set(t.columns.filter(h=>typeof h=="string").map(h=>h.toLowerCase())):null,u=[],l=(h,N)=>{u.length<Bt&&u.push({path:h,message:N})},{n:c,found:f}=n?en(e,a,o,l):Qt(e,a,o,l),d=new Map;if(t.types&&typeof t.types=="object")for(let h of Object.keys(t.types)){let N=t.types[h];Se.includes(N)&&d.set(h.toLowerCase(),N)}let m=a?[...a].filter(h=>f.has(h)):[...f.keys()],p=new Map,g=m.map(h=>{let{name:N,raw:O,type:b}=f.get(h),v=We(O,i),T=v==="string"&&!i?We(O,!0):v;return p.set(h,T),Yt(N,O,d.get(h)??b??v,s)});return tn(c,g,{timeZone:r,issues:u,detected:p,cacheEntries:o.cacheEntries})}function Qt(e,t,n,o){x("rows",e.length,n.rows,"rows");let r=e.length,s=new Map;for(let i=0;i<r;i++){let a=e[i];if(a===null||typeof a!="object")continue;let u=new Set;for(let l of Object.keys(a)){let c=l.toLowerCase(),f=s.get(c);if(f===void 0){if(t&&!t.has(c))continue;f={name:l,raw:new Array(r).fill(null),spellings:new Set([l])},s.set(c,f)}else f.spellings.has(l)||(f.spellings.add(l),o(f.name,`"${l}" and "${f.name}" are one column: names match case-insensitively`));u.has(c)&&o(f.name,`row ${i} has "${l}" next to another spelling of it; the later value is used`),u.add(c),f.raw[i]=a[l]}}return{n:r,found:s}}function en(e,t,n,o){let{columns:r,data:s,types:i}=e;$(s.length===r.length,`encode(data): ${r.length} column names but ${s.length} arrays in data`),$(i==null||Array.isArray(i),"encode(data): types must be an array, one entry per column");let a=s.length===0?0:s[0]?.length;for(let l=0;l<s.length;l++)$(Xt(s[l]),`encode(data): data[${l}] must be an array of the values of column ${l}`),$(s[l].length===a,`encode(data): every column must have the same length; data[0] has ${a} values, data[${l}] ${s[l].length}`);x("rows",a,n.rows,"rows");let u=new Map;for(let l=0;l<r.length;l++){let c=r[l];$(typeof c=="string",`encode(data): columns[${l}] must be a string`);let f=c.toLowerCase();if(t&&!t.has(f))continue;let d=u.get(f);if(d!==void 0){o(d.name,`"${c}" and "${d.name}" are one column: names match case-insensitively; the later column is left out`);continue}let m=i?i[l]:void 0;$(m==null||Se.includes(m),`encode(data): types[${l}] must be one of ${Se.join(", ")}`),u.set(f,{name:c,raw:s[l],type:m??void 0})}return{n:a,found:u}}function tn(e,t,n){let o=new Map(t.map(s=>[s.key,s])),r={length:e,columns:t,schema:{fields:t.map(s=>({name:s.name,type:s.type,detected:n.detected.get(s.key)??s.type}))},column:s=>typeof s=="string"?o.get(s.toLowerCase()):void 0,timeZone:n.timeZone,issues:n.issues};return Object.defineProperty(r,"cache",{value:H(n.cacheEntries),enumerable:!1}),r}function Ye(e){let t=e;return t!==null&&typeof t=="object"&&Array.isArray(t.columns)&&typeof t.column=="function"&&"cache"in t}var B=()=>"number",nn=()=>"text";function rn(e,t){let n=new Float64Array(t);if(!e)return{add:r=>{n[r]++},get:r=>n[r]};let o=e.codes;return{add:(r,s)=>{o[s]!==-1&&n[r]++},get:r=>n[r]}}function qe(e,t){let n=new Array(t),o=e.codes;return{sets:n,add:(r,s)=>{let i=o[s];if(i===-1)return;let a=n[r];a===void 0&&(a=n[r]=new Set),a.add(i)}}}function on(e,t){let n=new Float64Array(t),o=e.values;return{add:(r,s)=>{let i=o[s];i===i&&(n[r]+=i)},get:r=>n[r]}}function sn(e,t){let n=new Float64Array(t),o=new Float64Array(t),r=e.values;return{add:(s,i)=>{let a=r[i];a===a&&(n[s]+=a,o[s]++)},get:s=>o[s]>0?n[s]/o[s]:null}}function Xe(e){return(t,n)=>{let o=new Float64Array(n).fill(NaN),r=t.values;return{add:(s,i)=>{let a=r[i];a===a&&!(o[s]*e>=a*e)&&(o[s]=a)},get:s=>Number.isNaN(o[s])?null:o[s]}}}function an(e,t){let n=new Array(t),o=e.values;return{add:(r,s)=>{let i=o[s];i===i&&(n[r]??=[]).push(i)},get:r=>{let s=n[r];if(!s||s.length===0)return null;let i=Float64Array.from(s).sort(),a=i.length>>1;return i.length%2?i[a]:(i[a-1]+i[a])/2}}}function fe(e,t){return(n,o)=>{let r=new Float64Array(o),s=new Float64Array(o),i=new Float64Array(o),a=n.values;return{add:(u,l)=>{let c=a[l];if(c===c){let f=++r[u],d=c-s[u];s[u]+=d/f,i[u]+=d*(c-s[u])}},get:u=>{let l=r[u],c=e?l-1:l;if(c<=0)return null;let f=Math.max(0,i[u])/c;return t?Math.sqrt(f):f}}}}function Qe(e){return(t,n,o)=>{let r=new Int32Array(n).fill(-1),s=t.codes;return{add:(i,a)=>{let u=s[a];if(u===-1)return;let l=r[i];(l===-1||(e?o[u]>o[l]:o[u]<o[l]))&&(r[i]=u)},get:i=>{let a=r[i];if(a===-1)return null;let u=t.dict[a];return typeof u=="boolean"?String(u):u}}}}var de=e=>e==="date"?"date":"number",et=e=>e==="date"?"date":e==="number"?"number":"text",Te=Object.freeze({count:{numeric:!1,additive:!0,resultType:B,create:rn},countUnique:{numeric:!1,keepsValues:!0,resultType:B,create:(e,t)=>{let n=qe(e,t);return{add:n.add,get:o=>n.sets[o]?n.sets[o].size:0}}},listUnique:{numeric:!1,keepsValues:!0,resultType:nn,create:(e,t,n,o)=>{let r=qe(e,t);return{add:r.add,get:s=>{let i=r.sets[s];return i?[...i].sort((a,u)=>n[a]-n[u]).map(o).join(", "):null}}}},sum:{numeric:!0,additive:!0,resultType:B,create:on},average:{numeric:!0,dates:!0,resultType:de,create:sn},median:{numeric:!0,dates:!0,keepsValues:!0,resultType:de,create:an},min:{numeric:!0,dates:!0,resultType:de,create:Xe(-1)},max:{numeric:!0,dates:!0,resultType:de,create:Xe(1)},stdev:{numeric:!0,resultType:B,create:fe(!0,!0)},stdevp:{numeric:!0,resultType:B,create:fe(!1,!0)},var:{numeric:!0,resultType:B,create:fe(!0,!1)},varp:{numeric:!0,resultType:B,create:fe(!1,!1)},first:{numeric:!1,resultType:et,create:Qe(!1)},last:{numeric:!1,resultType:et,create:Qe(!0)}}),ln=Object.freeze(Object.keys(Te));function j(e){return typeof e=="string"&&Object.hasOwn(Te,e)?Te[e]:null}function ke(e,t){let n=j(e);return n?n.numeric?t==="number"||t==="boolean"||t==="null"||t==="date"&&n.dates===!0:!0:!1}function Er(e){return ln.filter(t=>ke(t,e))}var Ce=H(128);function E(e,t={}){return Ce.getOrSet(`n|${e}|${JSON.stringify(t)}`,()=>new Intl.NumberFormat(e,t))}function U(e,t){return Ce.getOrSet(`d|${e}|${JSON.stringify(t)}`,()=>new Intl.DateTimeFormat(e,t))}function tt(e){return Ce.getOrSet(`c|${e}`,()=>new Intl.Collator(e,{numeric:!0,sensitivity:"base"}))}var un={dateStyle:"medium",timeZone:"UTC"},cn={dateStyle:"medium",timeStyle:"short",timeZone:"UTC"},C=Object.freeze({blank:"(blank)",total:"{label} Total",grandTotal:"Grand Total",values:"Values",valueName:"{agg} of {field}",countRows:"Count",true:"true",false:"false",aggregators:Object.freeze({count:"Count",countUnique:"Count Unique",listUnique:"List Unique",sum:"Sum",average:"Average",median:"Median",min:"Min",max:"Max",stdev:"StdDev",stdevp:"StdDevP",var:"Var",varp:"VarP",first:"First",last:"Last"}),showAsName:"{showAs} of {value}",showAs:Object.freeze({percentOfGrandTotal:"% of grand total",percentOfRowTotal:"% of row total",percentOfColumnTotal:"% of column total",percentOfParentRow:"% of parent row",percentOfParentColumn:"% of parent column",differenceFromPrevious:"Difference from previous",percentDifferenceFromPrevious:"% difference from previous",runningTotal:"Running total",percentRunningTotal:"% running total",rankAscending:"Rank (smallest first)",rankDescending:"Rank (largest first)"})});function te(e,t){let n=t&&t.fields;if(!n||typeof n!="object"||typeof e!="string")return e;let o=i=>typeof n[i]=="string"&&n[i].trim()!=="";if(Object.hasOwn(n,e)&&o(e))return n[e];let r=e.toLowerCase(),s=Object.keys(n).find(i=>i.toLowerCase()===r&&o(i));return s===void 0?e:n[s]}function ne(e,t,n,o=C){if(t==null)return o.blank??C.blank;if(e.labeler)return e.labeler(t,n);switch(e.type){case"date":return U(n,e.dateOnly?un:cn).format(new Date(Number(t)));case"boolean":return t?o.true??"true":o.false??"false";default:return String(t)}}function fn(e,t,n){let o=e==null,r=t==null;if(o||r)return o===r?0:o?1:-1;let s=typeof e=="number"||typeof e=="boolean",i=typeof t=="number"||typeof t=="boolean";return s&&i?Number(e)-Number(t):s!==i?s?-1:1:tt(n).compare(String(e),String(t))}function $e(e,t,n){return n.getOrSet(`ranks:${e.id}:${t}`,()=>{let o=e.dict.map((s,i)=>i);o.sort((s,i)=>fn(e.dict[s],e.dict[i],t)||s-i);let r=new Int32Array(o.length);return o.forEach((s,i)=>{r[s]=i}),r})}function me(e,t){return String(e).replace(/\{(\w+)\}/g,(n,o)=>Object.hasOwn(t,o)?String(t[o]):n)}var Zr=Object.freeze(["number","integer","currency","percent","percent100","compact","bytes","duration","date","datetime","time","text"]),dn=20,st={ms:.001,s:1,min:60,h:3600,d:86400},mn=/^(number|integer|currency|percent|percent100|compact|bytes|duration|date|datetime|time|text)(?::([A-Za-z0-9]{1,10}))?$/,xe=new Set(["number","percent","percent100"]),it={date:{dateStyle:"medium",timeZone:"UTC"},datetime:{dateStyle:"medium",timeStyle:"short",timeZone:"UTC"},time:{timeStyle:"short",timeZone:"UTC"}},pn={signDisplay:"negative"},pe=null;function gn(e){return pe===null&&(pe=typeof Intl.supportedValuesOf=="function"?new Set(Intl.supportedValuesOf("currency")):!1),pe?pe.has(e.toUpperCase()):/^[a-z]{3}$/i.test(e)}function Y(e){if(typeof e!="string")return null;let t=mn.exec(e.trim().toLowerCase());if(!t)return null;let[,n,o]=t;return o!==void 0&&(n==="currency"&&!gn(o)||n==="duration"&&!Object.hasOwn(st,o)||xe.has(n)&&!(/^\d{1,2}$/.test(o)&&Number(o)<=dn)||!["currency","duration",...xe].includes(n))?null:{name:n,arg:o,decimals:xe.has(n)&&o!==void 0?Number(o):void 0}}function Br(e,t){let n=Y(e)||{name:"number",arg:void 0,decimals:void 0};switch(n.name){case"integer":return 0;case"number":return n.decimals??2;case"percent":case"percent100":return n.decimals??1;case"currency":return E(t,{style:"currency",currency:(n.arg||"EUR").toUpperCase()}).resolvedOptions().maximumFractionDigits??2;default:return null}}function at(e){return Y(e)!==null}function re(e){return e==null||e===""?NaN:typeof e=="number"?e:Number(e)}var Ie=(e,t)=>e===void 0?{maximumFractionDigits:t}:{minimumFractionDigits:e,maximumFractionDigits:e};function yn(e,t){if(!Number.isFinite(e))return"";let n=e<=-.05?"-":"",o=Math.abs(e);if(o<60)return`${n}${E(t,{maximumFractionDigits:1}).format(o)} s`;let r=[["d",86400],["h",3600],["min",60],["s",1]],s=r.findIndex(([,f])=>o>=f),[i,a]=r[s],u=Math.floor(o/a),l=[`${u} ${i}`],c=r[s+1];if(c){let f=Math.floor((o-u*a)/c[1]);f>0&&l.push(`${f} ${c[0]}`)}return n+l.join(" ")}function hn(e,t){if(!Number.isFinite(e))return"";let n=["B","KB","MB","GB","TB","PB"],o=Math.abs(e),r=0;for(;o>=1024&&r<n.length-1;)o/=1024,r++;let s=E(t,{maximumFractionDigits:r===0?0:1}).format(o);return`${e<0&&/[1-9]/.test(s)?"-":""}${s} ${n[r]}`}function Le(e){return e==null?"":String(e)}function Re(e,t){let n=Y(e)||{name:"number",arg:void 0,decimals:void 0},o=r=>{let s=E(t,{...pn,...r});return i=>{let a=re(i);return Number.isNaN(a)?Le(i):s.format(a)}};switch(n.name){case"text":return Le;case"integer":return o({maximumFractionDigits:0});case"currency":return o({style:"currency",currency:(n.arg||"EUR").toUpperCase()});case"percent":return o({style:"percent",...Ie(n.decimals,1)});case"percent100":{let r=o({style:"percent",...Ie(n.decimals,1)});return s=>r(re(s)/100)}case"compact":return o({notation:"compact",maximumFractionDigits:1});case"bytes":return r=>hn(re(r),t);case"duration":{let r=st[n.arg||"s"];return s=>yn(re(s)*r,t)}case"date":case"datetime":case"time":{let r=U(t,it[n.name]);return s=>{let i=re(s);return Number.isFinite(i)?r.format(new Date(i)):Le(s)}}default:return o(Ie(n.decimals,2))}}function Jr(e,t){return t=k(t,"formatter"),Re(e,K(null,t.locale))}var nt=H(64),ge=e=>e.replace(/[^ :/-]+/g,t=>`"${t.replace(/"/g,"")}"`),ye=e=>e>0?"."+"0".repeat(e):"";function Me(e,t){if(!Number.isFinite(e)||Math.abs(e)>=1e21)return 0;let n=Math.abs(e).toFixed(t).replace(/0+$/,""),o=n.indexOf(".");return o===-1?0:n.length-o-1}function rt(e,t,n=!0){let o="",r="",s=!1;for(let i of e)i.type==="integer"||i.type==="group"||i.type==="decimal"||i.type==="fraction"||i.type==="minusSign"||i.type==="percentSign"&&n?(o+=ge(r),r="",i.type==="minusSign"?o+="-":i.type==="percentSign"?o+="%":s||(o+=t,s=!0)):r+=i.value;return o+ge(r)}function lt(e,t,n,o=!0){let r=rt(e.formatToParts(t),n,o),s=rt(e.formatToParts(-t),n,o);return s===`-${r}`?r:`${r};${s}`}function bn(e,t){let n=E(t,{style:"currency",currency:e});return lt(n,1234.5,`#,##0${ye(n.resolvedOptions().maximumFractionDigits)}`)}function ot(e,t,n){return lt(E(t,{style:"percent"}),.5,`#,##0${ye(e)}`,n)}function wn(e,t){if(!Number.isFinite(e)||e===0)return"#,##0";let n=E(t,{notation:"compact",maximumFractionDigits:1}).formatToParts(Math.abs(e)),o=n.filter(l=>l.type==="integer").map(l=>l.value).join(""),r=n.filter(l=>l.type==="fraction").map(l=>l.value).join(""),s=+`${o}.${r||0}`,i=s>0?Math.round(Math.log10(Math.abs(e)/s)):0;if(i<0||i%3!==0)return"General";let a=n.findIndex(l=>l.type==="integer"),u=n.slice(a).filter(l=>l.type==="compact"||l.type==="literal").map(l=>l.value).join("");return`#,##0${ye(r.length)}${",".repeat(i/3)}${ge(u)}`}function Nn(e,t){return U(t,it[e]).formatToParts(new Date(Date.UTC(2026,0,5,3,4))).map(o=>{switch(o.type){case"year":return o.value.length===2?"yy":"yyyy";case"month":return/^\d+$/.test(o.value)?o.value.length===2?"mm":"m":"mmm";case"day":return o.value.length===2?"dd":"d";case"hour":return o.value.length===2?"hh":"h";case"minute":return"mm";case"second":return"ss";case"dayPeriod":return"AM/PM";case"weekday":return"ddd";default:return ge(o.value)}}).join("")}function Gr(e,t,n){let o=Y(e)||{name:"number",arg:void 0,decimals:void 0};switch(o.name){case"integer":return"#,##0";case"number":return`#,##0${ye(o.decimals??Me(t,2))}`;case"percent":return ot(o.decimals??Me(t*100,1),n,!0);case"percent100":return ot(o.decimals??Me(t,1),n,!1);case"currency":return nt.getOrSet(`${e}|${n}`,()=>bn((o.arg||"EUR").toUpperCase(),n));case"compact":return wn(t,n);case"date":case"datetime":case"time":return nt.getOrSet(`${o.name}|${n}`,()=>Nn(o.name,n));case"text":return"@";default:return"General"}}function Fe(e,t){let n=new Int32Array(t.length),o=[];if(e.length===0)return o.push([]),{groupOf:n,paths:o};let r=1;for(let c of e)r*=c.dict.length+1;let s=r<2**52,i=new Map,a=e.length,u=e.map(c=>c.codes),l=e.map(c=>c.dict.length+1);for(let c=0;c<t.length;c++){let f=t[c],d;if(s){d=0;for(let p=0;p<a;p++)d=d*l[p]+u[p][f]+1}else{d="";for(let p=0;p<a;p++)d+=u[p][f]+","}let m=i.get(d);if(m===void 0){m=o.length;let p=new Array(a);for(let g=0;g<a;g++)p[g]=u[g][f];o.push(p),i.set(d,m)}n[c]=m}return{groupOf:n,paths:o}}function ut(e,t,n,o,r){return{id:e,depth:t,code:n,key:o,path:r?[...r.path,o]:[],parent:r,children:[],index:0}}function Ee(e,t,n={max:1/0,used:0}){let{groupOf:o,paths:r}=Fe(e,t);x("groups",n.used+r.length+(e.length>0?1:0),n.max,"groups");let s=ut(0,0,-2,null,null),i=[s],a=Math.max(1,...e.map(d=>d.dict.length+1)),u=(Number.isFinite(n.max)?n.max:t.length*e.length+1)*a<2**53,l=new Map,c=new Array(r.length);r.forEach((d,m)=>{let p=s;for(let g=0;g<d.length;g++){let h=d[g],N=u?p.id*a+h+1:`${p.id},${h}`,O=l.get(N);if(O===void 0){n.used+i.length>=n.max&&x("groups",n.used+i.length+1,n.max,"groups");let b=h===-1?null:e[g].dict[h];O=ut(i.length,g+1,h,b,p),i.push(O),l.set(N,O),p.children.push(O)}p=O}c[m]=p});let f=new Int32Array(t.length);for(let d=0;d<t.length;d++)f[d]=c[o[d]].id;return{root:s,nodes:i,leafOf:f,leafCount:r.length}}var On=(e,t)=>e===t||e===null&&t===null||typeof e=="number"&&typeof t=="number"&&Number.isNaN(e)&&Number.isNaN(t);function ct(e,t,n){let o=t==="cols"?e.colRoot:e.rowRoot;for(let r of n||[])if(o=o.children.find(s=>On(s.key,r)),!o)return null;return o}function Yr(e,t){t=k(t,"cellRows");let{row:n=[],col:o=[]}=t,r=Array.isArray(n)?ct(e,"rows",n):n,s=Array.isArray(o)?ct(e,"cols",o):o;if(!r||!s)return new Int32Array(0);let i=(u,l,c)=>{let f=u[l];for(;f&&f.depth>c.depth;)f=f.parent;return f===c},a=[];for(let u=0;u<e.rows.length;u++)i(e.rowNodes,e.rowLeafOf[u],r)&&i(e.colNodes,e.colLeafOf[u],s)&&a.push(e.rows[u]);return Int32Array.from(a)}var De=1e-9;function ft(e){let t=new Date(e),n=(t.getUTCDay()+6)%7,o=Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()-n+3),r=new Date(o).getUTCFullYear(),s=new Date(Date.UTC(r,0,4)),i=s.getTime()+(3-(s.getUTCDay()+6)%7)*I,a=1+Math.round((o-i)/(7*I));return{year:r,week:a}}var vn=(e,t)=>U(t,{month:"short",timeZone:"UTC"}).format(new Date(Date.UTC(2e3,e-1,1))),An=(e,t)=>U(t,{month:"short",year:"numeric",timeZone:"UTC"}).format(new Date(Date.UTC(Math.floor(e/100),e%100-1,1))),Sn=(e,t)=>U(t,{weekday:"short",timeZone:"UTC"}).format(new Date(Date.UTC(2024,0,e))),eo=Object.freeze(["year","yearQuarter","yearMonth","yearWeek","day"]),to=Object.freeze(["quarter","month","week","weekday","hour"]),D=Object.freeze({year:{source:"date",type:"number",value:e=>e.getUTCFullYear(),label:e=>String(e)},quarter:{source:"date",type:"number",value:e=>Math.floor(e.getUTCMonth()/3)+1,label:e=>`Q${e}`},month:{source:"date",type:"number",value:e=>e.getUTCMonth()+1,label:vn},week:{source:"date",type:"number",value:e=>ft(e.getTime()).week,label:e=>`W${ie(e)}`},day:{source:"date",type:"date",value:e=>Math.floor(e.getTime()/I)*I},hour:{source:"date",type:"number",value:e=>e.getUTCHours(),label:e=>`${ie(e)}:00`},weekday:{source:"date",type:"number",value:e=>(e.getUTCDay()+6)%7+1,label:Sn},yearQuarter:{source:"date",type:"number",value:e=>e.getUTCFullYear()*10+Math.floor(e.getUTCMonth()/3)+1,label:e=>`Q${e%10} ${Math.floor(e/10)}`},yearMonth:{source:"date",type:"number",value:e=>e.getUTCFullYear()*100+e.getUTCMonth()+1,label:An},yearWeek:{source:"date",type:"number",value:e=>{let t=ft(e.getTime());return t.year*100+t.week},label:e=>`${Math.floor(e/100)}-W${ie(e%100)}`},bin:{source:"number",type:"number"}}),no=Object.freeze(Object.keys(D)),Tn=Object.freeze([{unit:"day",maxDays:62},{unit:"yearMonth",maxDays:2*366},{unit:"yearQuarter",maxDays:6*366},{unit:"year",maxDays:1/0}]);function ro(e,t){let n=e.column(t);if(!n||n.type!=="date"||n.derived)return null;let o=1/0,r=-1/0;for(let i of n.dict)typeof i=="number"&&(o=Math.min(o,i),r=Math.max(r,i));let s=(r-o)/I;return s>=1?Tn.find(i=>s<=i.maxDays).unit:null}function kn(e,t){let n=Math.min(20,Math.max(Q(e),Q(t))),o=10**n,r=Math.round(e*o),s=Math.round(t*o),i=n<=15&&r>0&&Number.isSafeInteger(r)&&Number.isSafeInteger(s),a=u=>{let l=s+u*r;return i&&Number.isSafeInteger(l)?l/o:t+u*e};return{decimals:n,lowerOf(u){let l=Math.floor((u-t)/e);return Number.isSafeInteger(l)?(u>=a(l+1)?l++:u<a(l)&&l--,a(l)):NaN},upperOf(u){return a(Math.round((u-t)/e)+1)}}}function mt(e,t){let n=e.column(t.field),o=Object.hasOwn(D,t.by)?D[t.by]:null;if(!n||!n.values||!o||n.type!==o.source)return null;let r=`derived:${n.key}:${t.by}:${t.size??""}:${t.origin??""}`,s=e.cache.getOrSet(r,()=>$n(n,t,o,r));return s.name===t.name?s:{...s,name:t.name,key:t.name.toLowerCase()}}var dt=9999;function Cn(e,t){return e.decimals>0?!1:t.every(n=>Math.abs(n)<=dt&&Math.abs(e.upperOf(n))<=dt)}function $n(e,t,n,o){let r=e.values.length,s=new Int32Array(r),i=new Float64Array(r),a=[],u=new Map,l=t.by==="bin"?kn(t.size,t.origin??0):null,c=new Date(0);for(let d=0;d<r;d++){let m=e.values[d],p=NaN;if(Number.isNaN(m)||(l?p=l.lowerOf(m):(c.setTime(m),p=n.value(c))),Number.isNaN(p)){s[d]=-1,i[d]=NaN;continue}let g=u.get(p);g===void 0&&(g=a.length,a.push(p),u.set(p,g)),s[d]=g,i[d]=p}let f={name:t.name,key:t.name.toLowerCase(),id:o,type:n.type,codes:s,dict:a,values:i,derived:!0};if(n.type==="date")f.dateOnly=!0;else if(l){let d=!Cn(l,a);f.labeler=(m,p)=>{let g=E(p,{maximumFractionDigits:l.decimals,signDisplay:"negative",useGrouping:d});return`${g.format(m)} \u2013 ${g.format(l.upperOf(m))}`}}else f.labeler=n.label;return f}var xn=Object.freeze(["equals","notEquals","contains","notContains","beginsWith","endsWith"]),ht=Object.freeze(["=","!=",">",">=","<","<=","between","notBetween"]),bt=Object.freeze(["year","month","day"]),he=500,wt=Object.freeze(["today","latest"]),oe=(e,t)=>typeof e=="string"&&t.includes(e)?e:null;function In(e,t,n){let o=t.toLocaleLowerCase(),r=n.toLocaleLowerCase();switch(e){case"equals":return o===r;case"notEquals":return o!==r;case"contains":return o.includes(r);case"notContains":return!o.includes(r);case"beginsWith":return o.startsWith(r);case"endsWith":return o.endsWith(r);default:return!0}}function Nt(e,t,n,o){if(typeof t!="number"||Number.isNaN(t))return!1;let r=Math.min(n,o??n),s=Math.max(n,o??n);switch(e){case"=":return t===n;case"!=":return t!==n;case">":return t>n;case">=":return t>=n;case"<":return t<n;case"<=":return t<=n;case"between":return t>=r&&t<=s;case"notBetween":return t<r||t>s;default:return!0}}var Ln=(e,t)=>Nt(e.op,t,e.value,e.value2),Ot=e=>Math.floor(e/I)*I,je=e=>new Date(e).toISOString().slice(0,-14);function vt(e,t,n){let o=new Date(n),r=o.getUTCFullYear(),s=e==="year"?0:o.getUTCMonth(),i=e==="day"?o.getUTCDate():1,a=(f,d,m)=>new Date(0).setUTCFullYear(f,d,m),u=f=>e==="year"?a(r+f,s,i):e==="month"?a(r,s+f,i):a(r,s,i+f),l=u(1-t),c=u(1);return{from:Number.isNaN(l)?-1/0:l,to:Number.isNaN(c)?1/0:c}}function co(e,t,n){n=k(n,"relativeDateRange");let o=n.anchor??"today";if(!bt.includes(e)||!Number.isInteger(t)||t<1||t>he||!wt.includes(o)||o==="latest"&&n.latest===void 0)return null;let r=ue(n.timeZone),{from:s,to:i}=vt(e,t,we(o==="latest"?n.latest:n.now,r));return!Number.isFinite(s)||!Number.isFinite(i)?null:{from:je(s),to:je(i-I)}}function we(e,t){let n=ce(t),o=ee(e===void 0?Date.now():e,r=>le(r)?n(r):NaN);if(!le(o))throw new Pe("INVALID_OPTION","now must be a Date, epoch milliseconds or an ISO date string");return o}function J(e,t){if(t===null)return null;switch(e){case"number":{let n=typeof t=="number"?t:typeof t=="string"&&t.trim()!==""?Number(t):NaN;return Number.isFinite(n)?n:void 0}case"date":{let n=typeof t=="number"?t:typeof t=="string"?ee(t,o=>o):NaN;return Number.isFinite(n)?n:void 0}case"boolean":return typeof t=="boolean"?t:t==="true"?!0:t==="false"?!1:void 0;default:return typeof t=="string"||typeof t=="number"||typeof t=="boolean"?String(t).slice(0,1e4):void 0}}function pt(e,t,n,o,r){let s=y(e,"items");if(!Array.isArray(s))return r.issue(o,"needs a list of items","filterNoItems");s.length>r.limits.items&&r.issue(`${o}.items`,`more than ${r.limits.items} items`,"tooManyItems",{max:r.limits.items}),t.items=[];for(let i of s.slice(0,r.limits.items)){let a=J(n.type,i);a===void 0?r.issue(`${o}.items`,`item ${JSON.stringify(i)} does not fit the ${n.type} field`,"itemType",{value:S(i),type:n.type}):t.items.push(a)}return t}function Mn(e,t,n,o,r){let s=oe(y(e,"op"),xn),i=y(e,"value");return s?typeof i!="string"||i.length>1e3?r.issue(o,"needs a text value","filterText"):Object.assign(t,{op:s,value:i}):r.issue(o,`unknown label operator ${JSON.stringify(y(e,"op"))}`,"filterLabelOp",{value:S(y(e,"op"))})}var At=(e,t)=>e.derived?t.derived.find(n=>n.name===e.name)?.by:void 0,Rn=e=>typeof e.value=="string";function Fn(e,t,n,o,r,s){if(n.type!=="number"&&n.type!=="date")return r.issue(o,"compares numbers and dates only","filterCompareField",{field:n.name});let i=At(n,s),a=n.type==="date"||i!==void 0&&D[i].source==="date"&&typeof y(e,"value")=="string"&&J("number",y(e,"value"))===void 0,u=m=>{if(!a){let g=m===void 0?void 0:J("number",m);return typeof g=="number"?g:null}let p=m===void 0||n.type!=="date"&&typeof m!="string"?void 0:J("date",m);return le(p)?je(Ot(p)):null},l=oe(y(e,"op"),ht),c=u(y(e,"value")),f=l==="between"||l==="notBetween",d=f?u(y(e,"value2")):null;return!l||c===null||f&&d===null?r.issue(o,`needs an operator and ${f?"two values":"a value"} of the ${n.type} field`,"filterCompareValue",{type:n.type}):Object.assign(t,{op:l,value:c},f?{value2:d}:{})}function En(e,t,n,o,r,s){let i=At(n,s);if(i===void 0?n.type!=="date":D[i].source!=="date")return r.issue(o,"needs a date field or a grouping of one","filterRelativeField",{field:n.name});let a=oe(y(e,"unit"),bt);if(!a)return r.issue(o,`unknown unit ${JSON.stringify(y(e,"unit"))}`,"filterRelativeUnit",{value:S(y(e,"unit"))});let u=P(y(e,"count"));if(u===null||!Number.isInteger(u)||u<1||u>he)return r.issue(o,`needs a whole count from 1 to ${he}`,"filterRelativeCount",{max:he});let l=y(e,"anchor"),c=l===void 0?"today":oe(l,wt);return c?Object.assign(t,{unit:a,count:u},c==="latest"?{anchor:c}:{}):r.issue(o,`unknown anchor ${JSON.stringify(l)}`,"filterRelativeAnchor",{value:S(l)})}function St(e,t,n,o){let r=y(e,"by"),s=r===void 0?n.defaultRef(o):n.valueRef(r,`${t}.by`);return s&&n.resultType(s)!=="number"?(n.issue(`${t}.by`,`${s.agg} gives no number to filter by`,"filterNotNumber",{agg:s.agg}),null):s}function Dn(e,t,n,o,r,s){let i=St(e,o,r,s);if(!i)return;let a=P(y(e,"count"));if(a===null||a<1||a>r.limits.topCount||!Number.isInteger(a))return r.issue(o,"needs a whole count of 1 or more","filterCount",{max:r.limits.topCount});let u=y(e,"bottom");return Object.assign(t,{by:i,count:a,bottom:typeof u=="boolean"?u:!1})}function jn(e,t,n,o,r,s){let i=St(e,o,r,s);if(!i)return;let a=oe(y(e,"op"),ht),u=P(y(e,"value"));if(!a||u===null)return r.issue(o,"needs an operator and a number","filterValue");if(Object.assign(t,{by:i,op:a,value:u}),a==="between"||a==="notBetween"){let l=P(y(e,"value2"));if(l===null)return r.issue(o,`${a} needs value2`,"filterValue2",{value:a});t.value2=l}return t}function gt(e){return(t,n)=>{let o=new Map(t.dict.map((s,i)=>[s,i])),r=new Uint8Array(t.dict.length+1);for(let s of n.items){let i=s===null?-1:o.get(s);i!==void 0&&(r[i+1]=1)}return e?r:r.map(s=>1-s)}}function Un(e,t,n){let o=new Uint8Array(e.dict.length+1);for(let r=-1;r<e.dict.length;r++){let s=ne(e,r===-1?null:e.dict[r],n);o[r+1]=In(t.op,s,t.value)?1:0}return o}function _n(e,t){let n=e.type==="date",o=a=>n?Date.parse(`${a}T00:00Z`):a,[r,s]=[o(t.value),t.value2===void 0?void 0:o(t.value2)],i=new Uint8Array(e.dict.length+1);return e.dict.forEach((a,u)=>{i[u+1]=Nt(t.op,n&&typeof a=="number"?Ot(a):a,r,s)?1:0}),i}function zn(e){let t=-1/0;for(let n of e.dict)typeof n=="number"&&n>t&&(t=n);return Number.isFinite(t)?t:null}function Pn(e,t,n,o){let{from:r,to:s}=vt(t.unit,t.count,(t.anchor==="latest"?zn(e):null)??o);return Uint8Array.from([0,...e.dict],(i,a)=>a>0&&typeof i=="number"&&i>=r&&i<s?1:0)}function Vn(e,t){return Uint8Array.from(t,n=>Ln(e,n)?1:0)}function Zn(e,t,n){let o=new Uint8Array(n.length),r=new Map;n.forEach((s,i)=>{let a=s.slice(0,-1).join(",");r.has(a)||r.set(a,[]),r.get(a).push(i)});for(let s of r.values())s.filter(i=>typeof t[i]=="number").sort((i,a)=>(e.bottom?t[i]-t[a]:t[a]-t[i])||i-a).slice(0,e.count).forEach(i=>{o[i]=1});return o}var be=(e,t)=>typeof e.source=="function"?e.source(t):!!e.source,M=Object.freeze({include:{stage:"items",normalize:pt,allowed:gt(!0)},exclude:{stage:"items",normalize:pt,allowed:gt(!1)},label:{stage:"items",normalize:Mn,allowed:Un},compare:{stage:"items",normalize:Fn,allowed:_n,source:Rn},relative:{stage:"items",normalize:En,allowed:Pn,source:!0},top:{stage:"values",normalize:Dn,keep:Zn},value:{stage:"values",normalize:jn,keep:Vn}}),fo=Object.freeze(Object.keys(M)),Bn=Object.freeze(["label","compare","relative"]);function mo(e,t,n,o,r,s){let i=e.filters.filter(d=>d.field.toLowerCase()===t.toLowerCase()&&Bn.includes(d.type));if(!i.length)return null;let a=i.some(d=>d.type==="relative")?s():0,u=d=>M[d.type].allowed(be(M[d.type],d)?o:n,d,r,a),l=i.filter(d=>!be(M[d.type],d)).map(u),c=i.filter(d=>be(M[d.type],d)).map(u),f=new Uint8Array(n.dict.length+1);for(let d=0;d<n.codes.length;d++){let m=n.codes[d]+1;!f[m]&&l.every(p=>p[m]===1)&&c.every(p=>p[o.codes[d]+1]===1)&&(f[m]=1)}return f}function yt(e,t){let n=0,o=new Int32Array(e.length);for(let r=0;r<e.length;r++)t(e[r],r)&&(o[n++]=e[r]);return o.slice(0,n)}function Tt(e,t){let{view:n,columnOf:o,locale:r,today:s}=e,i=l=>n.derived.find(c=>c.name.toLowerCase()===l.toLowerCase())?.field??l;for(let l of n.filters){let c=M[l.type],f=o(be(c,l)?i(l.field):l.field);if(c.stage!=="items"||!f)continue;let d=c.allowed(f,l,r,s),m=f.codes;t=yt(t,p=>d[m[p]+1]===1)}let a=l=>{let c=n.rows.indexOf(l);if(c!==-1)return{fields:n.rows.slice(0,c+1),order:c};let f=n.cols.indexOf(l);return f!==-1?{fields:n.cols.slice(0,f+1),order:100+f}:{fields:[l],order:200}},u=n.filters.filter(l=>M[l.type].stage==="values").map((l,c)=>({f:l,i:c,...a(l.field)})).sort((l,c)=>l.order-c.order||l.i-c.i);for(let{f:l,fields:c}of u){let f=c.map(o);if(f.includes(null))continue;let{groupOf:d,paths:m}=e.groupBy(f,t),p=e.aggregateGroups(l.by,t,d,m.length),g=M[l.type].keep(l,p,m);t=yt(t,(h,N)=>g[d[N]]===1)}return t}var G=(e,t)=>e===null||t===null||t===0?null:e/t;function Ue(e){let t=e.axis!=="cols",n=t?e.rowNode:e.colNode;return{node:n,at:r=>t?e.raw(r,e.colNode):e.raw(e.rowNode,r),siblings:n.parent?n.parent.children:[n]}}function kt(e){return(t,n)=>{let{node:o,at:r,siblings:s}=Ue(n);if(!o.parent||o.index===0||t===null)return null;let i=r(s[o.index-1])??0;return e?G(t-i,i):t-i}}function Ct(e){return(t,n)=>{let{node:o,at:r,siblings:s}=Ue(n);if(!o.parent)return e?t===null?null:1:t;let i=0;for(let a=0;a<=o.index;a++)i+=r(s[a])??0;return e?G(i,r(o.parent)):i}}function $t(e){return(t,n)=>{let{node:o,at:r,siblings:s}=Ue(n);if(!o.parent||t===null)return null;let i=1;for(let a of s){let u=r(a);u!==null&&(e?u>t:u<t)&&i++}return i}}var V=Object.freeze({percentOfGrandTotal:{format:"percent",compute:(e,t)=>G(e,t.raw(t.rowRoot,t.colRoot))},percentOfRowTotal:{format:"percent",compute:(e,t)=>G(e,t.raw(t.rowNode,t.colRoot))},percentOfColumnTotal:{format:"percent",compute:(e,t)=>G(e,t.raw(t.rowRoot,t.colNode))},percentOfParentRow:{format:"percent",compute:(e,t)=>G(e,t.raw(t.rowNode.parent??t.rowNode,t.colNode))},percentOfParentColumn:{format:"percent",compute:(e,t)=>G(e,t.raw(t.rowNode,t.colNode.parent??t.colNode))},differenceFromPrevious:{format:"number",alongAxis:!0,compute:kt(!1)},percentDifferenceFromPrevious:{format:"percent",alongAxis:!0,compute:kt(!0)},runningTotal:{format:"number",alongAxis:!0,additive:!0,compute:Ct(!1)},percentRunningTotal:{format:"percent",alongAxis:!0,additive:!0,compute:Ct(!0)},rankAscending:{format:"integer",alongAxis:!0,compute:$t(!1)},rankDescending:{format:"integer",alongAxis:!0,compute:$t(!0)}}),go=Object.freeze(Object.keys(V));var It=1;var Jn=Object.freeze(["auto","bar","line","area","pie","donut","heatmap"]),To=Object.freeze(["pie","donut"]),Gn=Object.freeze(["table","chart"]),ko=Object.freeze(["colorScale","dataBar"]),Wn=Object.freeze(["auto","off","value","percent","both"]),Hn=Object.freeze(["outside","inside"]),Kn=Object.freeze(["auto","bottom","right","off"]),Yn=Object.freeze(["auto","all","nth"]),qn=Object.freeze(["auto","on","off"]),xt=/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;function Xn(){return{version:It,rows:[],cols:[],values:[],filters:[],derived:[],sort:[],totals:{grandTotalRow:!0,grandTotalColumn:!0,rowSubtotals:!0,colSubtotals:!0},collapsed:{rows:[],cols:[]},display:"table",chart:{type:"auto",stacked:!1,horizontal:!1,valueLabels:"auto",legend:"auto",title:null,smooth:!1,axisLabels:"auto",groupLabels:"auto",labelPosition:"outside"},formatting:{locale:null,timeZone:null}}}var Qn=Object.freeze({});function er(e){return tr(e,Qn,It)}function tr(e,t,n){let o=[];if(!ae(e))return{view:null,issues:[{path:"",message:"not a view object",code:"notView"}]};let r=y(e,"version")??n;if(!Number.isInteger(r)||r<1)return{view:null,issues:[{path:"version",message:`unknown version ${JSON.stringify(r)}`,code:"badVersion",params:{value:S(r)}}]};if(r>n)return{view:null,issues:[{path:"version",message:`version ${r} is newer than this pivotkit-core reads (${n}); update pivotkit-core`,code:"newerVersion",params:{value:r,max:n}}]};let s=e;for(let i=r;i<n;i++){let a=t[i];if(typeof a!="function")return{view:null,issues:[{path:"version",message:`no migration from version ${i}`,code:"noMigration",params:{value:i}}]};s=a(s)}return{view:{...s,version:n},issues:o}}function se(e,t,n){return typeof e=="string"&&t.includes(e)?e:n}function Ne(e,t){return typeof e=="boolean"?e:t}function Lt(e){return(Array.isArray(e)?e:e&&Array.isArray(e.fields)?e.fields:e&&e.schema?e.schema.fields:[]).filter(n=>n&&typeof n.name=="string").map(n=>({name:n.name,type:typeof n.type=="string"?n.type:"string"}))}function q(e,t,n,o,r){let s=t.split(".").reduce((i,a)=>y(i,a),e);if(s!==void 0){if(!Array.isArray(s)){o.issue(t,"not a list","notList");return}s.slice(0,n).forEach((i,a)=>r(i,`${t}[${a}]`,a)),s.length>n&&o.issue(t,`more than ${n} entries`,"tooMany",{max:n})}}function nr(e,t,n){q(e,"derived",n.limits.derived,n,(o,r)=>{let s=n.text(y(o,"name")),i=n.fields.get(String(y(o,"field")??"").toLowerCase()),a=y(o,"by"),u=typeof a=="string"&&Object.hasOwn(D,a)?D[a]:null;if(!s)return n.issue(r,"needs a name","groupingNoName");if(n.fields.has(s.toLowerCase()))return n.issue(r,`name "${s}" is already a field`,"groupingNameTaken",{field:s});if(!i||i.derived)return n.issue(r,"unknown source field","groupingNoSource",{field:S(y(o,"field"))});if(!u)return n.issue(r,"unknown grouping","groupingUnknown",{value:S(a)});if(i.type!==u.source)return u.source==="number"?n.issue(r,"bins need a number field","binsNeedNumber",{field:i.name}):n.issue(r,"date grouping needs a date field","groupingNeedsDate",{field:i.name});let l={name:s,field:i.name,by:a};if(a==="bin"){let c=P(y(o,"size"));if(c===null||c<De)return n.issue(r,`bins need a size of at least ${De}`,"binSize");l.size=c,l.origin=P(y(o,"origin"))??0}t.derived.push(l),n.fields.set(s.toLowerCase(),{name:s,type:u.type,derived:!0})})}function rr(e,t,n){let o=new Set;for(let r of["rows","cols"])q(e,r,n.limits.axisFields,n,(s,i)=>{let a=n.resolve(s);if(!a)return n.issue(i,`unknown field ${JSON.stringify(s)}`,"unknownField",{field:S(s)});if(o.has(a.name))return n.issue(i,`"${a.name}" is already placed`,"placedTwice",{field:a.name});o.add(a.name),t[r].push(a.name)})}function or(e,t,n){let o=y(e,"type");if(o==="colorScale"){let r=y(e,"colors"),s=Array.isArray(r)?r.filter(i=>typeof i=="string"&&xt.test(i)).slice(0,3):[];return Array.isArray(r)&&r.length>0&&(s.length!==r.length||s.length<2)&&n.issue(`${t}.colors`,"two or three colours as #rgb or #rrggbb","colorScaleColors"),{type:o,colors:s.length>=2?s:[]}}if(o==="dataBar"){let r=y(e,"color"),s=typeof r=="string"&&xt.test(r);return r!=null&&!s&&n.issue(`${t}.color`,"a colour as #rgb or #rrggbb","dataBarColor"),{type:o,color:s?r:null}}return n.issue(t,`unknown conditional format ${JSON.stringify(o)}`,"unknownConditional",{value:S(o)}),null}function sr(e,t,n,o){let r=typeof e=="string"?{type:e}:e,s=y(r,"type"),i=typeof s=="string"&&Object.hasOwn(V,s)?V[s]:null;return i?i.additive&&!j(t.agg).additive?(o.issue(n,`${s} needs an aggregator that adds up (sum or count), not ${t.agg}`,"showAsNotAdditive",{value:s,agg:t.agg}),null):{type:s,axis:se(y(r,"axis"),["rows","cols"],"rows")}:(o.issue(n,`unknown show-as ${JSON.stringify(s)}`,"unknownShowAs",{value:S(s)}),null)}function ir(e,t,n){q(e,"values",n.limits.values,n,(o,r)=>{let s=n.valueRef(o,r);if(!s)return;let i=n.resultType(s)==="number",a={...s,format:null,label:null,showAs:null,conditional:null},u=y(o,"format");u!=null&&(at(u)?a.format=u.trim().toLowerCase():n.issue(`${r}.format`,`unknown format ${JSON.stringify(u)}`,"unknownFormat",{value:S(u)}));let l=y(o,"label");l!=null&&(a.label=n.text(l),a.label===null&&n.issue(`${r}.label`,`not a text up to ${n.limits.name} characters`,"badLabel",{max:n.limits.name}));let c=y(o,"showAs");c!=null&&(i?a.showAs=sr(c,s,`${r}.showAs`,n):n.issue(`${r}.showAs`,`${s.agg} has no number to show as ${JSON.stringify(y(c,"type")??c)}`,"showAsNotNumber",{agg:s.agg}));let f=y(o,"conditional");f!=null&&(i?a.conditional=or(f,`${r}.conditional`,n):n.issue(`${r}.conditional`,"conditional formatting needs a number value","conditionalNotNumber",{agg:s.agg})),t.values.push(a)})}function ar(e,t,n){q(e,"filters",n.limits.filters,n,(o,r)=>{let s=n.resolve(y(o,"field")),i=y(o,"type"),a=typeof i=="string"&&Object.hasOwn(M,i)?M[i]:null;if(!s)return n.issue(r,`unknown field ${JSON.stringify(y(o,"field"))}`,"unknownField",{field:S(y(o,"field"))});if(!a)return n.issue(r,`unknown filter type ${JSON.stringify(i)}`,"unknownFilterType",{value:S(i)});let u=a.normalize(o,{field:s.name,type:i},s,r,n,t);u&&t.filters.push(u)})}var lr=Object.freeze(["label","value","custom"]);function ur(e,t,n,o){if(!Array.isArray(e))return o.issue(n,"a custom order needs a list of items","sortNoItems"),null;e.length>o.limits.items&&o.issue(n,`more than ${o.limits.items} items`,"tooManyItems",{max:o.limits.items});let r=new Set,s=[];for(let i of e.slice(0,o.limits.items)){let a=J(t.type,i);a===void 0?o.issue(n,`item ${JSON.stringify(i)} does not fit the ${t.type} field`,"itemType",{value:S(i),type:t.type}):r.has(a)||(r.add(a),s.push(a))}return s}function cr(e,t,n){let o=new Set;q(e,"sort",n.limits.sort,n,(r,s)=>{let i=n.resolve(y(r,"field"));if(!i||o.has(i.name))return i?n.issue(s,`"${i.name}" is sorted twice`,"sortedTwice",{field:i.name}):n.issue(s,`unknown field ${JSON.stringify(y(r,"field"))}`,"unknownField",{field:S(y(r,"field"))});let a=se(y(r,"by"),lr,"label"),u={field:i.name,by:a,order:se(y(r,"order"),["asc","desc"],"asc")};if(a==="custom"){let l=ur(y(r,"items"),i,`${s}.items`,n);if(!l)return;u.items=l}if(a==="value"){let l=y(r,"value")===void 0?n.defaultRef(t):n.valueRef(y(r,"value"),`${s}.value`);if(!l)return;u.value=l}o.add(i.name),t.sort.push(u)})}function fr(e,t,n){let o=y(e,"totals");if(o!==void 0){if(!ae(o))return n.issue("totals","not an object","badTotals");for(let r of Object.keys(t.totals))t.totals[r]=Ne(y(o,r),t.totals[r])}}function dr(e,t,n){for(let o of["rows","cols"]){let r=t[o].map(i=>n.fields.get(i.toLowerCase()).type),s=new Set;q(e,`collapsed.${o}`,n.limits.collapsed,n,i=>{if(!Array.isArray(i)||i.length===0||i.length>=r.length)return n.issue(`collapsed.${o}`,`path ${JSON.stringify(i)} does not fit the ${o}`,"collapsedPath");let a=i.map((l,c)=>J(r[c],l));if(a.includes(void 0))return n.issue(`collapsed.${o}`,`path ${JSON.stringify(i)} does not fit the field types`,"collapsedPath");let u=JSON.stringify(a);s.has(u)||(s.add(u),t.collapsed[o].push(a))})}}function mr(e,t,n){let o=y(e,"display");t.display=se(o,Gn,t.display),o!==void 0&&t.display!==o&&n.issue("display",`unknown display ${JSON.stringify(o)}`,"unknownSetting",{value:S(o)});let r=y(e,"chart");if(r!==void 0){let s=(a,u,l)=>{let c=y(r,a),f=se(c,u,l);return c!==void 0&&f!==c&&n.issue(`chart.${a}`,`unknown ${a} ${JSON.stringify(c)}`,"unknownSetting",{value:S(c)}),f},i=y(r,"title");t.chart={type:s("type",Jn,t.chart.type),stacked:Ne(y(r,"stacked"),!1),horizontal:Ne(y(r,"horizontal"),!1),valueLabels:s("valueLabels",Wn,"auto"),legend:s("legend",Kn,"auto"),title:i==null?null:n.text(i),smooth:Ne(y(r,"smooth"),!1),axisLabels:s("axisLabels",Yn,"auto"),groupLabels:s("groupLabels",qn,"auto"),labelPosition:s("labelPosition",Hn,"outside")},i!=null&&t.chart.title===null&&!(typeof i=="string"&&i.trim()==="")&&n.issue("chart.title",`not a text up to ${n.limits.name} characters`,"badTitle",{max:n.limits.name})}}function pr(e,t,n){let o=y(e,"formatting"),r=y(o,"locale");r!=null&&(t.formatting.locale=Be(r),t.formatting.locale===null&&n.issue("formatting.locale",`unknown locale ${JSON.stringify(r)}`,"unknownLocale",{value:S(r)}));let s=y(o,"timeZone");s!=null&&(t.formatting.timeZone=Ge(s),t.formatting.timeZone===null&&n.issue("formatting.timeZone",`unknown time zone ${JSON.stringify(s)}`,"unknownTimeZone",{value:S(s)}))}var gr=[nr,rr,ir,ar,cr,fr,dr,mr,pr];function yr(e,t,n){let o=new Map(Lt(e).map(s=>[s.name.toLowerCase(),s])),r={limits:t,fields:o,issue:(s,i,a,u)=>{n.push(u?{path:s,message:i,code:a,params:u}:{path:s,message:i,code:a})},text:s=>{if(typeof s!="string")return null;let i=s.trim();return i===""||i.length>t.name?null:i},resolve:s=>typeof s=="string"&&s.length<=t.name?o.get(s.trim().toLowerCase()):void 0,resultType:s=>j(s.agg).resultType(s.field?o.get(s.field.toLowerCase()).type:"number"),defaultRef:s=>s.values.length?{field:s.values[0].field,agg:s.values[0].agg}:{field:null,agg:"count"},valueRef:(s,i)=>{if(!ae(s))return r.issue(i,"not a value reference","notValueRef"),null;let a=y(s,"agg"),u=y(s,"field"),l=u==null?null:r.resolve(u);return j(a)?l===void 0?(r.issue(i,`unknown field ${JSON.stringify(u)}`,"unknownField",{field:S(u)}),null):l===null&&a!=="count"?(r.issue(i,`${a} needs a field`,"aggregatorNeedsField",{agg:a}),null):l&&!ke(a,l.type)?(r.issue(i,`${a} does not work on the ${l.type} field "${l.name}"`,"aggregatorType",{agg:a,type:l.type,field:l.name}),null):{field:l?l.name:null,agg:a}:(r.issue(i,`unknown aggregator ${JSON.stringify(a)}`,"unknownAggregator",{value:S(a)}),null)}};return r}function Mt(e,t,n){n=k(n,"normalize");let o=z(n),r=[],s=Xn(),i=(f,d,m,p)=>({view:s,issues:[...r,p?{path:f,message:d,code:m,params:p}:{path:f,message:d,code:m}]}),a;try{let f=typeof e=="string"?e:JSON.stringify(e);if(typeof f!="string")return i("","not a view object","notView");if(f.length>o.json)return i("",`larger than ${o.json} characters`,"tooLarge",{max:o.json});a=JSON.parse(f)}catch{return i("","not valid JSON","notJson")}let u=er(a);if(r.push(...u.issues),u.view===null)return{view:s,issues:r};let l=u.view;for(let f of Object.keys(l))Object.hasOwn(s,f)||r.push({path:f.slice(0,100),message:"unknown key",code:"unknownKey"});let c=yr(t,o,r);for(let f of gr)f(l,s,c);return{view:s,issues:r}}function Co(e,t){return Lt(t).concat((e.derived||[]).map(n=>({name:n.name,type:D[n.by].type,derived:!0})))}var _e=e=>`${e.agg}\0${e.field??""}`;function hr(e,t){let n=new Map(t.derived.map(r=>[r.name.toLowerCase(),r])),o=new Map;return r=>{if(r==null)return null;let s=r.toLowerCase();if(!o.has(s)){let i=n.get(s);o.set(s,i?mt(e,i):e.column(r)??null)}return o.get(s)}}function Ft(e,t,n,o,r){let s=n?$e(n,r,e.cache):null;return j(t.agg).create(n,o,s,i=>ne(n,n.dict[i],r))}function br(e,t,n,o){let r=n.nodes.length,s=(t.depth+1)*(n.depth+1);x("pivotCells",Math.max(t.leafCount,n.leafCount)*s,o,"pivot cells");let i=m=>{let p=[];for(let g=m;g;g=g.parent)p.push(g.id);return p},a=new Map,u=new Map,l=new Int32Array(e.length),c=new Map,f=[],d=new Map;for(let m=0;m<e.length;m++){let p=t.leafOf[m],g=n.leafOf[m],h=p*r+g,N=c.get(h);if(N===void 0){N=c.size,c.set(h,N),x("pivotCells",f.length+s,o,"pivot cells"),a.has(p)||a.set(p,i(t.nodes[p])),u.has(g)||u.set(g,i(n.nodes[g]));for(let O of a.get(p))for(let b of u.get(g)){let v=O*r+b,T=d.get(v);T===void 0&&(T=d.size,d.set(v,T)),f.push(T)}}l[m]=N}return e.length===0&&d.set(0,0),{cellIndex:d,pairOf:l,cells:f,perPair:s}}function wr(e,t,n,o,r,s,i,a){let u=i.nodes.length,{cellIndex:l,pairOf:c,cells:f,perPair:d}=br(r,s,i,a),m=l.size,p=t.map(b=>Ft(e,b,b.field?n(b.field):null,m,o));for(let b of p)for(let v=0;v<r.length;v++){let T=c[v]*d,L=r[v];for(let R=T;R<T+d;R++)b.add(f[R],L)}let g=Symbol("unset"),h=t.map(()=>new Array(m).fill(g));return{value:(b,v,T)=>{let L=l.get(b.id*u+v.id);if(L===void 0)return null;let R=h[T][L];return R===g&&(R=h[T][L]=p[T].get(L)),R},has:(b,v)=>r.length>0&&l.has(b.id*u+v.id)}}function Rt(e,t,n,o,r,s){let i=a=>{if(a.children.length===0)return;let u=o.get(t[a.depth])??{by:"label",order:"asc"},l=u.order==="desc"?-1:1,c=s(n[a.depth]),f=m=>m.code<0?1/0:c[m.code],d=(m,p)=>{let g=f(m),h=f(p);return g===h?0:g===1/0||h===1/0?g===1/0?1:-1:(g-h)*l};if(u.by==="custom"){let m=new Map(u.items.map((g,h)=>[g,h])),p=g=>m.has(g.key)?m.get(g.key):1/0;a.children.sort((g,h)=>{let N=p(g),O=p(h);return N===1/0&&O===1/0?d(g,h):N===O?0:N===1/0?1:O===1/0?-1:(N-O)*l})}else if(u.by==="value"){let m=new Map(a.children.map(p=>[p,r(p,u.value)]));a.children.sort((p,g)=>{let h=m.get(p),N=m.get(g);return h===null||N===null?h===N?d(p,g):h===null?1:-1:(h-N)*l||d(p,g)})}else a.children.sort(d);a.children.forEach((m,p)=>{m.index=p,i(m)})};i(e.root)}function zo(e,t,n){n=k(n,"computePivot"),$(Ye(e),"computePivot(data, view): data must come from encode()");let o=z(n),{view:r,issues:s}=Mt(t,e,n),i=K(r.formatting.locale,n.locale);r.formatting.timeZone&&r.formatting.timeZone!==e.timeZone&&s.push({path:"formatting.timeZone",message:`the view was made for ${r.formatting.timeZone}, the data is encoded in ${e.timeZone}; pass timeZone to encode()`,code:"timeZoneMismatch",params:{value:r.formatting.timeZone,zone:e.timeZone}});let a=hr(e,r),u=w=>$e(w,i,e.cache),l={view:r,locale:i,today:we(n.now,e.timeZone),columnOf:a,groupBy:Fe,aggregateGroups:(w,A,F,_)=>{let X=Ft(e,w,w.field?a(w.field):null,_,i);for(let Z=0;Z<A.length;Z++)X.add(F[Z],A[Z]);return Array.from({length:_},(Z,Ae)=>X.get(Ae))}},c=new Int32Array(e.length);for(let w=0;w<c.length;w++)c[w]=w;c=Tt(l,c);let f=new Map,d=[],m=w=>{let A=_e(w);return f.has(A)||(f.set(A,d.length),d.push({field:w.field,agg:w.agg})),f.get(A)},p=r.values.map(m);for(let w of r.sort)w.by==="value"&&m(w.value);let g=d.reduce((w,A)=>w+(j(A.agg).keepsValues?Ve:1),0);x("work",c.length*(r.rows.length+1)*(r.cols.length+1)*g,o.work,"cell updates");let h=r.rows.map(a),N=r.cols.map(a),O={...Ee(h,c,{max:o.groups,used:0}),depth:h.length},b={...Ee(N,c,{max:o.groups,used:O.nodes.length}),depth:N.length},{value:v,has:T}=wr(e,d,a,i,c,O,b,o.pivotCells),L=w=>typeof w=="number"?w:null,R=new Map(r.sort.map(w=>[w.field,w]));Rt(O,r.rows,h,R,(w,A)=>L(v(w,b.root,f.get(_e(A)))),u),Rt(b,r.cols,N,R,(w,A)=>L(v(O.root,w,f.get(_e(A)))),u);let zt=r.values.map(w=>{if(w.showAs)return"number";let A=w.field?a(w.field):null;return j(w.agg).resultType(A?A.type:"number")}),ve=(w,A,F)=>v(w,A,p[F]),Pt=(w,A,F)=>{let _=r.values[F],X=ve(w,A,F);return _.showAs?V[_.showAs.type].compute(L(X),{rowNode:w,colNode:A,rowRoot:O.root,colRoot:b.root,raw:(Z,Ae)=>L(ve(Z,Ae,F)),axis:_.showAs.axis}):X};return{view:r,issues:s,locale:i,timeZone:e.timeZone,encoded:e,rows:c,rowFields:r.rows,colFields:r.cols,rowColumns:h,colColumns:N,values:r.values,valueTypes:zt,rowRoot:O.root,colRoot:b.root,rowNodes:O.nodes,colNodes:b.nodes,rowLeafOf:O.leafOf,colLeafOf:b.leafOf,value:ve,display:Pt,hasRows:T,label:(w,A,F=C)=>{if(!A.parent)return F.grandTotal??C.grandTotal;let _=(w==="cols"?N:h)[A.depth-1];return ne(_,A.key,i,F)}}}function Et(e){let t=e;return t!==null&&typeof t=="object"&&typeof t.display=="function"&&t.rowRoot!==void 0}function Dt(e){return JSON.stringify(e)}function ze(e,t,n,o,r){let s=new Set(n.map(Dt)),i=[];if(t===0)return i.push({node:e,kind:"leaf"}),i;let a=u=>{if(u.children.length===0){i.push({node:u,kind:"leaf"});return}if(s.has(Dt(u.path))){i.push({node:u,kind:"collapsed"});return}u.children.forEach(a),o&&i.push({node:u,kind:"subtotal"})};return e.children.forEach(a),(r||i.length===0)&&i.push({node:e,kind:"grand"}),i}var Nr=new Set(["average","median","stdev","stdevp","var","varp"]),Oe=2;function Or(e,t){let n=t?e.column(t):void 0;return!n||n.type!=="number"?Oe:e.cache.getOrSet(`decimals:${n.id}`,()=>{let o=0;for(let r of n.dict)if(typeof r=="number"&&(o=Math.max(o,Q(r)),o>=Oe))return Oe;return o})}function vr(e,t){let n=e.values[t],o=n.showAs?V[n.showAs.type].format:null;if(o==="percent")return n.format&&Y(n.format).name==="percent"?n.format:"percent:1";if(o==="integer")return"integer";if(n.format)return n.format;let r=e.valueTypes[t];if(r==="text")return"text";if(r==="date"){let s=e.encoded.column(n.field);return s&&s.dateOnly===!1?"datetime":"date"}return n.agg==="count"||n.agg==="countUnique"?"integer":`number:${Nr.has(n.agg)?Oe:Or(e.encoded,n.field)}`}function Ar(e,t=C){if(e.label)return e.label;let n;if(!e.field)n=t.countRows??C.countRows;else{let a={...C.aggregators,...t.aggregators||{}},u=Object.hasOwn(a,e.agg)?a[e.agg]:e.agg;n=me(t.valueName??C.valueName,{agg:u,field:te(e.field,t)})}if(!e.showAs)return n;let o={...C.showAs,...t.showAs||{}},r=e.showAs.type,s=Object.hasOwn(o,r)?o[r]:r,i=e.field&&e.agg==="sum"?te(e.field,t):n;return me(t.showAsName??C.showAsName,{showAs:s,value:i})}var W=e=>e==="grand"?2:e==="subtotal"?1:0;function Sr(e,t){let n=e;for(;n&&n.depth>t;)n=n.parent;return n}function jt(e,t,n,o,r,s){for(let i=t;i<o;i++)for(let a=n;a<r;a++){let u=e[i][a];if(!u||u.mergeKey===void 0)continue;let l=u.mergeKey,c=a+1;for(;c<r&&e[i][c]&&e[i][c].mergeKey===l;)c++;let f=i+1;for(;f<o;){let d=!0;for(let m=a;m<c;m++)if(!e[f][m]||e[f][m].mergeKey!==l){d=!1;break}if(!d)break;f++}if(c-a>1||f-i>1){u.colSpan=c-a,u.rowSpan=f-i,s.push({row:i,col:a,rowSpan:f-i,colSpan:c-a});for(let d=i;d<f;d++)for(let m=a;m<c;m++)(d!==i||m!==a)&&(e[d][m]=null)}}}function Tr(e,t){let n=e.map(Ze),o=n.length===3?t<=.5?0:1:0,r=n.length===3?t<=.5?t*2:(t-.5)*2:t,s=n[o],i=n[o+1];return"#"+s.map((a,u)=>Math.round(a+(i[u]-a)*r).toString(16).padStart(2,"0")).join("")}function qo(e){let t=e;return t!==null&&typeof t=="object"&&Array.isArray(t.rows)&&Array.isArray(t.merges)&&Number.isInteger(t.columnCount)}var Ut=(e,t,n)=>({axis:e,path:t.path,collapsed:n});function _t(e,t,{node:n,kind:o},r){let s=t==="cols"?"colHeader":"rowHeader",i=f=>t==="cols"?{colPath:f.path}:{rowPath:f.path},a=f=>e.result.label(t,f,e.labels),u=o==="grand"?0:n.depth-1;if(o!=="leaf"&&r===u){let d={text:o==="collapsed"?a(n):n.parent?me(e.labels.total,{label:a(n)}):e.labels.grandTotal,value:o==="collapsed"?n.key:null,kind:s,total:W(o),...i(n),mergeKey:`s${n.id}:${o}`};return o==="collapsed"&&(d.toggle=Ut(t,n,!0)),d}if(o!=="leaf"&&r>u)return{text:"",value:null,kind:s,total:W(o),mergeKey:`s${n.id}:${o}`};let l=Sr(n,r+1),c={text:a(l),value:l.key,kind:s,total:0,...i(l),mergeKey:`n${l.id}`};return l.children.length>0&&(c.toggle=Ut(t,l,!1)),c}function kr(e){let{view:t,k:n,h:o,width:r}=e,s=Array.from({length:o},()=>new Array(r).fill(null));for(let a=0;a<o;a++)for(let u=0;u<n;u++)a===o-1?s[a][u]={text:t.rows.length>0?te(t.rows[u],e.labels):"",value:null,kind:"corner",total:0,field:t.rows.length>0?t.rows[u]:void 0}:u===n-1?s[a][u]={text:te(t.cols[a],e.labels),value:null,kind:"corner",total:0,field:t.cols[a]}:s[a][u]={text:"",value:null,kind:"corner",total:0,mergeKey:"corner"};let i=t.values.length===1;return e.dataColumns.forEach(({line:a,vi:u},l)=>{let c=n+l;for(let d=0;d<t.cols.length;d++)s[d][c]=_t(e,"cols",a,d);let f={text:u>=0?e.names[u]:"",value:null,kind:"colHeader",total:i?0:W(a.kind),valueIndex:u>=0?u:void 0,colPath:i?[]:a.node.path};i&&(f.mergeKey="value"),s[o-1][c]=f}),s}function Cr(e,t){let{result:n,view:o,k:r,width:s}=e;return t.map(i=>{let{node:a,kind:u}=i,l=new Array(s).fill(null);for(let c=0;c<r;c++)l[c]=o.rows.length===0?{text:o.values.length>0||o.cols.length>0?e.labels.grandTotal:"",value:null,kind:"rowHeader",total:2,rowPath:[]}:_t(e,"rows",i,c);return e.dataColumns.forEach(({line:c,vi:f},d)=>{let m=Math.max(W(u),W(c.kind)),p=n.hasRows(a,c.node);if(f<0){l[r+d]={text:"",value:null,kind:"value",total:m,rowPath:a.path,colPath:c.node.path,hasRows:p};return}let g=n.display(a,c.node,f);l[r+d]={text:g===null?"":e.formatters[f](g),value:g,kind:"value",total:m,valueType:o.values[f].showAs?"number":n.valueTypes[f],format:e.formats[f],rowPath:a.path,colPath:c.node.path,valueIndex:f,hasRows:p}}),l})}function $r(e,t){e.view.values.forEach((n,o)=>{if(!n.conditional)return;let r=[];for(let a of t)for(let u=e.k;u<e.width;u++){let l=a[u];l&&l.valueIndex===o&&l.total===0&&typeof l.value=="number"&&r.push(l)}if(r.length===0)return;let s=1/0,i=-1/0;for(let a of r)s=Math.min(s,a.value),i=Math.max(i,a.value);for(let a of r)if(n.conditional.type==="colorScale"){let u=i===s?.5:(a.value-s)/(i-s),l=n.conditional.colors;a.style={scale:u,color:l.length>=2?Tr(l,u):null}}else{let u=Math.min(0,s),l=Math.max(0,i);a.style={bar:l===u?0:(a.value-u)/(l-u),color:n.conditional.color}}})}function Xo(e,t){t=k(t,"toGrid"),$(Et(e),"toGrid(result): result must come from computePivot()");let n=z(t),o=e.view,r=K(o.formatting.locale,t.locale??e.locale),s={...C,...t.labels||{}},i=ze(e.rowRoot,o.rows.length,o.collapsed.rows,o.totals.rowSubtotals,o.totals.grandTotalRow),u=ze(e.colRoot,o.cols.length,o.collapsed.cols,o.totals.colSubtotals,o.totals.grandTotalColumn).flatMap(b=>o.values.length===0?[{line:b,vi:-1}]:o.values.map((v,T)=>({line:b,vi:T}))),l=Math.max(1,o.rows.length),c=o.cols.length+1,f=l+u.length;x("cells",(c+i.length)*f,n.cells,"grid cells");let d=o.values.map((b,v)=>vr(e,v)),m={result:e,view:o,labels:s,dataColumns:u,k:l,h:c,width:f,formats:d,formatters:d.map(b=>Re(b,r)),names:o.values.map(b=>Ar(b,s))},p=kr(m),g=Cr(m,i),h=[];jt(p,0,0,c,f,h);let N=[];jt(g,0,0,g.length,l,N),h.push(...N.map(b=>({...b,row:b.row+c}))),$r(m,g);let O=p.concat(g);for(let b of O)for(let v of b)v&&delete v.mergeKey;return{rows:O,headerRows:c,rowHeaderColumns:l,columnCount:f,merges:h,dataColumns:u.map(({line:b,vi:v})=>({colPath:b.node.path,valueIndex:v,total:W(b.kind)})),bodyRows:i.map(({node:b,kind:v})=>({rowPath:b.path,total:W(v),collapsed:v==="collapsed"})),formats:d,showAs:o.values.map(b=>b.showAs?b.showAs.type:null),valueNames:m.names,conditional:o.values.map(b=>b.conditional),locale:r,timeZone:e.timeZone}}var es=Object.freeze({colorScale:Object.freeze(["#f8696b","#ffeb84","#63be7b"]),dataBar:"#638ec6",pieRadius:Object.freeze(["0%","70%"]),donutRadius:Object.freeze(["42%","70%"])});export{Se as a,Rr as b,Ye as c,ln as d,Er as e,E as f,eo as g,to as h,no as i,ro as j,mt as k,C as l,te as m,ne as n,$e as o,xn as p,ht as q,bt as r,he as s,wt as t,co as u,we as v,fo as w,mo as x,Zr as y,Y as z,Br as A,at as B,Re as C,Jr as D,Me as E,Gr as F,V as G,go as H,It as I,Jn as J,To as K,Gn as L,ko as M,Wn as N,Hn as O,Kn as P,Yn as Q,qn as R,Xn as S,Mt as T,Co as U,ct as V,Yr as W,zo as X,Et as Y,ze as Z,vr as _,Ar as $,qo as aa,Xo as ba,es as ca};