pivotkit-element 0.1.0 → 0.2.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.
@@ -0,0 +1 @@
1
+ var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>{try{return a||b((a={exports:{}}).exports,a),a.exports}catch(c){throw a=0,c}},n=(b,a)=>{for(var c in a)e(b,c,{get:a[c],enumerable:!0})},l=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&e(b,d,{get:()=>a[d],enumerable:!(f=h(a,d))||f.enumerable});return b};var o=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?e(c,"default",{value:b,enumerable:!0}):c,b));export{m as a,n as b,o as c};
@@ -0,0 +1 @@
1
+ import{a as P,b as W,c as x,d as C,f as oe,g as $,h as se,i as y,j as z,k as A,m as _e,n as Q,o as H,p as je,q as K}from"./chunk-MB64GADT.js";var V=()=>"number",Et=()=>"text";function Dt(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 Re(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 _t(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 jt(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 Ue(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 Rt(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 ie(e,t){return(n,o)=>{let r=new Float64Array(o),s=new Float64Array(o),i=new Float64Array(o),a=n.values;return{add:(l,u)=>{let c=a[u];if(c===c){let f=++r[l],m=c-s[l];s[l]+=m/f,i[l]+=m*(c-s[l])}},get:l=>{let u=r[l],c=e?u-1:u;if(c<=0)return null;let f=Math.max(0,i[l])/c;return t?Math.sqrt(f):f}}}}function Pe(e){return(t,n,o)=>{let r=new Int32Array(n).fill(-1),s=t.codes;return{add:(i,a)=>{let l=s[a];if(l===-1)return;let u=r[i];(u===-1||(e?o[l]>o[u]:o[l]<o[u]))&&(r[i]=l)},get:i=>{let a=r[i];if(a===-1)return null;let l=t.dict[a];return typeof l=="boolean"?String(l):l}}}}var ae=e=>e==="date"?"date":"number",ze=e=>e==="date"?"date":e==="number"?"number":"text",be=Object.freeze({count:{numeric:!1,additive:!0,resultType:V,create:Dt},countUnique:{numeric:!1,keepsValues:!0,resultType:V,create:(e,t)=>{let n=Re(e,t);return{add:n.add,get:o=>n.sets[o]?n.sets[o].size:0}}},listUnique:{numeric:!1,keepsValues:!0,resultType:Et,create:(e,t,n,o)=>{let r=Re(e,t);return{add:r.add,get:s=>{let i=r.sets[s];return i?[...i].sort((a,l)=>n[a]-n[l]).map(o).join(", "):null}}}},sum:{numeric:!0,additive:!0,resultType:V,create:_t},average:{numeric:!0,dates:!0,resultType:ae,create:jt},median:{numeric:!0,dates:!0,keepsValues:!0,resultType:ae,create:Rt},min:{numeric:!0,dates:!0,resultType:ae,create:Ue(-1)},max:{numeric:!0,dates:!0,resultType:ae,create:Ue(1)},stdev:{numeric:!0,resultType:V,create:ie(!0,!0)},stdevp:{numeric:!0,resultType:V,create:ie(!1,!0)},var:{numeric:!0,resultType:V,create:ie(!0,!1)},varp:{numeric:!0,resultType:V,create:ie(!1,!1)},first:{numeric:!1,resultType:ze,create:Pe(!1)},last:{numeric:!1,resultType:ze,create:Pe(!0)}}),Ut=Object.freeze(Object.keys(be));function E(e){return typeof e=="string"&&Object.hasOwn(be,e)?be[e]:null}function we(e,t){let n=E(e);return n?n.numeric?t==="number"||t==="boolean"||t==="null"||t==="date"&&n.dates===!0:!0:!1}function mr(e){return Ut.filter(t=>we(t,e))}var Ne=H(128);function F(e,t={}){return Ne.getOrSet(`n|${e}|${JSON.stringify(t)}`,()=>new Intl.NumberFormat(e,t))}function D(e,t){return Ne.getOrSet(`d|${e}|${JSON.stringify(t)}`,()=>new Intl.DateTimeFormat(e,t))}function Ve(e){return Ne.getOrSet(`c|${e}`,()=>new Intl.Collator(e,{numeric:!0,sensitivity:"base"}))}var Pt={dateStyle:"medium",timeZone:"UTC"},zt={dateStyle:"medium",timeStyle:"short",timeZone:"UTC"},k=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 ee(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 te(e,t,n,o=k){if(t==null)return o.blank??k.blank;if(e.labeler)return e.labeler(t,n);switch(e.type){case"date":return D(n,e.dateOnly?Pt:zt).format(new Date(Number(t)));case"boolean":return t?o.true??"true":o.false??"false";default:return String(t)}}function Vt(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:Ve(n).compare(String(e),String(t))}function Oe(e,t,n){return n.getOrSet(`ranks:${e.id}:${t}`,()=>{let o=e.dict.map((s,i)=>i);o.sort((s,i)=>Vt(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 le(e,t){return String(e).replace(/\{(\w+)\}/g,(n,o)=>Object.hasOwn(t,o)?String(t[o]):n)}var Or=Object.freeze(["number","integer","currency","percent","percent100","compact","bytes","duration","date","datetime","time","text"]),Zt=20,Ge={ms:.001,s:1,min:60,h:3600,d:86400},Bt=/^(number|integer|currency|percent|percent100|compact|bytes|duration|date|datetime|time|text)(?::([A-Za-z0-9]{1,10}))?$/,Se=new Set(["number","percent","percent100"]),We={date:{dateStyle:"medium",timeZone:"UTC"},datetime:{dateStyle:"medium",timeStyle:"short",timeZone:"UTC"},time:{timeStyle:"short",timeZone:"UTC"}},Jt={signDisplay:"negative"},ue=null;function Gt(e){return ue===null&&(ue=typeof Intl.supportedValuesOf=="function"?new Set(Intl.supportedValuesOf("currency")):!1),ue?ue.has(e.toUpperCase()):/^[a-z]{3}$/i.test(e)}function Y(e){if(typeof e!="string")return null;let t=Bt.exec(e.trim().toLowerCase());if(!t)return null;let[,n,o]=t;return o!==void 0&&(n==="currency"&&!Gt(o)||n==="duration"&&!Object.hasOwn(Ge,o)||Se.has(n)&&!(/^\d{1,2}$/.test(o)&&Number(o)<=Zt)||!["currency","duration",...Se].includes(n))?null:{name:n,arg:o,decimals:Se.has(n)&&o!==void 0?Number(o):void 0}}function Sr(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 F(t,{style:"currency",currency:(n.arg||"EUR").toUpperCase()}).resolvedOptions().maximumFractionDigits??2;default:return null}}function He(e){return Y(e)!==null}function ne(e){return e==null||e===""?NaN:typeof e=="number"?e:Number(e)}var Te=(e,t)=>e===void 0?{maximumFractionDigits:t}:{minimumFractionDigits:e,maximumFractionDigits:e};function Wt(e,t){if(!Number.isFinite(e))return"";let n=e<=-.05?"-":"",o=Math.abs(e);if(o<60)return`${n}${F(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],l=Math.floor(o/a),u=[`${l} ${i}`],c=r[s+1];if(c){let f=Math.floor((o-l*a)/c[1]);f>0&&u.push(`${f} ${c[0]}`)}return n+u.join(" ")}function Ht(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=F(t,{maximumFractionDigits:r===0?0:1}).format(o);return`${e<0&&/[1-9]/.test(s)?"-":""}${s} ${n[r]}`}function Ae(e){return e==null?"":String(e)}function ke(e,t){let n=Y(e)||{name:"number",arg:void 0,decimals:void 0},o=r=>{let s=F(t,{...Jt,...r});return i=>{let a=ne(i);return Number.isNaN(a)?Ae(i):s.format(a)}};switch(n.name){case"text":return Ae;case"integer":return o({maximumFractionDigits:0});case"currency":return o({style:"currency",currency:(n.arg||"EUR").toUpperCase()});case"percent":return o({style:"percent",...Te(n.decimals,1)});case"percent100":{let r=o({style:"percent",...Te(n.decimals,1)});return s=>r(ne(s)/100)}case"compact":return o({notation:"compact",maximumFractionDigits:1});case"bytes":return r=>Ht(ne(r),t);case"duration":{let r=Ge[n.arg||"s"];return s=>Wt(ne(s)*r,t)}case"date":case"datetime":case"time":{let r=D(t,We[n.name]);return s=>{let i=ne(s);return Number.isFinite(i)?r.format(new Date(i)):Ae(s)}}default:return o(Te(n.decimals,2))}}function Tr(e,t){return t=$(t,"formatter"),ke(e,K(null,t.locale))}var Ze=H(64),ce=e=>e.replace(/[^ :/-]+/g,t=>`"${t.replace(/"/g,"")}"`),fe=e=>e>0?"."+"0".repeat(e):"";function ve(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 Be(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+=ce(r),r="",i.type==="minusSign"?o+="-":i.type==="percentSign"?o+="%":s||(o+=t,s=!0)):r+=i.value;return o+ce(r)}function Ke(e,t,n,o=!0){let r=Be(e.formatToParts(t),n,o),s=Be(e.formatToParts(-t),n,o);return s===`-${r}`?r:`${r};${s}`}function Kt(e,t){let n=F(t,{style:"currency",currency:e});return Ke(n,1234.5,`#,##0${fe(n.resolvedOptions().maximumFractionDigits)}`)}function Je(e,t,n){return Ke(F(t,{style:"percent"}),.5,`#,##0${fe(e)}`,n)}function Yt(e,t){if(!Number.isFinite(e)||e===0)return"#,##0";let n=F(t,{notation:"compact",maximumFractionDigits:1}).formatToParts(Math.abs(e)),o=n.filter(u=>u.type==="integer").map(u=>u.value).join(""),r=n.filter(u=>u.type==="fraction").map(u=>u.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(u=>u.type==="integer"),l=n.slice(a).filter(u=>u.type==="compact"||u.type==="literal").map(u=>u.value).join("");return`#,##0${fe(r.length)}${",".repeat(i/3)}${ce(l)}`}function qt(e,t){return D(t,We[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 ce(o.value)}}).join("")}function Ar(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${fe(o.decimals??ve(t,2))}`;case"percent":return Je(o.decimals??ve(t*100,1),n,!0);case"percent100":return Je(o.decimals??ve(t,1),n,!1);case"currency":return Ze.getOrSet(`${e}|${n}`,()=>Kt((o.arg||"EUR").toUpperCase(),n));case"compact":return Yt(t,n);case"date":case"datetime":case"time":return Ze.getOrSet(`${o.name}|${n}`,()=>qt(o.name,n));case"text":return"@";default:return"General"}}function Ce(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,l=e.map(c=>c.codes),u=e.map(c=>c.dict.length+1);for(let c=0;c<t.length;c++){let f=t[c],m;if(s){m=0;for(let g=0;g<a;g++)m=m*u[g]+l[g][f]+1}else{m="";for(let g=0;g<a;g++)m+=l[g][f]+","}let p=i.get(m);if(p===void 0){p=o.length;let g=new Array(a);for(let d=0;d<a;d++)g[d]=l[d][f];o.push(g),i.set(m,p)}n[c]=p}return{groupOf:n,paths:o}}function Ye(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 $e(e,t,n={max:1/0,used:0}){let{groupOf:o,paths:r}=Ce(e,t);x("groups",n.used+r.length+(e.length>0?1:0),n.max,"groups");let s=Ye(0,0,-2,null,null),i=[s],a=Math.max(1,...e.map(m=>m.dict.length+1)),l=(Number.isFinite(n.max)?n.max:t.length*e.length+1)*a<2**53,u=new Map,c=new Array(r.length);r.forEach((m,p)=>{let g=s;for(let d=0;d<m.length;d++){let h=m[d],S=l?g.id*a+h+1:`${g.id},${h}`,N=u.get(S);if(N===void 0){n.used+i.length>=n.max&&x("groups",n.used+i.length+1,n.max,"groups");let b=h===-1?null:e[d].dict[h];N=Ye(i.length,d+1,h,b,g),i.push(N),u.set(S,N),g.children.push(N)}g=N}c[p]=g});let f=new Int32Array(t.length);for(let m=0;m<t.length;m++)f[m]=c[o[m]].id;return{root:s,nodes:i,leafOf:f,leafCount:r.length}}var Xt=(e,t)=>e===t||e===null&&t===null||typeof e=="number"&&typeof t=="number"&&Number.isNaN(e)&&Number.isNaN(t);function qe(e,t,n){let o=t==="cols"?e.colRoot:e.rowRoot;for(let r of n||[])if(o=o.children.find(s=>Xt(s.key,r)),!o)return null;return o}function $r(e,t){t=$(t,"cellRows");let{row:n=[],col:o=[]}=t,r=Array.isArray(n)?qe(e,"rows",n):n,s=Array.isArray(o)?qe(e,"cols",o):o;if(!r||!s)return new Int32Array(0);let i=(l,u,c)=>{let f=l[u];for(;f&&f.depth>c.depth;)f=f.parent;return f===c},a=[];for(let l=0;l<e.rows.length;l++)i(e.rowNodes,e.rowLeafOf[l],r)&&i(e.colNodes,e.colLeafOf[l],s)&&a.push(e.rows[l]);return Int32Array.from(a)}function Xe(e){return JSON.stringify(e)}function Ie(e,t,n,o,r){let s=new Set(n.map(Xe)),i=[];if(t===0)return i.push({node:e,kind:"leaf"}),i;let a=l=>{if(l.children.length===0){i.push({node:l,kind:"leaf"});return}if(s.has(Xe(l.path))){i.push({node:l,kind:"collapsed"});return}l.children.forEach(a),o&&i.push({node:l,kind:"subtotal"})};return e.children.forEach(a),(r||i.length===0)&&i.push({node:e,kind:"grand"}),i}var xe=Object.freeze({json:5e6,name:256,axisFields:8,values:16,filters:128,items:1e5,derived:64,sort:64,collapsed:1e4,topCount:1e6,rows:1e6,groups:5e5,pivotCells:2e6,work:1e8,cells:2e6,cacheEntries:16}),Me=Object.freeze({groups:2**27}),Qe=10;function j(e){let t=e&&e.limits;if(t==null)return xe;if(typeof t!="object")throw new P("INVALID_OPTION","options.limits must be an object");let n={...xe};for(let o of Object.keys(t)){let r=t[o];if(!Object.hasOwn(xe,o))throw new P("INVALID_OPTION",`unknown limit "${o}"`);if(!Number.isInteger(r)||r<1)throw new P("INVALID_OPTION",`limits.${o} must be a whole number of 1 or more`);if(Object.hasOwn(Me,o)&&r>Me[o])throw new P("INVALID_OPTION",`limits.${o} must be at most ${Me[o]}`);n[o]=r}return Object.freeze(n)}var Le=1e-9;function et(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)*C,a=1+Math.round((o-i)/(7*C));return{year:r,week:a}}var Qt=(e,t)=>D(t,{month:"short",timeZone:"UTC"}).format(new Date(Date.UTC(2e3,e-1,1))),en=(e,t)=>D(t,{month:"short",year:"numeric",timeZone:"UTC"}).format(new Date(Date.UTC(Math.floor(e/100),e%100-1,1))),tn=(e,t)=>D(t,{weekday:"short",timeZone:"UTC"}).format(new Date(Date.UTC(2024,0,e))),Dr=Object.freeze(["year","yearQuarter","yearMonth","yearWeek","day"]),_r=Object.freeze(["quarter","month","week","weekday","hour"]),Z=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:Qt},week:{source:"date",type:"number",value:e=>et(e.getTime()).week,label:e=>`W${oe(e)}`},day:{source:"date",type:"date",value:e=>Math.floor(e.getTime()/C)*C},hour:{source:"date",type:"number",value:e=>e.getUTCHours(),label:e=>`${oe(e)}:00`},weekday:{source:"date",type:"number",value:e=>(e.getUTCDay()+6)%7+1,label:tn},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:en},yearWeek:{source:"date",type:"number",value:e=>{let t=et(e.getTime());return t.year*100+t.week},label:e=>`${Math.floor(e/100)}-W${oe(e%100)}`},bin:{source:"number",type:"number"}}),jr=Object.freeze(Object.keys(Z)),nn=Object.freeze([{unit:"day",maxDays:62},{unit:"yearMonth",maxDays:2*366},{unit:"yearQuarter",maxDays:6*366},{unit:"year",maxDays:1/0}]);function Rr(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)/C;return s>=1?nn.find(i=>s<=i.maxDays).unit:null}function rn(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=l=>{let u=s+l*r;return i&&Number.isSafeInteger(u)?u/o:t+l*e};return{decimals:n,lowerOf(l){let u=Math.floor((l-t)/e);return Number.isSafeInteger(u)?(l>=a(u+1)?u++:l<a(u)&&u--,a(u)):NaN},upperOf(l){return a(Math.round((l-t)/e)+1)}}}function nt(e,t){let n=e.column(t.field),o=Object.hasOwn(Z,t.by)?Z[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,()=>sn(n,t,o,r));return s.name===t.name?s:{...s,name:t.name,key:t.name.toLowerCase()}}var tt=9999;function on(e,t){return e.decimals>0?!1:t.every(n=>Math.abs(n)<=tt&&Math.abs(e.upperOf(n))<=tt)}function sn(e,t,n,o){let r=e.values.length,s=new Int32Array(r),i=new Float64Array(r),a=[],l=new Map,u=t.by==="bin"?rn(t.size,t.origin??0):null,c=new Date(0);for(let m=0;m<r;m++){let p=e.values[m],g=NaN;if(Number.isNaN(p)||(u?g=u.lowerOf(p):(c.setTime(p),g=n.value(c))),Number.isNaN(g)){s[m]=-1,i[m]=NaN;continue}let d=l.get(g);d===void 0&&(d=a.length,a.push(g),l.set(g,d)),s[m]=d,i[m]=g}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(u){let m=!on(u,a);f.labeler=(p,g)=>{let d=F(g,{maximumFractionDigits:u.decimals,signDisplay:"negative",useGrouping:m});return`${d.format(p)} \u2013 ${d.format(u.upperOf(p))}`}}else f.labeler=n.label;return f}var rt="UTC",an=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,9}))?)?(Z|[+-]\d{2}(?::?\d{2})?)?)?$/;function ot(e,t,n,o=0,r=0,s=0,i=0){if(e>=100)return Date.UTC(e,t-1,n,o,r,s,i);let a=new Date(Date.UTC(2e3,t-1,n,o,r,s,i));return a.setUTCFullYear(e),a.getTime()}function st(e){let t=an.exec(e.trim());if(!t)return null;let n=t[8],o=+t[1],r=+t[2],s=+t[3],i=t[4]===void 0?0:+t[4],a=t[5]===void 0?0:+t[5],l=t[6]===void 0?0:+t[6],u=t[7];if(r<1||r>12||s<1||i>23||a>59||l>59)return null;let c=ot(o,r,s,i,a,l,u?Math.round(+`0.${u}`*1e3):0);if(new Date(c).getUTCDate()!==s)return null;let f=null;if(n)if(n==="Z")f=0;else{let m=n.slice(1).replace(":",""),p=Number(m.slice(0,2)),g=Number(m.slice(2)||0);if(p>23||g>59)return null;f=(n[0]==="-"?-1:1)*(p*60+g)}return{ms:c,offsetMinutes:f}}function it(e){return st(e)!==null}function at(e){if(e==null)return rt;if(e==="local")return new Intl.DateTimeFormat().resolvedOptions().timeZone??rt;let t=Fe(e);if(!t)throw new P("INVALID_OPTION",`time zone ${JSON.stringify(e)} is not "UTC", "local" or an IANA name`);return t}function Fe(e){if(typeof e!="string"||e.length===0||e.length>64)return null;if(e.toUpperCase()==="UTC")return"UTC";try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).resolvedOptions().timeZone}catch{return null}}function lt(e){if(e==="UTC")return r=>r;let t=new Intl.DateTimeFormat("en-US",{timeZone:e,hourCycle:"h23",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"}),n=r=>{let s={};for(let a of t.formatToParts(new Date(r)))s[a.type]=Number(a.value);let i=r-(r%1e3+1e3)%1e3;return ot(s.year,s.month,s.day,s.hour,s.minute,s.second)-i},o=new Map;return r=>{let s=Math.floor(r/C),i=o.get(s);if(i===void 0){let a=n(s*C),l=n((s+1)*C-1);i=a===l?a:NaN,o.set(s,i)}return r+(Number.isNaN(i)?n(r):i)}}function de(e,t){if(e instanceof Date){let n=e.getTime();return Number.isNaN(n)?NaN:t(n)}if(typeof e=="string"){let n=st(e);return n?n.offsetMinutes===null?n.ms:t(n.ms-n.offsetMinutes*6e4):NaN}return typeof e=="number"&&Number.isFinite(e)?t(e):NaN}var ln=Object.freeze(["string","number","boolean","date"]),un=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,cn=100;function ct(e){let t=e.trim();return t.length<=cn&&un.test(t)}var fn=100,ft=e=>e==null||e===""||typeof e=="function"||typeof e=="symbol";function dn(e,t){if(ft(e))return null;switch(typeof e){case"number":return Number.isFinite(e)?"number":null;case"boolean":return"boolean";case"string":return it(e)?"date":t&&ct(e)?"number":"string";case"bigint":return"number";default:return e instanceof Date?Number.isNaN(e.getTime())?null:"date":"string"}}function ut(e,t){let n=null;for(let o=0;o<e.length;o++){let r=dn(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 mn(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 pn(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"&&ct(e)){let t=Number(e.trim());return Number.isFinite(t)?t:NaN}return NaN}function gn(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 yn={number:e=>{let t=pn(e);return Number.isNaN(t)?null:t},boolean:gn,date:(e,t)=>{let n=de(e,t);return Number.isNaN(n)?null:n},string:e=>{let t=mn(e);return t===""?null:t},null:()=>null};function hn(e,t,n,o){let r=t.length,s=new Int32Array(r),i=[],a=new Map,l=n==="number"||n==="boolean"||n==="date"?new Float64Array(r):null,u=yn[n],c=!0;for(let p=0;p<r;p++){let g=t[p],d=ft(g)?null:u(g,o);if(d===null){s[p]=-1,l&&(l[p]=NaN);continue}n==="date"&&d%C!==0&&(c=!1);let h=a.get(d);h===void 0&&(h=i.length,i.push(d),a.set(d,h)),s[p]=h,l&&(l[p]=typeof d=="boolean"?d?1:0:d)}let f=e.toLowerCase(),m={name:e,key:f,id:`column:${f}`,type:n,codes:s,dict:i,values:l};return n==="date"&&(m.dateOnly=c),m}function Wr(e,t){t=$(t,"encode"),W(Array.isArray(e),"encode(rows): rows must be an array of objects");let n=j(t);x("rows",e.length,n.rows,"rows");let o=e.length,r=at(t.timeZone),s=lt(r),i=t.inferNumbers===!0,a=Array.isArray(t.columns)?new Set(t.columns.filter(d=>typeof d=="string").map(d=>d.toLowerCase())):null,l=[],u=(d,h)=>{l.length<fn&&l.push({path:d,message:h})},c=new Map;for(let d=0;d<o;d++){let h=e[d];if(h===null||typeof h!="object")continue;let S=new Set;for(let N of Object.keys(h)){let b=N.toLowerCase(),O=c.get(b);if(O===void 0){if(a&&!a.has(b))continue;O={name:N,raw:new Array(o).fill(null),spellings:new Set([N])},c.set(b,O)}else O.spellings.has(N)||(O.spellings.add(N),u(O.name,`"${N}" and "${O.name}" are one column: names match case-insensitively`));S.has(b)&&u(O.name,`row ${d} has "${N}" next to another spelling of it; the later value is used`),S.add(b),O.raw[d]=h[N]}}let f=new Map;if(t.types&&typeof t.types=="object")for(let d of Object.keys(t.types)){let h=t.types[d];ln.includes(h)&&f.set(d.toLowerCase(),h)}let m=a?[...a].filter(d=>c.has(d)):[...c.keys()],p=new Map,g=m.map(d=>{let{name:h,raw:S}=c.get(d),N=ut(S,i),b=N==="string"&&!i?ut(S,!0):N;return p.set(d,b),hn(h,S,f.get(d)??N,s)});return bn(o,g,{timeZone:r,issues:l,detected:p,cacheEntries:n.cacheEntries})}function bn(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 dt(e){let t=e;return t!==null&&typeof t=="object"&&Array.isArray(t.columns)&&typeof t.column=="function"&&"cache"in t}var wn=Object.freeze(["equals","notEquals","contains","notContains","beginsWith","endsWith"]),Nn=Object.freeze(["=","!=",">",">=","<","<=","between","notBetween"]),yt=(e,t)=>typeof e=="string"&&t.includes(e)?e:null;function On(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 Sn(e,t){if(typeof t!="number"||Number.isNaN(t))return!1;let n=e.value,o=Math.min(n,e.value2??n),r=Math.max(n,e.value2??n);switch(e.op){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>=o&&t<=r;case"notBetween":return t<o||t>r;default:return!0}}function me(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"?de(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 mt(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=me(n.type,i);a===void 0?r.issue(`${o}.items`,`item ${JSON.stringify(i)} does not fit the ${n.type} field`,"itemType",{value:A(i),type:n.type}):t.items.push(a)}return t}function Tn(e,t,n,o,r){let s=yt(y(e,"op"),wn),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:A(y(e,"op"))})}function ht(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 An(e,t,n,o,r,s){let i=ht(e,o,r,s);if(!i)return;let a=z(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 l=y(e,"bottom");return Object.assign(t,{by:i,count:a,bottom:typeof l=="boolean"?l:!1})}function vn(e,t,n,o,r,s){let i=ht(e,o,r,s);if(!i)return;let a=yt(y(e,"op"),Nn),l=z(y(e,"value"));if(!a||l===null)return r.issue(o,"needs an operator and a number","filterValue");if(Object.assign(t,{by:i,op:a,value:l}),a==="between"||a==="notBetween"){let u=z(y(e,"value2"));if(u===null)return r.issue(o,`${a} needs value2`,"filterValue2",{value:a});t.value2=u}return t}function pt(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 kn(e,t,n){let o=new Uint8Array(e.dict.length+1);for(let r=-1;r<e.dict.length;r++){let s=te(e,r===-1?null:e.dict[r],n);o[r+1]=On(t.op,s,t.value)?1:0}return o}function Cn(e,t){return Uint8Array.from(t,n=>Sn(e,n)?1:0)}function $n(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 B=Object.freeze({include:{stage:"items",normalize:mt,allowed:pt(!0)},exclude:{stage:"items",normalize:mt,allowed:pt(!1)},label:{stage:"items",normalize:Tn,allowed:kn},top:{stage:"values",normalize:An,keep:$n},value:{stage:"values",normalize:vn,keep:Cn}}),Xr=Object.freeze(Object.keys(B));function gt(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 bt(e,t){let{view:n,columnOf:o,locale:r}=e;for(let a of n.filters){let l=B[a.type],u=o(a.field);if(l.stage!=="items"||!u)continue;let c=l.allowed(u,a,r),f=u.codes;t=gt(t,m=>c[f[m]+1]===1)}let s=a=>{let l=n.rows.indexOf(a);if(l!==-1)return{fields:n.rows.slice(0,l+1),order:l};let u=n.cols.indexOf(a);return u!==-1?{fields:n.cols.slice(0,u+1),order:100+u}:{fields:[a],order:200}},i=n.filters.filter(a=>B[a.type].stage==="values").map((a,l)=>({f:a,i:l,...s(a.field)})).sort((a,l)=>a.order-l.order||a.i-l.i);for(let{f:a,fields:l}of i){let u=l.map(o);if(u.includes(null))continue;let{groupOf:c,paths:f}=e.groupBy(u,t),m=e.aggregateGroups(a.by,t,c,f.length),p=B[a.type].keep(a,m,f);t=gt(t,(g,d)=>p[c[d]]===1)}return t}var J=(e,t)=>e===null||t===null||t===0?null:e/t;function Ee(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 wt(e){return(t,n)=>{let{node:o,at:r,siblings:s}=Ee(n);if(!o.parent||o.index===0||t===null)return null;let i=r(s[o.index-1])??0;return e?J(t-i,i):t-i}}function Nt(e){return(t,n)=>{let{node:o,at:r,siblings:s}=Ee(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?J(i,r(o.parent)):i}}function Ot(e){return(t,n)=>{let{node:o,at:r,siblings:s}=Ee(n);if(!o.parent||t===null)return null;let i=1;for(let a of s){let l=r(a);l!==null&&(e?l>t:l<t)&&i++}return i}}var R=Object.freeze({percentOfGrandTotal:{format:"percent",compute:(e,t)=>J(e,t.raw(t.rowRoot,t.colRoot))},percentOfRowTotal:{format:"percent",compute:(e,t)=>J(e,t.raw(t.rowNode,t.colRoot))},percentOfColumnTotal:{format:"percent",compute:(e,t)=>J(e,t.raw(t.rowRoot,t.colNode))},percentOfParentRow:{format:"percent",compute:(e,t)=>J(e,t.raw(t.rowNode.parent??t.rowNode,t.colNode))},percentOfParentColumn:{format:"percent",compute:(e,t)=>J(e,t.raw(t.rowNode,t.colNode.parent??t.colNode))},differenceFromPrevious:{format:"number",alongAxis:!0,compute:wt(!1)},percentDifferenceFromPrevious:{format:"percent",alongAxis:!0,compute:wt(!0)},runningTotal:{format:"number",alongAxis:!0,additive:!0,compute:Nt(!1)},percentRunningTotal:{format:"percent",alongAxis:!0,additive:!0,compute:Nt(!0)},rankAscending:{format:"integer",alongAxis:!0,compute:Ot(!1)},rankDescending:{format:"integer",alongAxis:!0,compute:Ot(!0)}}),eo=Object.freeze(Object.keys(R));var Tt=1;var In=Object.freeze(["auto","bar","line","area","pie","donut","heatmap"]),co=Object.freeze(["pie","donut"]),xn=Object.freeze(["table","chart"]),fo=Object.freeze(["colorScale","dataBar"]),Mn=Object.freeze(["auto","off","value","percent","both"]),Ln=Object.freeze(["outside","inside"]),Fn=Object.freeze(["auto","bottom","right","off"]),En=Object.freeze(["auto","all","nth"]),Dn=Object.freeze(["auto","on","off"]),St=/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;function _n(){return{version:Tt,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 jn=Object.freeze({});function Rn(e){return Un(e,jn,Tt)}function Un(e,t,n){let o=[];if(!se(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:A(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 re(e,t,n){return typeof e=="string"&&t.includes(e)?e:n}function pe(e,t){return typeof e=="boolean"?e:t}function At(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 Pn(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"),l=typeof a=="string"&&Object.hasOwn(Z,a)?Z[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:A(y(o,"field"))});if(!l)return n.issue(r,"unknown grouping","groupingUnknown",{value:A(a)});if(i.type!==l.source)return l.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 u={name:s,field:i.name,by:a};if(a==="bin"){let c=z(y(o,"size"));if(c===null||c<Le)return n.issue(r,`bins need a size of at least ${Le}`,"binSize");u.size=c,u.origin=z(y(o,"origin"))??0}t.derived.push(u),n.fields.set(s.toLowerCase(),{name:s,type:l.type,derived:!0})})}function zn(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:A(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 Vn(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"&&St.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"&&St.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:A(o)}),null}function Zn(e,t,n,o){let r=typeof e=="string"?{type:e}:e,s=y(r,"type"),i=typeof s=="string"&&Object.hasOwn(R,s)?R[s]:null;return i?i.additive&&!E(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:re(y(r,"axis"),["rows","cols"],"rows")}:(o.issue(n,`unknown show-as ${JSON.stringify(s)}`,"unknownShowAs",{value:A(s)}),null)}function Bn(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},l=y(o,"format");l!=null&&(He(l)?a.format=l.trim().toLowerCase():n.issue(`${r}.format`,`unknown format ${JSON.stringify(l)}`,"unknownFormat",{value:A(l)}));let u=y(o,"label");u!=null&&(a.label=n.text(u),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=Zn(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=Vn(f,`${r}.conditional`,n):n.issue(`${r}.conditional`,"conditional formatting needs a number value","conditionalNotNumber",{agg:s.agg})),t.values.push(a)})}function Jn(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(B,i)?B[i]:null;if(!s)return n.issue(r,`unknown field ${JSON.stringify(y(o,"field"))}`,"unknownField",{field:A(y(o,"field"))});if(!a)return n.issue(r,`unknown filter type ${JSON.stringify(i)}`,"unknownFilterType",{value:A(i)});let l=a.normalize(o,{field:s.name,type:i},s,r,n,t);l&&t.filters.push(l)})}var Gn=Object.freeze(["label","value","custom"]);function Wn(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=me(t.type,i);a===void 0?o.issue(n,`item ${JSON.stringify(i)} does not fit the ${t.type} field`,"itemType",{value:A(i),type:t.type}):r.has(a)||(r.add(a),s.push(a))}return s}function Hn(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:A(y(r,"field"))});let a=re(y(r,"by"),Gn,"label"),l={field:i.name,by:a,order:re(y(r,"order"),["asc","desc"],"asc")};if(a==="custom"){let u=Wn(y(r,"items"),i,`${s}.items`,n);if(!u)return;l.items=u}if(a==="value"){let u=y(r,"value")===void 0?n.defaultRef(t):n.valueRef(y(r,"value"),`${s}.value`);if(!u)return;l.value=u}o.add(i.name),t.sort.push(l)})}function Kn(e,t,n){let o=y(e,"totals");if(o!==void 0){if(!se(o))return n.issue("totals","not an object","badTotals");for(let r of Object.keys(t.totals))t.totals[r]=pe(y(o,r),t.totals[r])}}function Yn(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((u,c)=>me(r[c],u));if(a.includes(void 0))return n.issue(`collapsed.${o}`,`path ${JSON.stringify(i)} does not fit the field types`,"collapsedPath");let l=JSON.stringify(a);s.has(l)||(s.add(l),t.collapsed[o].push(a))})}}function qn(e,t,n){let o=y(e,"display");t.display=re(o,xn,t.display),o!==void 0&&t.display!==o&&n.issue("display",`unknown display ${JSON.stringify(o)}`,"unknownSetting",{value:A(o)});let r=y(e,"chart");if(r!==void 0){let s=(a,l,u)=>{let c=y(r,a),f=re(c,l,u);return c!==void 0&&f!==c&&n.issue(`chart.${a}`,`unknown ${a} ${JSON.stringify(c)}`,"unknownSetting",{value:A(c)}),f},i=y(r,"title");t.chart={type:s("type",In,t.chart.type),stacked:pe(y(r,"stacked"),!1),horizontal:pe(y(r,"horizontal"),!1),valueLabels:s("valueLabels",Mn,"auto"),legend:s("legend",Fn,"auto"),title:i==null?null:n.text(i),smooth:pe(y(r,"smooth"),!1),axisLabels:s("axisLabels",En,"auto"),groupLabels:s("groupLabels",Dn,"auto"),labelPosition:s("labelPosition",Ln,"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 Xn(e,t,n){let o=y(e,"formatting"),r=y(o,"locale");r!=null&&(t.formatting.locale=je(r),t.formatting.locale===null&&n.issue("formatting.locale",`unknown locale ${JSON.stringify(r)}`,"unknownLocale",{value:A(r)}));let s=y(o,"timeZone");s!=null&&(t.formatting.timeZone=Fe(s),t.formatting.timeZone===null&&n.issue("formatting.timeZone",`unknown time zone ${JSON.stringify(s)}`,"unknownTimeZone",{value:A(s)}))}var Qn=[Pn,zn,Bn,Jn,Hn,Kn,Yn,qn,Xn];function er(e,t,n){let o=new Map(At(e).map(s=>[s.name.toLowerCase(),s])),r={limits:t,fields:o,issue:(s,i,a,l)=>{n.push(l?{path:s,message:i,code:a,params:l}:{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=>E(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(!se(s))return r.issue(i,"not a value reference","notValueRef"),null;let a=y(s,"agg"),l=y(s,"field"),u=l==null?null:r.resolve(l);return E(a)?u===void 0?(r.issue(i,`unknown field ${JSON.stringify(l)}`,"unknownField",{field:A(l)}),null):u===null&&a!=="count"?(r.issue(i,`${a} needs a field`,"aggregatorNeedsField",{agg:a}),null):u&&!we(a,u.type)?(r.issue(i,`${a} does not work on the ${u.type} field "${u.name}"`,"aggregatorType",{agg:a,type:u.type,field:u.name}),null):{field:u?u.name:null,agg:a}:(r.issue(i,`unknown aggregator ${JSON.stringify(a)}`,"unknownAggregator",{value:A(a)}),null)}};return r}function vt(e,t,n){n=$(n,"normalize");let o=j(n),r=[],s=_n(),i=(f,m,p,g)=>({view:s,issues:[...r,g?{path:f,message:m,code:p,params:g}:{path:f,message:m,code:p}]}),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 l=Rn(a);if(r.push(...l.issues),l.view===null)return{view:s,issues:r};let u=l.view;for(let f of Object.keys(u))Object.hasOwn(s,f)||r.push({path:f.slice(0,100),message:"unknown key",code:"unknownKey"});let c=er(t,o,r);for(let f of Qn)f(u,s,c);return{view:s,issues:r}}function mo(e,t){return At(t).concat((e.derived||[]).map(n=>({name:n.name,type:Z[n.by].type,derived:!0})))}var De=e=>`${e.agg}\0${e.field??""}`;function tr(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?nt(e,i):e.column(r)??null)}return o.get(s)}}function Ct(e,t,n,o,r){let s=n?Oe(n,r,e.cache):null;return E(t.agg).create(n,o,s,i=>te(n,n.dict[i],r))}function nr(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=p=>{let g=[];for(let d=p;d;d=d.parent)g.push(d.id);return g},a=new Map,l=new Map,u=new Int32Array(e.length),c=new Map,f=[],m=new Map;for(let p=0;p<e.length;p++){let g=t.leafOf[p],d=n.leafOf[p],h=g*r+d,S=c.get(h);if(S===void 0){S=c.size,c.set(h,S),x("pivotCells",f.length+s,o,"pivot cells"),a.has(g)||a.set(g,i(t.nodes[g])),l.has(d)||l.set(d,i(n.nodes[d]));for(let N of a.get(g))for(let b of l.get(d)){let O=N*r+b,v=m.get(O);v===void 0&&(v=m.size,m.set(O,v)),f.push(v)}}u[p]=S}return e.length===0&&m.set(0,0),{cellIndex:m,pairOf:u,cells:f,perPair:s}}function rr(e,t,n,o,r,s,i,a){let l=i.nodes.length,{cellIndex:u,pairOf:c,cells:f,perPair:m}=nr(r,s,i,a),p=u.size,g=t.map(b=>Ct(e,b,b.field?n(b.field):null,p,o));for(let b of g)for(let O=0;O<r.length;O++){let v=c[O]*m,I=r[O];for(let M=v;M<v+m;M++)b.add(f[M],I)}let d=Symbol("unset"),h=t.map(()=>new Array(p).fill(d));return{value:(b,O,v)=>{let I=u.get(b.id*l+O.id);if(I===void 0)return null;let M=h[v][I];return M===d&&(M=h[v][I]=g[v].get(I)),M},has:(b,O)=>r.length>0&&u.has(b.id*l+O.id)}}function kt(e,t,n,o,r,s){let i=a=>{if(a.children.length===0)return;let l=o.get(t[a.depth])??{by:"label",order:"asc"},u=l.order==="desc"?-1:1,c=s(n[a.depth]),f=p=>p.code<0?1/0:c[p.code],m=(p,g)=>{let d=f(p),h=f(g);return d===h?0:d===1/0||h===1/0?d===1/0?1:-1:(d-h)*u};if(l.by==="custom"){let p=new Map(l.items.map((d,h)=>[d,h])),g=d=>p.has(d.key)?p.get(d.key):1/0;a.children.sort((d,h)=>{let S=g(d),N=g(h);return S===1/0&&N===1/0?m(d,h):S===N?0:S===1/0?1:N===1/0?-1:(S-N)*u})}else if(l.by==="value"){let p=new Map(a.children.map(g=>[g,r(g,l.value)]));a.children.sort((g,d)=>{let h=p.get(g),S=p.get(d);return h===null||S===null?h===S?m(g,d):h===null?1:-1:(h-S)*u||m(g,d)})}else a.children.sort(m);a.children.forEach((p,g)=>{p.index=g,i(p)})};i(e.root)}function ko(e,t,n){n=$(n,"computePivot"),W(dt(e),"computePivot(data, view): data must come from encode()");let o=j(n),{view:r,issues:s}=vt(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=tr(e,r),l=w=>Oe(w,i,e.cache),u={view:r,locale:i,columnOf:a,groupBy:Ce,aggregateGroups:(w,T,L,_)=>{let X=Ct(e,w,w.field?a(w.field):null,_,i);for(let U=0;U<T.length;U++)X.add(L[U],T[U]);return Array.from({length:_},(U,he)=>X.get(he))}},c=new Int32Array(e.length);for(let w=0;w<c.length;w++)c[w]=w;c=bt(u,c);let f=new Map,m=[],p=w=>{let T=De(w);return f.has(T)||(f.set(T,m.length),m.push({field:w.field,agg:w.agg})),f.get(T)},g=r.values.map(p);for(let w of r.sort)w.by==="value"&&p(w.value);let d=m.reduce((w,T)=>w+(E(T.agg).keepsValues?Qe:1),0);x("work",c.length*(r.rows.length+1)*(r.cols.length+1)*d,o.work,"cell updates");let h=r.rows.map(a),S=r.cols.map(a),N={...$e(h,c,{max:o.groups,used:0}),depth:h.length},b={...$e(S,c,{max:o.groups,used:N.nodes.length}),depth:S.length},{value:O,has:v}=rr(e,m,a,i,c,N,b,o.pivotCells),I=w=>typeof w=="number"?w:null,M=new Map(r.sort.map(w=>[w.field,w]));kt(N,r.rows,h,M,(w,T)=>I(O(w,b.root,f.get(De(T)))),l),kt(b,r.cols,S,M,(w,T)=>I(O(N.root,w,f.get(De(T)))),l);let Lt=r.values.map(w=>{if(w.showAs)return"number";let T=w.field?a(w.field):null;return E(w.agg).resultType(T?T.type:"number")}),ye=(w,T,L)=>O(w,T,g[L]),Ft=(w,T,L)=>{let _=r.values[L],X=ye(w,T,L);return _.showAs?R[_.showAs.type].compute(I(X),{rowNode:w,colNode:T,rowRoot:N.root,colRoot:b.root,raw:(U,he)=>I(ye(U,he,L)),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:S,values:r.values,valueTypes:Lt,rowRoot:N.root,colRoot:b.root,rowNodes:N.nodes,colNodes:b.nodes,rowLeafOf:N.leafOf,colLeafOf:b.leafOf,value:ye,display:Ft,hasRows:v,label:(w,T,L=k)=>{if(!T.parent)return L.grandTotal??k.grandTotal;let _=(w==="cols"?S:h)[T.depth-1];return te(_,T.key,i,L)}}}function $t(e){let t=e;return t!==null&&typeof t=="object"&&typeof t.display=="function"&&t.rowRoot!==void 0}var or=new Set(["average","median","stdev","stdevp","var","varp"]),ge=2;function sr(e,t){let n=t?e.column(t):void 0;return!n||n.type!=="number"?ge: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>=ge))return ge;return o})}function ir(e,t){let n=e.values[t],o=n.showAs?R[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:${or.has(n.agg)?ge:sr(e.encoded,n.field)}`}function ar(e,t=k){if(e.label)return e.label;let n;if(!e.field)n=t.countRows??k.countRows;else{let a={...k.aggregators,...t.aggregators||{}},l=Object.hasOwn(a,e.agg)?a[e.agg]:e.agg;n=le(t.valueName??k.valueName,{agg:l,field:ee(e.field,t)})}if(!e.showAs)return n;let o={...k.showAs,...t.showAs||{}},r=e.showAs.type,s=Object.hasOwn(o,r)?o[r]:r,i=e.field&&e.agg==="sum"?ee(e.field,t):n;return le(t.showAsName??k.showAsName,{showAs:s,value:i})}var G=e=>e==="grand"?2:e==="subtotal"?1:0;function lr(e,t){let n=e;for(;n&&n.depth>t;)n=n.parent;return n}function It(e,t,n,o,r,s){for(let i=t;i<o;i++)for(let a=n;a<r;a++){let l=e[i][a];if(!l||l.mergeKey===void 0)continue;let u=l.mergeKey,c=a+1;for(;c<r&&e[i][c]&&e[i][c].mergeKey===u;)c++;let f=i+1;for(;f<o;){let m=!0;for(let p=a;p<c;p++)if(!e[f][p]||e[f][p].mergeKey!==u){m=!1;break}if(!m)break;f++}if(c-a>1||f-i>1){l.colSpan=c-a,l.rowSpan=f-i,s.push({row:i,col:a,rowSpan:f-i,colSpan:c-a});for(let m=i;m<f;m++)for(let p=a;p<c;p++)(m!==i||p!==a)&&(e[m][p]=null)}}}function ur(e,t){let n=e.map(_e),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,l)=>Math.round(a+(i[l]-a)*r).toString(16).padStart(2,"0")).join("")}function _o(e){let t=e;return t!==null&&typeof t=="object"&&Array.isArray(t.rows)&&Array.isArray(t.merges)&&Number.isInteger(t.columnCount)}var xt=(e,t,n)=>({axis:e,path:t.path,collapsed:n});function Mt(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),l=o==="grand"?0:n.depth-1;if(o!=="leaf"&&r===l){let m={text:o==="collapsed"?a(n):n.parent?le(e.labels.total,{label:a(n)}):e.labels.grandTotal,value:o==="collapsed"?n.key:null,kind:s,total:G(o),...i(n),mergeKey:`s${n.id}:${o}`};return o==="collapsed"&&(m.toggle=xt(t,n,!0)),m}if(o!=="leaf"&&r>l)return{text:"",value:null,kind:s,total:G(o),mergeKey:`s${n.id}:${o}`};let u=lr(n,r+1),c={text:a(u),value:u.key,kind:s,total:0,...i(u),mergeKey:`n${u.id}`};return u.children.length>0&&(c.toggle=xt(t,u,!1)),c}function cr(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 l=0;l<n;l++)a===o-1?s[a][l]={text:t.rows.length>0?ee(t.rows[l],e.labels):"",value:null,kind:"corner",total:0,field:t.rows.length>0?t.rows[l]:void 0}:l===n-1?s[a][l]={text:ee(t.cols[a],e.labels),value:null,kind:"corner",total:0,field:t.cols[a]}:s[a][l]={text:"",value:null,kind:"corner",total:0,mergeKey:"corner"};let i=t.values.length===1;return e.dataColumns.forEach(({line:a,vi:l},u)=>{let c=n+u;for(let m=0;m<t.cols.length;m++)s[m][c]=Mt(e,"cols",a,m);let f={text:l>=0?e.names[l]:"",value:null,kind:"colHeader",total:i?0:G(a.kind),valueIndex:l>=0?l:void 0,colPath:i?[]:a.node.path};i&&(f.mergeKey="value"),s[o-1][c]=f}),s}function fr(e,t){let{result:n,view:o,k:r,width:s}=e;return t.map(i=>{let{node:a,kind:l}=i,u=new Array(s).fill(null);for(let c=0;c<r;c++)u[c]=o.rows.length===0?{text:o.values.length>0||o.cols.length>0?e.labels.grandTotal:"",value:null,kind:"rowHeader",total:2,rowPath:[]}:Mt(e,"rows",i,c);return e.dataColumns.forEach(({line:c,vi:f},m)=>{let p=Math.max(G(l),G(c.kind)),g=n.hasRows(a,c.node);if(f<0){u[r+m]={text:"",value:null,kind:"value",total:p,rowPath:a.path,colPath:c.node.path,hasRows:g};return}let d=n.display(a,c.node,f);u[r+m]={text:d===null?"":e.formatters[f](d),value:d,kind:"value",total:p,valueType:o.values[f].showAs?"number":n.valueTypes[f],format:e.formats[f],rowPath:a.path,colPath:c.node.path,valueIndex:f,hasRows:g}}),u})}function dr(e,t){e.view.values.forEach((n,o)=>{if(!n.conditional)return;let r=[];for(let a of t)for(let l=e.k;l<e.width;l++){let u=a[l];u&&u.valueIndex===o&&u.total===0&&typeof u.value=="number"&&r.push(u)}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 l=i===s?.5:(a.value-s)/(i-s),u=n.conditional.colors;a.style={scale:l,color:u.length>=2?ur(u,l):null}}else{let l=Math.min(0,s),u=Math.max(0,i);a.style={bar:u===l?0:(a.value-l)/(u-l),color:n.conditional.color}}})}function jo(e,t){t=$(t,"toGrid"),W($t(e),"toGrid(result): result must come from computePivot()");let n=j(t),o=e.view,r=K(o.formatting.locale,t.locale??e.locale),s={...k,...t.labels||{}},i=Ie(e.rowRoot,o.rows.length,o.collapsed.rows,o.totals.rowSubtotals,o.totals.grandTotalRow),l=Ie(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((O,v)=>({line:b,vi:v}))),u=Math.max(1,o.rows.length),c=o.cols.length+1,f=u+l.length;x("cells",(c+i.length)*f,n.cells,"grid cells");let m=o.values.map((b,O)=>ir(e,O)),p={result:e,view:o,labels:s,dataColumns:l,k:u,h:c,width:f,formats:m,formatters:m.map(b=>ke(b,r)),names:o.values.map(b=>ar(b,s))},g=cr(p),d=fr(p,i),h=[];It(g,0,0,c,f,h);let S=[];It(d,0,0,d.length,u,S),h.push(...S.map(b=>({...b,row:b.row+c}))),dr(p,d);let N=g.concat(d);for(let b of N)for(let O of b)O&&delete O.mergeKey;return{rows:N,headerRows:c,rowHeaderColumns:u,columnCount:f,merges:h,dataColumns:l.map(({line:b,vi:O})=>({colPath:b.node.path,valueIndex:O,total:G(b.kind)})),bodyRows:i.map(({node:b,kind:O})=>({rowPath:b.path,total:G(O),collapsed:O==="collapsed"})),formats:m,showAs:o.values.map(b=>b.showAs?b.showAs.type:null),valueNames:p.names,conditional:o.values.map(b=>b.conditional),locale:r,timeZone:e.timeZone}}var Uo=Object.freeze({colorScale:Object.freeze(["#f8696b","#ffeb84","#63be7b"]),dataBar:"#638ec6",pieRadius:Object.freeze(["0%","70%"]),donutRadius:Object.freeze(["42%","70%"])});export{xe as a,j as b,ln as c,Wr as d,dt as e,Ut as f,mr as g,F as h,Dr as i,_r as j,jr as k,Rr as l,nt as m,k as n,ee as o,te as p,Oe as q,wn as r,Nn as s,Xr as t,Or as u,Y as v,Sr as w,He as x,ke as y,Tr as z,ve as A,Ar as B,R as C,eo as D,Tt as E,In as F,co as G,xn as H,fo as I,Mn as J,Ln as K,Fn as L,En as M,Dn as N,_n as O,vt as P,mo as Q,qe as R,$r as S,ko as T,$t as U,Ie as V,ir as W,ar as X,_o as Y,jo as Z,Uo as _};
@@ -0,0 +1 @@
1
+ var i=class extends Error{constructor(e,n,r={}){super(n),this.name="PivotkitError",this.code=e,this.details=r}};function l(t,e){if(!t)throw new i("INVALID_ARGUMENT",e)}function p(t,e,n,r){if(e>n)throw new i("LIMIT_EXCEEDED",`${e.toLocaleString("en-US")} ${r} exceed the limit of ${n.toLocaleString("en-US")} (limits.${t})`,{limit:t,value:e,max:n})}var h=864e5,s="en-US",d=(t,e=2)=>String(t).padStart(e,"0");function x(t,e){if(t==null)return{};if(typeof t!="object"||Array.isArray(t))throw new i("INVALID_OPTION",`${e}: options must be an object, got ${JSON.stringify(t)}`);return t}var c=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),O=(t,e)=>c(t)&&Object.hasOwn(t,e)?t[e]:void 0,S=t=>typeof t=="number"&&Number.isFinite(t)?t:null;function m(t){let e;try{e=typeof t=="string"?t:JSON.stringify(t)??String(t)}catch{e=String(t)}return e.length>100?`${e.slice(0,99)}\u2026`:e}function f(t){return t.length===4?t.slice(1).split("").map(e=>e+e).join(""):t.slice(1)}function I(t){let e=f(t);return[0,2,4].map(n=>parseInt(e.slice(n,n+2),16))}function N(t){if(!Number.isFinite(t))return 0;let[e,n]=String(Math.abs(t)).split("e"),r=e.indexOf("."),o=r===-1?0:e.length-r-1;return Math.max(0,o-Number(n??0))}function A(t){let e=new Map;return{limit:t,get size(){return e.size},get(n){if(!e.has(n))return;let r=e.get(n);return e.delete(n),e.set(n,r),r},set(n,r){return e.delete(n),e.set(n,r),e.size>t&&e.delete(e.keys().next().value),r},getOrSet(n,r){let o=this.get(n);return o!==void 0?o:this.set(n,r())}}}function u(t){if(typeof t!="string"||t.length===0||t.length>64)return null;try{return Intl.getCanonicalLocales(t)[0]??null}catch{return null}}function b(t,e){if(t)return t;if(e==null)return s;let n=u(e);if(!n)throw new i("INVALID_OPTION",`options.locale ${JSON.stringify(e)} is not a locale`);return n}export{i as a,l as b,p as c,h as d,s as e,d as f,x as g,c as h,O as i,S as j,m as k,f as l,I as m,N as n,A as o,u as p,b as q};