@smallwebco/tinypivot-vue 1.0.49 → 1.0.51

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.
@@ -1,10 +1,10 @@
1
- (function(q,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@tanstack/vue-table")):typeof define=="function"&&define.amd?define(["exports","vue","@tanstack/vue-table"],e):(q=typeof globalThis<"u"?globalThis:q||self,e(q.TinyPivotVue={},q.Vue,q.VueTable))})(this,function(q,e,Ge){"use strict";function _e(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)&&("min"in t||"max"in t)}function Wt(t){const s=t.filter(f=>f!=null&&f!=="");if(s.length===0)return"string";const l=s.slice(0,100);let r=0,o=0,a=0;for(const f of l)typeof f=="boolean"?a++:typeof f=="number"||!Number.isNaN(Number(f))&&f!==""?r++:(f instanceof Date||!Number.isNaN(Date.parse(String(f))))&&o++;const p=l.length*.8;return a>=p?"boolean":r>=p?"number":o>=p?"date":"string"}function qt(t,s){const r=t.map(f=>f[s]).filter(f=>f!=null&&f!=="").slice(0,100);let o=0;const a=new Set;for(const f of r)a.add(String(f)),(typeof f=="number"||!Number.isNaN(Number(f))&&f!=="")&&o++;const p=o>=r.length*.8;return{field:s,type:p?"number":"string",uniqueCount:a.size,isNumeric:p}}function rt(t,s,l=500){const r=[];let o=0,a,p;for(const E of t){const S=E[s];if(S==null||S==="")o++;else{r.push(S);const F=typeof S=="number"?S:Number.parseFloat(String(S));Number.isNaN(F)||((a===void 0||F<a)&&(a=F),(p===void 0||F>p)&&(p=F))}}const f=new Set;for(const E of r)if(f.add(String(E)),f.size>=l)break;const k=Array.from(f).sort((E,S)=>{const F=Number.parseFloat(E),N=Number.parseFloat(S);return!Number.isNaN(F)&&!Number.isNaN(N)?F-N:E.localeCompare(S)}),b=Wt(r);return{uniqueValues:k,totalCount:t.length,nullCount:o,type:b,...b==="number"&&a!==void 0&&p!==void 0?{numericMin:a,numericMax:p}:{}}}function st(t,s){if(t==null||t==="")return"";switch(s){case"number":{const l=typeof t=="number"?t:Number.parseFloat(String(t));return Number.isNaN(l)?String(t):Math.abs(l)>=1e3?l.toLocaleString("en-US",{maximumFractionDigits:2}):l.toLocaleString("en-US",{maximumFractionDigits:4})}case"date":{const l=t instanceof Date?t:new Date(String(t));return Number.isNaN(l.getTime())?String(t):l.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}case"boolean":return t?"Yes":"No";default:return String(t)}}function it(t,s){return s.map(l=>String(t[l]??"(blank)")).join("|||")}function ct(t){return t.split("|||")}function Gt(t){const s=[...t].sort((r,o)=>r-o),l=Math.floor(s.length/2);return s.length%2!==0?s[l]:(s[l-1]+s[l])/2}function _t(t){const s=t.reduce((o,a)=>o+a,0)/t.length,r=t.map(o=>(o-s)**2).reduce((o,a)=>o+a,0)/t.length;return Math.sqrt(r)}function Ye(t,s,l,r,o){if(t.length===0&&s!=="custom")return null;switch(s){case"sum":return t.reduce((a,p)=>a+p,0);case"count":return t.length;case"avg":return t.reduce((a,p)=>a+p,0)/t.length;case"min":return Math.min(...t);case"max":return Math.max(...t);case"countDistinct":return new Set(t).size;case"median":return Gt(t);case"stdDev":return _t(t);case"percentOfTotal":{const a=t.reduce((p,f)=>p+f,0);return l===void 0||l===0?null:a/l*100}case"custom":return null;default:return t.reduce((a,p)=>a+p,0)}}function Ie(t,s){return t===null?"-":s==="count"||s==="countDistinct"?Math.round(t).toLocaleString():s==="percentOfTotal"?`${t.toFixed(1)}%`:s==="stdDev"?t.toLocaleString("en-US",{maximumFractionDigits:2}):Math.abs(t)>=1e3?t.toLocaleString("en-US",{maximumFractionDigits:2}):t.toLocaleString("en-US",{maximumFractionDigits:4})}function je(t,s){return t==="custom"&&s?s:{sum:"Sum",count:"Count",avg:"Average",min:"Min",max:"Max",countDistinct:"Count Distinct",median:"Median",stdDev:"Std Dev",percentOfTotal:"% of Total",custom:"Custom"}[t]}function dt(t,s){return t==="custom"&&s?s:{sum:"Σ",count:"#",avg:"x̄",min:"↓",max:"↑",countDistinct:"◇",median:"M̃",stdDev:"σ",percentOfTotal:"%Σ",custom:"ƒ"}[t]}const Yt=[{value:"sum",label:"Sum",symbol:"Σ"},{value:"count",label:"Count",symbol:"#"},{value:"avg",label:"Avg",symbol:"x̄"},{value:"min",label:"Min",symbol:"↓"},{value:"max",label:"Max",symbol:"↑"},{value:"countDistinct",label:"Unique",symbol:"◇"},{value:"median",label:"Median",symbol:"M̃"},{value:"stdDev",label:"Std Dev",symbol:"σ"},{value:"percentOfTotal",label:"% of Total",symbol:"%Σ"}];function It(t,s,l=2){if(t===null)return"-";switch(s){case"percent":return`${t.toFixed(l)}%`;case"currency":return t.toLocaleString("en-US",{style:"currency",currency:"USD",minimumFractionDigits:l,maximumFractionDigits:l});default:return t.toLocaleString("en-US",{minimumFractionDigits:0,maximumFractionDigits:l})}}function ut(t){const s=t.match(/[a-zA-Z_][a-zA-Z0-9_]*/g)||[],l=["true","false","null","undefined"];return[...new Set(s.filter(r=>!l.includes(r.toLowerCase())))]}function mt(t,s){if(!t.trim())return"Formula is required";const l=ut(t);if(l.length===0)return"Formula must reference at least one field";const r=s.map(o=>o.toLowerCase());for(const o of l)if(!r.includes(o.toLowerCase()))return`Unknown field: ${o}`;try{let o=t;for(const a of l){const p=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");o=o.replace(new RegExp(`\\b${p}\\b`,"gi"),"1")}new Function(`return ${o}`)}catch{return"Invalid formula syntax"}return null}function gt(t,s,l){try{const r=ut(t);let o=t;for(const p of r){const f=l.find(S=>S.toLowerCase()===p.toLowerCase())||p,k=s[f];if(k==null||k==="")return null;const b=typeof k=="number"?k:Number.parseFloat(String(k));if(Number.isNaN(b))return null;const E=p.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");o=o.replace(new RegExp(`\\b${E}\\b`,"gi"),String(b))}if(!/^[\d\s+\-*/().]+$/.test(o))return null;const a=new Function(`return ${o}`)();return typeof a=="number"&&Number.isFinite(a)?a:null}catch{return null}}function Xt(t){return t.length===0?[]:Object.keys(t[0]).map(l=>qt(t,l))}function Zt(t,s,l,r){const o=new Set([...s,...l,...r.map(a=>a.field)]);return t.filter(a=>!o.has(a.field))}function pt(t){return(t.rowFields.length>0||t.columnFields.length>0)&&t.valueFields.length>0}function Qt(t,s){const{rowFields:l,columnFields:r,valueFields:o,showRowTotals:a,showColumnTotals:p,calculatedFields:f}=s;if(!pt(s)||t.length===0)return null;const k=new Map;if(f)for(const R of f)k.set(R.id,R);const b=t.length>0?Object.keys(t[0]):[],E=new Set,S=new Set,F=new Map;for(const R of t){const C=l.length>0?it(R,l):"__all__",g=r.length>0?it(R,r):"__all__";E.add(C),S.add(g),F.has(C)||F.set(C,new Map);const d=F.get(C);d.has(g)||d.set(g,o.map(()=>[]));const c=d.get(g);for(let u=0;u<o.length;u++){const V=o[u];let $=null;if(V.field.startsWith("calc:")){const j=V.field.replace("calc:",""),J=k.get(j);J&&($=gt(J.formula,R,b))}else{const j=R[V.field];j!=null&&j!==""&&($=typeof j=="number"?j:Number.parseFloat(String(j)),Number.isNaN($)&&($=V.aggregation==="count"||V.aggregation==="countDistinct"?1:null))}$!==null&&c[u].push($)}}const N=Array.from(E).sort(),w=Array.from(S).sort(),z=o.map((R,C)=>{let g=0;for(const d of t){let c=null;if(R.field.startsWith("calc:")){const u=R.field.replace("calc:",""),V=k.get(u);V&&(c=gt(V.formula,d,b))}else{const u=d[R.field];u!=null&&u!==""&&(c=typeof u=="number"?u:Number.parseFloat(String(u)),Number.isNaN(c)&&(c=null))}c!==null&&(g+=c)}return g});function W(R){if(R.field.startsWith("calc:")){const C=R.field.replace("calc:",""),g=k.get(C);return`${(g==null?void 0:g.name)||R.field} (${je(R.aggregation)})`}return`${R.label||R.field} (${je(R.aggregation)})`}const H=[];if(r.length>0){const R=o.length>1?o.length:1;for(let C=0;C<r.length;C++){const g=[];for(const d of w){const c=ct(d);for(let u=0;u<R;u++)g.push(c[C]||"")}H.push(g)}}if(o.length>1||H.length===0){const R=[];for(const C of w)for(const g of o)R.push(W(g));w.length===1&&w[0]==="__all__"?H.push(o.map(C=>W(C))):H.push(R)}const P=N.map(R=>R==="__all__"?["Total"]:ct(R)),M=[],x=[],T=new Map;for(const R of N){const C=[],g=o.map(()=>[]);for(const d of w){const c=F.get(R),u=(c==null?void 0:c.get(d))||o.map(()=>[]);for(let $=0;$<u.length;$++)g[$].push(...u[$]);T.has(d)||T.set(d,o.map(()=>[]));const V=T.get(d);for(let $=0;$<u.length;$++)V[$].push(...u[$]);for(let $=0;$<o.length;$++){const j=o[$],J=u[$]||[],se=z[$],ve=Ye(J,j.aggregation,se);let ae;if(j.field.startsWith("calc:")){const Me=j.field.replace("calc:",""),ie=k.get(Me);ae=It(ve,(ie==null?void 0:ie.formatAs)||"number",(ie==null?void 0:ie.decimals)??2)}else ae=Ie(ve,j.aggregation);C.push({value:ve,count:J.length,formattedValue:ae})}}if(M.push(C),a&&w.length>1)if(o.length>0){const d=o[0],c=g[0]||[],u=Ye(c,d.aggregation,z[0]);x.push({value:u,count:c.length,formattedValue:Ie(u,d.aggregation)})}else x.push({value:null,count:0,formattedValue:"-"})}const U=[];if(p&&N.length>1)for(const R of w){const C=T.get(R)||o.map(()=>[]);for(let g=0;g<o.length;g++){const d=o[g],c=C[g]||[],u=Ye(c,d.aggregation,z[g]);U.push({value:u,count:c.length,formattedValue:Ie(u,d.aggregation)})}}const _={value:null,count:0,formattedValue:"-"};if(a&&p&&o.length>0){const R=o.map(()=>[]);for(const c of N){const u=F.get(c);if(u)for(const V of w){const $=u.get(V);if($)for(let j=0;j<$.length;j++)R[j].push(...$[j])}}const C=o[0],g=R[0]||[],d=Ye(g,C.aggregation,z[0]);_.value=d,_.count=g.length,_.formattedValue=Ie(d,C.aggregation)}return{headers:H,rowHeaders:P,data:M,rowTotals:x,columnTotals:U,grandTotal:_}}const Jt="vpg-pivot-";function el(t){const l=[...t].sort().join("|").substring(0,100);return`${Jt}${l}`}function tl(t,s){try{sessionStorage.setItem(t,JSON.stringify(s))}catch{}}function ll(t){try{const s=sessionStorage.getItem(t);if(s)return JSON.parse(s)}catch{}return null}function tt(t,s){const l=new Set(s);return[...t.rowFields,...t.columnFields,...t.valueFields.map(o=>o.field)].filter(o=>!o.startsWith("calc:")).every(o=>l.has(o))}const ft="vpg-calculated-fields";function He(t){try{localStorage.setItem(ft,JSON.stringify(t))}catch{}}function vt(){try{const t=localStorage.getItem(ft);if(t)return JSON.parse(t)}catch{}return[]}const ht={type:"free",isValid:!0,features:{pivot:!0,advancedAggregations:!1,percentageMode:!1,sessionPersistence:!1,noWatermark:!1}},Xe={type:"free",isValid:!1,features:{pivot:!0,advancedAggregations:!1,percentageMode:!1,sessionPersistence:!1,noWatermark:!1}},nl={type:"free",isValid:!0,features:{pivot:!0,advancedAggregations:!0,percentageMode:!0,sessionPersistence:!0,noWatermark:!1}},ol=`-----BEGIN PUBLIC KEY-----
1
+ (function(q,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@tanstack/vue-table")):typeof define=="function"&&define.amd?define(["exports","vue","@tanstack/vue-table"],e):(q=typeof globalThis<"u"?globalThis:q||self,e(q.TinyPivotVue={},q.Vue,q.VueTable))})(this,function(q,e,Ge){"use strict";function ne(t,r=","){if(t==null)return"";const l=String(t);return l.includes(r)||l.includes('"')||l.includes(`
2
+ `)?`"${l.replace(/"/g,'""')}"`:l}function Wt(t,r,l={}){const{filename:a="export.csv",includeHeaders:o=!0,delimiter:s=","}=l,p=[];o&&p.push(r.map(k=>ne(k,s)).join(s));for(const k of t){const b=r.map(E=>ne(k[E],s));p.push(b.join(s))}const f=p.join(`
3
+ `);rt(f,a,"text/csv;charset=utf-8;")}function qt(t,r,l,a,o={}){const{filename:s="pivot-export.csv",delimiter:p=","}=o,f=[],{headers:k,rowHeaders:b,data:E,rowTotals:S,columnTotals:F,grandTotal:N,showRowTotals:w,showColumnTotals:z}=t,W=r.length||1;if(k.length>0)for(let P=0;P<k.length;P++){const M=[];for(let x=0;x<W;x++)M.push(P===k.length-1?ne(r[x]||"",p):"");for(const x of k[P])M.push(ne(x,p));if(w&&S&&S.length>0)if(P===k.length-1)for(const x of a)M.push(ne(`Total (${x.aggregation})`,p));else for(let x=0;x<a.length;x++)M.push("");f.push(M.join(p))}else{const P=[];for(let M=0;M<W;M++)P.push(ne(r[M]||"",p));for(const M of a)P.push(ne(`${M.field} (${M.aggregation})`,p));w&&S&&S.length>0&&P.push(ne("Total",p)),f.push(P.join(p))}for(let P=0;P<b.length;P++){const M=[],x=b[P]||[];for(let U=0;U<W;U++)M.push(ne(x[U]||"",p));const T=E[P]||[];for(const U of T)M.push(ne((U==null?void 0:U.formattedValue)||"",p));w&&S&&S[P]&&M.push(ne(S[P].formattedValue||"",p)),f.push(M.join(p))}if(z&&F&&F.length>0){const P=[];P.push(ne("Total",p));for(let M=1;M<W;M++)P.push("");for(const M of F)P.push(ne((M==null?void 0:M.formattedValue)||"",p));w&&N&&P.push(ne(N.formattedValue||"",p)),f.push(P.join(p))}const H=f.join(`
4
+ `);rt(H,s,"text/csv;charset=utf-8;")}function rt(t,r,l){const a=new Blob([t],{type:l}),o=URL.createObjectURL(a),s=document.createElement("a");s.href=o,s.download=r,s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(o)}function Gt(t,r,l){navigator.clipboard.writeText(t).then(r).catch(l)}function _t(t,r,l){const{minRow:a,maxRow:o,minCol:s,maxCol:p}=l,f=[];for(let k=a;k<=o;k++){const b=t[k];if(!b)continue;const E=[];for(let S=s;S<=p;S++){const F=r[S];if(!F)continue;const N=b[F];E.push(N==null?"":String(N))}f.push(E.join(" "))}return f.join(`
5
+ `)}const st={type:"free",isValid:!0,features:{pivot:!0,advancedAggregations:!1,percentageMode:!1,sessionPersistence:!1,noWatermark:!1}},_e={type:"free",isValid:!1,features:{pivot:!0,advancedAggregations:!1,percentageMode:!1,sessionPersistence:!1,noWatermark:!1}},Yt={type:"free",isValid:!0,features:{pivot:!0,advancedAggregations:!0,percentageMode:!0,sessionPersistence:!0,noWatermark:!1}},It=`-----BEGIN PUBLIC KEY-----
2
6
  MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE436rfGofder4lfo4UHsRF2M88Gs0
3
7
  zLsikg2H9GMkL8hLGuOtnGMpVfLRlc7cD8FdkPBBRgiQ8UFnG8hm+nMIug==
4
- -----END PUBLIC KEY-----`;function kt(t){let s=t.replace(/-/g,"+").replace(/_/g,"/");for(;s.length%4;)s+="=";const l=atob(s),r=new Uint8Array(l.length);for(let o=0;o<l.length;o++)r[o]=l.charCodeAt(o);return r}function al(t){if(t[0]!==48)throw new Error("Invalid DER signature");let s=2;if(t[s]!==2)throw new Error("Invalid DER signature");s++;const l=t[s];s++;let r=t.slice(s,s+l);if(s+=l,t[s]!==2)throw new Error("Invalid DER signature");s++;const o=t[s];s++;let a=t.slice(s,s+o);r.length===33&&r[0]===0&&(r=r.slice(1)),a.length===33&&a[0]===0&&(a=a.slice(1));const p=new Uint8Array(32),f=new Uint8Array(32);p.set(r,32-r.length),f.set(a,32-a.length);const k=new Uint8Array(64);return k.set(p,0),k.set(f,32),k}async function rl(){try{const t=ol.replace("-----BEGIN PUBLIC KEY-----","").replace("-----END PUBLIC KEY-----","").replace(/\s/g,""),s=kt(t);return await crypto.subtle.importKey("spki",new Uint8Array(s).buffer,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"])}catch{return null}}async function sl(t,s,l){const r=`TP-${t}-${l}`;try{const o=await rl();if(!o)return!1;const p=new TextEncoder().encode(r),f=kt(s),k=al(f);return await crypto.subtle.verify({name:"ECDSA",hash:"SHA-256"},o,new Uint8Array(k).buffer,p)}catch{return!1}}async function il(t){if(!t||t==="")return ht;if(!t.startsWith("TP-"))return Xe;const s=t.lastIndexOf("-");if(s===-1||t.length-s!==9)return Xe;const l=t.slice(s+1),r=t.slice(3),o=r.indexOf("-");if(o===-1)return Xe;const a=r.slice(0,o),p=r.slice(o+1,r.lastIndexOf("-"));if(!await sl(a,p,l))return Xe;const k=Number.parseInt(l.slice(0,4)),b=Number.parseInt(l.slice(4,6))-1,E=Number.parseInt(l.slice(6,8)),S=new Date(k,b,E);let F="free";return a==="PRO1"?F="pro-single":a==="PROU"?F="pro-unlimited":a==="PROT"&&(F="pro-team"),{type:F,isValid:!0,expiresAt:S,features:{pivot:F!=="free",advancedAggregations:F!=="free",percentageMode:F!=="free",sessionPersistence:F!=="free",noWatermark:F!=="free"}}}function cl(t){console.warn("[TinyPivot] configureLicenseSecret() is deprecated and no longer needed.")}const dl="A48AA0618518D3E62F31FCFCA2DD2B86E7FE0863E2F90756FB0A960AE7A51583";async function ul(t){try{const l=new TextEncoder().encode(t),r=await crypto.subtle.digest("SHA-256",l);return Array.from(new Uint8Array(r)).map(a=>a.toString(16).padStart(2,"0")).join("").toUpperCase()}catch{return""}}async function ml(t){return!t||await ul(t)!==dl?null:nl}function gl(){return ht}function pl(t){return t.features.pivot}function fl(t){return t.isValid&&t.type!=="free"}function vl(t,s){return s||!t.features.noWatermark}function hl(t){console.warn(`[TinyPivot] "${t}" requires a Pro license. Visit https://tiny-pivot.com/#pricing to upgrade.`)}function ne(t,s=","){if(t==null)return"";const l=String(t);return l.includes(s)||l.includes('"')||l.includes(`
5
- `)?`"${l.replace(/"/g,'""')}"`:l}function kl(t,s,l={}){const{filename:r="export.csv",includeHeaders:o=!0,delimiter:a=","}=l,p=[];o&&p.push(s.map(k=>ne(k,a)).join(a));for(const k of t){const b=s.map(E=>ne(k[E],a));p.push(b.join(a))}const f=p.join(`
6
- `);wt(f,r,"text/csv;charset=utf-8;")}function wl(t,s,l,r,o={}){const{filename:a="pivot-export.csv",delimiter:p=","}=o,f=[],{headers:k,rowHeaders:b,data:E,rowTotals:S,columnTotals:F,grandTotal:N,showRowTotals:w,showColumnTotals:z}=t,W=s.length||1;if(k.length>0)for(let P=0;P<k.length;P++){const M=[];for(let x=0;x<W;x++)M.push(P===k.length-1?ne(s[x]||"",p):"");for(const x of k[P])M.push(ne(x,p));if(w&&S&&S.length>0)if(P===k.length-1)for(const x of r)M.push(ne(`Total (${x.aggregation})`,p));else for(let x=0;x<r.length;x++)M.push("");f.push(M.join(p))}else{const P=[];for(let M=0;M<W;M++)P.push(ne(s[M]||"",p));for(const M of r)P.push(ne(`${M.field} (${M.aggregation})`,p));w&&S&&S.length>0&&P.push(ne("Total",p)),f.push(P.join(p))}for(let P=0;P<b.length;P++){const M=[],x=b[P]||[];for(let U=0;U<W;U++)M.push(ne(x[U]||"",p));const T=E[P]||[];for(const U of T)M.push(ne((U==null?void 0:U.formattedValue)||"",p));w&&S&&S[P]&&M.push(ne(S[P].formattedValue||"",p)),f.push(M.join(p))}if(z&&F&&F.length>0){const P=[];P.push(ne("Total",p));for(let M=1;M<W;M++)P.push("");for(const M of F)P.push(ne((M==null?void 0:M.formattedValue)||"",p));w&&N&&P.push(ne(N.formattedValue||"",p)),f.push(P.join(p))}const H=f.join(`
7
- `);wt(H,a,"text/csv;charset=utf-8;")}function wt(t,s,l){const r=new Blob([t],{type:l}),o=URL.createObjectURL(r),a=document.createElement("a");a.href=o,a.download=s,a.style.display="none",document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(o)}function Vl(t,s,l){navigator.clipboard.writeText(t).then(s).catch(l)}function El(t,s,l){const{minRow:r,maxRow:o,minCol:a,maxCol:p}=l,f=[];for(let k=r;k<=o;k++){const b=t[k];if(!b)continue;const E=[];for(let S=a;S<=p;S++){const F=s[S];if(!F)continue;const N=b[F];E.push(N==null?"":String(N))}f.push(E.join(" "))}return f.join(`
8
- `)}const Vt=(t,s,l)=>{if(!l)return!0;if(_e(l)){const r=t.getValue(s);if(r==null||r==="")return!1;const o=typeof r=="number"?r:Number.parseFloat(String(r));if(Number.isNaN(o))return!1;const{min:a,max:p}=l;return!(a!==null&&o<a||p!==null&&o>p)}if(Array.isArray(l)&&l.length>0){const r=t.getValue(s),o=r==null||r===""?"(blank)":String(r);return l.includes(o)}return!0};function Et(t){const{data:s,enableSorting:l=!0,enableFiltering:r=!0}=t,o=e.ref([]),a=e.ref([]),p=e.ref({}),f=e.ref(""),k=e.ref({}),b=e.computed(()=>s.value.length===0?[]:Object.keys(s.value[0]));function E(C){const g=`${C}-${s.value.length}`;return k.value[g]||(k.value[g]=rt(s.value,C)),k.value[g]}function S(){k.value={}}const F=e.computed(()=>b.value.map(C=>{const g=E(C);return{id:C,accessorKey:C,header:C,cell:d=>st(d.getValue(),g.type),filterFn:Vt,meta:{type:g.type,uniqueCount:g.uniqueValues.length}}})),N=Ge.useVueTable({get data(){return s.value},get columns(){return F.value},state:{get sorting(){return o.value},get columnFilters(){return a.value},get columnVisibility(){return p.value},get globalFilter(){return f.value}},onSortingChange:C=>{o.value=typeof C=="function"?C(o.value):C},onColumnFiltersChange:C=>{a.value=typeof C=="function"?C(a.value):C},getCoreRowModel:Ge.getCoreRowModel(),getSortedRowModel:l?Ge.getSortedRowModel():void 0,getFilteredRowModel:r?Ge.getFilteredRowModel():void 0,filterFns:{multiSelect:Vt},enableSorting:l,enableFilters:r}),w=e.computed(()=>N.getFilteredRowModel().rows.length),z=e.computed(()=>s.value.length),W=e.computed(()=>a.value.map(C=>{const g=C.value;return g&&_e(g)?{column:C.id,type:"range",range:g,values:[]}:{column:C.id,type:"values",values:Array.isArray(g)?g:[],range:null}}));function H(C){const g=N.getColumn(C);if(!g)return!1;const d=g.getFilterValue();return d?_e(d)?d.min!==null||d.max!==null:Array.isArray(d)&&d.length>0:!1}function P(C,g){const d=N.getColumn(C);d&&(d.setFilterValue(g.length===0?void 0:g),a.value=N.getState().columnFilters)}function M(C,g){const d=N.getColumn(C);d&&(!g||g.min===null&&g.max===null?d.setFilterValue(void 0):d.setFilterValue(g),a.value=N.getState().columnFilters)}function x(C){const g=N.getColumn(C);if(!g)return null;const d=g.getFilterValue();return d&&_e(d)?d:null}function T(){N.resetColumnFilters(),f.value="",a.value=[]}function U(C){const g=N.getColumn(C);if(!g)return[];const d=g.getFilterValue();return Array.isArray(d)?d:[]}function _(C){const g=o.value.find(d=>d.id===C);g?g.desc?o.value=[]:o.value=[{id:C,desc:!0}]:o.value=[{id:C,desc:!1}]}function R(C){const g=o.value.find(d=>d.id===C);return g?g.desc?"desc":"asc":null}return e.watch(s,()=>{S()}),{table:N,sorting:o,columnFilters:a,columnVisibility:p,globalFilter:f,columnKeys:b,filteredRowCount:w,totalRowCount:z,activeFilters:W,getColumnStats:E,clearStatsCache:S,hasActiveFilter:H,setColumnFilter:P,getColumnFilterValues:U,clearAllFilters:T,toggleSort:_,getSortDirection:R,setNumericRangeFilter:M,getNumericRangeFilter:x}}const Cl=e.ref(null),Ee=e.ref(!1),ge=e.ref(gl());let lt=null;async function Nl(t){Cl.value=t,lt=il(t),ge.value=await lt,lt=null,ge.value.isValid?ge.value.type!=="free"&&console.info(`[TinyPivot] Pro license activated (${ge.value.type})`):console.warn("[TinyPivot] Invalid or expired license key. Running in free mode.")}async function yl(t){const s=await ml(t);return s?(Ee.value=!0,ge.value=s,console.info("[TinyPivot] Demo mode enabled - all Pro features unlocked for evaluation"),!0):(console.warn("[TinyPivot] Demo mode activation failed - invalid secret"),!1)}function bl(t){cl()}function Ke(){const t=e.computed(()=>Ee.value),s=e.computed(()=>Ee.value||fl(ge.value)),l=e.computed(()=>Ee.value||pl(ge.value)),r=e.computed(()=>Ee.value||ge.value.features.advancedAggregations),o=e.computed(()=>Ee.value||ge.value.features.percentageMode),a=e.computed(()=>vl(ge.value,Ee.value));function p(f){return s.value?!0:(hl(f),!1)}return{licenseInfo:e.computed(()=>ge.value),isDemo:t,isPro:s,canUsePivot:l,canUseAdvancedAggregations:r,canUsePercentageMode:o,showWatermark:a,requirePro:p}}function Ct(t){const{canUsePivot:s,requirePro:l}=Ke(),r=e.ref([]),o=e.ref([]),a=e.ref([]),p=e.ref(!0),f=e.ref(!0),k=e.ref(vt()),b=e.ref(null),E=e.computed(()=>Xt(t.value)),S=e.computed(()=>Zt(E.value,r.value,o.value,a.value)),F=e.computed(()=>pt({rowFields:r.value,columnFields:o.value,valueFields:a.value,showRowTotals:p.value,showColumnTotals:f.value})),N=e.computed(()=>!F.value||!s.value?null:Qt(t.value,{rowFields:r.value,columnFields:o.value,valueFields:a.value,showRowTotals:p.value,showColumnTotals:f.value,calculatedFields:k.value}));function w(g){r.value.includes(g)||(r.value=[...r.value,g])}function z(g){r.value=r.value.filter(d=>d!==g)}function W(g){o.value.includes(g)||(o.value=[...o.value,g])}function H(g){o.value=o.value.filter(d=>d!==g)}function P(g,d="sum"){d!=="sum"&&!l(`${d} aggregation`)||a.value.some(c=>c.field===g&&c.aggregation===d)||(a.value=[...a.value,{field:g,aggregation:d}])}function M(g,d){d?a.value=a.value.filter(c=>!(c.field===g&&c.aggregation===d)):a.value=a.value.filter(c=>c.field!==g)}function x(g,d,c){a.value=a.value.map(u=>u.field===g&&u.aggregation===d?{...u,aggregation:c}:u)}function T(){r.value=[],o.value=[],a.value=[]}function U(g,d){if(g.area===d.area){if(g.area==="row"){const c=[...r.value],[u]=c.splice(g.index,1);c.splice(d.index,0,u),r.value=c}else if(g.area==="column"){const c=[...o.value],[u]=c.splice(g.index,1);c.splice(d.index,0,u),o.value=c}}}function _(){if(!l("Pivot Table - Auto Suggest")||E.value.length===0)return;const g=E.value.filter(c=>!c.isNumeric&&c.uniqueCount<50),d=E.value.filter(c=>c.isNumeric);g.length>0&&d.length>0&&(r.value=[g[0].field],a.value=[{field:d[0].field,aggregation:"sum"}])}function R(g){const d=k.value.findIndex(c=>c.id===g.id);d>=0?k.value=[...k.value.slice(0,d),g,...k.value.slice(d+1)]:k.value=[...k.value,g],He(k.value)}function C(g){k.value=k.value.filter(d=>d.id!==g),a.value=a.value.filter(d=>d.field!==`calc:${g}`),He(k.value)}return e.watch(t,g=>{if(g.length===0)return;const d=Object.keys(g[0]),c=el(d);if(c!==b.value){b.value=c;const u=ll(c);if(u&&tt(u,d))r.value=u.rowFields,o.value=u.columnFields,a.value=u.valueFields,p.value=u.showRowTotals,f.value=u.showColumnTotals,u.calculatedFields&&(k.value=u.calculatedFields);else{const V={rowFields:r.value,columnFields:o.value,valueFields:a.value,showRowTotals:p.value,showColumnTotals:f.value};tt(V,d)||T()}}else{const u={rowFields:r.value,columnFields:o.value,valueFields:a.value,showRowTotals:p.value,showColumnTotals:f.value};tt(u,d)||T()}},{immediate:!0}),e.watch([r,o,a,p,f,k],()=>{if(!b.value)return;const g={rowFields:r.value,columnFields:o.value,valueFields:a.value,showRowTotals:p.value,showColumnTotals:f.value,calculatedFields:k.value};tl(b.value,g)},{deep:!0}),{rowFields:r,columnFields:o,valueFields:a,showRowTotals:p,showColumnTotals:f,calculatedFields:k,availableFields:E,unassignedFields:S,isConfigured:F,pivotResult:N,addRowField:w,removeRowField:z,addColumnField:W,removeColumnField:H,addValueField:P,removeValueField:M,updateValueFieldAggregation:x,clearConfig:T,moveField:U,autoSuggestConfig:_,addCalculatedField:R,removeCalculatedField:C}}function Nt(t,s,l){kl(t,s,l)}function yt(t,s,l,r,o){wl(t,s,l,r,o)}function bt(t,s,l){Vl(t,s,l)}function Ft(t,s,l){return El(t,s,l)}function Fl(t,s={}){const l=e.ref(s.pageSize??50),r=e.ref(s.currentPage??1),o=e.computed(()=>Math.max(1,Math.ceil(t.value.length/l.value))),a=e.computed(()=>{const w=(r.value-1)*l.value,z=w+l.value;return t.value.slice(w,z)}),p=e.computed(()=>(r.value-1)*l.value+1),f=e.computed(()=>Math.min(r.value*l.value,t.value.length));function k(w){r.value=Math.max(1,Math.min(w,o.value))}function b(){r.value<o.value&&r.value++}function E(){r.value>1&&r.value--}function S(){r.value=1}function F(){r.value=o.value}function N(w){l.value=w,r.value=1}return{pageSize:l,currentPage:r,totalPages:o,paginatedData:a,startIndex:p,endIndex:f,goToPage:k,nextPage:b,prevPage:E,firstPage:S,lastPage:F,setPageSize:N}}function Sl(t,s){const l=e.ref(""),r=e.ref(!1),o=e.computed(()=>{if(!l.value.trim())return t.value;const p=r.value?l.value.trim():l.value.trim().toLowerCase();return t.value.filter(f=>{for(const k of s.value){const b=f[k];if(b==null)continue;if((r.value?String(b):String(b).toLowerCase()).includes(p))return!0}return!1})});function a(){l.value=""}return{searchTerm:l,caseSensitive:r,filteredData:o,clearSearch:a}}function Bl(t){const s=e.ref(new Set),l=e.computed(()=>Array.from(s.value).sort((N,w)=>N-w).map(N=>t.value[N]).filter(Boolean)),r=e.computed(()=>t.value.length>0&&s.value.size===t.value.length),o=e.computed(()=>s.value.size>0&&s.value.size<t.value.length);function a(N){s.value.has(N)?s.value.delete(N):s.value.add(N),s.value=new Set(s.value)}function p(N){s.value.add(N),s.value=new Set(s.value)}function f(N){s.value.delete(N),s.value=new Set(s.value)}function k(){s.value=new Set(t.value.map((N,w)=>w))}function b(){s.value=new Set}function E(){r.value?b():k()}function S(N){return s.value.has(N)}function F(N,w){const z=Math.min(N,w),W=Math.max(N,w);for(let H=z;H<=W;H++)s.value.add(H);s.value=new Set(s.value)}return{selectedRowIndices:s,selectedRows:l,allSelected:r,someSelected:o,toggleRow:a,selectRow:p,deselectRow:f,selectAll:k,deselectAll:b,toggleAll:E,isSelected:S,selectRange:F}}function xl(t,s=60,l=600){const r=e.ref({...t.value}),o=e.ref(!1),a=e.ref(null);function p(b,E){o.value=!0,a.value=b;const S=E.clientX,F=r.value[b]||150,N=z=>{const W=z.clientX-S,H=Math.max(s,Math.min(l,F+W));r.value={...r.value,[b]:H}},w=()=>{o.value=!1,a.value=null,document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",w)};document.addEventListener("mousemove",N),document.addEventListener("mouseup",w)}function f(b){t.value[b]&&(r.value={...r.value,[b]:t.value[b]})}function k(){r.value={...t.value}}return{columnWidths:r,isResizing:o,resizingColumn:a,startResize:p,resetColumnWidth:f,resetAllWidths:k}}const Ml={class:"vpg-range-filter"},$l={class:"vpg-range-info"},Dl={class:"vpg-range-bounds"},Rl={class:"vpg-slider-container"},Tl={class:"vpg-slider-track"},Ll=["min","max","step","value"],zl=["min","max","step","value"],Al={class:"vpg-range-inputs"},Pl={class:"vpg-input-group"},Ul=["placeholder","value","step"],jl={class:"vpg-input-group"},Hl=["placeholder","value","step"],Kl={class:"vpg-range-actions"},Ol=["disabled"],Wl={key:0,class:"vpg-filter-summary"},ql=e.defineComponent({__name:"NumericRangeFilter",props:{dataMin:{},dataMax:{},currentRange:{}},emits:["change"],setup(t,{emit:s}){var P,M;const l=t,r=s,o=e.ref(((P=l.currentRange)==null?void 0:P.min)??null),a=e.ref(((M=l.currentRange)==null?void 0:M.max)??null),p=e.computed(()=>{const x=l.dataMax-l.dataMin;return x===0?1:x<=1?.01:x<=10?.1:x<=100?1:x<=1e3?10:Math.pow(10,Math.floor(Math.log10(x))-2)}),f=x=>x===null?"":Number.isInteger(x)?x.toLocaleString():x.toLocaleString(void 0,{maximumFractionDigits:2}),k=e.computed(()=>o.value!==null||a.value!==null),b=e.computed(()=>o.value===null||l.dataMax===l.dataMin?0:(o.value-l.dataMin)/(l.dataMax-l.dataMin)*100),E=e.computed(()=>a.value===null||l.dataMax===l.dataMin?100:(a.value-l.dataMin)/(l.dataMax-l.dataMin)*100);function S(x){const T=x.target,U=Number.parseFloat(T.value);a.value!==null&&U>a.value?o.value=a.value:o.value=U}function F(x){const T=x.target,U=Number.parseFloat(T.value);o.value!==null&&U<o.value?a.value=o.value:a.value=U}function N(x){const T=x.target,U=T.value===""?null:Number.parseFloat(T.value);U!==null&&!Number.isNaN(U)?o.value=Math.max(l.dataMin,Math.min(U,a.value??l.dataMax)):U===null&&(o.value=null)}function w(x){const T=x.target,U=T.value===""?null:Number.parseFloat(T.value);U!==null&&!Number.isNaN(U)?a.value=Math.min(l.dataMax,Math.max(U,o.value??l.dataMin)):U===null&&(a.value=null)}function z(){o.value=null,a.value=null,H()}function W(){o.value=l.dataMin,a.value=l.dataMax,H()}function H(){o.value===null&&a.value===null?r("change",null):r("change",{min:o.value,max:a.value})}return e.watch(()=>l.currentRange,x=>{o.value=(x==null?void 0:x.min)??null,a.value=(x==null?void 0:x.max)??null},{immediate:!0}),(x,T)=>(e.openBlock(),e.createElementBlock("div",Ml,[e.createElementVNode("div",$l,[T[0]||(T[0]=e.createElementVNode("span",{class:"vpg-range-label"},"Data range:",-1)),e.createElementVNode("span",Dl,e.toDisplayString(f(t.dataMin))+" – "+e.toDisplayString(f(t.dataMax)),1)]),e.createElementVNode("div",Rl,[e.createElementVNode("div",Tl,[e.createElementVNode("div",{class:"vpg-slider-fill",style:e.normalizeStyle({left:`${b.value}%`,right:`${100-E.value}%`})},null,4)]),e.createElementVNode("input",{type:"range",class:"vpg-slider vpg-slider-min",min:t.dataMin,max:t.dataMax,step:p.value,value:o.value??t.dataMin,onInput:S,onChange:H},null,40,Ll),e.createElementVNode("input",{type:"range",class:"vpg-slider vpg-slider-max",min:t.dataMin,max:t.dataMax,step:p.value,value:a.value??t.dataMax,onInput:F,onChange:H},null,40,zl)]),e.createElementVNode("div",Al,[e.createElementVNode("div",Pl,[T[1]||(T[1]=e.createElementVNode("label",{class:"vpg-input-label"},"Min",-1)),e.createElementVNode("input",{type:"number",class:"vpg-range-input",placeholder:f(t.dataMin),value:o.value??"",step:p.value,onInput:N,onChange:H},null,40,Ul)]),T[3]||(T[3]=e.createElementVNode("span",{class:"vpg-input-separator"},"to",-1)),e.createElementVNode("div",jl,[T[2]||(T[2]=e.createElementVNode("label",{class:"vpg-input-label"},"Max",-1)),e.createElementVNode("input",{type:"number",class:"vpg-range-input",placeholder:f(t.dataMax),value:a.value??"",step:p.value,onInput:w,onChange:H},null,40,Hl)])]),e.createElementVNode("div",Kl,[e.createElementVNode("button",{class:"vpg-range-btn",disabled:!k.value,onClick:z},[...T[4]||(T[4]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),e.createTextVNode(" Clear ",-1)])],8,Ol),e.createElementVNode("button",{class:"vpg-range-btn",onClick:W},[...T[5]||(T[5]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"})],-1),e.createTextVNode(" Full Range ",-1)])])]),k.value?(e.openBlock(),e.createElementBlock("div",Wl,[T[7]||(T[7]=e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})],-1)),e.createElementVNode("span",null,[T[6]||(T[6]=e.createTextVNode(" Showing values ",-1)),e.createElementVNode("strong",null,e.toDisplayString(o.value!==null?`≥ ${f(o.value)}`:""),1),e.createTextVNode(" "+e.toDisplayString(o.value!==null&&a.value!==null?" and ":"")+" ",1),e.createElementVNode("strong",null,e.toDisplayString(a.value!==null?`≤ ${f(a.value)}`:""),1)])])):e.createCommentVNode("",!0)]))}}),xe=(t,s)=>{const l=t.__vccOpts||t;for(const[r,o]of s)l[r]=o;return l},Gl=xe(ql,[["__scopeId","data-v-0c361932"]]),_l={class:"vpg-filter-header"},Yl={class:"vpg-filter-title"},Il={class:"vpg-filter-count"},Xl={class:"vpg-sort-controls"},Zl=["title"],Ql=["title"],Jl={key:0,class:"vpg-filter-tabs"},en={class:"vpg-search-container"},tn={class:"vpg-values-list"},ln=["checked","onChange"],nn={key:0,class:"vpg-no-results"},St=xe(e.defineComponent({__name:"ColumnFilter",props:{columnId:{},columnName:{},stats:{},selectedValues:{},sortDirection:{},numericRange:{}},emits:["filter","sort","close","rangeFilter"],setup(t,{emit:s}){const l=t,r=s,o=e.ref(""),a=e.ref(),p=e.ref(),f=e.computed(()=>l.stats.type==="number"&&l.stats.numericMin!==void 0&&l.stats.numericMax!==void 0),k=e.ref(l.numericRange?"range":"values"),b=e.ref(l.numericRange??null);e.computed(()=>{const d=[...l.stats.uniqueValues];return l.stats.nullCount>0&&d.unshift("(blank)"),d});const E=e.ref(new Set(l.selectedValues)),S=e.computed(()=>l.stats.nullCount>0),F=e.computed(()=>{const d=l.stats.uniqueValues;if(!o.value)return d;const c=o.value.toLowerCase();return d.filter(u=>u.toLowerCase().includes(c))}),N=e.computed(()=>{const d=[...F.value];return S.value&&(!o.value||"(blank)".includes(o.value.toLowerCase()))&&d.unshift("(blank)"),d});e.computed(()=>N.value.every(d=>E.value.has(d))),e.computed(()=>E.value.size===0);function w(d){E.value.has(d)?E.value.delete(d):E.value.add(d),E.value=new Set(E.value)}function z(){for(const d of N.value)E.value.add(d);E.value=new Set(E.value)}function W(){E.value.clear(),E.value=new Set(E.value)}function H(){E.value.size===0?r("filter",[]):r("filter",Array.from(E.value)),r("close")}function P(){r("sort",l.sortDirection==="asc"?null:"asc")}function M(){r("sort",l.sortDirection==="desc"?null:"desc")}function x(){E.value.clear(),E.value=new Set(E.value),r("filter",[]),r("close")}function T(d){b.value=d}function U(){r("rangeFilter",b.value),r("close")}function _(){b.value=null,r("rangeFilter",null),r("close")}function R(d){k.value=d}function C(d){a.value&&!a.value.contains(d.target)&&r("close")}function g(d){d.key==="Escape"?r("close"):d.key==="Enter"&&d.ctrlKey&&H()}return e.onMounted(()=>{e.nextTick(()=>{var d;(d=p.value)==null||d.focus()}),document.addEventListener("mousedown",C),document.addEventListener("keydown",g)}),e.onUnmounted(()=>{document.removeEventListener("mousedown",C),document.removeEventListener("keydown",g)}),e.watch(()=>l.selectedValues,d=>{E.value=new Set(d)},{immediate:!0}),e.watch(()=>l.numericRange,d=>{b.value=d??null,d&&(k.value="range")},{immediate:!0}),(d,c)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:a,class:"vpg-filter-dropdown"},[e.createElementVNode("div",_l,[e.createElementVNode("span",Yl,e.toDisplayString(t.columnName),1),e.createElementVNode("span",Il,e.toDisplayString(t.stats.uniqueValues.length.toLocaleString())+" unique ",1)]),e.createElementVNode("div",Xl,[e.createElementVNode("button",{class:e.normalizeClass(["vpg-sort-btn",{active:t.sortDirection==="asc"}]),title:f.value?"Sort Low to High":"Sort A to Z",onClick:P},[c[4]||(c[4]=e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})],-1)),e.createElementVNode("span",null,e.toDisplayString(f.value?"1→9":"A→Z"),1)],10,Zl),e.createElementVNode("button",{class:e.normalizeClass(["vpg-sort-btn",{active:t.sortDirection==="desc"}]),title:f.value?"Sort High to Low":"Sort Z to A",onClick:M},[c[5]||(c[5]=e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"})],-1)),e.createElementVNode("span",null,e.toDisplayString(f.value?"9→1":"Z→A"),1)],10,Ql)]),c[11]||(c[11]=e.createElementVNode("div",{class:"vpg-divider"},null,-1)),f.value?(e.openBlock(),e.createElementBlock("div",Jl,[e.createElementVNode("button",{class:e.normalizeClass(["vpg-tab-btn",{active:k.value==="values"}]),onClick:c[0]||(c[0]=u=>R("values"))},[...c[6]||(c[6]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"})],-1),e.createTextVNode(" Values ",-1)])],2),e.createElementVNode("button",{class:e.normalizeClass(["vpg-tab-btn",{active:k.value==="range"}]),onClick:c[1]||(c[1]=u=>R("range"))},[...c[7]||(c[7]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"})],-1),e.createTextVNode(" Range ",-1)])],2)])):e.createCommentVNode("",!0),!f.value||k.value==="values"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",en,[c[8]||(c[8]=e.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)),e.withDirectives(e.createElementVNode("input",{ref_key:"searchInputRef",ref:p,"onUpdate:modelValue":c[2]||(c[2]=u=>o.value=u),type:"text",placeholder:"Search values...",class:"vpg-search-input"},null,512),[[e.vModelText,o.value]]),o.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-clear-search",onClick:c[3]||(c[3]=u=>o.value="")}," × ")):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vpg-bulk-actions"},[e.createElementVNode("button",{class:"vpg-bulk-btn",onClick:z},[...c[9]||(c[9]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})],-1),e.createTextVNode(" Select All ",-1)])]),e.createElementVNode("button",{class:"vpg-bulk-btn",onClick:W},[...c[10]||(c[10]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),e.createTextVNode(" Clear All ",-1)])])]),e.createElementVNode("div",tn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,u=>(e.openBlock(),e.createElementBlock("label",{key:u,class:e.normalizeClass(["vpg-value-item",{selected:E.value.has(u)}])},[e.createElementVNode("input",{type:"checkbox",checked:E.value.has(u),class:"vpg-value-checkbox",onChange:V=>w(u)},null,40,ln),e.createElementVNode("span",{class:e.normalizeClass(["vpg-value-text",{"vpg-blank":u==="(blank)"}])},e.toDisplayString(u),3)],2))),128)),N.value.length===0?(e.openBlock(),e.createElementBlock("div",nn," No matching values ")):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vpg-filter-footer"},[e.createElementVNode("button",{class:"vpg-btn-clear",onClick:x}," Clear Filter "),e.createElementVNode("button",{class:"vpg-btn-apply",onClick:H}," Apply ")])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createVNode(Gl,{"data-min":t.stats.numericMin,"data-max":t.stats.numericMax,"current-range":b.value,onChange:T},null,8,["data-min","data-max","current-range"]),e.createElementVNode("div",{class:"vpg-filter-footer"},[e.createElementVNode("button",{class:"vpg-btn-clear",onClick:_}," Clear Filter "),e.createElementVNode("button",{class:"vpg-btn-apply",onClick:U}," Apply ")])],64))],512))}}),[["__scopeId","data-v-d538c266"]]),on={class:"vpg-modal"},an={class:"vpg-modal-header"},rn={class:"vpg-modal-body"},sn={class:"vpg-form-group"},cn={class:"vpg-form-group"},dn={key:0,class:"vpg-error"},un={class:"vpg-form-group"},mn={class:"vpg-button-group"},gn={class:"vpg-form-group"},pn={key:0,class:"vpg-button-group vpg-field-buttons"},fn=["onClick"],vn={key:1,class:"vpg-no-fields"},hn={class:"vpg-form-row"},kn={class:"vpg-form-group vpg-form-group-half"},wn={class:"vpg-form-group vpg-form-group-half"},Vn={key:0,class:"vpg-error vpg-error-box"},En={class:"vpg-modal-footer"},Cn=xe(e.defineComponent({__name:"CalculatedFieldModal",props:{show:{type:Boolean},availableFields:{},existingField:{}},emits:["close","save"],setup(t,{emit:s}){const l=t,r=s,o=e.ref(""),a=e.ref(""),p=e.ref("number"),f=e.ref(2),k=e.ref(null);e.watch(()=>l.show,N=>{N&&(l.existingField?(o.value=l.existingField.name,a.value=l.existingField.formula,p.value=l.existingField.formatAs||"number",f.value=l.existingField.decimals??2):(o.value="",a.value="",p.value="number",f.value=2),k.value=null)});const b=e.computed(()=>a.value.trim()?mt(a.value,l.availableFields):null);function E(N){a.value.trim()&&!a.value.endsWith(" ")&&(a.value+=" "),a.value+=N}function S(N){a.value.trim()&&!a.value.endsWith(" ")&&(a.value+=" "),a.value+=`${N} `}function F(){var z;if(!o.value.trim()){k.value="Name is required";return}const N=mt(a.value,l.availableFields);if(N){k.value=N;return}const w={id:((z=l.existingField)==null?void 0:z.id)||`calc_${Date.now()}`,name:o.value.trim(),formula:a.value.trim(),formatAs:p.value,decimals:f.value};r("save",w),r("close")}return(N,w)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.show?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-modal-overlay",onClick:w[12]||(w[12]=e.withModifiers(z=>r("close"),["self"]))},[e.createElementVNode("div",on,[e.createElementVNode("div",an,[e.createElementVNode("h3",null,e.toDisplayString(t.existingField?"Edit":"Create")+" Calculated Field",1),e.createElementVNode("button",{class:"vpg-modal-close",onClick:w[0]||(w[0]=z=>r("close"))},"×")]),e.createElementVNode("div",rn,[e.createElementVNode("div",sn,[w[13]||(w[13]=e.createElementVNode("label",{class:"vpg-label"},"Name",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[1]||(w[1]=z=>o.value=z),type:"text",class:"vpg-input",placeholder:"e.g., Profit Margin %"},null,512),[[e.vModelText,o.value]])]),e.createElementVNode("div",cn,[w[14]||(w[14]=e.createElementVNode("label",{class:"vpg-label"},"Formula",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":w[2]||(w[2]=z=>a.value=z),class:"vpg-textarea",placeholder:"e.g., revenue / units",rows:"2"},null,512),[[e.vModelText,a.value]]),w[15]||(w[15]=e.createElementVNode("div",{class:"vpg-formula-hint"},"Use field names with math operators: + - * / ( )",-1)),b.value?(e.openBlock(),e.createElementBlock("div",dn,e.toDisplayString(b.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",un,[w[16]||(w[16]=e.createElementVNode("label",{class:"vpg-label-small"},"Operators",-1)),e.createElementVNode("div",mn,[e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[3]||(w[3]=z=>S("+"))},"+"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[4]||(w[4]=z=>S("-"))},"−"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[5]||(w[5]=z=>S("*"))},"×"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[6]||(w[6]=z=>S("/"))},"÷"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[7]||(w[7]=z=>S("("))},"("),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[8]||(w[8]=z=>S(")"))},")")])]),e.createElementVNode("div",gn,[w[17]||(w[17]=e.createElementVNode("label",{class:"vpg-label-small"},"Insert Field",-1)),t.availableFields.length>0?(e.openBlock(),e.createElementBlock("div",pn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.availableFields,z=>(e.openBlock(),e.createElementBlock("button",{key:z,class:"vpg-insert-btn vpg-field-btn",onClick:W=>E(z)},e.toDisplayString(z),9,fn))),128))])):(e.openBlock(),e.createElementBlock("div",vn," No numeric fields available "))]),e.createElementVNode("div",hn,[e.createElementVNode("div",kn,[w[19]||(w[19]=e.createElementVNode("label",{class:"vpg-label"},"Format As",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":w[9]||(w[9]=z=>p.value=z),class:"vpg-select"},[...w[18]||(w[18]=[e.createElementVNode("option",{value:"number"},"Number",-1),e.createElementVNode("option",{value:"percent"},"Percentage",-1),e.createElementVNode("option",{value:"currency"},"Currency ($)",-1)])],512),[[e.vModelSelect,p.value]])]),e.createElementVNode("div",wn,[w[20]||(w[20]=e.createElementVNode("label",{class:"vpg-label"},"Decimals",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[10]||(w[10]=z=>f.value=z),type:"number",class:"vpg-input",min:"0",max:"6"},null,512),[[e.vModelText,f.value,void 0,{number:!0}]])])]),k.value?(e.openBlock(),e.createElementBlock("div",Vn,e.toDisplayString(k.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",En,[e.createElementVNode("button",{class:"vpg-btn vpg-btn-secondary",onClick:w[11]||(w[11]=z=>r("close"))},"Cancel"),e.createElementVNode("button",{class:"vpg-btn vpg-btn-primary",onClick:F},e.toDisplayString(t.existingField?"Update":"Add")+" Field ",1)])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-0cbcac92"]]),Nn={class:"vpg-pivot-config"},yn={class:"vpg-config-header"},bn={class:"vpg-header-actions"},Fn={key:0,class:"vpg-assigned-section"},Sn={class:"vpg-assigned-list"},Bn=["title","onDragstart"],xn={class:"vpg-item-main"},Mn={class:"vpg-item-name"},$n={class:"vpg-item-actions"},Dn=["title","onClick"],Rn=["value","onChange"],Tn=["value","disabled"],Ln=["onClick"],zn={class:"vpg-unassigned-section"},An={class:"vpg-section-header"},Pn={class:"vpg-section-label"},Un={class:"vpg-count"},jn={class:"vpg-field-search"},Hn={class:"vpg-field-list"},Kn=["title","onDragstart"],On={class:"vpg-field-name"},Wn=["onClick"],qn=["onClick"],Gn={key:1,class:"vpg-unique-count"},_n={key:0,class:"vpg-empty-hint"},Yn={key:1,class:"vpg-empty-hint"},In={class:"vpg-options-section"},Xn={class:"vpg-option-toggle"},Zn=["checked"],Bt=xe(e.defineComponent({__name:"PivotConfig",props:{availableFields:{},rowFields:{},columnFields:{},valueFields:{},showRowTotals:{type:Boolean},showColumnTotals:{type:Boolean},calculatedFields:{}},emits:["update:showRowTotals","update:showColumnTotals","clearConfig","dragStart","dragEnd","updateAggregation","addRowField","removeRowField","addColumnField","removeColumnField","addValueField","removeValueField","addCalculatedField","removeCalculatedField","updateCalculatedField"],setup(t,{emit:s}){const l=t,r=s,{canUseAdvancedAggregations:o}=Ke(),a=Yt;function p(c){return c!=="sum"}function f(c){return!p(c)||o.value}const k=e.ref(!1),b=e.ref(null),E=e.computed(()=>l.availableFields.filter(c=>c.isNumeric).map(c=>c.field));function S(c){b.value=c||null,k.value=!0}function F(c){b.value?r("updateCalculatedField",c):r("addCalculatedField",c),k.value=!1,b.value=null}function N(c){r("update:showRowTotals",c),r("update:showColumnTotals",c)}const w=e.computed(()=>l.calculatedFields?l.calculatedFields.map(c=>({field:`calc:${c.id}`,type:"number",uniqueCount:0,isNumeric:!0,isCalculated:!0,calcId:c.id,calcName:c.name,calcFormula:c.formula})):[]),z=e.computed(()=>[...l.availableFields.map(c=>({...c,isCalculated:!1})),...w.value]),W=e.computed(()=>{const c=new Set(l.rowFields),u=new Set(l.columnFields),V=new Map(l.valueFields.map($=>[$.field,$]));return z.value.filter($=>c.has($.field)||u.has($.field)||V.has($.field)).map($=>({...$,assignedTo:c.has($.field)?"row":u.has($.field)?"column":"value",valueConfig:V.get($.field)}))}),H=e.computed(()=>{const c=new Set(l.rowFields),u=new Set(l.columnFields),V=new Set(l.valueFields.map($=>$.field));return z.value.filter($=>!c.has($.field)&&!u.has($.field)&&!V.has($.field))}),P=e.computed(()=>W.value.length),M=e.ref(""),x=e.computed(()=>{if(!M.value.trim())return H.value;const c=M.value.toLowerCase().trim();return H.value.filter(u=>{const V=u.field.toLowerCase(),$=u.isCalculated&&u.calcName?u.calcName.toLowerCase():"";return V.includes(c)||$.includes(c)})});function T(c,u){if(u)return"ƒ";switch(c){case"number":return"#";case"date":return"📅";case"boolean":return"✓";default:return"Aa"}}function U(c){return c.isCalculated&&c.calcName?c.calcName:c.field}function _(c,u){var V;(V=u.dataTransfer)==null||V.setData("text/plain",c),u.dataTransfer.effectAllowed="move",r("dragStart",c,u)}function R(){r("dragEnd")}function C(c,u,V){if(!f(V)){console.warn(`[TinyPivot] "${V}" aggregation requires a Pro license. Visit https://tiny-pivot.com/#pricing to upgrade.`);return}r("updateAggregation",c,u,V)}function g(c,u){u==="row"?(r("removeRowField",c),r("addColumnField",c)):(r("removeColumnField",c),r("addRowField",c))}function d(c,u,V){u==="row"?r("removeRowField",c):u==="column"?r("removeColumnField",c):V&&r("removeValueField",c,V.aggregation)}return(c,u)=>(e.openBlock(),e.createElementBlock("div",Nn,[e.createElementVNode("div",yn,[u[8]||(u[8]=e.createElementVNode("h3",{class:"vpg-config-title"},[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 10h16M4 14h16M4 18h16"})]),e.createTextVNode(" Fields ")],-1)),e.createElementVNode("div",bn,[P.value>0?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-action-btn vpg-clear-btn",title:"Clear all",onClick:u[0]||(u[0]=V=>r("clearConfig"))},[...u[7]||(u[7]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):e.createCommentVNode("",!0)])]),P.value>0?(e.openBlock(),e.createElementBlock("div",Fn,[u[10]||(u[10]=e.createElementVNode("div",{class:"vpg-section-label"},"Active",-1)),e.createElementVNode("div",Sn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(W.value,V=>{var $;return e.openBlock(),e.createElementBlock("div",{key:V.field,class:e.normalizeClass(["vpg-assigned-item",[`vpg-type-${V.assignedTo}`,{"vpg-type-calc":V.isCalculated}]]),title:V.isCalculated?V.calcFormula:V.field,draggable:"true",onDragstart:j=>_(V.field,j),onDragend:R},[e.createElementVNode("div",xn,[e.createElementVNode("span",{class:e.normalizeClass(["vpg-item-badge",[V.assignedTo,{calc:V.isCalculated}]])},e.toDisplayString(V.isCalculated?"ƒ":V.assignedTo==="row"?"R":V.assignedTo==="column"?"C":e.unref(dt)((($=V.valueConfig)==null?void 0:$.aggregation)||"sum")),3),e.createElementVNode("span",Mn,e.toDisplayString(U(V)),1)]),e.createElementVNode("div",$n,[V.assignedTo==="row"||V.assignedTo==="column"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-toggle-btn",title:V.assignedTo==="row"?"Move to Columns":"Move to Rows",onClick:e.withModifiers(j=>g(V.field,V.assignedTo),["stop"])},[...u[9]||(u[9]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4"})],-1)])],8,Dn)):e.createCommentVNode("",!0),V.assignedTo==="value"&&V.valueConfig?(e.openBlock(),e.createElementBlock("select",{key:1,class:"vpg-agg-select",value:V.valueConfig.aggregation,onChange:j=>C(V.field,V.valueConfig.aggregation,j.target.value),onClick:u[1]||(u[1]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),j=>(e.openBlock(),e.createElementBlock("option",{key:j.value,value:j.value,disabled:p(j.value)&&!e.unref(o)},e.toDisplayString(j.symbol)+" "+e.toDisplayString(j.label)+e.toDisplayString(p(j.value)&&!e.unref(o)?" (Pro)":""),9,Tn))),128))],40,Rn)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vpg-remove-btn",title:"Remove",onClick:e.withModifiers(j=>d(V.field,V.assignedTo,V.valueConfig),["stop"])}," × ",8,Ln)])],42,Bn)}),128))])])):e.createCommentVNode("",!0),e.createElementVNode("div",zn,[e.createElementVNode("div",An,[e.createElementVNode("div",Pn,[u[11]||(u[11]=e.createTextVNode(" Available ",-1)),e.createElementVNode("span",Un,e.toDisplayString(H.value.length),1)])]),e.createElementVNode("div",jn,[u[13]||(u[13]=e.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[2]||(u[2]=V=>M.value=V),type:"text",placeholder:"Search fields...",class:"vpg-search-input"},null,512),[[e.vModelText,M.value]]),M.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-clear-search",onClick:u[3]||(u[3]=V=>M.value="")},[...u[12]||(u[12]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Hn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,V=>(e.openBlock(),e.createElementBlock("div",{key:V.field,class:e.normalizeClass(["vpg-field-item",{"vpg-is-numeric":V.isNumeric&&!V.isCalculated,"vpg-is-calculated":V.isCalculated}]),title:V.isCalculated?V.calcFormula:V.field,draggable:"true",onDragstart:$=>_(V.field,$),onDragend:R},[e.createElementVNode("span",{class:e.normalizeClass(["vpg-field-type-icon",{"vpg-calc-type":V.isCalculated}])},e.toDisplayString(T(V.type,V.isCalculated)),3),e.createElementVNode("span",On,e.toDisplayString(U(V)),1),V.isCalculated?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{class:"vpg-field-edit",title:"Edit calculated field",onClick:e.withModifiers($=>{var j;return S((j=t.calculatedFields)==null?void 0:j.find(J=>J.id===V.calcId))},["stop"])},"✎",8,Wn),e.createElementVNode("button",{class:"vpg-field-delete",title:"Delete calculated field",onClick:e.withModifiers($=>r("removeCalculatedField",V.calcId),["stop"])},"×",8,qn)],64)):(e.openBlock(),e.createElementBlock("span",Gn,e.toDisplayString(V.uniqueCount),1))],42,Kn))),128)),x.value.length===0&&M.value?(e.openBlock(),e.createElementBlock("div",_n,' No fields match "'+e.toDisplayString(M.value)+'" ',1)):H.value.length===0?(e.openBlock(),e.createElementBlock("div",Yn," All fields assigned ")):e.createCommentVNode("",!0)])]),e.createElementVNode("div",In,[e.createElementVNode("label",Xn,[e.createElementVNode("input",{type:"checkbox",checked:t.showRowTotals,onChange:u[4]||(u[4]=V=>N(V.target.checked))},null,40,Zn),u[14]||(u[14]=e.createElementVNode("span",null,"Totals",-1))]),e.createElementVNode("button",{class:"vpg-calc-btn",onClick:u[5]||(u[5]=V=>S()),title:"Add calculated field (e.g. Profit Margin %)"},[...u[15]||(u[15]=[e.createElementVNode("span",{class:"vpg-calc-icon"},"ƒ",-1),e.createElementVNode("span",null,"+ Calc",-1)])])]),e.createVNode(Cn,{show:k.value,"available-fields":E.value,"existing-field":b.value,onClose:u[6]||(u[6]=V=>{k.value=!1,b.value=null}),onSave:F},null,8,["show","available-fields","existing-field"])]))}}),[["__scopeId","data-v-d3d86021"]]),Qn={key:0,class:"vpg-toast"},Jn={class:"vpg-skeleton-header"},eo={class:"vpg-header-right"},to={class:"vpg-filter-text"},lo={key:0,class:"vpg-filter-count"},no={key:0,class:"vpg-filter-tooltip"},oo={class:"vpg-tooltip-column"},ao={class:"vpg-tooltip-values"},ro={key:0,class:"vpg-tooltip-value vpg-range-value"},so={key:0,class:"vpg-tooltip-more"},io={key:0,class:"vpg-tooltip-summary"},co={key:1,class:"vpg-config-summary"},uo={class:"vpg-summary-badge vpg-rows"},mo={class:"vpg-summary-badge vpg-cols"},go={class:"vpg-summary-badge vpg-vals"},po={key:2,class:"vpg-font-size-toggle"},fo=["onClick"],vo={key:0,class:"vpg-pro-required"},ho={class:"vpg-config-bar"},ko={class:"vpg-zone-chips"},wo=["onDragstart","onDragover","onDrop"],Vo={class:"vpg-mini-name"},Eo=["onClick"],Co={key:0,class:"vpg-zone-hint"},No={class:"vpg-zone-chips"},yo=["onDragstart","onDragover","onDrop"],bo={class:"vpg-mini-name"},Fo=["onClick"],So={key:0,class:"vpg-zone-hint"},Bo={class:"vpg-zone-chips"},xo={class:"vpg-agg-symbol"},Mo={class:"vpg-mini-name"},$o=["onClick"],Do={key:0,class:"vpg-zone-hint"},Ro={key:0,class:"vpg-placeholder"},To={class:"vpg-placeholder-content"},Lo={class:"vpg-placeholder-text"},zo={key:1,class:"vpg-table-container"},Ao={class:"vpg-pivot-table"},Po=["rowspan"],Uo={class:"vpg-header-content"},jo=["colspan","onClick"],Ho={class:"vpg-header-content"},Ko=["rowspan"],Oo=["onMousedown","onMouseenter"],Wo={key:0,class:"vpg-data-cell vpg-total-cell"},qo={key:0,class:"vpg-totals-row"},Go=["colspan"],_o={key:0,class:"vpg-data-cell vpg-grand-total-cell"},Yo={key:2,class:"vpg-skeleton-footer"},Io={class:"vpg-footer-info"},Xo={key:0,class:"vpg-selection-stats"},Zo={class:"vpg-stat"},Qo={class:"vpg-stat-value"},Jo={class:"vpg-stat"},ea={class:"vpg-stat-value"},ta={class:"vpg-stat"},la={class:"vpg-stat-value"},na={key:1,href:"https://tiny-pivot.com",target:"_blank",rel:"noopener"},xt=xe(e.defineComponent({__name:"PivotSkeleton",props:{rowFields:{},columnFields:{},valueFields:{},calculatedFields:{},isConfigured:{type:Boolean},draggingField:{},pivotResult:{},fontSize:{},activeFilters:{},totalRowCount:{},filteredRowCount:{}},emits:["addRowField","removeRowField","addColumnField","removeColumnField","addValueField","removeValueField","updateAggregation","reorderRowFields","reorderColumnFields"],setup(t,{emit:s}){const l=t;function r(y){var m;if(y.startsWith("calc:")){const D=y.replace("calc:",""),h=(m=l.calculatedFields)==null?void 0:m.find(B=>B.id===D);return(h==null?void 0:h.name)||y}return y}function o(y){return y.startsWith("calc:")}const a=s,{showWatermark:p,canUsePivot:f,isDemo:k}=Ke(),b=e.ref(null),E=e.ref(null),S=e.ref(null),F=e.ref(l.fontSize||"xs"),N=[{value:"xs",label:"S"},{value:"sm",label:"M"},{value:"base",label:"L"}],w=e.computed(()=>l.activeFilters&&l.activeFilters.length>0),z=e.computed(()=>!l.activeFilters||l.activeFilters.length===0?"":l.activeFilters.map(m=>m.column).join(", ")),W=e.computed(()=>!l.activeFilters||l.activeFilters.length===0?[]:l.activeFilters.map(y=>{if(y.isRange&&y.displayText)return{column:y.column,displayText:y.displayText,isRange:!0,values:[],remaining:0};const m=y.values||[],D=5,h=m.slice(0,D),B=m.length-D;return{column:y.column,values:h,remaining:B>0?B:0,isRange:!1}})),H=e.ref(!1),P=e.ref("asc"),M=e.ref("row");function x(y="row"){M.value===y?P.value=P.value==="asc"?"desc":"asc":(M.value=y,P.value="asc")}const T=e.computed(()=>{if(!l.pivotResult)return[];const y=l.pivotResult.rowHeaders.map((h,B)=>B),m=l.pivotResult.rowHeaders,D=l.pivotResult.data;return y.sort((h,B)=>{var K,G,ee,oe,re,de;let L;if(M.value==="row"){const te=((K=m[h])==null?void 0:K.join(" / "))||"",be=((G=m[B])==null?void 0:G.join(" / "))||"";L=te.localeCompare(be,void 0,{numeric:!0,sensitivity:"base"})}else{const te=M.value,be=((oe=(ee=D[h])==null?void 0:ee[te])==null?void 0:oe.value)??null,ze=((de=(re=D[B])==null?void 0:re[te])==null?void 0:de.value)??null;be===null&&ze===null?L=0:be===null?L=1:ze===null?L=-1:L=be-ze}return P.value==="asc"?L:-L}),y}),U=e.computed(()=>{if(!l.pivotResult||l.pivotResult.headers.length===0)return[l.valueFields.map(m=>({label:o(m.field)?`${r(m.field)} (${je(m.aggregation)})`:`${m.field} (${je(m.aggregation)})`,colspan:1}))];const y=[];for(let m=0;m<l.pivotResult.headers.length;m++){const D=l.pivotResult.headers[m],h=[];let B=0;for(;B<D.length;){const L=D[B];let K=1;for(;B+K<D.length&&D[B+K]===L;)K++;h.push({label:L,colspan:K}),B+=K}y.push(h)}return y}),_=e.ref(null),R=e.ref(null),C=e.ref(null),g=e.ref(!1),d=e.ref(!1),c=e.ref(""),u=e.computed(()=>!R.value||!C.value?null:{minRow:Math.min(R.value.row,C.value.row),maxRow:Math.max(R.value.row,C.value.row),minCol:Math.min(R.value.col,C.value.col),maxCol:Math.max(R.value.col,C.value.col)});function V(y,m,D){D.preventDefault(),D.shiftKey&&_.value?C.value={row:y,col:m}:(_.value={row:y,col:m},R.value={row:y,col:m},C.value={row:y,col:m},g.value=!0)}function $(y,m){g.value&&(C.value={row:y,col:m})}function j(){g.value=!1}function J(y,m){var K,G;if(!u.value)return((K=_.value)==null?void 0:K.row)===y&&((G=_.value)==null?void 0:G.col)===m;const{minRow:D,maxRow:h,minCol:B,maxCol:L}=u.value;return y>=D&&y<=h&&m>=B&&m<=L}function se(){var K;if(!u.value||!l.pivotResult)return;const{minRow:y,maxRow:m,minCol:D,maxCol:h}=u.value,B=[];for(let G=y;G<=m;G++){const ee=T.value[G];if(ee===void 0)continue;const oe=[];for(let re=D;re<=h;re++){const de=(K=l.pivotResult.data[ee])==null?void 0:K[re];oe.push((de==null?void 0:de.formattedValue)??"")}B.push(oe.join(" "))}const L=B.join(`
9
- `);navigator.clipboard.writeText(L).then(()=>{const G=(m-y+1)*(h-D+1);c.value=`Copied ${G} cell${G>1?"s":""}`,d.value=!0,setTimeout(()=>{d.value=!1},2e3)}).catch(G=>{console.error("Copy failed:",G)})}function ve(y){if(u.value){if((y.ctrlKey||y.metaKey)&&y.key==="c"){y.preventDefault(),se();return}y.key==="Escape"&&(_.value=null,R.value=null,C.value=null)}}const ae=e.computed(()=>{var ee;if(!u.value||!l.pivotResult)return null;const{minRow:y,maxRow:m,minCol:D,maxCol:h}=u.value,B=[];let L=0;for(let oe=y;oe<=m;oe++){const re=T.value[oe];if(re!==void 0)for(let de=D;de<=h;de++){const te=(ee=l.pivotResult.data[re])==null?void 0:ee[de];L++,(te==null?void 0:te.value)!==null&&(te==null?void 0:te.value)!==void 0&&typeof te.value=="number"&&B.push(te.value)}}if(L<=1)return null;const K=B.reduce((oe,re)=>oe+re,0),G=B.length>0?K/B.length:0;return{count:L,numericCount:B.length,sum:K,avg:G}});function Me(y){return Math.abs(y)>=1e6?`${(y/1e6).toFixed(2)}M`:Math.abs(y)>=1e3?`${(y/1e3).toFixed(2)}K`:y.toFixed(2)}e.onMounted(()=>{document.addEventListener("mouseup",j),document.addEventListener("keydown",ve)}),e.onUnmounted(()=>{document.removeEventListener("mouseup",j),document.removeEventListener("keydown",ve)});function ie(y,m){m.preventDefault(),m.dataTransfer.dropEffect="move",b.value=y}function Oe(){b.value=null}function We(y,m){var B;m.preventDefault();const D=(B=m.dataTransfer)==null?void 0:B.getData("text/plain");if(!D||D.startsWith("reorder:")){b.value=null;return}l.rowFields.includes(D)&&a("removeRowField",D),l.columnFields.includes(D)&&a("removeColumnField",D);const h=l.valueFields.find(L=>L.field===D);switch(h&&a("removeValueField",D,h.aggregation),y){case"row":a("addRowField",D);break;case"column":a("addColumnField",D);break;case"value":a("addValueField",D,"sum");break}b.value=null}function Ce(y,m,D){E.value={zone:y,index:m},D.dataTransfer.effectAllowed="move",D.dataTransfer.setData("text/plain",`reorder:${y}:${m}`),requestAnimationFrame(()=>{b.value=null})}function Ne(){E.value=null,S.value=null}function ye(y,m,D){D.preventDefault(),E.value&&E.value.zone===y&&(D.dataTransfer.dropEffect="move",S.value={zone:y,index:m})}function $e(){S.value=null}function De(y,m,D){if(D.preventDefault(),D.stopPropagation(),!E.value||E.value.zone!==y)return;const h=E.value.index;if(h===m){E.value=null,S.value=null;return}const B=y==="row"?[...l.rowFields]:[...l.columnFields],[L]=B.splice(h,1);B.splice(m,0,L),a(y==="row"?"reorderRowFields":"reorderColumnFields",B),E.value=null,S.value=null}function Ze(y,m){var D,h;return((D=E.value)==null?void 0:D.zone)===y&&((h=E.value)==null?void 0:h.index)===m}function Re(y,m){var D,h;return((D=S.value)==null?void 0:D.zone)===y&&((h=S.value)==null?void 0:h.index)===m}const ce=e.ref(180),Te=e.ref(80),Le=e.computed(()=>{const y=Math.max(l.rowFields.length,1);return Math.max(ce.value/y,80)});function qe(y){return y*Le.value}return(y,m)=>{var D;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vpg-pivot-skeleton",[`vpg-font-${F.value}`,{"vpg-is-dragging":t.draggingField}]])},[e.createVNode(e.Transition,{name:"vpg-toast"},{default:e.withCtx(()=>[d.value?(e.openBlock(),e.createElementBlock("div",Qn,[m[9]||(m[9]=e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)),e.createTextVNode(" "+e.toDisplayString(c.value),1)])):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",Jn,[m[13]||(m[13]=e.createElementVNode("div",{class:"vpg-skeleton-title"},[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"})]),e.createElementVNode("span",null,"Pivot Table")],-1)),e.createElementVNode("div",eo,[w.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-filter-indicator",onMouseenter:m[0]||(m[0]=h=>H.value=!0),onMouseleave:m[1]||(m[1]=h=>H.value=!1)},[m[12]||(m[12]=e.createElementVNode("svg",{class:"vpg-filter-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})],-1)),e.createElementVNode("span",to,[m[10]||(m[10]=e.createTextVNode(" Filtered: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(z.value),1),t.filteredRowCount!==void 0&&t.totalRowCount!==void 0?(e.openBlock(),e.createElementBlock("span",lo," ("+e.toDisplayString(t.filteredRowCount.toLocaleString())+" of "+e.toDisplayString(t.totalRowCount.toLocaleString())+" rows) ",1)):e.createCommentVNode("",!0)]),H.value?(e.openBlock(),e.createElementBlock("div",no,[m[11]||(m[11]=e.createElementVNode("div",{class:"vpg-tooltip-header"},"Active Filters",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(W.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h.column,class:"vpg-tooltip-filter"},[e.createElementVNode("div",oo,e.toDisplayString(h.column),1),e.createElementVNode("div",ao,[h.isRange?(e.openBlock(),e.createElementBlock("span",ro,e.toDisplayString(h.displayText),1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.values,(B,L)=>(e.openBlock(),e.createElementBlock("span",{key:L,class:"vpg-tooltip-value"},e.toDisplayString(B),1))),128)),h.remaining>0?(e.openBlock(),e.createElementBlock("span",so," +"+e.toDisplayString(h.remaining)+" more ",1)):e.createCommentVNode("",!0)],64))])]))),128)),t.filteredRowCount!==void 0&&t.totalRowCount!==void 0?(e.openBlock(),e.createElementBlock("div",io," Showing "+e.toDisplayString(t.filteredRowCount.toLocaleString())+" of "+e.toDisplayString(t.totalRowCount.toLocaleString())+" rows ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],32)):e.createCommentVNode("",!0),t.isConfigured?(e.openBlock(),e.createElementBlock("div",co,[e.createElementVNode("span",uo,e.toDisplayString(t.rowFields.length)+" row"+e.toDisplayString(t.rowFields.length!==1?"s":""),1),e.createElementVNode("span",mo,e.toDisplayString(t.columnFields.length)+" col"+e.toDisplayString(t.columnFields.length!==1?"s":""),1),e.createElementVNode("span",go,e.toDisplayString(t.valueFields.length)+" val"+e.toDisplayString(t.valueFields.length!==1?"s":""),1)])):e.createCommentVNode("",!0),t.isConfigured&&t.pivotResult?(e.openBlock(),e.createElementBlock("div",po,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(N,h=>e.createElementVNode("button",{key:h.value,class:e.normalizeClass(["vpg-font-size-btn",{active:F.value===h.value}]),onClick:B=>F.value=h.value},e.toDisplayString(h.label),11,fo)),64))])):e.createCommentVNode("",!0)])]),e.unref(f)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",ho,[e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-row-zone",{"vpg-drag-over":b.value==="row"}]),onDragover:m[2]||(m[2]=h=>ie("row",h)),onDragleave:Oe,onDrop:m[3]||(m[3]=h=>We("row",h))},[m[16]||(m[16]=e.createElementVNode("div",{class:"vpg-zone-header"},[e.createElementVNode("span",{class:"vpg-zone-icon vpg-row-icon"},"↓"),e.createElementVNode("span",{class:"vpg-zone-label"},"Rows")],-1)),e.createElementVNode("div",ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.rowFields,(h,B)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:e.normalizeClass(["vpg-mini-chip vpg-row-chip",{"vpg-chip-dragging":Ze("row",B),"vpg-chip-drop-target":Re("row",B)}]),draggable:"true",onDragstart:L=>Ce("row",B,L),onDragend:Ne,onDragover:L=>ye("row",B,L),onDragleave:$e,onDrop:L=>De("row",B,L)},[m[15]||(m[15]=e.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),e.createElementVNode("span",Vo,e.toDisplayString(h),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:e.withModifiers(L=>a("removeRowField",h),["stop"])},"×",8,Eo)],42,wo))),128)),t.rowFields.length===0?(e.openBlock(),e.createElementBlock("span",Co,"Drop here")):e.createCommentVNode("",!0)])],34),e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-column-zone",{"vpg-drag-over":b.value==="column"}]),onDragover:m[4]||(m[4]=h=>ie("column",h)),onDragleave:Oe,onDrop:m[5]||(m[5]=h=>We("column",h))},[m[18]||(m[18]=e.createElementVNode("div",{class:"vpg-zone-header"},[e.createElementVNode("span",{class:"vpg-zone-icon vpg-column-icon"},"→"),e.createElementVNode("span",{class:"vpg-zone-label"},"Columns")],-1)),e.createElementVNode("div",No,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columnFields,(h,B)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:e.normalizeClass(["vpg-mini-chip vpg-column-chip",{"vpg-chip-dragging":Ze("column",B),"vpg-chip-drop-target":Re("column",B)}]),draggable:"true",onDragstart:L=>Ce("column",B,L),onDragend:Ne,onDragover:L=>ye("column",B,L),onDragleave:$e,onDrop:L=>De("column",B,L)},[m[17]||(m[17]=e.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),e.createElementVNode("span",bo,e.toDisplayString(h),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:e.withModifiers(L=>a("removeColumnField",h),["stop"])},"×",8,Fo)],42,yo))),128)),t.columnFields.length===0?(e.openBlock(),e.createElementBlock("span",So,"Drop here")):e.createCommentVNode("",!0)])],34),e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-value-zone",{"vpg-drag-over":b.value==="value"}]),onDragover:m[6]||(m[6]=h=>ie("value",h)),onDragleave:Oe,onDrop:m[7]||(m[7]=h=>We("value",h))},[m[19]||(m[19]=e.createElementVNode("div",{class:"vpg-zone-header"},[e.createElementVNode("span",{class:"vpg-zone-icon vpg-value-icon"},"Σ"),e.createElementVNode("span",{class:"vpg-zone-label"},"Values")],-1)),e.createElementVNode("div",Bo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.valueFields,h=>(e.openBlock(),e.createElementBlock("div",{key:`${h.field}-${h.aggregation}`,class:e.normalizeClass(["vpg-mini-chip vpg-value-chip",{"vpg-calc-chip":o(h.field)}])},[e.createElementVNode("span",xo,e.toDisplayString(o(h.field)?"ƒ":e.unref(dt)(h.aggregation)),1),e.createElementVNode("span",Mo,e.toDisplayString(r(h.field)),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:B=>a("removeValueField",h.field,h.aggregation)},"×",8,$o)],2))),128)),t.valueFields.length===0?(e.openBlock(),e.createElementBlock("span",Do,"Drop numeric")):e.createCommentVNode("",!0)])],34)]),!t.isConfigured||!t.pivotResult?(e.openBlock(),e.createElementBlock("div",Ro,[e.createElementVNode("div",To,[m[28]||(m[28]=e.createElementVNode("svg",{class:"vpg-placeholder-icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"})],-1)),e.createElementVNode("span",Lo,[t.valueFields.length===0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[m[20]||(m[20]=e.createTextVNode(" Add a ",-1)),m[21]||(m[21]=e.createElementVNode("strong",null,"Values",-1)),m[22]||(m[22]=e.createTextVNode(" field to see your pivot table ",-1))],64)):t.rowFields.length===0&&t.columnFields.length===0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[m[23]||(m[23]=e.createTextVNode(" Add ",-1)),m[24]||(m[24]=e.createElementVNode("strong",null,"Row",-1)),m[25]||(m[25]=e.createTextVNode(" or ",-1)),m[26]||(m[26]=e.createElementVNode("strong",null,"Column",-1)),m[27]||(m[27]=e.createTextVNode(" fields to group your data ",-1))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(" Your pivot table will appear here ")],64))])])])):(e.openBlock(),e.createElementBlock("div",zo,[e.createElementVNode("table",Ao,[e.createElementVNode("thead",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(U.value,(h,B)=>(e.openBlock(),e.createElementBlock("tr",{key:`header-${B}`,class:"vpg-column-header-row"},[B===0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.rowFields.length>0?t.rowFields:["Rows"],(L,K)=>(e.openBlock(),e.createElementBlock("th",{key:`row-header-${K}`,class:"vpg-row-header-label",rowspan:U.value.length,style:e.normalizeStyle({width:`${Le.value}px`,minWidth:"80px",left:`${qe(K)}px`}),onClick:m[8]||(m[8]=G=>x("row"))},[e.createElementVNode("div",Uo,[e.createElementVNode("span",null,e.toDisplayString(L),1),K===t.rowFields.length-1||t.rowFields.length===0?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["vpg-sort-indicator",{active:M.value==="row"}])},e.toDisplayString(M.value==="row"?P.value==="asc"?"↑":"↓":"⇅"),3)):e.createCommentVNode("",!0)])],12,Po))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h,(L,K)=>(e.openBlock(),e.createElementBlock("th",{key:K,class:"vpg-column-header-cell",colspan:L.colspan,style:e.normalizeStyle({width:`${Te.value*L.colspan}px`}),onClick:G=>B===U.value.length-1&&x(K)},[e.createElementVNode("div",Ho,[e.createElementVNode("span",null,e.toDisplayString(L.label),1),B===U.value.length-1?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["vpg-sort-indicator",{active:M.value===K}])},e.toDisplayString(M.value===K?P.value==="asc"?"↑":"↓":"⇅"),3)):e.createCommentVNode("",!0)])],12,jo))),128)),t.pivotResult.rowTotals.length>0&&B===0?(e.openBlock(),e.createElementBlock("th",{key:1,class:"vpg-total-header",rowspan:U.value.length}," Total ",8,Ko)):e.createCommentVNode("",!0)]))),128))]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.value,h=>(e.openBlock(),e.createElementBlock("tr",{key:h,class:"vpg-data-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.rowHeaders[h],(B,L)=>(e.openBlock(),e.createElementBlock("th",{key:`row-${h}-${L}`,class:"vpg-row-header-cell",style:e.normalizeStyle({width:`${Le.value}px`,minWidth:"80px",left:`${qe(L)}px`})},e.toDisplayString(B),5))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.data[h],(B,L)=>(e.openBlock(),e.createElementBlock("td",{key:L,class:e.normalizeClass(["vpg-data-cell",[J(T.value.indexOf(h),L)&&"selected",B.value===null&&"vpg-is-null"]]),style:e.normalizeStyle({width:`${Te.value}px`}),onMousedown:K=>V(T.value.indexOf(h),L,K),onMouseenter:K=>$(T.value.indexOf(h),L)},e.toDisplayString(B.formattedValue),47,Oo))),128)),t.pivotResult.rowTotals[h]?(e.openBlock(),e.createElementBlock("td",Wo,e.toDisplayString(t.pivotResult.rowTotals[h].formattedValue),1)):e.createCommentVNode("",!0)]))),128)),t.pivotResult.columnTotals.length>0?(e.openBlock(),e.createElementBlock("tr",qo,[e.createElementVNode("th",{class:"vpg-row-header-cell vpg-total-label",colspan:Math.max(t.rowFields.length,1),style:e.normalizeStyle({width:`${ce.value}px`})}," Total ",12,Go),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.columnTotals,(h,B)=>(e.openBlock(),e.createElementBlock("td",{key:B,class:"vpg-data-cell vpg-total-cell",style:e.normalizeStyle({width:`${Te.value}px`})},e.toDisplayString(h.formattedValue),5))),128)),t.pivotResult.rowTotals.length>0?(e.openBlock(),e.createElementBlock("td",_o,e.toDisplayString(t.pivotResult.grandTotal.formattedValue),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])])),t.isConfigured&&t.pivotResult?(e.openBlock(),e.createElementBlock("div",Yo,[e.createElementVNode("span",Io,e.toDisplayString(t.pivotResult.rowHeaders.length)+" rows × "+e.toDisplayString(((D=t.pivotResult.data[0])==null?void 0:D.length)||0)+" columns",1),ae.value&&ae.value.count>1?(e.openBlock(),e.createElementBlock("div",Xo,[e.createElementVNode("span",Zo,[m[29]||(m[29]=e.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),e.createElementVNode("span",Qo,e.toDisplayString(ae.value.count),1)]),ae.value.numericCount>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[m[32]||(m[32]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Jo,[m[30]||(m[30]=e.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),e.createElementVNode("span",ea,e.toDisplayString(Me(ae.value.sum)),1)]),m[33]||(m[33]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",ta,[m[31]||(m[31]=e.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),e.createElementVNode("span",la,e.toDisplayString(Me(ae.value.avg)),1)])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("div",vo,[...m[14]||(m[14]=[e.createElementVNode("div",{class:"vpg-pro-content"},[e.createElementVNode("svg",{class:"vpg-pro-icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"})]),e.createElementVNode("h3",null,"Pro Feature"),e.createElementVNode("p",null,"Pivot Table functionality requires a Pro license."),e.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",class:"vpg-pro-link"}," Get Pro License → ")],-1)])])),e.unref(p)&&e.unref(f)?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["vpg-watermark",{"vpg-demo-mode":e.unref(k)}])},[e.unref(k)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[m[34]||(m[34]=e.createElementVNode("span",{class:"vpg-demo-badge"},"DEMO",-1)),m[35]||(m[35]=e.createElementVNode("span",null,"Pro features unlocked for evaluation",-1)),m[36]||(m[36]=e.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",rel:"noopener",class:"vpg-get-pro"}," Get Pro License → ",-1))],64)):(e.openBlock(),e.createElementBlock("a",na," Powered by TinyPivot "))],2)):e.createCommentVNode("",!0)],2)}}}),[["__scopeId","data-v-223b7dde"]]),oa={key:0,class:"vpg-toast"},aa={class:"vpg-toolbar"},ra={class:"vpg-toolbar-left"},sa={key:0,class:"vpg-view-toggle"},ia={key:0,class:"vpg-search-container"},ca={key:1,class:"vpg-search-box"},da={class:"vpg-font-size-control"},ua={class:"vpg-font-size-toggle"},ma=["onClick"],ga={key:1,class:"vpg-filter-info"},pa={key:2,class:"vpg-search-info"},fa={key:0,class:"vpg-pivot-status"},va={class:"vpg-toolbar-right"},ha=["disabled","title"],ka={key:0,class:"vpg-loading"},wa={key:1,class:"vpg-empty"},Va={key:2,class:"vpg-empty"},Ea={key:3,class:"vpg-table-wrapper"},Ca=["onClick"],Na={class:"vpg-header-content"},ya={class:"vpg-header-text"},ba={class:"vpg-header-icons"},Fa={key:0,class:"vpg-sort-indicator"},Sa={key:0,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},Ba={key:1,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},xa={key:1,class:"vpg-filter-indicator"},Ma=["onMousedown"],$a=["data-row","data-col","onMousedown","onMouseenter"],Da={key:1,class:"vpg-pivot-container"},Ra={key:0,class:"vpg-pivot-config-panel"},Ta={class:"vpg-footer"},La={class:"vpg-footer-left"},za={key:0,class:"vpg-filtered-note"},Aa={key:1},Pa={class:"vpg-filtered-count"},Ua={key:0,class:"vpg-pagination"},ja=["disabled"],Ha=["disabled"],Ka={class:"vpg-page-info"},Oa=["disabled"],Wa=["disabled"],qa={key:1,class:"vpg-selection-stats"},Ga={class:"vpg-stat"},_a={class:"vpg-stat-value"},Ya={class:"vpg-stat"},Ia={class:"vpg-stat-value"},Xa={class:"vpg-stat"},Za={class:"vpg-stat-value"},Qa={class:"vpg-footer-right"},Ja={key:0,class:"vpg-demo-banner"},er={key:1,class:"vpg-watermark-inline"},Ve=120,Mt=350,tr=xe(e.defineComponent({__name:"DataGrid",props:{data:{},loading:{type:Boolean,default:!1},rowHeight:{default:36},headerHeight:{default:40},fontSize:{default:"xs"},showPivot:{type:Boolean,default:!0},enableExport:{type:Boolean,default:!0},enableSearch:{type:Boolean,default:!0},enablePagination:{type:Boolean,default:!1},pageSize:{default:50},enableColumnResize:{type:Boolean,default:!0},enableClipboard:{type:Boolean,default:!0},theme:{default:"light"},stripedRows:{type:Boolean,default:!0},exportFilename:{default:"data-export.csv"},enableVerticalResize:{type:Boolean,default:!0},initialHeight:{default:600},minHeight:{default:300},maxHeight:{default:1200}},emits:["cellClick","selectionChange","export","copy"],setup(t,{emit:s}){const l=t,r=s,{showWatermark:o,canUsePivot:a,isDemo:p,isPro:f}=Ke(),k=e.computed(()=>{var i;return l.theme==="auto"?(i=window.matchMedia)!=null&&i.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light":l.theme}),b=e.ref(l.fontSize),E=e.ref(""),S=e.ref(!1),F=e.ref(1),N=e.ref(null),w=e.ref(0),z=e.ref(0),W=e.ref(l.initialHeight),H=e.ref(!1),P=e.ref(0),M=e.ref(0),x=e.ref(!1),T=e.ref(""),U=[{value:"xs",label:"S"},{value:"sm",label:"M"},{value:"base",label:"L"}],_=e.computed(()=>l.data),{table:R,columnKeys:C,filteredRowCount:g,totalRowCount:d,getColumnStats:c,hasActiveFilter:u,setColumnFilter:V,getColumnFilterValues:$,clearAllFilters:j,toggleSort:J,getSortDirection:se,columnFilters:ve,activeFilters:ae,setNumericRangeFilter:Me,getNumericRangeFilter:ie}=Et({data:_}),Oe=e.computed(()=>R.getFilteredRowModel().rows.map(n=>n.original)),We=e.computed(()=>ae.value.length===0?null:ae.value.map(i=>{var n;if(i.type==="range"&&i.range){const v=[];return i.range.min!==null&&v.push(`≥ ${i.range.min}`),i.range.max!==null&&v.push(`≤ ${i.range.max}`),{column:i.column,valueCount:1,displayText:v.join(" and "),isRange:!0}}return{column:i.column,valueCount:((n=i.values)==null?void 0:n.length)||0,values:i.values||[],isRange:!1}})),{rowFields:Ce,columnFields:Ne,valueFields:ye,showRowTotals:$e,showColumnTotals:De,availableFields:Ze,isConfigured:Re,pivotResult:ce,addRowField:Te,removeRowField:Le,addColumnField:qe,removeColumnField:y,addValueField:m,removeValueField:D,updateValueFieldAggregation:h,clearConfig:B,autoSuggestConfig:L}=Ct(Oe),K=e.computed(()=>{if(!E.value.trim()||!l.enableSearch)return Fe.value;const i=E.value.toLowerCase().trim();return Fe.value.filter(n=>{for(const v of C.value){const A=n.original[v];if(A!=null&&String(A).toLowerCase().includes(i))return!0}return!1})}),G=e.computed(()=>K.value.length),ee=e.computed(()=>l.enablePagination?Math.max(1,Math.ceil(G.value/l.pageSize)):1),oe=e.computed(()=>{if(!l.enablePagination)return K.value;const i=(F.value-1)*l.pageSize,n=i+l.pageSize;return K.value.slice(i,n)}),re=e.computed(()=>G.value===0?0:(F.value-1)*l.pageSize+1),de=e.computed(()=>Math.min(F.value*l.pageSize,G.value));function te(){F.value<ee.value&&F.value++}function be(){F.value>1&&F.value--}e.watch([ve,E],()=>{F.value=1});function ze(){if(le.value==="pivot"){lr();return}const i=l.enableSearch&&E.value.trim()?K.value.map(n=>n.original):Fe.value.map(n=>n.original);Nt(i,C.value,{filename:l.exportFilename,includeHeaders:!0}),r("export",{rowCount:i.length,filename:l.exportFilename})}function lr(){if(!ce.value)return;const i=l.exportFilename.replace(".csv","-pivot.csv");yt({headers:ce.value.headers,rowHeaders:ce.value.rowHeaders,data:ce.value.data,rowTotals:ce.value.rowTotals,columnTotals:ce.value.columnTotals,grandTotal:ce.value.grandTotal,showRowTotals:$e.value,showColumnTotals:De.value},Ce.value,Ne.value,ye.value,{filename:i});const n=ce.value.rowHeaders.length;r("export",{rowCount:n,filename:i})}function nr(i,n){l.enableColumnResize&&(n.preventDefault(),n.stopPropagation(),N.value=i,w.value=n.clientX,z.value=he.value[i]||Ve,document.addEventListener("mousemove",$t),document.addEventListener("mouseup",Dt))}function $t(i){if(!N.value)return;const n=i.clientX-w.value,v=Math.max(Ve,Math.min(Mt,z.value+n));he.value={...he.value,[N.value]:v}}function Dt(){N.value=null,document.removeEventListener("mousemove",$t),document.removeEventListener("mouseup",Dt)}function or(i){l.enableVerticalResize&&(i.preventDefault(),H.value=!0,P.value=i.clientY,M.value=W.value,document.addEventListener("mousemove",Rt),document.addEventListener("mouseup",Tt))}function Rt(i){if(!H.value)return;const n=i.clientY-P.value,v=Math.max(l.minHeight,Math.min(l.maxHeight,M.value+n));W.value=v}function Tt(){H.value=!1,document.removeEventListener("mousemove",Rt),document.removeEventListener("mouseup",Tt)}function Lt(){if(!me.value||!l.enableClipboard)return;const i=Ft(Fe.value.map(n=>n.original),C.value,me.value);bt(i,()=>{const n=(me.value.maxRow-me.value.minRow+1)*(me.value.maxCol-me.value.minCol+1);T.value=`Copied ${n} cell${n>1?"s":""}`,x.value=!0,setTimeout(()=>{x.value=!1},2e3),r("copy",{text:i,cellCount:n})},n=>{T.value="Copy failed",x.value=!0,setTimeout(()=>{x.value=!1},2e3),console.error("Copy failed:",n)})}const le=e.ref("grid"),Ae=e.ref(!0),nt=e.ref(null),pe=e.ref(vt());function ar(i){i.id||(i.id=`calc_${Date.now()}_${Math.random().toString(36).substr(2,9)}`),pe.value=[...pe.value,i],He(pe.value)}function rr(i){pe.value=pe.value.filter(A=>A.id!==i),He(pe.value);const n=`calc:${i}`,v=ye.value.find(A=>A.field===n);v&&D(n,v.aggregation)}function sr(i){pe.value=pe.value.map(n=>n.id===i.id?i:n),He(pe.value)}function ir(i){nt.value=i}function cr(){nt.value=null}function dr(i){Ce.value=i}function ur(i){Ne.value=i}const ot=e.ref(),zt=e.ref(),Fe=e.computed(()=>R.getRowModel().rows),Z=e.ref(null),Qe=e.ref({top:0,left:0,maxHeight:400}),he=e.ref({});function At(){if(typeof document>"u"||l.data.length===0)return;const i={},n=Math.min(100,l.data.length),A=document.createElement("canvas").getContext("2d");if(A){A.font="13px system-ui, -apple-system, sans-serif";for(const O of C.value){let X=A.measureText(O).width+56;for(let I=0;I<n;I++){const Y=l.data[I][O],Q=Y==null?"":String(Y),we=A.measureText(Q).width+28;X=Math.max(X,we)}i[O]=Math.min(Math.max(X,Ve),Mt)}he.value=i}}function mr(i,n){n.stopPropagation();const v=n.currentTarget,A=v.closest(".vpg-header-cell"),O=(A==null?void 0:A.getBoundingClientRect())||v.getBoundingClientRect(),X=280,I=12;let Y=O.left;Y+X>window.innerWidth-I&&(Y=window.innerWidth-X-I),Y=Math.max(I,Y);const Q=window.innerHeight-O.bottom-I,we=O.top-I;let Se,Be;Q>=300||Q>=we?(Se=O.bottom+4,Be=Math.min(400,Q-4)):(Be=Math.min(400,we-4),Se=O.top-Be-4),Qe.value={top:Se,left:Y,maxHeight:Be},Z.value=i}function Je(){Z.value=null}function gr(i,n){V(i,n)}function pr(i,n){Me(i,n)}function fr(i,n){if(n===null)se(i)&&(J(i),se(i)&&J(i));else{const v=se(i);v===null?(J(i),n==="desc"&&se(i)==="asc"&&J(i)):v!==n&&J(i)}}const et=e.computed(()=>ve.value.length),ke=e.ref(null),fe=e.ref(null),ue=e.ref(null),at=e.ref(!1);function vr(i){const n=Fe.value.length-1;n<0||(fe.value={row:0,col:i},ue.value={row:n,col:i},ke.value={row:0,col:i})}function hr(i,n){if(n.target.closest(".vpg-dropdown-arrow")){const A=C.value[i];mr(A,n)}else vr(i)}const me=e.computed(()=>!fe.value||!ue.value?null:{minRow:Math.min(fe.value.row,ue.value.row),maxRow:Math.max(fe.value.row,ue.value.row),minCol:Math.min(fe.value.col,ue.value.col),maxCol:Math.max(fe.value.col,ue.value.col)});function kr(i,n){if(!me.value)return!1;const{minRow:v,maxRow:A,minCol:O,maxCol:X}=me.value;return i>=v&&i<=A&&n>=O&&n<=X}const Pe=e.computed(()=>{if(!me.value)return null;const{minRow:i,maxRow:n,minCol:v,maxCol:A}=me.value,O=[];let X=0;for(let Q=i;Q<=n;Q++){const we=Fe.value[Q];if(we)for(let Se=v;Se<=A;Se++){const Be=C.value[Se];if(!Be)continue;const Ue=we.original[Be];if(X++,Ue!=null&&Ue!==""){const Ot=typeof Ue=="number"?Ue:Number.parseFloat(String(Ue));Number.isNaN(Ot)||O.push(Ot)}}}if(O.length===0)return{count:X,sum:null,avg:null,numericCount:0};const I=O.reduce((Q,we)=>Q+we,0),Y=I/O.length;return{count:X,sum:I,avg:Y,numericCount:O.length}});function Pt(i){return i===null?"-":Math.abs(i)>=1e3?i.toLocaleString("en-US",{maximumFractionDigits:2}):i.toLocaleString("en-US",{maximumFractionDigits:4})}function Ut(i){if((i.ctrlKey||i.metaKey)&&i.key==="c"&&me.value){i.preventDefault(),Lt();return}if((i.ctrlKey||i.metaKey)&&i.key==="f"&&l.enableSearch){i.preventDefault(),S.value=!0,e.nextTick(()=>{const Y=document.querySelector(".vpg-search-input");Y==null||Y.focus()});return}if(!ke.value||Z.value)return;const{row:n,col:v}=ke.value,O=oe.value.length-1,X=C.value.length-1;function I(Y,Q){i.shiftKey?(fe.value||(fe.value={row:n,col:v}),ue.value={row:Y,col:Q}):(fe.value={row:Y,col:Q},ue.value={row:Y,col:Q}),ke.value={row:Y,col:Q},wr(Y,Q)}switch(i.key){case"ArrowUp":i.preventDefault(),n>0&&I(n-1,v);break;case"ArrowDown":i.preventDefault(),n<O&&I(n+1,v);break;case"ArrowLeft":i.preventDefault(),v>0&&I(n,v-1);break;case"ArrowRight":i.preventDefault(),v<X&&I(n,v+1);break;case"Escape":ke.value=null,fe.value=null,ue.value=null,S.value=!1,E.value="";break}}function wr(i,n){e.nextTick(()=>{var A;const v=(A=zt.value)==null?void 0:A.querySelector(`[data-row="${i}"][data-col="${n}"]`);v==null||v.scrollIntoView({block:"nearest",inline:"nearest"})})}function Vr(i,n,v){v.preventDefault(),v.shiftKey&&ke.value?ue.value={row:i,col:n}:(ke.value={row:i,col:n},fe.value={row:i,col:n},ue.value={row:i,col:n},at.value=!0);const A=Fe.value[i];if(A){const O=C.value[n];r("cellClick",{row:i,col:n,value:A.original[O],rowData:A.original})}}function Er(i,n){at.value&&(ue.value={row:i,col:n})}function jt(){at.value=!1}function Cr(i,n){var v,A;return kr(i,n)?!0:((v=ke.value)==null?void 0:v.row)===i&&((A=ke.value)==null?void 0:A.col)===n}const Nr=/^(?:.*_)?(?:id|code|year|month|quarter|day|week|date|zip|phone|fax|ssn|ein|npi|ndc|gpi|hcpcs|icd|cpt|rx|bin|pcn|group|member|claim|rx_number|script|fill)(?:_.*)?$/i;function yr(i){return!Nr.test(i)}function br(i,n){if(i==null||i==="")return"";if(c(n).type==="number"){const A=typeof i=="number"?i:Number.parseFloat(String(i));return Number.isNaN(A)?String(i):yr(n)&&Math.abs(A)>=1e3?A.toLocaleString("en-US",{maximumFractionDigits:2}):Number.isInteger(A)?String(A):A.toLocaleString("en-US",{maximumFractionDigits:4,useGrouping:!1})}return String(i)}function Ht(){Z.value&&Je()}function Kt(i){var n;if(Z.value){const v=i.target;if(v&&((n=v.closest)!=null&&n.call(v,".vpg-filter-portal")))return;Je()}}e.onMounted(()=>{At(),document.addEventListener("keydown",Ut),document.addEventListener("mouseup",jt),e.nextTick(()=>{var i;(i=ot.value)==null||i.addEventListener("scroll",Ht,{passive:!0})}),window.addEventListener("scroll",Kt,{passive:!0,capture:!0})}),e.onUnmounted(()=>{var i;document.removeEventListener("keydown",Ut),document.removeEventListener("mouseup",jt),(i=ot.value)==null||i.removeEventListener("scroll",Ht),window.removeEventListener("scroll",Kt,{capture:!0})}),e.watch(()=>l.data,()=>{e.nextTick(At)},{immediate:!0});const Fr=e.computed(()=>C.value.reduce((i,n)=>i+(he.value[n]||Ve),0));function Sr(i){Z.value&&(i.target.closest(".vpg-filter-portal")||Je())}return(i,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vpg-data-grid",[`vpg-font-${b.value}`,`vpg-theme-${k.value}`,{"vpg-striped":t.stripedRows},{"vpg-resizing":N.value},{"vpg-resizing-vertical":H.value}]]),style:e.normalizeStyle({height:`${W.value}px`}),onClick:Sr},[e.createVNode(e.Transition,{name:"vpg-toast"},{default:e.withCtx(()=>[x.value?(e.openBlock(),e.createElementBlock("div",oa,[n[17]||(n[17]=e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)),e.createTextVNode(" "+e.toDisplayString(T.value),1)])):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",aa,[e.createElementVNode("div",ra,[t.showPivot?(e.openBlock(),e.createElementBlock("div",sa,[e.createElementVNode("button",{class:e.normalizeClass(["vpg-view-btn",{active:le.value==="grid"}]),onClick:n[0]||(n[0]=v=>le.value="grid")},[...n[18]||(n[18]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"})],-1),e.createTextVNode(" Grid ",-1)])],2),e.createElementVNode("button",{class:e.normalizeClass(["vpg-view-btn vpg-pivot-btn",{active:le.value==="pivot"}]),onClick:n[1]||(n[1]=v=>le.value="pivot")},[...n[19]||(n[19]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"})],-1),e.createTextVNode(" Pivot ",-1)])],2)])):e.createCommentVNode("",!0),le.value==="grid"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.enableSearch?(e.openBlock(),e.createElementBlock("div",ia,[S.value?(e.openBlock(),e.createElementBlock("div",ca,[n[22]||(n[22]=e.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[3]||(n[3]=v=>E.value=v),type:"text",class:"vpg-search-input",placeholder:"Search all columns...",onKeydown:n[4]||(n[4]=e.withKeys(v=>{S.value=!1,E.value=""},["escape"]))},null,544),[[e.vModelText,E.value]]),E.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-search-clear",onClick:n[5]||(n[5]=v=>E.value="")},[...n[21]||(n[21]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-icon-btn",title:"Search (Ctrl+F)",onClick:n[2]||(n[2]=v=>S.value=!0)},[...n[20]||(n[20]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)])]))])):e.createCommentVNode("",!0),e.createElementVNode("div",da,[n[23]||(n[23]=e.createElementVNode("span",{class:"vpg-label"},"Size:",-1)),e.createElementVNode("div",ua,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(U,v=>e.createElementVNode("button",{key:v.value,class:e.normalizeClass(["vpg-font-size-btn",{active:b.value===v.value}]),onClick:A=>b.value=v.value},e.toDisplayString(v.label),11,ma)),64))])]),et.value>0?(e.openBlock(),e.createElementBlock("div",ga,[n[24]||(n[24]=e.createElementVNode("svg",{class:"vpg-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M3 3a1 1 0 011-1h12a1 1 0 011 1v3a1 1 0 01-.293.707L12 11.414V15a1 1 0 01-.293.707l-2 2A1 1 0 018 17v-5.586L3.293 6.707A1 1 0 013 6V3z","clip-rule":"evenodd"})],-1)),e.createElementVNode("span",null,e.toDisplayString(et.value)+" filter"+e.toDisplayString(et.value>1?"s":""),1)])):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createElementBlock("div",pa,[e.createElementVNode("span",null,e.toDisplayString(G.value)+" match"+e.toDisplayString(G.value!==1?"es":""),1)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),le.value==="pivot"&&e.unref(a)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("button",{class:e.normalizeClass(["vpg-config-toggle",{active:Ae.value}]),onClick:n[6]||(n[6]=v=>Ae.value=!Ae.value)},[n[25]||(n[25]=e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"})],-1)),e.createTextVNode(" "+e.toDisplayString(Ae.value?"Hide":"Show")+" Config ",1)],2),e.unref(Re)?(e.openBlock(),e.createElementBlock("div",fa,[...n[26]||(n[26]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})],-1),e.createElementVNode("span",null,"Pivot configured",-1)])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)]),e.createElementVNode("div",va,[le.value==="grid"&&et.value>0?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-clear-filters",onClick:n[7]||(n[7]=(...v)=>e.unref(j)&&e.unref(j)(...v))},[...n[27]||(n[27]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),e.createTextVNode(" Clear Filters ",-1)])])):e.createCommentVNode("",!0),t.enableClipboard&&me.value&&le.value==="grid"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"vpg-icon-btn",title:"Copy selection (Ctrl+C)",onClick:Lt},[...n[28]||(n[28]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})],-1)])])):e.createCommentVNode("",!0),t.enableExport&&le.value==="grid"?(e.openBlock(),e.createElementBlock("button",{key:2,class:"vpg-export-btn",title:"Export to CSV",onClick:ze},[...n[29]||(n[29]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})],-1),e.createTextVNode(" Export ",-1)])])):e.createCommentVNode("",!0),t.enableExport&&le.value==="pivot"&&e.unref(Re)?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vpg-export-btn",{"vpg-export-btn-disabled":!e.unref(f)}]),disabled:!e.unref(f),title:e.unref(f)?"Export Pivot to CSV":"Export Pivot to CSV (Pro feature)",onClick:n[8]||(n[8]=v=>e.unref(f)&&ze())},[n[30]||(n[30]=e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})],-1)),e.createTextVNode(" Export Pivot"+e.toDisplayString(e.unref(f)?"":" (Pro)"),1)],10,ha)):e.createCommentVNode("",!0)])]),le.value==="grid"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"tableContainerRef",ref:ot,class:"vpg-grid-container",tabindex:"0"},[t.loading?(e.openBlock(),e.createElementBlock("div",ka,[...n[31]||(n[31]=[e.createElementVNode("div",{class:"vpg-spinner"},null,-1),e.createElementVNode("span",null,"Loading data...",-1)])])):t.data.length===0?(e.openBlock(),e.createElementBlock("div",wa,[...n[32]||(n[32]=[e.createElementVNode("div",{class:"vpg-empty-icon"},[e.createElementVNode("svg",{class:"vpg-icon-lg",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})])],-1),e.createElementVNode("span",null,"No data available",-1)])])):e.unref(g)===0?(e.openBlock(),e.createElementBlock("div",Va,[n[33]||(n[33]=e.createElementVNode("div",{class:"vpg-empty-icon vpg-warning"},[e.createElementVNode("svg",{class:"vpg-icon-lg",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})])],-1)),n[34]||(n[34]=e.createElementVNode("span",null,"No matching records",-1)),e.createElementVNode("button",{class:"vpg-clear-link",onClick:n[9]||(n[9]=(...v)=>e.unref(j)&&e.unref(j)(...v))}," Clear all filters ")])):(e.openBlock(),e.createElementBlock("div",Ea,[e.createElementVNode("table",{class:"vpg-table",style:e.normalizeStyle({minWidth:`${Fr.value}px`})},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C),(v,A)=>(e.openBlock(),e.createElementBlock("th",{key:v,class:e.normalizeClass(["vpg-header-cell",{"vpg-has-filter":e.unref(u)(v),"vpg-is-sorted":e.unref(se)(v)!==null,"vpg-is-active":Z.value===v}]),style:e.normalizeStyle({width:`${he.value[v]||Ve}px`,minWidth:`${he.value[v]||Ve}px`}),onClick:O=>hr(A,O)},[e.createElementVNode("div",Na,[e.createElementVNode("span",ya,e.toDisplayString(v),1),e.createElementVNode("div",ba,[e.unref(se)(v)?(e.openBlock(),e.createElementBlock("span",Fa,[e.unref(se)(v)==="asc"?(e.openBlock(),e.createElementBlock("svg",Sa,[...n[35]||(n[35]=[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z","clip-rule":"evenodd"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",Ba,[...n[36]||(n[36]=[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"},null,-1)])]))])):e.createCommentVNode("",!0),e.unref(u)(v)?(e.openBlock(),e.createElementBlock("span",xa,[...n[37]||(n[37]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M3 3a1 1 0 011-1h12a1 1 0 011 1v3a1 1 0 01-.293.707L12 11.414V15a1 1 0 01-.293.707l-2 2A1 1 0 018 17v-5.586L3.293 6.707A1 1 0 013 6V3z","clip-rule":"evenodd"})],-1)])])):e.createCommentVNode("",!0),n[38]||(n[38]=e.createElementVNode("span",{class:"vpg-dropdown-arrow",title:"Filter & Sort"},[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})])],-1))])]),t.enableColumnResize?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-resize-handle",onMousedown:O=>nr(v,O)},null,40,Ma)):e.createCommentVNode("",!0)],14,Ca))),128))])]),e.createElementVNode("tbody",{ref_key:"tableBodyRef",ref:zt},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(oe.value,(v,A)=>(e.openBlock(),e.createElementBlock("tr",{key:v.id,class:"vpg-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C),(O,X)=>(e.openBlock(),e.createElementBlock("td",{key:O,class:e.normalizeClass(["vpg-cell",{"vpg-selected":Cr(A,X),"vpg-is-number":e.unref(c)(O).type==="number"}]),"data-row":A,"data-col":X,style:e.normalizeStyle({width:`${he.value[O]||Ve}px`,minWidth:`${he.value[O]||Ve}px`}),onMousedown:I=>Vr(A,X,I),onMouseenter:I=>Er(A,X)},e.toDisplayString(br(v.original[O],O)),47,$a))),128))]))),128))],512)],4)]))],512)):(e.openBlock(),e.createElementBlock("div",Da,[Ae.value&&e.unref(a)?(e.openBlock(),e.createElementBlock("div",Ra,[e.createVNode(Bt,{"available-fields":e.unref(Ze),"row-fields":e.unref(Ce),"column-fields":e.unref(Ne),"value-fields":e.unref(ye),"show-row-totals":e.unref($e),"show-column-totals":e.unref(De),"calculated-fields":pe.value,"onUpdate:showRowTotals":n[10]||(n[10]=v=>$e.value=v),"onUpdate:showColumnTotals":n[11]||(n[11]=v=>De.value=v),onClearConfig:e.unref(B),onDragStart:ir,onDragEnd:cr,onUpdateAggregation:e.unref(h),onAddRowField:e.unref(Te),onRemoveRowField:e.unref(Le),onAddColumnField:e.unref(qe),onRemoveColumnField:e.unref(y),onAddValueField:e.unref(m),onRemoveValueField:e.unref(D),onAddCalculatedField:ar,onRemoveCalculatedField:rr,onUpdateCalculatedField:sr},null,8,["available-fields","row-fields","column-fields","value-fields","show-row-totals","show-column-totals","calculated-fields","onClearConfig","onUpdateAggregation","onAddRowField","onRemoveRowField","onAddColumnField","onRemoveColumnField","onAddValueField","onRemoveValueField"])])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["vpg-pivot-main",{"vpg-full-width":!Ae.value}])},[e.createVNode(xt,{"row-fields":e.unref(Ce),"column-fields":e.unref(Ne),"value-fields":e.unref(ye),"calculated-fields":pe.value,"is-configured":e.unref(Re),"dragging-field":nt.value,"pivot-result":e.unref(ce),"font-size":b.value,"active-filters":We.value,"total-row-count":e.unref(d),"filtered-row-count":e.unref(g),onAddRowField:e.unref(Te),onRemoveRowField:e.unref(Le),onAddColumnField:e.unref(qe),onRemoveColumnField:e.unref(y),onAddValueField:e.unref(m),onRemoveValueField:e.unref(D),onUpdateAggregation:e.unref(h),onReorderRowFields:dr,onReorderColumnFields:ur},null,8,["row-fields","column-fields","value-fields","calculated-fields","is-configured","dragging-field","pivot-result","font-size","active-filters","total-row-count","filtered-row-count","onAddRowField","onRemoveRowField","onAddColumnField","onRemoveColumnField","onAddValueField","onRemoveValueField","onUpdateAggregation"])],2)])),e.createElementVNode("div",Ta,[e.createElementVNode("div",La,[le.value==="grid"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.enablePagination?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",null,e.toDisplayString(re.value.toLocaleString())+"-"+e.toDisplayString(de.value.toLocaleString()),1),n[39]||(n[39]=e.createElementVNode("span",{class:"vpg-separator"},"of",-1)),e.createElementVNode("span",null,e.toDisplayString(G.value.toLocaleString()),1),G.value!==e.unref(d)?(e.openBlock(),e.createElementBlock("span",za," ("+e.toDisplayString(e.unref(d).toLocaleString())+" total) ",1)):e.createCommentVNode("",!0)],64)):e.unref(g)===e.unref(d)&&G.value===e.unref(d)?(e.openBlock(),e.createElementBlock("span",Aa,e.toDisplayString(e.unref(d).toLocaleString())+" records",1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("span",Pa,e.toDisplayString(G.value.toLocaleString()),1),n[40]||(n[40]=e.createElementVNode("span",{class:"vpg-separator"},"of",-1)),e.createElementVNode("span",null,e.toDisplayString(e.unref(d).toLocaleString()),1),n[41]||(n[41]=e.createElementVNode("span",{class:"vpg-separator"},"records",-1))],64))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[n[42]||(n[42]=e.createElementVNode("span",{class:"vpg-pivot-label"},"Pivot Table",-1)),n[43]||(n[43]=e.createElementVNode("span",{class:"vpg-separator"},"•",-1)),e.createElementVNode("span",null,e.toDisplayString(e.unref(d).toLocaleString())+" source records",1)],64))]),t.enablePagination&&le.value==="grid"&&ee.value>1?(e.openBlock(),e.createElementBlock("div",Ua,[e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===1,onClick:n[12]||(n[12]=v=>F.value=1)},[...n[44]||(n[44]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 19l-7-7 7-7m8 14l-7-7 7-7"})],-1)])],8,ja),e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===1,onClick:be},[...n[45]||(n[45]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])],8,Ha),e.createElementVNode("span",Ka," Page "+e.toDisplayString(F.value)+" of "+e.toDisplayString(ee.value),1),e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===ee.value,onClick:te},[...n[46]||(n[46]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"})],-1)])],8,Oa),e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===ee.value,onClick:n[13]||(n[13]=v=>F.value=ee.value)},[...n[47]||(n[47]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 5l7 7-7 7M5 5l7 7-7 7"})],-1)])],8,Wa)])):e.createCommentVNode("",!0),le.value==="grid"&&Pe.value&&Pe.value.count>1?(e.openBlock(),e.createElementBlock("div",qa,[e.createElementVNode("span",Ga,[n[48]||(n[48]=e.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),e.createElementVNode("span",_a,e.toDisplayString(Pe.value.count),1)]),Pe.value.numericCount>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[51]||(n[51]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Ya,[n[49]||(n[49]=e.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),e.createElementVNode("span",Ia,e.toDisplayString(Pt(Pe.value.sum)),1)]),n[52]||(n[52]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Xa,[n[50]||(n[50]=e.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),e.createElementVNode("span",Za,e.toDisplayString(Pt(Pe.value.avg)),1)])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Qa,[e.unref(p)?(e.openBlock(),e.createElementBlock("div",Ja,[...n[53]||(n[53]=[e.createElementVNode("span",{class:"vpg-demo-badge"},"DEMO",-1),e.createElementVNode("span",null,"Pro features enabled",-1),e.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",rel:"noopener"},"Get License →",-1)])])):e.unref(o)?(e.openBlock(),e.createElementBlock("span",er,[...n[54]||(n[54]=[e.createStaticVNode('<a href="https://tiny-pivot.com" target="_blank" rel="noopener" data-v-7b06f760><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-7b06f760><rect x="3" y="3" width="7" height="7" data-v-7b06f760></rect><rect x="14" y="3" width="7" height="7" data-v-7b06f760></rect><rect x="14" y="14" width="7" height="7" data-v-7b06f760></rect><rect x="3" y="14" width="7" height="7" data-v-7b06f760></rect></svg> Powered by TinyPivot </a>',1)])])):e.createCommentVNode("",!0)])]),t.enableVerticalResize?(e.openBlock(),e.createElementBlock("div",{key:2,class:"vpg-vertical-resize-handle",onMousedown:or},[...n[55]||(n[55]=[e.createElementVNode("div",{class:"vpg-resize-grip"},[e.createElementVNode("span"),e.createElementVNode("span"),e.createElementVNode("span")],-1)])],32)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[Z.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-filter-portal",style:e.normalizeStyle({position:"fixed",top:`${Qe.value.top}px`,left:`${Qe.value.left}px`,maxHeight:`${Qe.value.maxHeight}px`,zIndex:9999})},[e.createVNode(St,{"column-id":Z.value,"column-name":Z.value,stats:e.unref(c)(Z.value),"selected-values":e.unref($)(Z.value),"sort-direction":e.unref(se)(Z.value),"numeric-range":e.unref(ie)(Z.value),onFilter:n[14]||(n[14]=v=>gr(Z.value,v)),onRangeFilter:n[15]||(n[15]=v=>pr(Z.value,v)),onSort:n[16]||(n[16]=v=>fr(Z.value,v)),onClose:Je},null,8,["column-id","column-name","stats","selected-values","sort-direction","numeric-range"])],4)):e.createCommentVNode("",!0)]))],6))}}),[["__scopeId","data-v-7b06f760"]]);q.ColumnFilter=St,q.DataGrid=tr,q.PivotConfig=Bt,q.PivotSkeleton=xt,q.configureLicenseSecret=bl,q.copyToClipboard=bt,q.enableDemoMode=yl,q.exportPivotToCSV=yt,q.exportToCSV=Nt,q.formatCellValue=st,q.formatSelectionForClipboard=Ft,q.getAggregationLabel=je,q.getColumnUniqueValues=rt,q.setLicenseKey=Nl,q.useColumnResize=xl,q.useExcelGrid=Et,q.useGlobalSearch=Sl,q.useLicense=Ke,q.usePagination=Fl,q.usePivotTable=Ct,q.useRowSelection=Bl,Object.defineProperty(q,Symbol.toStringTag,{value:"Module"})});
8
+ -----END PUBLIC KEY-----`;function it(t){let r=t.replace(/-/g,"+").replace(/_/g,"/");for(;r.length%4;)r+="=";const l=atob(r),a=new Uint8Array(l.length);for(let o=0;o<l.length;o++)a[o]=l.charCodeAt(o);return a}function Xt(t){if(t[0]!==48)throw new Error("Invalid DER signature");let r=2;if(t[r]!==2)throw new Error("Invalid DER signature");r++;const l=t[r];r++;let a=t.slice(r,r+l);if(r+=l,t[r]!==2)throw new Error("Invalid DER signature");r++;const o=t[r];r++;let s=t.slice(r,r+o);a.length===33&&a[0]===0&&(a=a.slice(1)),s.length===33&&s[0]===0&&(s=s.slice(1));const p=new Uint8Array(32),f=new Uint8Array(32);p.set(a,32-a.length),f.set(s,32-s.length);const k=new Uint8Array(64);return k.set(p,0),k.set(f,32),k}async function Zt(){try{const t=It.replace("-----BEGIN PUBLIC KEY-----","").replace("-----END PUBLIC KEY-----","").replace(/\s/g,""),r=it(t);return await crypto.subtle.importKey("spki",new Uint8Array(r).buffer,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"])}catch{return null}}async function Qt(t,r,l){const a=`TP-${t}-${l}`;try{const o=await Zt();if(!o)return!1;const p=new TextEncoder().encode(a),f=it(r),k=Xt(f);return await crypto.subtle.verify({name:"ECDSA",hash:"SHA-256"},o,new Uint8Array(k).buffer,p)}catch{return!1}}async function Jt(t){if(!t||t==="")return st;if(!t.startsWith("TP-"))return _e;const r=t.lastIndexOf("-");if(r===-1||t.length-r!==9)return _e;const l=t.slice(r+1),a=t.slice(3),o=a.indexOf("-");if(o===-1)return _e;const s=a.slice(0,o),p=a.slice(o+1,a.lastIndexOf("-"));if(!await Qt(s,p,l))return _e;const k=Number.parseInt(l.slice(0,4)),b=Number.parseInt(l.slice(4,6))-1,E=Number.parseInt(l.slice(6,8)),S=new Date(k,b,E);let F="free";return s==="PRO1"?F="pro-single":s==="PROU"?F="pro-unlimited":s==="PROT"&&(F="pro-team"),{type:F,isValid:!0,expiresAt:S,features:{pivot:F!=="free",advancedAggregations:F!=="free",percentageMode:F!=="free",sessionPersistence:F!=="free",noWatermark:F!=="free"}}}function el(t){console.warn("[TinyPivot] configureLicenseSecret() is deprecated and no longer needed.")}const tl="A48AA0618518D3E62F31FCFCA2DD2B86E7FE0863E2F90756FB0A960AE7A51583";async function ll(t){try{const l=new TextEncoder().encode(t),a=await crypto.subtle.digest("SHA-256",l);return Array.from(new Uint8Array(a)).map(s=>s.toString(16).padStart(2,"0")).join("").toUpperCase()}catch{return""}}async function nl(t){return!t||await ll(t)!==tl?null:Yt}function ol(){return st}function al(t){return t.features.pivot}function rl(t){return t.isValid&&t.type!=="free"}function sl(t,r){return r||!t.features.noWatermark}function il(t){console.warn(`[TinyPivot] "${t}" requires a Pro license. Visit https://tiny-pivot.com/#pricing to upgrade.`)}function cl(t){const r=t.filter(f=>f!=null&&f!=="");if(r.length===0)return"string";const l=r.slice(0,100);let a=0,o=0,s=0;for(const f of l)typeof f=="boolean"?s++:typeof f=="number"||!Number.isNaN(Number(f))&&f!==""?a++:(f instanceof Date||!Number.isNaN(Date.parse(String(f))))&&o++;const p=l.length*.8;return s>=p?"boolean":a>=p?"number":o>=p?"date":"string"}function dl(t,r){const a=t.map(f=>f[r]).filter(f=>f!=null&&f!=="").slice(0,100);let o=0;const s=new Set;for(const f of a)s.add(String(f)),(typeof f=="number"||!Number.isNaN(Number(f))&&f!=="")&&o++;const p=o>=a.length*.8;return{field:r,type:p?"number":"string",uniqueCount:s.size,isNumeric:p}}function ct(t,r,l=500){const a=[];let o=0,s,p;for(const E of t){const S=E[r];if(S==null||S==="")o++;else{a.push(S);const F=typeof S=="number"?S:Number.parseFloat(String(S));Number.isNaN(F)||((s===void 0||F<s)&&(s=F),(p===void 0||F>p)&&(p=F))}}const f=new Set;for(const E of a)if(f.add(String(E)),f.size>=l)break;const k=Array.from(f).sort((E,S)=>{const F=Number.parseFloat(E),N=Number.parseFloat(S);return!Number.isNaN(F)&&!Number.isNaN(N)?F-N:E.localeCompare(S)}),b=cl(a);return{uniqueValues:k,totalCount:t.length,nullCount:o,type:b,...b==="number"&&s!==void 0&&p!==void 0?{numericMin:s,numericMax:p}:{}}}function dt(t,r){if(t==null||t==="")return"";switch(r){case"number":{const l=typeof t=="number"?t:Number.parseFloat(String(t));return Number.isNaN(l)?String(t):Math.abs(l)>=1e3?l.toLocaleString("en-US",{maximumFractionDigits:2}):l.toLocaleString("en-US",{maximumFractionDigits:4})}case"date":{const l=t instanceof Date?t:new Date(String(t));return Number.isNaN(l.getTime())?String(t):l.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}case"boolean":return t?"Yes":"No";default:return String(t)}}function ut(t,r){return r.map(l=>String(t[l]??"(blank)")).join("|||")}function mt(t){return t.split("|||")}function ul(t){const r=[...t].sort((a,o)=>a-o),l=Math.floor(r.length/2);return r.length%2!==0?r[l]:(r[l-1]+r[l])/2}function ml(t){const r=t.reduce((o,s)=>o+s,0)/t.length,a=t.map(o=>(o-r)**2).reduce((o,s)=>o+s,0)/t.length;return Math.sqrt(a)}function Ye(t,r,l,a,o){if(t.length===0&&r!=="custom")return null;switch(r){case"sum":return t.reduce((s,p)=>s+p,0);case"count":return t.length;case"avg":return t.reduce((s,p)=>s+p,0)/t.length;case"min":return Math.min(...t);case"max":return Math.max(...t);case"countDistinct":return new Set(t).size;case"median":return ul(t);case"stdDev":return ml(t);case"percentOfTotal":{const s=t.reduce((p,f)=>p+f,0);return l===void 0||l===0?null:s/l*100}case"custom":return null;default:return t.reduce((s,p)=>s+p,0)}}function Ie(t,r){return t===null?"-":r==="count"||r==="countDistinct"?Math.round(t).toLocaleString():r==="percentOfTotal"?`${t.toFixed(1)}%`:r==="stdDev"?t.toLocaleString("en-US",{maximumFractionDigits:2}):Math.abs(t)>=1e3?t.toLocaleString("en-US",{maximumFractionDigits:2}):t.toLocaleString("en-US",{maximumFractionDigits:4})}function je(t,r){return t==="custom"&&r?r:{sum:"Sum",count:"Count",avg:"Average",min:"Min",max:"Max",countDistinct:"Count Distinct",median:"Median",stdDev:"Std Dev",percentOfTotal:"% of Total",custom:"Custom"}[t]}function gt(t,r){return t==="custom"&&r?r:{sum:"Σ",count:"#",avg:"x̄",min:"↓",max:"↑",countDistinct:"◇",median:"M̃",stdDev:"σ",percentOfTotal:"%Σ",custom:"ƒ"}[t]}const gl=[{value:"sum",label:"Sum",symbol:"Σ"},{value:"count",label:"Count",symbol:"#"},{value:"avg",label:"Avg",symbol:"x̄"},{value:"min",label:"Min",symbol:"↓"},{value:"max",label:"Max",symbol:"↑"},{value:"countDistinct",label:"Unique",symbol:"◇"},{value:"median",label:"Median",symbol:"M̃"},{value:"stdDev",label:"Std Dev",symbol:"σ"},{value:"percentOfTotal",label:"% of Total",symbol:"%Σ"}];function pl(t,r,l=2){if(t===null)return"-";switch(r){case"percent":return`${t.toFixed(l)}%`;case"currency":return t.toLocaleString("en-US",{style:"currency",currency:"USD",minimumFractionDigits:l,maximumFractionDigits:l});default:return t.toLocaleString("en-US",{minimumFractionDigits:0,maximumFractionDigits:l})}}function pt(t){const r=t.match(/[a-z_]\w*/gi)||[],l=["true","false","null","undefined"];return[...new Set(r.filter(a=>!l.includes(a.toLowerCase())))]}function ft(t,r){if(!t.trim())return"Formula is required";const l=pt(t);if(l.length===0)return"Formula must reference at least one field";const a=r.map(o=>o.toLowerCase());for(const o of l)if(!a.includes(o.toLowerCase()))return`Unknown field: ${o}`;try{let o=t;for(const s of l){const p=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");o=o.replace(new RegExp(`\\b${p}\\b`,"gi"),"1")}new Function(`return ${o}`)}catch{return"Invalid formula syntax"}return null}function vt(t,r,l){try{const a=pt(t);let o=t;for(const p of a){const f=l.find(S=>S.toLowerCase()===p.toLowerCase())||p,k=r[f];if(k==null||k==="")return null;const b=typeof k=="number"?k:Number.parseFloat(String(k));if(Number.isNaN(b))return null;const E=p.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");o=o.replace(new RegExp(`\\b${E}\\b`,"gi"),String(b))}if(!/^[\d\s+\-*/().]+$/.test(o))return null;const s=new Function(`return ${o}`)();return typeof s=="number"&&Number.isFinite(s)?s:null}catch{return null}}function fl(t){return t.length===0?[]:Object.keys(t[0]).map(l=>dl(t,l))}function vl(t,r,l,a){const o=new Set([...r,...l,...a.map(s=>s.field)]);return t.filter(s=>!o.has(s.field))}function ht(t){return(t.rowFields.length>0||t.columnFields.length>0)&&t.valueFields.length>0}function hl(t,r){const{rowFields:l,columnFields:a,valueFields:o,showRowTotals:s,showColumnTotals:p,calculatedFields:f}=r;if(!ht(r)||t.length===0)return null;const k=new Map;if(f)for(const R of f)k.set(R.id,R);const b=t.length>0?Object.keys(t[0]):[],E=new Set,S=new Set,F=new Map;for(const R of t){const C=l.length>0?ut(R,l):"__all__",g=a.length>0?ut(R,a):"__all__";E.add(C),S.add(g),F.has(C)||F.set(C,new Map);const d=F.get(C);d.has(g)||d.set(g,o.map(()=>[]));const c=d.get(g);for(let u=0;u<o.length;u++){const V=o[u];let $=null;if(V.field.startsWith("calc:")){const j=V.field.replace("calc:",""),J=k.get(j);J&&($=vt(J.formula,R,b))}else{const j=R[V.field];j!=null&&j!==""&&($=typeof j=="number"?j:Number.parseFloat(String(j)),Number.isNaN($)&&($=V.aggregation==="count"||V.aggregation==="countDistinct"?1:null))}$!==null&&c[u].push($)}}const N=Array.from(E).sort(),w=Array.from(S).sort(),z=o.map((R,C)=>{let g=0;for(const d of t){let c=null;if(R.field.startsWith("calc:")){const u=R.field.replace("calc:",""),V=k.get(u);V&&(c=vt(V.formula,d,b))}else{const u=d[R.field];u!=null&&u!==""&&(c=typeof u=="number"?u:Number.parseFloat(String(u)),Number.isNaN(c)&&(c=null))}c!==null&&(g+=c)}return g});function W(R){if(R.field.startsWith("calc:")){const C=R.field.replace("calc:",""),g=k.get(C);return`${(g==null?void 0:g.name)||R.field} (${je(R.aggregation)})`}return`${R.label||R.field} (${je(R.aggregation)})`}const H=[];if(a.length>0){const R=o.length>1?o.length:1;for(let C=0;C<a.length;C++){const g=[];for(const d of w){const c=mt(d);for(let u=0;u<R;u++)g.push(c[C]||"")}H.push(g)}}if(o.length>1||H.length===0){const R=[];for(const C of w)for(const g of o)R.push(W(g));w.length===1&&w[0]==="__all__"?H.push(o.map(C=>W(C))):H.push(R)}const P=N.map(R=>R==="__all__"?["Total"]:mt(R)),M=[],x=[],T=new Map;for(const R of N){const C=[],g=o.map(()=>[]);for(const d of w){const c=F.get(R),u=(c==null?void 0:c.get(d))||o.map(()=>[]);for(let $=0;$<u.length;$++)g[$].push(...u[$]);T.has(d)||T.set(d,o.map(()=>[]));const V=T.get(d);for(let $=0;$<u.length;$++)V[$].push(...u[$]);for(let $=0;$<o.length;$++){const j=o[$],J=u[$]||[],se=z[$],ve=Ye(J,j.aggregation,se);let ae;if(j.field.startsWith("calc:")){const Me=j.field.replace("calc:",""),ie=k.get(Me);ae=pl(ve,(ie==null?void 0:ie.formatAs)||"number",(ie==null?void 0:ie.decimals)??2)}else ae=Ie(ve,j.aggregation);C.push({value:ve,count:J.length,formattedValue:ae})}}if(M.push(C),s&&w.length>1)if(o.length>0){const d=o[0],c=g[0]||[],u=Ye(c,d.aggregation,z[0]);x.push({value:u,count:c.length,formattedValue:Ie(u,d.aggregation)})}else x.push({value:null,count:0,formattedValue:"-"})}const U=[];if(p&&N.length>1)for(const R of w){const C=T.get(R)||o.map(()=>[]);for(let g=0;g<o.length;g++){const d=o[g],c=C[g]||[],u=Ye(c,d.aggregation,z[g]);U.push({value:u,count:c.length,formattedValue:Ie(u,d.aggregation)})}}const _={value:null,count:0,formattedValue:"-"};if(s&&p&&o.length>0){const R=o.map(()=>[]);for(const c of N){const u=F.get(c);if(u)for(const V of w){const $=u.get(V);if($)for(let j=0;j<$.length;j++)R[j].push(...$[j])}}const C=o[0],g=R[0]||[],d=Ye(g,C.aggregation,z[0]);_.value=d,_.count=g.length,_.formattedValue=Ie(d,C.aggregation)}return{headers:H,rowHeaders:P,data:M,rowTotals:x,columnTotals:U,grandTotal:_}}const kl="vpg-pivot-";function wl(t){const l=[...t].sort().join("|").substring(0,100);return`${kl}${l}`}function Vl(t,r){try{sessionStorage.setItem(t,JSON.stringify(r))}catch{}}function El(t){try{const r=sessionStorage.getItem(t);if(r)return JSON.parse(r)}catch{}return null}function tt(t,r){const l=new Set(r);return[...t.rowFields,...t.columnFields,...t.valueFields.map(o=>o.field)].filter(o=>!o.startsWith("calc:")).every(o=>l.has(o))}const kt="vpg-calculated-fields";function He(t){try{localStorage.setItem(kt,JSON.stringify(t))}catch{}}function wt(){try{const t=localStorage.getItem(kt);if(t)return JSON.parse(t)}catch{}return[]}function Xe(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)&&("min"in t||"max"in t)}const Cl={class:"vpg-modal"},Nl={class:"vpg-modal-header"},yl={class:"vpg-modal-body"},bl={class:"vpg-form-group"},Fl={class:"vpg-form-group"},Sl={key:0,class:"vpg-error"},Bl={class:"vpg-form-group"},xl={class:"vpg-button-group"},Ml={class:"vpg-form-group"},$l={key:0,class:"vpg-button-group vpg-field-buttons"},Dl=["onClick"],Rl={key:1,class:"vpg-no-fields"},Tl={class:"vpg-form-row"},Ll={class:"vpg-form-group vpg-form-group-half"},zl={class:"vpg-form-group vpg-form-group-half"},Al={key:0,class:"vpg-error vpg-error-box"},Pl={class:"vpg-modal-footer"},Ul=e.defineComponent({__name:"CalculatedFieldModal",props:{show:{type:Boolean},availableFields:{},existingField:{}},emits:["close","save"],setup(t,{emit:r}){const l=t,a=r,o=e.ref(""),s=e.ref(""),p=e.ref("number"),f=e.ref(2),k=e.ref(null);e.watch(()=>l.show,N=>{N&&(l.existingField?(o.value=l.existingField.name,s.value=l.existingField.formula,p.value=l.existingField.formatAs||"number",f.value=l.existingField.decimals??2):(o.value="",s.value="",p.value="number",f.value=2),k.value=null)});const b=e.computed(()=>s.value.trim()?ft(s.value,l.availableFields):null);function E(N){s.value.trim()&&!s.value.endsWith(" ")&&(s.value+=" "),s.value+=N}function S(N){s.value.trim()&&!s.value.endsWith(" ")&&(s.value+=" "),s.value+=`${N} `}function F(){var z;if(!o.value.trim()){k.value="Name is required";return}const N=ft(s.value,l.availableFields);if(N){k.value=N;return}const w={id:((z=l.existingField)==null?void 0:z.id)||`calc_${Date.now()}`,name:o.value.trim(),formula:s.value.trim(),formatAs:p.value,decimals:f.value};a("save",w),a("close")}return(N,w)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.show?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-modal-overlay",onClick:w[12]||(w[12]=e.withModifiers(z=>a("close"),["self"]))},[e.createElementVNode("div",Cl,[e.createElementVNode("div",Nl,[e.createElementVNode("h3",null,e.toDisplayString(t.existingField?"Edit":"Create")+" Calculated Field",1),e.createElementVNode("button",{class:"vpg-modal-close",onClick:w[0]||(w[0]=z=>a("close"))}," × ")]),e.createElementVNode("div",yl,[e.createElementVNode("div",bl,[w[13]||(w[13]=e.createElementVNode("label",{class:"vpg-label"},"Name",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[1]||(w[1]=z=>o.value=z),type:"text",class:"vpg-input",placeholder:"e.g., Profit Margin %"},null,512),[[e.vModelText,o.value]])]),e.createElementVNode("div",Fl,[w[14]||(w[14]=e.createElementVNode("label",{class:"vpg-label"},"Formula",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":w[2]||(w[2]=z=>s.value=z),class:"vpg-textarea",placeholder:"e.g., revenue / units",rows:"2"},null,512),[[e.vModelText,s.value]]),w[15]||(w[15]=e.createElementVNode("div",{class:"vpg-formula-hint"}," Use field names with math operators: + - * / ( ) ",-1)),b.value?(e.openBlock(),e.createElementBlock("div",Sl,e.toDisplayString(b.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Bl,[w[16]||(w[16]=e.createElementVNode("label",{class:"vpg-label-small"},"Operators",-1)),e.createElementVNode("div",xl,[e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[3]||(w[3]=z=>S("+"))}," + "),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[4]||(w[4]=z=>S("-"))}," − "),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[5]||(w[5]=z=>S("*"))}," × "),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[6]||(w[6]=z=>S("/"))}," ÷ "),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[7]||(w[7]=z=>S("("))}," ( "),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[8]||(w[8]=z=>S(")"))}," ) ")])]),e.createElementVNode("div",Ml,[w[17]||(w[17]=e.createElementVNode("label",{class:"vpg-label-small"},"Insert Field",-1)),t.availableFields.length>0?(e.openBlock(),e.createElementBlock("div",$l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.availableFields,z=>(e.openBlock(),e.createElementBlock("button",{key:z,class:"vpg-insert-btn vpg-field-btn",onClick:W=>E(z)},e.toDisplayString(z),9,Dl))),128))])):(e.openBlock(),e.createElementBlock("div",Rl," No numeric fields available "))]),e.createElementVNode("div",Tl,[e.createElementVNode("div",Ll,[w[19]||(w[19]=e.createElementVNode("label",{class:"vpg-label"},"Format As",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":w[9]||(w[9]=z=>p.value=z),class:"vpg-select"},[...w[18]||(w[18]=[e.createElementVNode("option",{value:"number"}," Number ",-1),e.createElementVNode("option",{value:"percent"}," Percentage ",-1),e.createElementVNode("option",{value:"currency"}," Currency ($) ",-1)])],512),[[e.vModelSelect,p.value]])]),e.createElementVNode("div",zl,[w[20]||(w[20]=e.createElementVNode("label",{class:"vpg-label"},"Decimals",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[10]||(w[10]=z=>f.value=z),type:"number",class:"vpg-input",min:"0",max:"6"},null,512),[[e.vModelText,f.value,void 0,{number:!0}]])])]),k.value?(e.openBlock(),e.createElementBlock("div",Al,e.toDisplayString(k.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Pl,[e.createElementVNode("button",{class:"vpg-btn vpg-btn-secondary",onClick:w[11]||(w[11]=z=>a("close"))}," Cancel "),e.createElementVNode("button",{class:"vpg-btn vpg-btn-primary",onClick:F},e.toDisplayString(t.existingField?"Update":"Add")+" Field ",1)])])])):e.createCommentVNode("",!0)]))}}),xe=(t,r)=>{const l=t.__vccOpts||t;for(const[a,o]of r)l[a]=o;return l},jl=xe(Ul,[["__scopeId","data-v-a29541ff"]]),Hl={class:"vpg-range-filter"},Kl={class:"vpg-range-info"},Ol={class:"vpg-range-bounds"},Wl={class:"vpg-slider-container"},ql={class:"vpg-slider-track"},Gl=["min","max","step","value"],_l=["min","max","step","value"],Yl={class:"vpg-range-inputs"},Il={class:"vpg-input-group"},Xl=["placeholder","value","step"],Zl={class:"vpg-input-group"},Ql=["placeholder","value","step"],Jl={class:"vpg-range-actions"},en=["disabled"],tn={key:0,class:"vpg-filter-summary"},ln=xe(e.defineComponent({__name:"NumericRangeFilter",props:{dataMin:{},dataMax:{},currentRange:{}},emits:["change"],setup(t,{emit:r}){var P,M;const l=t,a=r,o=e.ref(((P=l.currentRange)==null?void 0:P.min)??null),s=e.ref(((M=l.currentRange)==null?void 0:M.max)??null),p=e.computed(()=>{const x=l.dataMax-l.dataMin;return x===0?1:x<=1?.01:x<=10?.1:x<=100?1:x<=1e3?10:10**(Math.floor(Math.log10(x))-2)});function f(x){return x===null?"":Number.isInteger(x)?x.toLocaleString():x.toLocaleString(void 0,{maximumFractionDigits:2})}const k=e.computed(()=>o.value!==null||s.value!==null),b=e.computed(()=>o.value===null||l.dataMax===l.dataMin?0:(o.value-l.dataMin)/(l.dataMax-l.dataMin)*100),E=e.computed(()=>s.value===null||l.dataMax===l.dataMin?100:(s.value-l.dataMin)/(l.dataMax-l.dataMin)*100);function S(x){const T=x.target,U=Number.parseFloat(T.value);s.value!==null&&U>s.value?o.value=s.value:o.value=U}function F(x){const T=x.target,U=Number.parseFloat(T.value);o.value!==null&&U<o.value?s.value=o.value:s.value=U}function N(x){const T=x.target,U=T.value===""?null:Number.parseFloat(T.value);U!==null&&!Number.isNaN(U)?o.value=Math.max(l.dataMin,Math.min(U,s.value??l.dataMax)):U===null&&(o.value=null)}function w(x){const T=x.target,U=T.value===""?null:Number.parseFloat(T.value);U!==null&&!Number.isNaN(U)?s.value=Math.min(l.dataMax,Math.max(U,o.value??l.dataMin)):U===null&&(s.value=null)}function z(){o.value=null,s.value=null,H()}function W(){o.value=l.dataMin,s.value=l.dataMax,H()}function H(){o.value===null&&s.value===null?a("change",null):a("change",{min:o.value,max:s.value})}return e.watch(()=>l.currentRange,x=>{o.value=(x==null?void 0:x.min)??null,s.value=(x==null?void 0:x.max)??null},{immediate:!0}),(x,T)=>(e.openBlock(),e.createElementBlock("div",Hl,[e.createElementVNode("div",Kl,[T[0]||(T[0]=e.createElementVNode("span",{class:"vpg-range-label"},"Data range:",-1)),e.createElementVNode("span",Ol,e.toDisplayString(f(t.dataMin))+" – "+e.toDisplayString(f(t.dataMax)),1)]),e.createElementVNode("div",Wl,[e.createElementVNode("div",ql,[e.createElementVNode("div",{class:"vpg-slider-fill",style:e.normalizeStyle({left:`${b.value}%`,right:`${100-E.value}%`})},null,4)]),e.createElementVNode("input",{type:"range",class:"vpg-slider vpg-slider-min",min:t.dataMin,max:t.dataMax,step:p.value,value:o.value??t.dataMin,onInput:S,onChange:H},null,40,Gl),e.createElementVNode("input",{type:"range",class:"vpg-slider vpg-slider-max",min:t.dataMin,max:t.dataMax,step:p.value,value:s.value??t.dataMax,onInput:F,onChange:H},null,40,_l)]),e.createElementVNode("div",Yl,[e.createElementVNode("div",Il,[T[1]||(T[1]=e.createElementVNode("label",{class:"vpg-input-label"},"Min",-1)),e.createElementVNode("input",{type:"number",class:"vpg-range-input",placeholder:f(t.dataMin),value:o.value??"",step:p.value,onInput:N,onChange:H},null,40,Xl)]),T[3]||(T[3]=e.createElementVNode("span",{class:"vpg-input-separator"},"to",-1)),e.createElementVNode("div",Zl,[T[2]||(T[2]=e.createElementVNode("label",{class:"vpg-input-label"},"Max",-1)),e.createElementVNode("input",{type:"number",class:"vpg-range-input",placeholder:f(t.dataMax),value:s.value??"",step:p.value,onInput:w,onChange:H},null,40,Ql)])]),e.createElementVNode("div",Jl,[e.createElementVNode("button",{class:"vpg-range-btn",disabled:!k.value,onClick:z},[...T[4]||(T[4]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),e.createTextVNode(" Clear ",-1)])],8,en),e.createElementVNode("button",{class:"vpg-range-btn",onClick:W},[...T[5]||(T[5]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"})],-1),e.createTextVNode(" Full Range ",-1)])])]),k.value?(e.openBlock(),e.createElementBlock("div",tn,[T[7]||(T[7]=e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})],-1)),e.createElementVNode("span",null,[T[6]||(T[6]=e.createTextVNode(" Showing values ",-1)),e.createElementVNode("strong",null,e.toDisplayString(o.value!==null?`≥ ${f(o.value)}`:""),1),e.createTextVNode(" "+e.toDisplayString(o.value!==null&&s.value!==null?" and ":"")+" ",1),e.createElementVNode("strong",null,e.toDisplayString(s.value!==null?`≤ ${f(s.value)}`:""),1)])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-8d673357"]]),nn={class:"vpg-filter-header"},on={class:"vpg-filter-title"},an={class:"vpg-filter-count"},rn={class:"vpg-sort-controls"},sn=["title"],cn=["title"],dn={key:0,class:"vpg-filter-tabs"},un={class:"vpg-search-container"},mn={class:"vpg-values-list"},gn=["checked","onChange"],pn={key:0,class:"vpg-no-results"},Vt=xe(e.defineComponent({__name:"ColumnFilter",props:{columnId:{},columnName:{},stats:{},selectedValues:{},sortDirection:{},numericRange:{}},emits:["filter","sort","close","rangeFilter"],setup(t,{emit:r}){const l=t,a=r,o=e.ref(""),s=e.ref(),p=e.ref(),f=e.computed(()=>l.stats.type==="number"&&l.stats.numericMin!==void 0&&l.stats.numericMax!==void 0),k=e.ref(l.numericRange?"range":"values"),b=e.ref(l.numericRange??null);e.computed(()=>{const d=[...l.stats.uniqueValues];return l.stats.nullCount>0&&d.unshift("(blank)"),d});const E=e.ref(new Set(l.selectedValues)),S=e.computed(()=>l.stats.nullCount>0),F=e.computed(()=>{const d=l.stats.uniqueValues;if(!o.value)return d;const c=o.value.toLowerCase();return d.filter(u=>u.toLowerCase().includes(c))}),N=e.computed(()=>{const d=[...F.value];return S.value&&(!o.value||"(blank)".includes(o.value.toLowerCase()))&&d.unshift("(blank)"),d});e.computed(()=>N.value.every(d=>E.value.has(d))),e.computed(()=>E.value.size===0);function w(d){E.value.has(d)?E.value.delete(d):E.value.add(d),E.value=new Set(E.value)}function z(){for(const d of N.value)E.value.add(d);E.value=new Set(E.value)}function W(){E.value.clear(),E.value=new Set(E.value)}function H(){E.value.size===0?a("filter",[]):a("filter",Array.from(E.value)),a("close")}function P(){a("sort",l.sortDirection==="asc"?null:"asc")}function M(){a("sort",l.sortDirection==="desc"?null:"desc")}function x(){E.value.clear(),E.value=new Set(E.value),a("filter",[]),a("close")}function T(d){b.value=d}function U(){a("rangeFilter",b.value),a("close")}function _(){b.value=null,a("rangeFilter",null),a("close")}function R(d){k.value=d}function C(d){s.value&&!s.value.contains(d.target)&&a("close")}function g(d){d.key==="Escape"?a("close"):d.key==="Enter"&&d.ctrlKey&&H()}return e.onMounted(()=>{e.nextTick(()=>{var d;(d=p.value)==null||d.focus()}),document.addEventListener("mousedown",C),document.addEventListener("keydown",g)}),e.onUnmounted(()=>{document.removeEventListener("mousedown",C),document.removeEventListener("keydown",g)}),e.watch(()=>l.selectedValues,d=>{E.value=new Set(d)},{immediate:!0}),e.watch(()=>l.numericRange,d=>{b.value=d??null,d&&(k.value="range")},{immediate:!0}),(d,c)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:s,class:"vpg-filter-dropdown"},[e.createElementVNode("div",nn,[e.createElementVNode("span",on,e.toDisplayString(t.columnName),1),e.createElementVNode("span",an,e.toDisplayString(t.stats.uniqueValues.length.toLocaleString())+" unique ",1)]),e.createElementVNode("div",rn,[e.createElementVNode("button",{class:e.normalizeClass(["vpg-sort-btn",{active:t.sortDirection==="asc"}]),title:f.value?"Sort Low to High":"Sort A to Z",onClick:P},[c[4]||(c[4]=e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})],-1)),e.createElementVNode("span",null,e.toDisplayString(f.value?"1→9":"A→Z"),1)],10,sn),e.createElementVNode("button",{class:e.normalizeClass(["vpg-sort-btn",{active:t.sortDirection==="desc"}]),title:f.value?"Sort High to Low":"Sort Z to A",onClick:M},[c[5]||(c[5]=e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"})],-1)),e.createElementVNode("span",null,e.toDisplayString(f.value?"9→1":"Z→A"),1)],10,cn)]),c[11]||(c[11]=e.createElementVNode("div",{class:"vpg-divider"},null,-1)),f.value?(e.openBlock(),e.createElementBlock("div",dn,[e.createElementVNode("button",{class:e.normalizeClass(["vpg-tab-btn",{active:k.value==="values"}]),onClick:c[0]||(c[0]=u=>R("values"))},[...c[6]||(c[6]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"})],-1),e.createTextVNode(" Values ",-1)])],2),e.createElementVNode("button",{class:e.normalizeClass(["vpg-tab-btn",{active:k.value==="range"}]),onClick:c[1]||(c[1]=u=>R("range"))},[...c[7]||(c[7]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"})],-1),e.createTextVNode(" Range ",-1)])],2)])):e.createCommentVNode("",!0),!f.value||k.value==="values"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",un,[c[8]||(c[8]=e.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)),e.withDirectives(e.createElementVNode("input",{ref_key:"searchInputRef",ref:p,"onUpdate:modelValue":c[2]||(c[2]=u=>o.value=u),type:"text",placeholder:"Search values...",class:"vpg-search-input"},null,512),[[e.vModelText,o.value]]),o.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-clear-search",onClick:c[3]||(c[3]=u=>o.value="")}," × ")):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vpg-bulk-actions"},[e.createElementVNode("button",{class:"vpg-bulk-btn",onClick:z},[...c[9]||(c[9]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})],-1),e.createTextVNode(" Select All ",-1)])]),e.createElementVNode("button",{class:"vpg-bulk-btn",onClick:W},[...c[10]||(c[10]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),e.createTextVNode(" Clear All ",-1)])])]),e.createElementVNode("div",mn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,u=>(e.openBlock(),e.createElementBlock("label",{key:u,class:e.normalizeClass(["vpg-value-item",{selected:E.value.has(u)}])},[e.createElementVNode("input",{type:"checkbox",checked:E.value.has(u),class:"vpg-value-checkbox",onChange:V=>w(u)},null,40,gn),e.createElementVNode("span",{class:e.normalizeClass(["vpg-value-text",{"vpg-blank":u==="(blank)"}])},e.toDisplayString(u),3)],2))),128)),N.value.length===0?(e.openBlock(),e.createElementBlock("div",pn," No matching values ")):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vpg-filter-footer"},[e.createElementVNode("button",{class:"vpg-btn-clear",onClick:x}," Clear Filter "),e.createElementVNode("button",{class:"vpg-btn-apply",onClick:H}," Apply ")])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createVNode(ln,{"data-min":t.stats.numericMin,"data-max":t.stats.numericMax,"current-range":b.value,onChange:T},null,8,["data-min","data-max","current-range"]),e.createElementVNode("div",{class:"vpg-filter-footer"},[e.createElementVNode("button",{class:"vpg-btn-clear",onClick:_}," Clear Filter "),e.createElementVNode("button",{class:"vpg-btn-apply",onClick:U}," Apply ")])],64))],512))}}),[["__scopeId","data-v-6c8a1b76"]]),Et=(t,r,l)=>{if(!l)return!0;if(Xe(l)){const a=t.getValue(r);if(a==null||a==="")return!1;const o=typeof a=="number"?a:Number.parseFloat(String(a));if(Number.isNaN(o))return!1;const{min:s,max:p}=l;return!(s!==null&&o<s||p!==null&&o>p)}if(Array.isArray(l)&&l.length>0){const a=t.getValue(r),o=a==null||a===""?"(blank)":String(a);return l.includes(o)}return!0};function Ct(t){const{data:r,enableSorting:l=!0,enableFiltering:a=!0}=t,o=e.ref([]),s=e.ref([]),p=e.ref({}),f=e.ref(""),k=e.ref({}),b=e.computed(()=>r.value.length===0?[]:Object.keys(r.value[0]));function E(C){const g=`${C}-${r.value.length}`;return k.value[g]||(k.value[g]=ct(r.value,C)),k.value[g]}function S(){k.value={}}const F=e.computed(()=>b.value.map(C=>{const g=E(C);return{id:C,accessorKey:C,header:C,cell:d=>dt(d.getValue(),g.type),filterFn:Et,meta:{type:g.type,uniqueCount:g.uniqueValues.length}}})),N=Ge.useVueTable({get data(){return r.value},get columns(){return F.value},state:{get sorting(){return o.value},get columnFilters(){return s.value},get columnVisibility(){return p.value},get globalFilter(){return f.value}},onSortingChange:C=>{o.value=typeof C=="function"?C(o.value):C},onColumnFiltersChange:C=>{s.value=typeof C=="function"?C(s.value):C},getCoreRowModel:Ge.getCoreRowModel(),getSortedRowModel:l?Ge.getSortedRowModel():void 0,getFilteredRowModel:a?Ge.getFilteredRowModel():void 0,filterFns:{multiSelect:Et},enableSorting:l,enableFilters:a}),w=e.computed(()=>N.getFilteredRowModel().rows.length),z=e.computed(()=>r.value.length),W=e.computed(()=>s.value.map(C=>{const g=C.value;return g&&Xe(g)?{column:C.id,type:"range",range:g,values:[]}:{column:C.id,type:"values",values:Array.isArray(g)?g:[],range:null}}));function H(C){const g=N.getColumn(C);if(!g)return!1;const d=g.getFilterValue();return d?Xe(d)?d.min!==null||d.max!==null:Array.isArray(d)&&d.length>0:!1}function P(C,g){const d=N.getColumn(C);d&&(d.setFilterValue(g.length===0?void 0:g),s.value=N.getState().columnFilters)}function M(C,g){const d=N.getColumn(C);d&&(!g||g.min===null&&g.max===null?d.setFilterValue(void 0):d.setFilterValue(g),s.value=N.getState().columnFilters)}function x(C){const g=N.getColumn(C);if(!g)return null;const d=g.getFilterValue();return d&&Xe(d)?d:null}function T(){N.resetColumnFilters(),f.value="",s.value=[]}function U(C){const g=N.getColumn(C);if(!g)return[];const d=g.getFilterValue();return Array.isArray(d)?d:[]}function _(C){const g=o.value.find(d=>d.id===C);g?g.desc?o.value=[]:o.value=[{id:C,desc:!0}]:o.value=[{id:C,desc:!1}]}function R(C){const g=o.value.find(d=>d.id===C);return g?g.desc?"desc":"asc":null}return e.watch(r,()=>{S()}),{table:N,sorting:o,columnFilters:s,columnVisibility:p,globalFilter:f,columnKeys:b,filteredRowCount:w,totalRowCount:z,activeFilters:W,getColumnStats:E,clearStatsCache:S,hasActiveFilter:H,setColumnFilter:P,getColumnFilterValues:U,clearAllFilters:T,toggleSort:_,getSortDirection:R,setNumericRangeFilter:M,getNumericRangeFilter:x}}function Nt(t,r,l){Wt(t,r,l)}function yt(t,r,l,a,o){qt(t,r,l,a,o)}function bt(t,r,l){Gt(t,r,l)}function Ft(t,r,l){return _t(t,r,l)}function fn(t,r={}){const l=e.ref(r.pageSize??50),a=e.ref(r.currentPage??1),o=e.computed(()=>Math.max(1,Math.ceil(t.value.length/l.value))),s=e.computed(()=>{const w=(a.value-1)*l.value,z=w+l.value;return t.value.slice(w,z)}),p=e.computed(()=>(a.value-1)*l.value+1),f=e.computed(()=>Math.min(a.value*l.value,t.value.length));function k(w){a.value=Math.max(1,Math.min(w,o.value))}function b(){a.value<o.value&&a.value++}function E(){a.value>1&&a.value--}function S(){a.value=1}function F(){a.value=o.value}function N(w){l.value=w,a.value=1}return{pageSize:l,currentPage:a,totalPages:o,paginatedData:s,startIndex:p,endIndex:f,goToPage:k,nextPage:b,prevPage:E,firstPage:S,lastPage:F,setPageSize:N}}function vn(t,r){const l=e.ref(""),a=e.ref(!1),o=e.computed(()=>{if(!l.value.trim())return t.value;const p=a.value?l.value.trim():l.value.trim().toLowerCase();return t.value.filter(f=>{for(const k of r.value){const b=f[k];if(b==null)continue;if((a.value?String(b):String(b).toLowerCase()).includes(p))return!0}return!1})});function s(){l.value=""}return{searchTerm:l,caseSensitive:a,filteredData:o,clearSearch:s}}function hn(t){const r=e.ref(new Set),l=e.computed(()=>Array.from(r.value).sort((N,w)=>N-w).map(N=>t.value[N]).filter(Boolean)),a=e.computed(()=>t.value.length>0&&r.value.size===t.value.length),o=e.computed(()=>r.value.size>0&&r.value.size<t.value.length);function s(N){r.value.has(N)?r.value.delete(N):r.value.add(N),r.value=new Set(r.value)}function p(N){r.value.add(N),r.value=new Set(r.value)}function f(N){r.value.delete(N),r.value=new Set(r.value)}function k(){r.value=new Set(t.value.map((N,w)=>w))}function b(){r.value=new Set}function E(){a.value?b():k()}function S(N){return r.value.has(N)}function F(N,w){const z=Math.min(N,w),W=Math.max(N,w);for(let H=z;H<=W;H++)r.value.add(H);r.value=new Set(r.value)}return{selectedRowIndices:r,selectedRows:l,allSelected:a,someSelected:o,toggleRow:s,selectRow:p,deselectRow:f,selectAll:k,deselectAll:b,toggleAll:E,isSelected:S,selectRange:F}}function kn(t,r=60,l=600){const a=e.ref({...t.value}),o=e.ref(!1),s=e.ref(null);function p(b,E){o.value=!0,s.value=b;const S=E.clientX,F=a.value[b]||150,N=z=>{const W=z.clientX-S,H=Math.max(r,Math.min(l,F+W));a.value={...a.value,[b]:H}},w=()=>{o.value=!1,s.value=null,document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",w)};document.addEventListener("mousemove",N),document.addEventListener("mouseup",w)}function f(b){t.value[b]&&(a.value={...a.value,[b]:t.value[b]})}function k(){a.value={...t.value}}return{columnWidths:a,isResizing:o,resizingColumn:s,startResize:p,resetColumnWidth:f,resetAllWidths:k}}const wn=e.ref(null),Ee=e.ref(!1),ge=e.ref(ol());let lt=null;async function Vn(t){wn.value=t,lt=Jt(t),ge.value=await lt,lt=null,ge.value.isValid?ge.value.type!=="free"&&console.info(`[TinyPivot] Pro license activated (${ge.value.type})`):console.warn("[TinyPivot] Invalid or expired license key. Running in free mode.")}async function En(t){const r=await nl(t);return r?(Ee.value=!0,ge.value=r,console.info("[TinyPivot] Demo mode enabled - all Pro features unlocked for evaluation"),!0):(console.warn("[TinyPivot] Demo mode activation failed - invalid secret"),!1)}function Cn(t){el()}function Ke(){const t=e.computed(()=>Ee.value),r=e.computed(()=>Ee.value||rl(ge.value)),l=e.computed(()=>Ee.value||al(ge.value)),a=e.computed(()=>Ee.value||ge.value.features.advancedAggregations),o=e.computed(()=>Ee.value||ge.value.features.percentageMode),s=e.computed(()=>sl(ge.value,Ee.value));function p(f){return r.value?!0:(il(f),!1)}return{licenseInfo:e.computed(()=>ge.value),isDemo:t,isPro:r,canUsePivot:l,canUseAdvancedAggregations:a,canUsePercentageMode:o,showWatermark:s,requirePro:p}}function St(t){const{canUsePivot:r,requirePro:l}=Ke(),a=e.ref([]),o=e.ref([]),s=e.ref([]),p=e.ref(!0),f=e.ref(!0),k=e.ref(wt()),b=e.ref(null),E=e.computed(()=>fl(t.value)),S=e.computed(()=>vl(E.value,a.value,o.value,s.value)),F=e.computed(()=>ht({rowFields:a.value,columnFields:o.value,valueFields:s.value,showRowTotals:p.value,showColumnTotals:f.value})),N=e.computed(()=>!F.value||!r.value?null:hl(t.value,{rowFields:a.value,columnFields:o.value,valueFields:s.value,showRowTotals:p.value,showColumnTotals:f.value,calculatedFields:k.value}));function w(g){a.value.includes(g)||(a.value=[...a.value,g])}function z(g){a.value=a.value.filter(d=>d!==g)}function W(g){o.value.includes(g)||(o.value=[...o.value,g])}function H(g){o.value=o.value.filter(d=>d!==g)}function P(g,d="sum"){d!=="sum"&&!l(`${d} aggregation`)||s.value.some(c=>c.field===g&&c.aggregation===d)||(s.value=[...s.value,{field:g,aggregation:d}])}function M(g,d){d?s.value=s.value.filter(c=>!(c.field===g&&c.aggregation===d)):s.value=s.value.filter(c=>c.field!==g)}function x(g,d,c){s.value=s.value.map(u=>u.field===g&&u.aggregation===d?{...u,aggregation:c}:u)}function T(){a.value=[],o.value=[],s.value=[]}function U(g,d){if(g.area===d.area){if(g.area==="row"){const c=[...a.value],[u]=c.splice(g.index,1);c.splice(d.index,0,u),a.value=c}else if(g.area==="column"){const c=[...o.value],[u]=c.splice(g.index,1);c.splice(d.index,0,u),o.value=c}}}function _(){if(!l("Pivot Table - Auto Suggest")||E.value.length===0)return;const g=E.value.filter(c=>!c.isNumeric&&c.uniqueCount<50),d=E.value.filter(c=>c.isNumeric);g.length>0&&d.length>0&&(a.value=[g[0].field],s.value=[{field:d[0].field,aggregation:"sum"}])}function R(g){const d=k.value.findIndex(c=>c.id===g.id);d>=0?k.value=[...k.value.slice(0,d),g,...k.value.slice(d+1)]:k.value=[...k.value,g],He(k.value)}function C(g){k.value=k.value.filter(d=>d.id!==g),s.value=s.value.filter(d=>d.field!==`calc:${g}`),He(k.value)}return e.watch(t,g=>{if(g.length===0)return;const d=Object.keys(g[0]),c=wl(d);if(c!==b.value){b.value=c;const u=El(c);if(u&&tt(u,d))a.value=u.rowFields,o.value=u.columnFields,s.value=u.valueFields,p.value=u.showRowTotals,f.value=u.showColumnTotals,u.calculatedFields&&(k.value=u.calculatedFields);else{const V={rowFields:a.value,columnFields:o.value,valueFields:s.value,showRowTotals:p.value,showColumnTotals:f.value};tt(V,d)||T()}}else{const u={rowFields:a.value,columnFields:o.value,valueFields:s.value,showRowTotals:p.value,showColumnTotals:f.value};tt(u,d)||T()}},{immediate:!0}),e.watch([a,o,s,p,f,k],()=>{if(!b.value)return;const g={rowFields:a.value,columnFields:o.value,valueFields:s.value,showRowTotals:p.value,showColumnTotals:f.value,calculatedFields:k.value};Vl(b.value,g)},{deep:!0}),{rowFields:a,columnFields:o,valueFields:s,showRowTotals:p,showColumnTotals:f,calculatedFields:k,availableFields:E,unassignedFields:S,isConfigured:F,pivotResult:N,addRowField:w,removeRowField:z,addColumnField:W,removeColumnField:H,addValueField:P,removeValueField:M,updateValueFieldAggregation:x,clearConfig:T,moveField:U,autoSuggestConfig:_,addCalculatedField:R,removeCalculatedField:C}}const Nn={class:"vpg-pivot-config"},yn={class:"vpg-config-header"},bn={class:"vpg-header-actions"},Fn={key:0,class:"vpg-assigned-section"},Sn={class:"vpg-assigned-list"},Bn=["title","onDragstart"],xn={class:"vpg-item-main"},Mn={class:"vpg-item-name"},$n={class:"vpg-item-actions"},Dn=["title","onClick"],Rn=["value","onChange"],Tn=["value","disabled"],Ln=["onClick"],zn={class:"vpg-unassigned-section"},An={class:"vpg-section-header"},Pn={class:"vpg-section-label"},Un={class:"vpg-count"},jn={class:"vpg-field-search"},Hn={class:"vpg-field-list"},Kn=["title","onDragstart"],On={class:"vpg-field-name"},Wn=["onClick"],qn=["onClick"],Gn={key:1,class:"vpg-unique-count"},_n={key:0,class:"vpg-empty-hint"},Yn={key:1,class:"vpg-empty-hint"},In={class:"vpg-options-section"},Xn={class:"vpg-option-toggle"},Zn=["checked"],Bt=xe(e.defineComponent({__name:"PivotConfig",props:{availableFields:{},rowFields:{},columnFields:{},valueFields:{},showRowTotals:{type:Boolean},showColumnTotals:{type:Boolean},calculatedFields:{}},emits:["update:showRowTotals","update:showColumnTotals","clearConfig","dragStart","dragEnd","updateAggregation","addRowField","removeRowField","addColumnField","removeColumnField","addValueField","removeValueField","addCalculatedField","removeCalculatedField","updateCalculatedField"],setup(t,{emit:r}){const l=t,a=r,{canUseAdvancedAggregations:o}=Ke(),s=gl;function p(c){return c!=="sum"}function f(c){return!p(c)||o.value}const k=e.ref(!1),b=e.ref(null),E=e.computed(()=>l.availableFields.filter(c=>c.isNumeric).map(c=>c.field));function S(c){b.value=c||null,k.value=!0}function F(c){b.value?a("updateCalculatedField",c):a("addCalculatedField",c),k.value=!1,b.value=null}function N(c){a("update:showRowTotals",c),a("update:showColumnTotals",c)}const w=e.computed(()=>l.calculatedFields?l.calculatedFields.map(c=>({field:`calc:${c.id}`,type:"number",uniqueCount:0,isNumeric:!0,isCalculated:!0,calcId:c.id,calcName:c.name,calcFormula:c.formula})):[]),z=e.computed(()=>[...l.availableFields.map(c=>({...c,isCalculated:!1})),...w.value]),W=e.computed(()=>{const c=new Set(l.rowFields),u=new Set(l.columnFields),V=new Map(l.valueFields.map($=>[$.field,$]));return z.value.filter($=>c.has($.field)||u.has($.field)||V.has($.field)).map($=>({...$,assignedTo:c.has($.field)?"row":u.has($.field)?"column":"value",valueConfig:V.get($.field)}))}),H=e.computed(()=>{const c=new Set(l.rowFields),u=new Set(l.columnFields),V=new Set(l.valueFields.map($=>$.field));return z.value.filter($=>!c.has($.field)&&!u.has($.field)&&!V.has($.field))}),P=e.computed(()=>W.value.length),M=e.ref(""),x=e.computed(()=>{if(!M.value.trim())return H.value;const c=M.value.toLowerCase().trim();return H.value.filter(u=>{const V=u.field.toLowerCase(),$=u.isCalculated&&u.calcName?u.calcName.toLowerCase():"";return V.includes(c)||$.includes(c)})});function T(c,u){if(u)return"ƒ";switch(c){case"number":return"#";case"date":return"📅";case"boolean":return"✓";default:return"Aa"}}function U(c){return c.isCalculated&&c.calcName?c.calcName:c.field}function _(c,u){var V;(V=u.dataTransfer)==null||V.setData("text/plain",c),u.dataTransfer.effectAllowed="move",a("dragStart",c,u)}function R(){a("dragEnd")}function C(c,u,V){if(!f(V)){console.warn(`[TinyPivot] "${V}" aggregation requires a Pro license. Visit https://tiny-pivot.com/#pricing to upgrade.`);return}a("updateAggregation",c,u,V)}function g(c,u){u==="row"?(a("removeRowField",c),a("addColumnField",c)):(a("removeColumnField",c),a("addRowField",c))}function d(c,u,V){u==="row"?a("removeRowField",c):u==="column"?a("removeColumnField",c):V&&a("removeValueField",c,V.aggregation)}return(c,u)=>(e.openBlock(),e.createElementBlock("div",Nn,[e.createElementVNode("div",yn,[u[8]||(u[8]=e.createElementVNode("h3",{class:"vpg-config-title"},[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 10h16M4 14h16M4 18h16"})]),e.createTextVNode(" Fields ")],-1)),e.createElementVNode("div",bn,[P.value>0?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-action-btn vpg-clear-btn",title:"Clear all",onClick:u[0]||(u[0]=V=>a("clearConfig"))},[...u[7]||(u[7]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):e.createCommentVNode("",!0)])]),P.value>0?(e.openBlock(),e.createElementBlock("div",Fn,[u[10]||(u[10]=e.createElementVNode("div",{class:"vpg-section-label"}," Active ",-1)),e.createElementVNode("div",Sn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(W.value,V=>{var $;return e.openBlock(),e.createElementBlock("div",{key:V.field,class:e.normalizeClass(["vpg-assigned-item",[`vpg-type-${V.assignedTo}`,{"vpg-type-calc":V.isCalculated}]]),title:V.isCalculated?V.calcFormula:V.field,draggable:"true",onDragstart:j=>_(V.field,j),onDragend:R},[e.createElementVNode("div",xn,[e.createElementVNode("span",{class:e.normalizeClass(["vpg-item-badge",[V.assignedTo,{calc:V.isCalculated}]])},e.toDisplayString(V.isCalculated?"ƒ":V.assignedTo==="row"?"R":V.assignedTo==="column"?"C":e.unref(gt)((($=V.valueConfig)==null?void 0:$.aggregation)||"sum")),3),e.createElementVNode("span",Mn,e.toDisplayString(U(V)),1)]),e.createElementVNode("div",$n,[V.assignedTo==="row"||V.assignedTo==="column"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-toggle-btn",title:V.assignedTo==="row"?"Move to Columns":"Move to Rows",onClick:e.withModifiers(j=>g(V.field,V.assignedTo),["stop"])},[...u[9]||(u[9]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4"})],-1)])],8,Dn)):e.createCommentVNode("",!0),V.assignedTo==="value"&&V.valueConfig?(e.openBlock(),e.createElementBlock("select",{key:1,class:"vpg-agg-select",value:V.valueConfig.aggregation,onChange:j=>C(V.field,V.valueConfig.aggregation,j.target.value),onClick:u[1]||(u[1]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),j=>(e.openBlock(),e.createElementBlock("option",{key:j.value,value:j.value,disabled:p(j.value)&&!e.unref(o)},e.toDisplayString(j.symbol)+" "+e.toDisplayString(j.label)+e.toDisplayString(p(j.value)&&!e.unref(o)?" (Pro)":""),9,Tn))),128))],40,Rn)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vpg-remove-btn",title:"Remove",onClick:e.withModifiers(j=>d(V.field,V.assignedTo,V.valueConfig),["stop"])}," × ",8,Ln)])],42,Bn)}),128))])])):e.createCommentVNode("",!0),e.createElementVNode("div",zn,[e.createElementVNode("div",An,[e.createElementVNode("div",Pn,[u[11]||(u[11]=e.createTextVNode(" Available ",-1)),e.createElementVNode("span",Un,e.toDisplayString(H.value.length),1)])]),e.createElementVNode("div",jn,[u[13]||(u[13]=e.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[2]||(u[2]=V=>M.value=V),type:"text",placeholder:"Search fields...",class:"vpg-search-input"},null,512),[[e.vModelText,M.value]]),M.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-clear-search",onClick:u[3]||(u[3]=V=>M.value="")},[...u[12]||(u[12]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Hn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,V=>(e.openBlock(),e.createElementBlock("div",{key:V.field,class:e.normalizeClass(["vpg-field-item",{"vpg-is-numeric":V.isNumeric&&!V.isCalculated,"vpg-is-calculated":V.isCalculated}]),title:V.isCalculated?V.calcFormula:V.field,draggable:"true",onDragstart:$=>_(V.field,$),onDragend:R},[e.createElementVNode("span",{class:e.normalizeClass(["vpg-field-type-icon",{"vpg-calc-type":V.isCalculated}])},e.toDisplayString(T(V.type,V.isCalculated)),3),e.createElementVNode("span",On,e.toDisplayString(U(V)),1),V.isCalculated?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{class:"vpg-field-edit",title:"Edit calculated field",onClick:e.withModifiers($=>{var j;return S((j=t.calculatedFields)==null?void 0:j.find(J=>J.id===V.calcId))},["stop"])}," ✎ ",8,Wn),e.createElementVNode("button",{class:"vpg-field-delete",title:"Delete calculated field",onClick:e.withModifiers($=>a("removeCalculatedField",V.calcId),["stop"])}," × ",8,qn)],64)):(e.openBlock(),e.createElementBlock("span",Gn,e.toDisplayString(V.uniqueCount),1))],42,Kn))),128)),x.value.length===0&&M.value?(e.openBlock(),e.createElementBlock("div",_n,' No fields match "'+e.toDisplayString(M.value)+'" ',1)):H.value.length===0?(e.openBlock(),e.createElementBlock("div",Yn," All fields assigned ")):e.createCommentVNode("",!0)])]),e.createElementVNode("div",In,[e.createElementVNode("label",Xn,[e.createElementVNode("input",{type:"checkbox",checked:t.showRowTotals,onChange:u[4]||(u[4]=V=>N(V.target.checked))},null,40,Zn),u[14]||(u[14]=e.createElementVNode("span",null,"Totals",-1))]),e.createElementVNode("button",{class:"vpg-calc-btn",title:"Add calculated field (e.g. Profit Margin %)",onClick:u[5]||(u[5]=V=>S())},[...u[15]||(u[15]=[e.createElementVNode("span",{class:"vpg-calc-icon"},"ƒ",-1),e.createElementVNode("span",null,"+ Calc",-1)])])]),e.createVNode(jl,{show:k.value,"available-fields":E.value,"existing-field":b.value,onClose:u[6]||(u[6]=V=>{k.value=!1,b.value=null}),onSave:F},null,8,["show","available-fields","existing-field"])]))}}),[["__scopeId","data-v-7d06ac9a"]]),Qn={key:0,class:"vpg-toast"},Jn={class:"vpg-skeleton-header"},eo={class:"vpg-header-right"},to={class:"vpg-filter-text"},lo={key:0,class:"vpg-filter-count"},no={key:0,class:"vpg-filter-tooltip"},oo={class:"vpg-tooltip-column"},ao={class:"vpg-tooltip-values"},ro={key:0,class:"vpg-tooltip-value vpg-range-value"},so={key:0,class:"vpg-tooltip-more"},io={key:0,class:"vpg-tooltip-summary"},co={key:1,class:"vpg-config-summary"},uo={class:"vpg-summary-badge vpg-rows"},mo={class:"vpg-summary-badge vpg-cols"},go={class:"vpg-summary-badge vpg-vals"},po={key:2,class:"vpg-font-size-toggle"},fo=["onClick"],vo={key:0,class:"vpg-pro-required"},ho={class:"vpg-config-bar"},ko={class:"vpg-zone-chips"},wo=["onDragstart","onDragover","onDrop"],Vo={class:"vpg-mini-name"},Eo=["onClick"],Co={key:0,class:"vpg-zone-hint"},No={class:"vpg-zone-chips"},yo=["onDragstart","onDragover","onDrop"],bo={class:"vpg-mini-name"},Fo=["onClick"],So={key:0,class:"vpg-zone-hint"},Bo={class:"vpg-zone-chips"},xo={class:"vpg-agg-symbol"},Mo={class:"vpg-mini-name"},$o=["onClick"],Do={key:0,class:"vpg-zone-hint"},Ro={key:0,class:"vpg-placeholder"},To={class:"vpg-placeholder-content"},Lo={class:"vpg-placeholder-text"},zo={key:1,class:"vpg-table-container"},Ao={class:"vpg-pivot-table"},Po=["rowspan"],Uo={class:"vpg-header-content"},jo=["colspan","onClick"],Ho={class:"vpg-header-content"},Ko=["rowspan"],Oo=["onMousedown","onMouseenter"],Wo={key:0,class:"vpg-data-cell vpg-total-cell"},qo={key:0,class:"vpg-totals-row"},Go=["colspan"],_o={key:0,class:"vpg-data-cell vpg-grand-total-cell"},Yo={key:2,class:"vpg-skeleton-footer"},Io={class:"vpg-footer-info"},Xo={key:0,class:"vpg-selection-stats"},Zo={class:"vpg-stat"},Qo={class:"vpg-stat-value"},Jo={class:"vpg-stat"},ea={class:"vpg-stat-value"},ta={class:"vpg-stat"},la={class:"vpg-stat-value"},na={key:1,href:"https://tiny-pivot.com",target:"_blank",rel:"noopener"},xt=xe(e.defineComponent({__name:"PivotSkeleton",props:{rowFields:{},columnFields:{},valueFields:{},calculatedFields:{},isConfigured:{type:Boolean},draggingField:{},pivotResult:{},fontSize:{},activeFilters:{},totalRowCount:{},filteredRowCount:{}},emits:["addRowField","removeRowField","addColumnField","removeColumnField","addValueField","removeValueField","updateAggregation","reorderRowFields","reorderColumnFields"],setup(t,{emit:r}){const l=t,a=r;function o(y){var m;if(y.startsWith("calc:")){const D=y.replace("calc:",""),h=(m=l.calculatedFields)==null?void 0:m.find(B=>B.id===D);return(h==null?void 0:h.name)||y}return y}function s(y){return y.startsWith("calc:")}const{showWatermark:p,canUsePivot:f,isDemo:k}=Ke(),b=e.ref(null),E=e.ref(null),S=e.ref(null),F=e.ref(l.fontSize||"xs"),N=[{value:"xs",label:"S"},{value:"sm",label:"M"},{value:"base",label:"L"}],w=e.computed(()=>l.activeFilters&&l.activeFilters.length>0),z=e.computed(()=>!l.activeFilters||l.activeFilters.length===0?"":l.activeFilters.map(m=>m.column).join(", ")),W=e.computed(()=>!l.activeFilters||l.activeFilters.length===0?[]:l.activeFilters.map(y=>{if(y.isRange&&y.displayText)return{column:y.column,displayText:y.displayText,isRange:!0,values:[],remaining:0};const m=y.values||[],D=5,h=m.slice(0,D),B=m.length-D;return{column:y.column,values:h,remaining:B>0?B:0,isRange:!1}})),H=e.ref(!1),P=e.ref("asc"),M=e.ref("row");function x(y="row"){M.value===y?P.value=P.value==="asc"?"desc":"asc":(M.value=y,P.value="asc")}const T=e.computed(()=>{if(!l.pivotResult)return[];const y=l.pivotResult.rowHeaders.map((h,B)=>B),m=l.pivotResult.rowHeaders,D=l.pivotResult.data;return y.sort((h,B)=>{var K,G,ee,oe,re,de;let L;if(M.value==="row"){const te=((K=m[h])==null?void 0:K.join(" / "))||"",be=((G=m[B])==null?void 0:G.join(" / "))||"";L=te.localeCompare(be,void 0,{numeric:!0,sensitivity:"base"})}else{const te=M.value,be=((oe=(ee=D[h])==null?void 0:ee[te])==null?void 0:oe.value)??null,ze=((de=(re=D[B])==null?void 0:re[te])==null?void 0:de.value)??null;be===null&&ze===null?L=0:be===null?L=1:ze===null?L=-1:L=be-ze}return P.value==="asc"?L:-L}),y}),U=e.computed(()=>{if(!l.pivotResult||l.pivotResult.headers.length===0)return[l.valueFields.map(m=>({label:s(m.field)?`${o(m.field)} (${je(m.aggregation)})`:`${m.field} (${je(m.aggregation)})`,colspan:1}))];const y=[];for(let m=0;m<l.pivotResult.headers.length;m++){const D=l.pivotResult.headers[m],h=[];let B=0;for(;B<D.length;){const L=D[B];let K=1;for(;B+K<D.length&&D[B+K]===L;)K++;h.push({label:L,colspan:K}),B+=K}y.push(h)}return y}),_=e.ref(null),R=e.ref(null),C=e.ref(null),g=e.ref(!1),d=e.ref(!1),c=e.ref(""),u=e.computed(()=>!R.value||!C.value?null:{minRow:Math.min(R.value.row,C.value.row),maxRow:Math.max(R.value.row,C.value.row),minCol:Math.min(R.value.col,C.value.col),maxCol:Math.max(R.value.col,C.value.col)});function V(y,m,D){D.preventDefault(),D.shiftKey&&_.value?C.value={row:y,col:m}:(_.value={row:y,col:m},R.value={row:y,col:m},C.value={row:y,col:m},g.value=!0)}function $(y,m){g.value&&(C.value={row:y,col:m})}function j(){g.value=!1}function J(y,m){var K,G;if(!u.value)return((K=_.value)==null?void 0:K.row)===y&&((G=_.value)==null?void 0:G.col)===m;const{minRow:D,maxRow:h,minCol:B,maxCol:L}=u.value;return y>=D&&y<=h&&m>=B&&m<=L}function se(){var K;if(!u.value||!l.pivotResult)return;const{minRow:y,maxRow:m,minCol:D,maxCol:h}=u.value,B=[];for(let G=y;G<=m;G++){const ee=T.value[G];if(ee===void 0)continue;const oe=[];for(let re=D;re<=h;re++){const de=(K=l.pivotResult.data[ee])==null?void 0:K[re];oe.push((de==null?void 0:de.formattedValue)??"")}B.push(oe.join(" "))}const L=B.join(`
9
+ `);navigator.clipboard.writeText(L).then(()=>{const G=(m-y+1)*(h-D+1);c.value=`Copied ${G} cell${G>1?"s":""}`,d.value=!0,setTimeout(()=>{d.value=!1},2e3)}).catch(G=>{console.error("Copy failed:",G)})}function ve(y){if(u.value){if((y.ctrlKey||y.metaKey)&&y.key==="c"){y.preventDefault(),se();return}y.key==="Escape"&&(_.value=null,R.value=null,C.value=null)}}const ae=e.computed(()=>{var ee;if(!u.value||!l.pivotResult)return null;const{minRow:y,maxRow:m,minCol:D,maxCol:h}=u.value,B=[];let L=0;for(let oe=y;oe<=m;oe++){const re=T.value[oe];if(re!==void 0)for(let de=D;de<=h;de++){const te=(ee=l.pivotResult.data[re])==null?void 0:ee[de];L++,(te==null?void 0:te.value)!==null&&(te==null?void 0:te.value)!==void 0&&typeof te.value=="number"&&B.push(te.value)}}if(L<=1)return null;const K=B.reduce((oe,re)=>oe+re,0),G=B.length>0?K/B.length:0;return{count:L,numericCount:B.length,sum:K,avg:G}});function Me(y){return Math.abs(y)>=1e6?`${(y/1e6).toFixed(2)}M`:Math.abs(y)>=1e3?`${(y/1e3).toFixed(2)}K`:y.toFixed(2)}e.onMounted(()=>{document.addEventListener("mouseup",j),document.addEventListener("keydown",ve)}),e.onUnmounted(()=>{document.removeEventListener("mouseup",j),document.removeEventListener("keydown",ve)});function ie(y,m){m.preventDefault(),m.dataTransfer.dropEffect="move",b.value=y}function Oe(){b.value=null}function We(y,m){var B;m.preventDefault();const D=(B=m.dataTransfer)==null?void 0:B.getData("text/plain");if(!D||D.startsWith("reorder:")){b.value=null;return}l.rowFields.includes(D)&&a("removeRowField",D),l.columnFields.includes(D)&&a("removeColumnField",D);const h=l.valueFields.find(L=>L.field===D);switch(h&&a("removeValueField",D,h.aggregation),y){case"row":a("addRowField",D);break;case"column":a("addColumnField",D);break;case"value":a("addValueField",D,"sum");break}b.value=null}function Ce(y,m,D){E.value={zone:y,index:m},D.dataTransfer.effectAllowed="move",D.dataTransfer.setData("text/plain",`reorder:${y}:${m}`),requestAnimationFrame(()=>{b.value=null})}function Ne(){E.value=null,S.value=null}function ye(y,m,D){D.preventDefault(),E.value&&E.value.zone===y&&(D.dataTransfer.dropEffect="move",S.value={zone:y,index:m})}function $e(){S.value=null}function De(y,m,D){if(D.preventDefault(),D.stopPropagation(),!E.value||E.value.zone!==y)return;const h=E.value.index;if(h===m){E.value=null,S.value=null;return}const B=y==="row"?[...l.rowFields]:[...l.columnFields],[L]=B.splice(h,1);B.splice(m,0,L),a(y==="row"?"reorderRowFields":"reorderColumnFields",B),E.value=null,S.value=null}function Ze(y,m){var D,h;return((D=E.value)==null?void 0:D.zone)===y&&((h=E.value)==null?void 0:h.index)===m}function Re(y,m){var D,h;return((D=S.value)==null?void 0:D.zone)===y&&((h=S.value)==null?void 0:h.index)===m}const ce=e.ref(180),Te=e.ref(80),Le=e.computed(()=>{const y=Math.max(l.rowFields.length,1);return Math.max(ce.value/y,80)});function qe(y){return y*Le.value}return(y,m)=>{var D;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vpg-pivot-skeleton",[`vpg-font-${F.value}`,{"vpg-is-dragging":t.draggingField}]])},[e.createVNode(e.Transition,{name:"vpg-toast"},{default:e.withCtx(()=>[d.value?(e.openBlock(),e.createElementBlock("div",Qn,[m[9]||(m[9]=e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)),e.createTextVNode(" "+e.toDisplayString(c.value),1)])):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",Jn,[m[13]||(m[13]=e.createElementVNode("div",{class:"vpg-skeleton-title"},[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"})]),e.createElementVNode("span",null,"Pivot Table")],-1)),e.createElementVNode("div",eo,[w.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-filter-indicator",onMouseenter:m[0]||(m[0]=h=>H.value=!0),onMouseleave:m[1]||(m[1]=h=>H.value=!1)},[m[12]||(m[12]=e.createElementVNode("svg",{class:"vpg-filter-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})],-1)),e.createElementVNode("span",to,[m[10]||(m[10]=e.createTextVNode(" Filtered: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(z.value),1),t.filteredRowCount!==void 0&&t.totalRowCount!==void 0?(e.openBlock(),e.createElementBlock("span",lo," ("+e.toDisplayString(t.filteredRowCount.toLocaleString())+" of "+e.toDisplayString(t.totalRowCount.toLocaleString())+" rows) ",1)):e.createCommentVNode("",!0)]),H.value?(e.openBlock(),e.createElementBlock("div",no,[m[11]||(m[11]=e.createElementVNode("div",{class:"vpg-tooltip-header"}," Active Filters ",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(W.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h.column,class:"vpg-tooltip-filter"},[e.createElementVNode("div",oo,e.toDisplayString(h.column),1),e.createElementVNode("div",ao,[h.isRange?(e.openBlock(),e.createElementBlock("span",ro,e.toDisplayString(h.displayText),1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.values,(B,L)=>(e.openBlock(),e.createElementBlock("span",{key:L,class:"vpg-tooltip-value"},e.toDisplayString(B),1))),128)),h.remaining>0?(e.openBlock(),e.createElementBlock("span",so," +"+e.toDisplayString(h.remaining)+" more ",1)):e.createCommentVNode("",!0)],64))])]))),128)),t.filteredRowCount!==void 0&&t.totalRowCount!==void 0?(e.openBlock(),e.createElementBlock("div",io," Showing "+e.toDisplayString(t.filteredRowCount.toLocaleString())+" of "+e.toDisplayString(t.totalRowCount.toLocaleString())+" rows ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],32)):e.createCommentVNode("",!0),t.isConfigured?(e.openBlock(),e.createElementBlock("div",co,[e.createElementVNode("span",uo,e.toDisplayString(t.rowFields.length)+" row"+e.toDisplayString(t.rowFields.length!==1?"s":""),1),e.createElementVNode("span",mo,e.toDisplayString(t.columnFields.length)+" col"+e.toDisplayString(t.columnFields.length!==1?"s":""),1),e.createElementVNode("span",go,e.toDisplayString(t.valueFields.length)+" val"+e.toDisplayString(t.valueFields.length!==1?"s":""),1)])):e.createCommentVNode("",!0),t.isConfigured&&t.pivotResult?(e.openBlock(),e.createElementBlock("div",po,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(N,h=>e.createElementVNode("button",{key:h.value,class:e.normalizeClass(["vpg-font-size-btn",{active:F.value===h.value}]),onClick:B=>F.value=h.value},e.toDisplayString(h.label),11,fo)),64))])):e.createCommentVNode("",!0)])]),e.unref(f)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",ho,[e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-row-zone",{"vpg-drag-over":b.value==="row"}]),onDragover:m[2]||(m[2]=h=>ie("row",h)),onDragleave:Oe,onDrop:m[3]||(m[3]=h=>We("row",h))},[m[16]||(m[16]=e.createElementVNode("div",{class:"vpg-zone-header"},[e.createElementVNode("span",{class:"vpg-zone-icon vpg-row-icon"},"↓"),e.createElementVNode("span",{class:"vpg-zone-label"},"Rows")],-1)),e.createElementVNode("div",ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.rowFields,(h,B)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:e.normalizeClass(["vpg-mini-chip vpg-row-chip",{"vpg-chip-dragging":Ze("row",B),"vpg-chip-drop-target":Re("row",B)}]),draggable:"true",onDragstart:L=>Ce("row",B,L),onDragend:Ne,onDragover:L=>ye("row",B,L),onDragleave:$e,onDrop:L=>De("row",B,L)},[m[15]||(m[15]=e.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),e.createElementVNode("span",Vo,e.toDisplayString(h),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:e.withModifiers(L=>a("removeRowField",h),["stop"])}," × ",8,Eo)],42,wo))),128)),t.rowFields.length===0?(e.openBlock(),e.createElementBlock("span",Co,"Drop here")):e.createCommentVNode("",!0)])],34),e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-column-zone",{"vpg-drag-over":b.value==="column"}]),onDragover:m[4]||(m[4]=h=>ie("column",h)),onDragleave:Oe,onDrop:m[5]||(m[5]=h=>We("column",h))},[m[18]||(m[18]=e.createElementVNode("div",{class:"vpg-zone-header"},[e.createElementVNode("span",{class:"vpg-zone-icon vpg-column-icon"},"→"),e.createElementVNode("span",{class:"vpg-zone-label"},"Columns")],-1)),e.createElementVNode("div",No,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columnFields,(h,B)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:e.normalizeClass(["vpg-mini-chip vpg-column-chip",{"vpg-chip-dragging":Ze("column",B),"vpg-chip-drop-target":Re("column",B)}]),draggable:"true",onDragstart:L=>Ce("column",B,L),onDragend:Ne,onDragover:L=>ye("column",B,L),onDragleave:$e,onDrop:L=>De("column",B,L)},[m[17]||(m[17]=e.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),e.createElementVNode("span",bo,e.toDisplayString(h),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:e.withModifiers(L=>a("removeColumnField",h),["stop"])}," × ",8,Fo)],42,yo))),128)),t.columnFields.length===0?(e.openBlock(),e.createElementBlock("span",So,"Drop here")):e.createCommentVNode("",!0)])],34),e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-value-zone",{"vpg-drag-over":b.value==="value"}]),onDragover:m[6]||(m[6]=h=>ie("value",h)),onDragleave:Oe,onDrop:m[7]||(m[7]=h=>We("value",h))},[m[19]||(m[19]=e.createElementVNode("div",{class:"vpg-zone-header"},[e.createElementVNode("span",{class:"vpg-zone-icon vpg-value-icon"},"Σ"),e.createElementVNode("span",{class:"vpg-zone-label"},"Values")],-1)),e.createElementVNode("div",Bo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.valueFields,h=>(e.openBlock(),e.createElementBlock("div",{key:`${h.field}-${h.aggregation}`,class:e.normalizeClass(["vpg-mini-chip vpg-value-chip",{"vpg-calc-chip":s(h.field)}])},[e.createElementVNode("span",xo,e.toDisplayString(s(h.field)?"ƒ":e.unref(gt)(h.aggregation)),1),e.createElementVNode("span",Mo,e.toDisplayString(o(h.field)),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:B=>a("removeValueField",h.field,h.aggregation)}," × ",8,$o)],2))),128)),t.valueFields.length===0?(e.openBlock(),e.createElementBlock("span",Do,"Drop numeric")):e.createCommentVNode("",!0)])],34)]),!t.isConfigured||!t.pivotResult?(e.openBlock(),e.createElementBlock("div",Ro,[e.createElementVNode("div",To,[m[28]||(m[28]=e.createElementVNode("svg",{class:"vpg-placeholder-icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"})],-1)),e.createElementVNode("span",Lo,[t.valueFields.length===0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[m[20]||(m[20]=e.createTextVNode(" Add a ",-1)),m[21]||(m[21]=e.createElementVNode("strong",null,"Values",-1)),m[22]||(m[22]=e.createTextVNode(" field to see your pivot table ",-1))],64)):t.rowFields.length===0&&t.columnFields.length===0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[m[23]||(m[23]=e.createTextVNode(" Add ",-1)),m[24]||(m[24]=e.createElementVNode("strong",null,"Row",-1)),m[25]||(m[25]=e.createTextVNode(" or ",-1)),m[26]||(m[26]=e.createElementVNode("strong",null,"Column",-1)),m[27]||(m[27]=e.createTextVNode(" fields to group your data ",-1))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(" Your pivot table will appear here ")],64))])])])):(e.openBlock(),e.createElementBlock("div",zo,[e.createElementVNode("table",Ao,[e.createElementVNode("thead",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(U.value,(h,B)=>(e.openBlock(),e.createElementBlock("tr",{key:`header-${B}`,class:"vpg-column-header-row"},[B===0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.rowFields.length>0?t.rowFields:["Rows"],(L,K)=>(e.openBlock(),e.createElementBlock("th",{key:`row-header-${K}`,class:"vpg-row-header-label",rowspan:U.value.length,style:e.normalizeStyle({width:`${Le.value}px`,minWidth:"80px",left:`${qe(K)}px`}),onClick:m[8]||(m[8]=G=>x("row"))},[e.createElementVNode("div",Uo,[e.createElementVNode("span",null,e.toDisplayString(L),1),K===t.rowFields.length-1||t.rowFields.length===0?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["vpg-sort-indicator",{active:M.value==="row"}])},e.toDisplayString(M.value==="row"?P.value==="asc"?"↑":"↓":"⇅"),3)):e.createCommentVNode("",!0)])],12,Po))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h,(L,K)=>(e.openBlock(),e.createElementBlock("th",{key:K,class:"vpg-column-header-cell",colspan:L.colspan,style:e.normalizeStyle({width:`${Te.value*L.colspan}px`}),onClick:G=>B===U.value.length-1&&x(K)},[e.createElementVNode("div",Ho,[e.createElementVNode("span",null,e.toDisplayString(L.label),1),B===U.value.length-1?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["vpg-sort-indicator",{active:M.value===K}])},e.toDisplayString(M.value===K?P.value==="asc"?"↑":"↓":"⇅"),3)):e.createCommentVNode("",!0)])],12,jo))),128)),t.pivotResult.rowTotals.length>0&&B===0?(e.openBlock(),e.createElementBlock("th",{key:1,class:"vpg-total-header",rowspan:U.value.length}," Total ",8,Ko)):e.createCommentVNode("",!0)]))),128))]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.value,h=>(e.openBlock(),e.createElementBlock("tr",{key:h,class:"vpg-data-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.rowHeaders[h],(B,L)=>(e.openBlock(),e.createElementBlock("th",{key:`row-${h}-${L}`,class:"vpg-row-header-cell",style:e.normalizeStyle({width:`${Le.value}px`,minWidth:"80px",left:`${qe(L)}px`})},e.toDisplayString(B),5))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.data[h],(B,L)=>(e.openBlock(),e.createElementBlock("td",{key:L,class:e.normalizeClass(["vpg-data-cell",[J(T.value.indexOf(h),L)&&"selected",B.value===null&&"vpg-is-null"]]),style:e.normalizeStyle({width:`${Te.value}px`}),onMousedown:K=>V(T.value.indexOf(h),L,K),onMouseenter:K=>$(T.value.indexOf(h),L)},e.toDisplayString(B.formattedValue),47,Oo))),128)),t.pivotResult.rowTotals[h]?(e.openBlock(),e.createElementBlock("td",Wo,e.toDisplayString(t.pivotResult.rowTotals[h].formattedValue),1)):e.createCommentVNode("",!0)]))),128)),t.pivotResult.columnTotals.length>0?(e.openBlock(),e.createElementBlock("tr",qo,[e.createElementVNode("th",{class:"vpg-row-header-cell vpg-total-label",colspan:Math.max(t.rowFields.length,1),style:e.normalizeStyle({width:`${ce.value}px`})}," Total ",12,Go),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.columnTotals,(h,B)=>(e.openBlock(),e.createElementBlock("td",{key:B,class:"vpg-data-cell vpg-total-cell",style:e.normalizeStyle({width:`${Te.value}px`})},e.toDisplayString(h.formattedValue),5))),128)),t.pivotResult.rowTotals.length>0?(e.openBlock(),e.createElementBlock("td",_o,e.toDisplayString(t.pivotResult.grandTotal.formattedValue),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])])),t.isConfigured&&t.pivotResult?(e.openBlock(),e.createElementBlock("div",Yo,[e.createElementVNode("span",Io,e.toDisplayString(t.pivotResult.rowHeaders.length)+" rows × "+e.toDisplayString(((D=t.pivotResult.data[0])==null?void 0:D.length)||0)+" columns",1),ae.value&&ae.value.count>1?(e.openBlock(),e.createElementBlock("div",Xo,[e.createElementVNode("span",Zo,[m[29]||(m[29]=e.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),e.createElementVNode("span",Qo,e.toDisplayString(ae.value.count),1)]),ae.value.numericCount>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[m[32]||(m[32]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Jo,[m[30]||(m[30]=e.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),e.createElementVNode("span",ea,e.toDisplayString(Me(ae.value.sum)),1)]),m[33]||(m[33]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",ta,[m[31]||(m[31]=e.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),e.createElementVNode("span",la,e.toDisplayString(Me(ae.value.avg)),1)])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("div",vo,[...m[14]||(m[14]=[e.createElementVNode("div",{class:"vpg-pro-content"},[e.createElementVNode("svg",{class:"vpg-pro-icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"})]),e.createElementVNode("h3",null,"Pro Feature"),e.createElementVNode("p",null,"Pivot Table functionality requires a Pro license."),e.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",class:"vpg-pro-link"}," Get Pro License → ")],-1)])])),e.unref(p)&&e.unref(f)?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["vpg-watermark",{"vpg-demo-mode":e.unref(k)}])},[e.unref(k)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[m[34]||(m[34]=e.createElementVNode("span",{class:"vpg-demo-badge"},"DEMO",-1)),m[35]||(m[35]=e.createElementVNode("span",null,"Pro features unlocked for evaluation",-1)),m[36]||(m[36]=e.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",rel:"noopener",class:"vpg-get-pro"}," Get Pro License → ",-1))],64)):(e.openBlock(),e.createElementBlock("a",na," Powered by TinyPivot "))],2)):e.createCommentVNode("",!0)],2)}}}),[["__scopeId","data-v-be785c2d"]]),oa={key:0,class:"vpg-toast"},aa={class:"vpg-toolbar"},ra={class:"vpg-toolbar-left"},sa={key:0,class:"vpg-view-toggle"},ia={key:0,class:"vpg-search-container"},ca={key:1,class:"vpg-search-box"},da={class:"vpg-font-size-control"},ua={class:"vpg-font-size-toggle"},ma=["onClick"],ga={key:1,class:"vpg-filter-info"},pa={key:2,class:"vpg-search-info"},fa={key:0,class:"vpg-pivot-status"},va={class:"vpg-toolbar-right"},ha=["disabled","title"],ka={key:0,class:"vpg-loading"},wa={key:1,class:"vpg-empty"},Va={key:2,class:"vpg-empty"},Ea={key:3,class:"vpg-table-wrapper"},Ca=["onClick"],Na={class:"vpg-header-content"},ya={class:"vpg-header-text"},ba={class:"vpg-header-icons"},Fa={key:0,class:"vpg-sort-indicator"},Sa={key:0,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},Ba={key:1,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},xa={key:1,class:"vpg-filter-indicator"},Ma=["onMousedown"],$a=["data-row","data-col","onMousedown","onMouseenter"],Da={key:1,class:"vpg-pivot-container"},Ra={key:0,class:"vpg-pivot-config-panel"},Ta={class:"vpg-footer"},La={class:"vpg-footer-left"},za={key:0,class:"vpg-filtered-note"},Aa={key:1},Pa={class:"vpg-filtered-count"},Ua={key:0,class:"vpg-pagination"},ja=["disabled"],Ha=["disabled"],Ka={class:"vpg-page-info"},Oa=["disabled"],Wa=["disabled"],qa={key:1,class:"vpg-selection-stats"},Ga={class:"vpg-stat"},_a={class:"vpg-stat-value"},Ya={class:"vpg-stat"},Ia={class:"vpg-stat-value"},Xa={class:"vpg-stat"},Za={class:"vpg-stat-value"},Qa={class:"vpg-footer-right"},Ja={key:0,class:"vpg-demo-banner"},er={key:1,class:"vpg-watermark-inline"},Ve=120,Mt=350,tr=xe(e.defineComponent({__name:"DataGrid",props:{data:{},loading:{type:Boolean,default:!1},rowHeight:{default:36},headerHeight:{default:40},fontSize:{default:"xs"},showPivot:{type:Boolean,default:!0},enableExport:{type:Boolean,default:!0},enableSearch:{type:Boolean,default:!0},enablePagination:{type:Boolean,default:!1},pageSize:{default:50},enableColumnResize:{type:Boolean,default:!0},enableClipboard:{type:Boolean,default:!0},theme:{default:"light"},stripedRows:{type:Boolean,default:!0},exportFilename:{default:"data-export.csv"},enableVerticalResize:{type:Boolean,default:!0},initialHeight:{default:600},minHeight:{default:300},maxHeight:{default:1200}},emits:["cellClick","selectionChange","export","copy"],setup(t,{emit:r}){const l=t,a=r,{showWatermark:o,canUsePivot:s,isDemo:p,isPro:f}=Ke(),k=e.computed(()=>{var i;return l.theme==="auto"?(i=window.matchMedia)!=null&&i.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light":l.theme}),b=e.ref(l.fontSize),E=e.ref(""),S=e.ref(!1),F=e.ref(1),N=e.ref(null),w=e.ref(0),z=e.ref(0),W=e.ref(l.initialHeight),H=e.ref(!1),P=e.ref(0),M=e.ref(0),x=e.ref(!1),T=e.ref(""),U=[{value:"xs",label:"S"},{value:"sm",label:"M"},{value:"base",label:"L"}],_=e.computed(()=>l.data),{table:R,columnKeys:C,filteredRowCount:g,totalRowCount:d,getColumnStats:c,hasActiveFilter:u,setColumnFilter:V,getColumnFilterValues:$,clearAllFilters:j,toggleSort:J,getSortDirection:se,columnFilters:ve,activeFilters:ae,setNumericRangeFilter:Me,getNumericRangeFilter:ie}=Ct({data:_}),Oe=e.computed(()=>R.getFilteredRowModel().rows.map(n=>n.original)),We=e.computed(()=>ae.value.length===0?null:ae.value.map(i=>{var n;if(i.type==="range"&&i.range){const v=[];return i.range.min!==null&&v.push(`≥ ${i.range.min}`),i.range.max!==null&&v.push(`≤ ${i.range.max}`),{column:i.column,valueCount:1,displayText:v.join(" and "),isRange:!0}}return{column:i.column,valueCount:((n=i.values)==null?void 0:n.length)||0,values:i.values||[],isRange:!1}})),{rowFields:Ce,columnFields:Ne,valueFields:ye,showRowTotals:$e,showColumnTotals:De,availableFields:Ze,isConfigured:Re,pivotResult:ce,addRowField:Te,removeRowField:Le,addColumnField:qe,removeColumnField:y,addValueField:m,removeValueField:D,updateValueFieldAggregation:h,clearConfig:B,autoSuggestConfig:L}=St(Oe),K=e.computed(()=>{if(!E.value.trim()||!l.enableSearch)return Fe.value;const i=E.value.toLowerCase().trim();return Fe.value.filter(n=>{for(const v of C.value){const A=n.original[v];if(A!=null&&String(A).toLowerCase().includes(i))return!0}return!1})}),G=e.computed(()=>K.value.length),ee=e.computed(()=>l.enablePagination?Math.max(1,Math.ceil(G.value/l.pageSize)):1),oe=e.computed(()=>{if(!l.enablePagination)return K.value;const i=(F.value-1)*l.pageSize,n=i+l.pageSize;return K.value.slice(i,n)}),re=e.computed(()=>G.value===0?0:(F.value-1)*l.pageSize+1),de=e.computed(()=>Math.min(F.value*l.pageSize,G.value));function te(){F.value<ee.value&&F.value++}function be(){F.value>1&&F.value--}e.watch([ve,E],()=>{F.value=1});function ze(){if(le.value==="pivot"){lr();return}const i=l.enableSearch&&E.value.trim()?K.value.map(n=>n.original):Fe.value.map(n=>n.original);Nt(i,C.value,{filename:l.exportFilename,includeHeaders:!0}),a("export",{rowCount:i.length,filename:l.exportFilename})}function lr(){if(!ce.value)return;const i=l.exportFilename.replace(".csv","-pivot.csv");yt({headers:ce.value.headers,rowHeaders:ce.value.rowHeaders,data:ce.value.data,rowTotals:ce.value.rowTotals,columnTotals:ce.value.columnTotals,grandTotal:ce.value.grandTotal,showRowTotals:$e.value,showColumnTotals:De.value},Ce.value,Ne.value,ye.value,{filename:i});const n=ce.value.rowHeaders.length;a("export",{rowCount:n,filename:i})}function nr(i,n){l.enableColumnResize&&(n.preventDefault(),n.stopPropagation(),N.value=i,w.value=n.clientX,z.value=he.value[i]||Ve,document.addEventListener("mousemove",$t),document.addEventListener("mouseup",Dt))}function $t(i){if(!N.value)return;const n=i.clientX-w.value,v=Math.max(Ve,Math.min(Mt,z.value+n));he.value={...he.value,[N.value]:v}}function Dt(){N.value=null,document.removeEventListener("mousemove",$t),document.removeEventListener("mouseup",Dt)}function or(i){l.enableVerticalResize&&(i.preventDefault(),H.value=!0,P.value=i.clientY,M.value=W.value,document.addEventListener("mousemove",Rt),document.addEventListener("mouseup",Tt))}function Rt(i){if(!H.value)return;const n=i.clientY-P.value,v=Math.max(l.minHeight,Math.min(l.maxHeight,M.value+n));W.value=v}function Tt(){H.value=!1,document.removeEventListener("mousemove",Rt),document.removeEventListener("mouseup",Tt)}function Lt(){if(!me.value||!l.enableClipboard)return;const i=Ft(Fe.value.map(n=>n.original),C.value,me.value);bt(i,()=>{const n=(me.value.maxRow-me.value.minRow+1)*(me.value.maxCol-me.value.minCol+1);T.value=`Copied ${n} cell${n>1?"s":""}`,x.value=!0,setTimeout(()=>{x.value=!1},2e3),a("copy",{text:i,cellCount:n})},n=>{T.value="Copy failed",x.value=!0,setTimeout(()=>{x.value=!1},2e3),console.error("Copy failed:",n)})}const le=e.ref("grid"),Ae=e.ref(!0),nt=e.ref(null),pe=e.ref(wt());function ar(i){i.id||(i.id=`calc_${Date.now()}_${Math.random().toString(36).substr(2,9)}`),pe.value=[...pe.value,i],He(pe.value)}function rr(i){pe.value=pe.value.filter(A=>A.id!==i),He(pe.value);const n=`calc:${i}`,v=ye.value.find(A=>A.field===n);v&&D(n,v.aggregation)}function sr(i){pe.value=pe.value.map(n=>n.id===i.id?i:n),He(pe.value)}function ir(i){nt.value=i}function cr(){nt.value=null}function dr(i){Ce.value=i}function ur(i){Ne.value=i}const ot=e.ref(),zt=e.ref(),Fe=e.computed(()=>R.getRowModel().rows),Z=e.ref(null),Qe=e.ref({top:0,left:0,maxHeight:400}),he=e.ref({});function At(){if(typeof document>"u"||l.data.length===0)return;const i={},n=Math.min(100,l.data.length),A=document.createElement("canvas").getContext("2d");if(A){A.font="13px system-ui, -apple-system, sans-serif";for(const O of C.value){let X=A.measureText(O).width+56;for(let I=0;I<n;I++){const Y=l.data[I][O],Q=Y==null?"":String(Y),we=A.measureText(Q).width+28;X=Math.max(X,we)}i[O]=Math.min(Math.max(X,Ve),Mt)}he.value=i}}function mr(i,n){n.stopPropagation();const v=n.currentTarget,A=v.closest(".vpg-header-cell"),O=(A==null?void 0:A.getBoundingClientRect())||v.getBoundingClientRect(),X=280,I=12;let Y=O.left;Y+X>window.innerWidth-I&&(Y=window.innerWidth-X-I),Y=Math.max(I,Y);const Q=window.innerHeight-O.bottom-I,we=O.top-I;let Se,Be;Q>=300||Q>=we?(Se=O.bottom+4,Be=Math.min(400,Q-4)):(Be=Math.min(400,we-4),Se=O.top-Be-4),Qe.value={top:Se,left:Y,maxHeight:Be},Z.value=i}function Je(){Z.value=null}function gr(i,n){V(i,n)}function pr(i,n){Me(i,n)}function fr(i,n){if(n===null)se(i)&&(J(i),se(i)&&J(i));else{const v=se(i);v===null?(J(i),n==="desc"&&se(i)==="asc"&&J(i)):v!==n&&J(i)}}const et=e.computed(()=>ve.value.length),ke=e.ref(null),fe=e.ref(null),ue=e.ref(null),at=e.ref(!1);function vr(i){const n=Fe.value.length-1;n<0||(fe.value={row:0,col:i},ue.value={row:n,col:i},ke.value={row:0,col:i})}function hr(i,n){if(n.target.closest(".vpg-dropdown-arrow")){const A=C.value[i];mr(A,n)}else vr(i)}const me=e.computed(()=>!fe.value||!ue.value?null:{minRow:Math.min(fe.value.row,ue.value.row),maxRow:Math.max(fe.value.row,ue.value.row),minCol:Math.min(fe.value.col,ue.value.col),maxCol:Math.max(fe.value.col,ue.value.col)});function kr(i,n){if(!me.value)return!1;const{minRow:v,maxRow:A,minCol:O,maxCol:X}=me.value;return i>=v&&i<=A&&n>=O&&n<=X}const Pe=e.computed(()=>{if(!me.value)return null;const{minRow:i,maxRow:n,minCol:v,maxCol:A}=me.value,O=[];let X=0;for(let Q=i;Q<=n;Q++){const we=Fe.value[Q];if(we)for(let Se=v;Se<=A;Se++){const Be=C.value[Se];if(!Be)continue;const Ue=we.original[Be];if(X++,Ue!=null&&Ue!==""){const Ot=typeof Ue=="number"?Ue:Number.parseFloat(String(Ue));Number.isNaN(Ot)||O.push(Ot)}}}if(O.length===0)return{count:X,sum:null,avg:null,numericCount:0};const I=O.reduce((Q,we)=>Q+we,0),Y=I/O.length;return{count:X,sum:I,avg:Y,numericCount:O.length}});function Pt(i){return i===null?"-":Math.abs(i)>=1e3?i.toLocaleString("en-US",{maximumFractionDigits:2}):i.toLocaleString("en-US",{maximumFractionDigits:4})}function Ut(i){if((i.ctrlKey||i.metaKey)&&i.key==="c"&&me.value){i.preventDefault(),Lt();return}if((i.ctrlKey||i.metaKey)&&i.key==="f"&&l.enableSearch){i.preventDefault(),S.value=!0,e.nextTick(()=>{const Y=document.querySelector(".vpg-search-input");Y==null||Y.focus()});return}if(!ke.value||Z.value)return;const{row:n,col:v}=ke.value,O=oe.value.length-1,X=C.value.length-1;function I(Y,Q){i.shiftKey?(fe.value||(fe.value={row:n,col:v}),ue.value={row:Y,col:Q}):(fe.value={row:Y,col:Q},ue.value={row:Y,col:Q}),ke.value={row:Y,col:Q},wr(Y,Q)}switch(i.key){case"ArrowUp":i.preventDefault(),n>0&&I(n-1,v);break;case"ArrowDown":i.preventDefault(),n<O&&I(n+1,v);break;case"ArrowLeft":i.preventDefault(),v>0&&I(n,v-1);break;case"ArrowRight":i.preventDefault(),v<X&&I(n,v+1);break;case"Escape":ke.value=null,fe.value=null,ue.value=null,S.value=!1,E.value="";break}}function wr(i,n){e.nextTick(()=>{var A;const v=(A=zt.value)==null?void 0:A.querySelector(`[data-row="${i}"][data-col="${n}"]`);v==null||v.scrollIntoView({block:"nearest",inline:"nearest"})})}function Vr(i,n,v){v.preventDefault(),v.shiftKey&&ke.value?ue.value={row:i,col:n}:(ke.value={row:i,col:n},fe.value={row:i,col:n},ue.value={row:i,col:n},at.value=!0);const A=Fe.value[i];if(A){const O=C.value[n];a("cellClick",{row:i,col:n,value:A.original[O],rowData:A.original})}}function Er(i,n){at.value&&(ue.value={row:i,col:n})}function jt(){at.value=!1}function Cr(i,n){var v,A;return kr(i,n)?!0:((v=ke.value)==null?void 0:v.row)===i&&((A=ke.value)==null?void 0:A.col)===n}const Nr=/^(?:.*_)?(?:id|code|year|month|quarter|day|week|date|zip|phone|fax|ssn|ein|npi|ndc|gpi|hcpcs|icd|cpt|rx|bin|pcn|group|member|claim|rx_number|script|fill)(?:_.*)?$/i;function yr(i){return!Nr.test(i)}function br(i,n){if(i==null||i==="")return"";if(c(n).type==="number"){const A=typeof i=="number"?i:Number.parseFloat(String(i));return Number.isNaN(A)?String(i):yr(n)&&Math.abs(A)>=1e3?A.toLocaleString("en-US",{maximumFractionDigits:2}):Number.isInteger(A)?String(A):A.toLocaleString("en-US",{maximumFractionDigits:4,useGrouping:!1})}return String(i)}function Ht(){Z.value&&Je()}function Kt(i){var n;if(Z.value){const v=i.target;if(v&&((n=v.closest)!=null&&n.call(v,".vpg-filter-portal")))return;Je()}}e.onMounted(()=>{At(),document.addEventListener("keydown",Ut),document.addEventListener("mouseup",jt),e.nextTick(()=>{var i;(i=ot.value)==null||i.addEventListener("scroll",Ht,{passive:!0})}),window.addEventListener("scroll",Kt,{passive:!0,capture:!0})}),e.onUnmounted(()=>{var i;document.removeEventListener("keydown",Ut),document.removeEventListener("mouseup",jt),(i=ot.value)==null||i.removeEventListener("scroll",Ht),window.removeEventListener("scroll",Kt,{capture:!0})}),e.watch(()=>l.data,()=>{e.nextTick(At)},{immediate:!0});const Fr=e.computed(()=>C.value.reduce((i,n)=>i+(he.value[n]||Ve),0));function Sr(i){Z.value&&(i.target.closest(".vpg-filter-portal")||Je())}return(i,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vpg-data-grid",[`vpg-font-${b.value}`,`vpg-theme-${k.value}`,{"vpg-striped":t.stripedRows},{"vpg-resizing":N.value},{"vpg-resizing-vertical":H.value}]]),style:e.normalizeStyle({height:`${W.value}px`}),onClick:Sr},[e.createVNode(e.Transition,{name:"vpg-toast"},{default:e.withCtx(()=>[x.value?(e.openBlock(),e.createElementBlock("div",oa,[n[17]||(n[17]=e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)),e.createTextVNode(" "+e.toDisplayString(T.value),1)])):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",aa,[e.createElementVNode("div",ra,[t.showPivot?(e.openBlock(),e.createElementBlock("div",sa,[e.createElementVNode("button",{class:e.normalizeClass(["vpg-view-btn",{active:le.value==="grid"}]),onClick:n[0]||(n[0]=v=>le.value="grid")},[...n[18]||(n[18]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"})],-1),e.createTextVNode(" Grid ",-1)])],2),e.createElementVNode("button",{class:e.normalizeClass(["vpg-view-btn vpg-pivot-btn",{active:le.value==="pivot"}]),onClick:n[1]||(n[1]=v=>le.value="pivot")},[...n[19]||(n[19]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"})],-1),e.createTextVNode(" Pivot ",-1)])],2)])):e.createCommentVNode("",!0),le.value==="grid"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.enableSearch?(e.openBlock(),e.createElementBlock("div",ia,[S.value?(e.openBlock(),e.createElementBlock("div",ca,[n[22]||(n[22]=e.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[3]||(n[3]=v=>E.value=v),type:"text",class:"vpg-search-input",placeholder:"Search all columns...",onKeydown:n[4]||(n[4]=e.withKeys(v=>{S.value=!1,E.value=""},["escape"]))},null,544),[[e.vModelText,E.value]]),E.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-search-clear",onClick:n[5]||(n[5]=v=>E.value="")},[...n[21]||(n[21]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-icon-btn",title:"Search (Ctrl+F)",onClick:n[2]||(n[2]=v=>S.value=!0)},[...n[20]||(n[20]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)])]))])):e.createCommentVNode("",!0),e.createElementVNode("div",da,[n[23]||(n[23]=e.createElementVNode("span",{class:"vpg-label"},"Size:",-1)),e.createElementVNode("div",ua,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(U,v=>e.createElementVNode("button",{key:v.value,class:e.normalizeClass(["vpg-font-size-btn",{active:b.value===v.value}]),onClick:A=>b.value=v.value},e.toDisplayString(v.label),11,ma)),64))])]),et.value>0?(e.openBlock(),e.createElementBlock("div",ga,[n[24]||(n[24]=e.createElementVNode("svg",{class:"vpg-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M3 3a1 1 0 011-1h12a1 1 0 011 1v3a1 1 0 01-.293.707L12 11.414V15a1 1 0 01-.293.707l-2 2A1 1 0 018 17v-5.586L3.293 6.707A1 1 0 013 6V3z","clip-rule":"evenodd"})],-1)),e.createElementVNode("span",null,e.toDisplayString(et.value)+" filter"+e.toDisplayString(et.value>1?"s":""),1)])):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createElementBlock("div",pa,[e.createElementVNode("span",null,e.toDisplayString(G.value)+" match"+e.toDisplayString(G.value!==1?"es":""),1)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),le.value==="pivot"&&e.unref(s)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("button",{class:e.normalizeClass(["vpg-config-toggle",{active:Ae.value}]),onClick:n[6]||(n[6]=v=>Ae.value=!Ae.value)},[n[25]||(n[25]=e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"})],-1)),e.createTextVNode(" "+e.toDisplayString(Ae.value?"Hide":"Show")+" Config ",1)],2),e.unref(Re)?(e.openBlock(),e.createElementBlock("div",fa,[...n[26]||(n[26]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})],-1),e.createElementVNode("span",null,"Pivot configured",-1)])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)]),e.createElementVNode("div",va,[le.value==="grid"&&et.value>0?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-clear-filters",onClick:n[7]||(n[7]=(...v)=>e.unref(j)&&e.unref(j)(...v))},[...n[27]||(n[27]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),e.createTextVNode(" Clear Filters ",-1)])])):e.createCommentVNode("",!0),t.enableClipboard&&me.value&&le.value==="grid"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"vpg-icon-btn",title:"Copy selection (Ctrl+C)",onClick:Lt},[...n[28]||(n[28]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})],-1)])])):e.createCommentVNode("",!0),t.enableExport&&le.value==="grid"?(e.openBlock(),e.createElementBlock("button",{key:2,class:"vpg-export-btn",title:"Export to CSV",onClick:ze},[...n[29]||(n[29]=[e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})],-1),e.createTextVNode(" Export ",-1)])])):e.createCommentVNode("",!0),t.enableExport&&le.value==="pivot"&&e.unref(Re)?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vpg-export-btn",{"vpg-export-btn-disabled":!e.unref(f)}]),disabled:!e.unref(f),title:e.unref(f)?"Export Pivot to CSV":"Export Pivot to CSV (Pro feature)",onClick:n[8]||(n[8]=v=>e.unref(f)&&ze())},[n[30]||(n[30]=e.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})],-1)),e.createTextVNode(" Export Pivot"+e.toDisplayString(e.unref(f)?"":" (Pro)"),1)],10,ha)):e.createCommentVNode("",!0)])]),le.value==="grid"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"tableContainerRef",ref:ot,class:"vpg-grid-container",tabindex:"0"},[t.loading?(e.openBlock(),e.createElementBlock("div",ka,[...n[31]||(n[31]=[e.createElementVNode("div",{class:"vpg-spinner"},null,-1),e.createElementVNode("span",null,"Loading data...",-1)])])):t.data.length===0?(e.openBlock(),e.createElementBlock("div",wa,[...n[32]||(n[32]=[e.createElementVNode("div",{class:"vpg-empty-icon"},[e.createElementVNode("svg",{class:"vpg-icon-lg",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})])],-1),e.createElementVNode("span",null,"No data available",-1)])])):e.unref(g)===0?(e.openBlock(),e.createElementBlock("div",Va,[n[33]||(n[33]=e.createElementVNode("div",{class:"vpg-empty-icon vpg-warning"},[e.createElementVNode("svg",{class:"vpg-icon-lg",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})])],-1)),n[34]||(n[34]=e.createElementVNode("span",null,"No matching records",-1)),e.createElementVNode("button",{class:"vpg-clear-link",onClick:n[9]||(n[9]=(...v)=>e.unref(j)&&e.unref(j)(...v))}," Clear all filters ")])):(e.openBlock(),e.createElementBlock("div",Ea,[e.createElementVNode("table",{class:"vpg-table",style:e.normalizeStyle({minWidth:`${Fr.value}px`})},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C),(v,A)=>(e.openBlock(),e.createElementBlock("th",{key:v,class:e.normalizeClass(["vpg-header-cell",{"vpg-has-filter":e.unref(u)(v),"vpg-is-sorted":e.unref(se)(v)!==null,"vpg-is-active":Z.value===v}]),style:e.normalizeStyle({width:`${he.value[v]||Ve}px`,minWidth:`${he.value[v]||Ve}px`}),onClick:O=>hr(A,O)},[e.createElementVNode("div",Na,[e.createElementVNode("span",ya,e.toDisplayString(v),1),e.createElementVNode("div",ba,[e.unref(se)(v)?(e.openBlock(),e.createElementBlock("span",Fa,[e.unref(se)(v)==="asc"?(e.openBlock(),e.createElementBlock("svg",Sa,[...n[35]||(n[35]=[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z","clip-rule":"evenodd"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",Ba,[...n[36]||(n[36]=[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"},null,-1)])]))])):e.createCommentVNode("",!0),e.unref(u)(v)?(e.openBlock(),e.createElementBlock("span",xa,[...n[37]||(n[37]=[e.createElementVNode("svg",{class:"vpg-icon-xs",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M3 3a1 1 0 011-1h12a1 1 0 011 1v3a1 1 0 01-.293.707L12 11.414V15a1 1 0 01-.293.707l-2 2A1 1 0 018 17v-5.586L3.293 6.707A1 1 0 013 6V3z","clip-rule":"evenodd"})],-1)])])):e.createCommentVNode("",!0),n[38]||(n[38]=e.createElementVNode("span",{class:"vpg-dropdown-arrow",title:"Filter & Sort"},[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})])],-1))])]),t.enableColumnResize?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-resize-handle",onMousedown:O=>nr(v,O)},null,40,Ma)):e.createCommentVNode("",!0)],14,Ca))),128))])]),e.createElementVNode("tbody",{ref_key:"tableBodyRef",ref:zt},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(oe.value,(v,A)=>(e.openBlock(),e.createElementBlock("tr",{key:v.id,class:"vpg-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C),(O,X)=>(e.openBlock(),e.createElementBlock("td",{key:O,class:e.normalizeClass(["vpg-cell",{"vpg-selected":Cr(A,X),"vpg-is-number":e.unref(c)(O).type==="number"}]),"data-row":A,"data-col":X,style:e.normalizeStyle({width:`${he.value[O]||Ve}px`,minWidth:`${he.value[O]||Ve}px`}),onMousedown:I=>Vr(A,X,I),onMouseenter:I=>Er(A,X)},e.toDisplayString(br(v.original[O],O)),47,$a))),128))]))),128))],512)],4)]))],512)):(e.openBlock(),e.createElementBlock("div",Da,[Ae.value&&e.unref(s)?(e.openBlock(),e.createElementBlock("div",Ra,[e.createVNode(Bt,{"available-fields":e.unref(Ze),"row-fields":e.unref(Ce),"column-fields":e.unref(Ne),"value-fields":e.unref(ye),"show-row-totals":e.unref($e),"show-column-totals":e.unref(De),"calculated-fields":pe.value,"onUpdate:showRowTotals":n[10]||(n[10]=v=>$e.value=v),"onUpdate:showColumnTotals":n[11]||(n[11]=v=>De.value=v),onClearConfig:e.unref(B),onDragStart:ir,onDragEnd:cr,onUpdateAggregation:e.unref(h),onAddRowField:e.unref(Te),onRemoveRowField:e.unref(Le),onAddColumnField:e.unref(qe),onRemoveColumnField:e.unref(y),onAddValueField:e.unref(m),onRemoveValueField:e.unref(D),onAddCalculatedField:ar,onRemoveCalculatedField:rr,onUpdateCalculatedField:sr},null,8,["available-fields","row-fields","column-fields","value-fields","show-row-totals","show-column-totals","calculated-fields","onClearConfig","onUpdateAggregation","onAddRowField","onRemoveRowField","onAddColumnField","onRemoveColumnField","onAddValueField","onRemoveValueField"])])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["vpg-pivot-main",{"vpg-full-width":!Ae.value}])},[e.createVNode(xt,{"row-fields":e.unref(Ce),"column-fields":e.unref(Ne),"value-fields":e.unref(ye),"calculated-fields":pe.value,"is-configured":e.unref(Re),"dragging-field":nt.value,"pivot-result":e.unref(ce),"font-size":b.value,"active-filters":We.value,"total-row-count":e.unref(d),"filtered-row-count":e.unref(g),onAddRowField:e.unref(Te),onRemoveRowField:e.unref(Le),onAddColumnField:e.unref(qe),onRemoveColumnField:e.unref(y),onAddValueField:e.unref(m),onRemoveValueField:e.unref(D),onUpdateAggregation:e.unref(h),onReorderRowFields:dr,onReorderColumnFields:ur},null,8,["row-fields","column-fields","value-fields","calculated-fields","is-configured","dragging-field","pivot-result","font-size","active-filters","total-row-count","filtered-row-count","onAddRowField","onRemoveRowField","onAddColumnField","onRemoveColumnField","onAddValueField","onRemoveValueField","onUpdateAggregation"])],2)])),e.createElementVNode("div",Ta,[e.createElementVNode("div",La,[le.value==="grid"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.enablePagination?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",null,e.toDisplayString(re.value.toLocaleString())+"-"+e.toDisplayString(de.value.toLocaleString()),1),n[39]||(n[39]=e.createElementVNode("span",{class:"vpg-separator"},"of",-1)),e.createElementVNode("span",null,e.toDisplayString(G.value.toLocaleString()),1),G.value!==e.unref(d)?(e.openBlock(),e.createElementBlock("span",za," ("+e.toDisplayString(e.unref(d).toLocaleString())+" total) ",1)):e.createCommentVNode("",!0)],64)):e.unref(g)===e.unref(d)&&G.value===e.unref(d)?(e.openBlock(),e.createElementBlock("span",Aa,e.toDisplayString(e.unref(d).toLocaleString())+" records",1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("span",Pa,e.toDisplayString(G.value.toLocaleString()),1),n[40]||(n[40]=e.createElementVNode("span",{class:"vpg-separator"},"of",-1)),e.createElementVNode("span",null,e.toDisplayString(e.unref(d).toLocaleString()),1),n[41]||(n[41]=e.createElementVNode("span",{class:"vpg-separator"},"records",-1))],64))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[n[42]||(n[42]=e.createElementVNode("span",{class:"vpg-pivot-label"},"Pivot Table",-1)),n[43]||(n[43]=e.createElementVNode("span",{class:"vpg-separator"},"•",-1)),e.createElementVNode("span",null,e.toDisplayString(e.unref(d).toLocaleString())+" source records",1)],64))]),t.enablePagination&&le.value==="grid"&&ee.value>1?(e.openBlock(),e.createElementBlock("div",Ua,[e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===1,onClick:n[12]||(n[12]=v=>F.value=1)},[...n[44]||(n[44]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 19l-7-7 7-7m8 14l-7-7 7-7"})],-1)])],8,ja),e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===1,onClick:be},[...n[45]||(n[45]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])],8,Ha),e.createElementVNode("span",Ka," Page "+e.toDisplayString(F.value)+" of "+e.toDisplayString(ee.value),1),e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===ee.value,onClick:te},[...n[46]||(n[46]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"})],-1)])],8,Oa),e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===ee.value,onClick:n[13]||(n[13]=v=>F.value=ee.value)},[...n[47]||(n[47]=[e.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 5l7 7-7 7M5 5l7 7-7 7"})],-1)])],8,Wa)])):e.createCommentVNode("",!0),le.value==="grid"&&Pe.value&&Pe.value.count>1?(e.openBlock(),e.createElementBlock("div",qa,[e.createElementVNode("span",Ga,[n[48]||(n[48]=e.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),e.createElementVNode("span",_a,e.toDisplayString(Pe.value.count),1)]),Pe.value.numericCount>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[51]||(n[51]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Ya,[n[49]||(n[49]=e.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),e.createElementVNode("span",Ia,e.toDisplayString(Pt(Pe.value.sum)),1)]),n[52]||(n[52]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Xa,[n[50]||(n[50]=e.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),e.createElementVNode("span",Za,e.toDisplayString(Pt(Pe.value.avg)),1)])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Qa,[e.unref(p)?(e.openBlock(),e.createElementBlock("div",Ja,[...n[53]||(n[53]=[e.createElementVNode("span",{class:"vpg-demo-badge"},"DEMO",-1),e.createElementVNode("span",null,"Pro features enabled",-1),e.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",rel:"noopener"},"Get License →",-1)])])):e.unref(o)?(e.openBlock(),e.createElementBlock("span",er,[...n[54]||(n[54]=[e.createStaticVNode('<a href="https://tiny-pivot.com" target="_blank" rel="noopener" data-v-4e45a194><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-4e45a194><rect x="3" y="3" width="7" height="7" data-v-4e45a194></rect><rect x="14" y="3" width="7" height="7" data-v-4e45a194></rect><rect x="14" y="14" width="7" height="7" data-v-4e45a194></rect><rect x="3" y="14" width="7" height="7" data-v-4e45a194></rect></svg> Powered by TinyPivot </a>',1)])])):e.createCommentVNode("",!0)])]),t.enableVerticalResize?(e.openBlock(),e.createElementBlock("div",{key:2,class:"vpg-vertical-resize-handle",onMousedown:or},[...n[55]||(n[55]=[e.createElementVNode("div",{class:"vpg-resize-grip"},[e.createElementVNode("span"),e.createElementVNode("span"),e.createElementVNode("span")],-1)])],32)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[Z.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-filter-portal",style:e.normalizeStyle({position:"fixed",top:`${Qe.value.top}px`,left:`${Qe.value.left}px`,maxHeight:`${Qe.value.maxHeight}px`,zIndex:9999})},[e.createVNode(Vt,{"column-id":Z.value,"column-name":Z.value,stats:e.unref(c)(Z.value),"selected-values":e.unref($)(Z.value),"sort-direction":e.unref(se)(Z.value),"numeric-range":e.unref(ie)(Z.value),onFilter:n[14]||(n[14]=v=>gr(Z.value,v)),onRangeFilter:n[15]||(n[15]=v=>pr(Z.value,v)),onSort:n[16]||(n[16]=v=>fr(Z.value,v)),onClose:Je},null,8,["column-id","column-name","stats","selected-values","sort-direction","numeric-range"])],4)):e.createCommentVNode("",!0)]))],6))}}),[["__scopeId","data-v-4e45a194"]]);q.ColumnFilter=Vt,q.DataGrid=tr,q.PivotConfig=Bt,q.PivotSkeleton=xt,q.configureLicenseSecret=Cn,q.copyToClipboard=bt,q.enableDemoMode=En,q.exportPivotToCSV=yt,q.exportToCSV=Nt,q.formatCellValue=dt,q.formatSelectionForClipboard=Ft,q.getAggregationLabel=je,q.getColumnUniqueValues=ct,q.setLicenseKey=Vn,q.useColumnResize=kn,q.useExcelGrid=Ct,q.useGlobalSearch=vn,q.useLicense=Ke,q.usePagination=fn,q.usePivotTable=St,q.useRowSelection=hn,Object.defineProperty(q,Symbol.toStringTag,{value:"Module"})});
10
10
  //# sourceMappingURL=tinypivot-vue.umd.cjs.map