@smallwebco/tinypivot-vue 1.0.48 → 1.0.49
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(W,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):(W=typeof globalThis<"u"?globalThis:W||self,e(W.TinyPivotVue={},W.Vue,W.VueTable))})(this,function(W,e,We){"use strict";function qe(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)&&("min"in t||"max"in t)}function Ot(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 Wt(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 ot(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 h=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)}),y=Ot(r);return{uniqueValues:h,totalCount:t.length,nullCount:o,type:y,...y==="number"&&a!==void 0&&p!==void 0?{numericMin:a,numericMax:p}:{}}}function at(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 rt(t,s){return s.map(l=>String(t[l]??"(blank)")).join("|||")}function st(t){return t.split("|||")}function qt(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 Gt(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 Ge(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 qt(t);case"stdDev":return Gt(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 _e(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 Pe(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 it(t,s){return t==="custom"&&s?s:{sum:"Σ",count:"#",avg:"x̄",min:"↓",max:"↑",countDistinct:"◇",median:"M̃",stdDev:"σ",percentOfTotal:"%Σ",custom:"ƒ"}[t]}const _t=[{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 Yt(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 ct(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 dt(t,s){if(!t.trim())return"Formula is required";const l=ct(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 ut(t,s,l){try{const r=ct(t);let o=t;for(const p of r){const f=l.find(S=>S.toLowerCase()===p.toLowerCase())||p,h=s[f];if(h==null||h==="")return null;const y=typeof h=="number"?h:Number.parseFloat(String(h));if(Number.isNaN(y))return null;const E=p.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");o=o.replace(new RegExp(`\\b${E}\\b`,"gi"),String(y))}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 It(t){return t.length===0?[]:Object.keys(t[0]).map(l=>Wt(t,l))}function Xt(t,s,l,r){const o=new Set([...s,...l,...r.map(a=>a.field)]);return t.filter(a=>!o.has(a.field))}function mt(t){return(t.rowFields.length>0||t.columnFields.length>0)&&t.valueFields.length>0}function Zt(t,s){const{rowFields:l,columnFields:r,valueFields:o,showRowTotals:a,showColumnTotals:p,calculatedFields:f}=s;if(!mt(s)||t.length===0)return null;const h=new Map;if(f)for(const $ of f)h.set($.id,$);const y=t.length>0?Object.keys(t[0]):[],E=new Set,S=new Set,F=new Map;for(const $ of t){const C=l.length>0?rt($,l):"__all__",g=r.length>0?rt($,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 D=null;if(V.field.startsWith("calc:")){const j=V.field.replace("calc:",""),te=h.get(j);te&&(D=ut(te.formula,$,y))}else{const j=$[V.field];j!=null&&j!==""&&(D=typeof j=="number"?j:Number.parseFloat(String(j)),Number.isNaN(D)&&(D=V.aggregation==="count"||V.aggregation==="countDistinct"?1:null))}D!==null&&c[u].push(D)}}const N=Array.from(E).sort(),w=Array.from(S).sort(),L=o.map(($,C)=>{let g=0;for(const d of t){let c=null;if($.field.startsWith("calc:")){const u=$.field.replace("calc:",""),V=h.get(u);V&&(c=ut(V.formula,d,y))}else{const u=d[$.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 O($){if($.field.startsWith("calc:")){const C=$.field.replace("calc:",""),g=h.get(C);return`${(g==null?void 0:g.name)||$.field} (${Pe($.aggregation)})`}return`${$.label||$.field} (${Pe($.aggregation)})`}const H=[];if(r.length>0){const $=o.length>1?o.length:1;for(let C=0;C<r.length;C++){const g=[];for(const d of w){const c=st(d);for(let u=0;u<$;u++)g.push(c[C]||"")}H.push(g)}}if(o.length>1||H.length===0){const $=[];for(const C of w)for(const g of o)$.push(O(g));w.length===1&&w[0]==="__all__"?H.push(o.map(C=>O(C))):H.push($)}const P=N.map($=>$==="__all__"?["Total"]:st($)),M=[],x=[],T=new Map;for(const $ of N){const C=[],g=o.map(()=>[]);for(const d of w){const c=F.get($),u=(c==null?void 0:c.get(d))||o.map(()=>[]);for(let D=0;D<u.length;D++)g[D].push(...u[D]);T.has(d)||T.set(d,o.map(()=>[]));const V=T.get(d);for(let D=0;D<u.length;D++)V[D].push(...u[D]);for(let D=0;D<o.length;D++){const j=o[D],te=u[D]||[],ce=L[D],ve=Ge(te,j.aggregation,ce);let ae;if(j.field.startsWith("calc:")){const Me=j.field.replace("calc:",""),de=h.get(Me);ae=Yt(ve,(de==null?void 0:de.formatAs)||"number",(de==null?void 0:de.decimals)??2)}else ae=_e(ve,j.aggregation);C.push({value:ve,count:te.length,formattedValue:ae})}}if(M.push(C),a&&w.length>1)if(o.length>0){const d=o[0],c=g[0]||[],u=Ge(c,d.aggregation,L[0]);x.push({value:u,count:c.length,formattedValue:_e(u,d.aggregation)})}else x.push({value:null,count:0,formattedValue:"-"})}const U=[];if(p&&N.length>1)for(const $ of w){const C=T.get($)||o.map(()=>[]);for(let g=0;g<o.length;g++){const d=o[g],c=C[g]||[],u=Ge(c,d.aggregation,L[g]);U.push({value:u,count:c.length,formattedValue:_e(u,d.aggregation)})}}const G={value:null,count:0,formattedValue:"-"};if(a&&p&&o.length>0){const $=o.map(()=>[]);for(const c of N){const u=F.get(c);if(u)for(const V of w){const D=u.get(V);if(D)for(let j=0;j<D.length;j++)$[j].push(...D[j])}}const C=o[0],g=$[0]||[],d=Ge(g,C.aggregation,L[0]);G.value=d,G.count=g.length,G.formattedValue=_e(d,C.aggregation)}return{headers:H,rowHeaders:P,data:M,rowTotals:x,columnTotals:U,grandTotal:G}}const Qt="vpg-pivot-";function Jt(t){const l=[...t].sort().join("|").substring(0,100);return`${Qt}${l}`}function el(t,s){try{sessionStorage.setItem(t,JSON.stringify(s))}catch{}}function tl(t){try{const s=sessionStorage.getItem(t);if(s)return JSON.parse(s)}catch{}return null}function Je(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 gt="vpg-calculated-fields";function Ue(t){try{localStorage.setItem(gt,JSON.stringify(t))}catch{}}function pt(){try{const t=localStorage.getItem(gt);if(t)return JSON.parse(t)}catch{}return[]}const ft={type:"free",isValid:!0,features:{pivot:!0,advancedAggregations:!1,percentageMode:!1,sessionPersistence:!1,noWatermark:!1}},Ye={type:"free",isValid:!1,features:{pivot:!0,advancedAggregations:!1,percentageMode:!1,sessionPersistence:!1,noWatermark:!1}},ll={type:"free",isValid:!0,features:{pivot:!0,advancedAggregations:!0,percentageMode:!0,sessionPersistence:!0,noWatermark:!1}},nl=`-----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 _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-----
|
|
2
2
|
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE436rfGofder4lfo4UHsRF2M88Gs0
|
|
3
3
|
zLsikg2H9GMkL8hLGuOtnGMpVfLRlc7cD8FdkPBBRgiQ8UFnG8hm+nMIug==
|
|
4
|
-
-----END PUBLIC KEY-----`;function
|
|
5
|
-
`)?`"${l.replace(/"/g,'""')}"`:l}function
|
|
6
|
-
`);
|
|
7
|
-
`);
|
|
8
|
-
`)}const kt=(t,s,l)=>{if(!l)return!0;if(qe(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 wt(t){const{data:s,enableSorting:l=!0,enableFiltering:r=!0}=t,o=e.ref([]),a=e.ref([]),p=e.ref({}),f=e.ref(""),h=e.ref({}),y=e.computed(()=>s.value.length===0?[]:Object.keys(s.value[0]));function E(C){const g=`${C}-${s.value.length}`;return h.value[g]||(h.value[g]=ot(s.value,C)),h.value[g]}function S(){h.value={}}const F=e.computed(()=>y.value.map(C=>{const g=E(C);return{id:C,accessorKey:C,header:C,cell:d=>at(d.getValue(),g.type),filterFn:kt,meta:{type:g.type,uniqueCount:g.uniqueValues.length}}})),N=We.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:We.getCoreRowModel(),getSortedRowModel:l?We.getSortedRowModel():void 0,getFilteredRowModel:r?We.getFilteredRowModel():void 0,filterFns:{multiSelect:kt},enableSorting:l,enableFilters:r}),w=e.computed(()=>N.getFilteredRowModel().rows.length),L=e.computed(()=>s.value.length),O=e.computed(()=>a.value.map(C=>{const g=C.value;return g&&qe(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?qe(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&&qe(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 G(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 $(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:y,filteredRowCount:w,totalRowCount:L,activeFilters:O,getColumnStats:E,clearStatsCache:S,hasActiveFilter:H,setColumnFilter:P,getColumnFilterValues:U,clearAllFilters:T,toggleSort:G,getSortDirection:$,setNumericRangeFilter:M,getNumericRangeFilter:x}}const El=e.ref(null),Ee=e.ref(!1),ge=e.ref(ml());let et=null;async function Cl(t){El.value=t,et=sl(t),ge.value=await et,et=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 Nl(t){const s=await ul(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 yl(t){il()}function je(){const t=e.computed(()=>Ee.value),s=e.computed(()=>Ee.value||pl(ge.value)),l=e.computed(()=>Ee.value||gl(ge.value)),r=e.computed(()=>Ee.value||ge.value.features.advancedAggregations),o=e.computed(()=>Ee.value||ge.value.features.percentageMode),a=e.computed(()=>fl(ge.value,Ee.value));function p(f){return s.value?!0:(vl(f),!1)}return{licenseInfo:e.computed(()=>ge.value),isDemo:t,isPro:s,canUsePivot:l,canUseAdvancedAggregations:r,canUsePercentageMode:o,showWatermark:a,requirePro:p}}function Vt(t){const{canUsePivot:s,requirePro:l}=je(),r=e.ref([]),o=e.ref([]),a=e.ref([]),p=e.ref(!0),f=e.ref(!0),h=e.ref(pt()),y=e.ref(null),E=e.computed(()=>It(t.value)),S=e.computed(()=>Xt(E.value,r.value,o.value,a.value)),F=e.computed(()=>mt({rowFields:r.value,columnFields:o.value,valueFields:a.value,showRowTotals:p.value,showColumnTotals:f.value})),N=e.computed(()=>!F.value||!s.value?null:Zt(t.value,{rowFields:r.value,columnFields:o.value,valueFields:a.value,showRowTotals:p.value,showColumnTotals:f.value,calculatedFields:h.value}));function w(g){r.value.includes(g)||(r.value=[...r.value,g])}function L(g){r.value=r.value.filter(d=>d!==g)}function O(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 G(){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 $(g){const d=h.value.findIndex(c=>c.id===g.id);d>=0?h.value=[...h.value.slice(0,d),g,...h.value.slice(d+1)]:h.value=[...h.value,g],Ue(h.value)}function C(g){h.value=h.value.filter(d=>d.id!==g),a.value=a.value.filter(d=>d.field!==`calc:${g}`),Ue(h.value)}return e.watch(t,g=>{if(g.length===0)return;const d=Object.keys(g[0]),c=Jt(d);if(c!==y.value){y.value=c;const u=tl(c);if(u&&Je(u,d))r.value=u.rowFields,o.value=u.columnFields,a.value=u.valueFields,p.value=u.showRowTotals,f.value=u.showColumnTotals,u.calculatedFields&&(h.value=u.calculatedFields);else{const V={rowFields:r.value,columnFields:o.value,valueFields:a.value,showRowTotals:p.value,showColumnTotals:f.value};Je(V,d)||T()}}else{const u={rowFields:r.value,columnFields:o.value,valueFields:a.value,showRowTotals:p.value,showColumnTotals:f.value};Je(u,d)||T()}},{immediate:!0}),e.watch([r,o,a,p,f,h],()=>{if(!y.value)return;const g={rowFields:r.value,columnFields:o.value,valueFields:a.value,showRowTotals:p.value,showColumnTotals:f.value,calculatedFields:h.value};el(y.value,g)},{deep:!0}),{rowFields:r,columnFields:o,valueFields:a,showRowTotals:p,showColumnTotals:f,calculatedFields:h,availableFields:E,unassignedFields:S,isConfigured:F,pivotResult:N,addRowField:w,removeRowField:L,addColumnField:O,removeColumnField:H,addValueField:P,removeValueField:M,updateValueFieldAggregation:x,clearConfig:T,moveField:U,autoSuggestConfig:G,addCalculatedField:$,removeCalculatedField:C}}function Et(t,s,l){hl(t,s,l)}function Ct(t,s,l,r,o){kl(t,s,l,r,o)}function Nt(t,s,l){wl(t,s,l)}function yt(t,s,l){return Vl(t,s,l)}function bl(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,L=w+l.value;return t.value.slice(w,L)}),p=e.computed(()=>(r.value-1)*l.value+1),f=e.computed(()=>Math.min(r.value*l.value,t.value.length));function h(w){r.value=Math.max(1,Math.min(w,o.value))}function y(){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:h,nextPage:y,prevPage:E,firstPage:S,lastPage:F,setPageSize:N}}function Fl(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 h of s.value){const y=f[h];if(y==null)continue;if((r.value?String(y):String(y).toLowerCase()).includes(p))return!0}return!1})});function a(){l.value=""}return{searchTerm:l,caseSensitive:r,filteredData:o,clearSearch:a}}function Sl(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 h(){s.value=new Set(t.value.map((N,w)=>w))}function y(){s.value=new Set}function E(){r.value?y():h()}function S(N){return s.value.has(N)}function F(N,w){const L=Math.min(N,w),O=Math.max(N,w);for(let H=L;H<=O;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:h,deselectAll:y,toggleAll:E,isSelected:S,selectRange:F}}function Bl(t,s=60,l=600){const r=e.ref({...t.value}),o=e.ref(!1),a=e.ref(null);function p(y,E){o.value=!0,a.value=y;const S=E.clientX,F=r.value[y]||150,N=L=>{const O=L.clientX-S,H=Math.max(s,Math.min(l,F+O));r.value={...r.value,[y]: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(y){t.value[y]&&(r.value={...r.value,[y]:t.value[y]})}function h(){r.value={...t.value}}return{columnWidths:r,isResizing:o,resizingColumn:a,startResize:p,resetColumnWidth:f,resetAllWidths:h}}const xl={class:"vpg-range-filter"},Ml={class:"vpg-range-info"},Dl={class:"vpg-range-bounds"},$l={class:"vpg-slider-container"},Rl={class:"vpg-slider-track"},Tl=["min","max","step","value"],zl=["min","max","step","value"],Ll={class:"vpg-range-inputs"},Al={class:"vpg-input-group"},Pl=["placeholder","value","step"],Ul={class:"vpg-input-group"},jl=["placeholder","value","step"],Hl={class:"vpg-range-actions"},Kl=["disabled"],Ol={key:0,class:"vpg-filter-summary"},Wl=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}),h=e.computed(()=>o.value!==null||a.value!==null),y=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 L(){o.value=null,a.value=null,H()}function O(){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",xl,[e.createElementVNode("div",Ml,[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",$l,[e.createElementVNode("div",Rl,[e.createElementVNode("div",{class:"vpg-slider-fill",style:e.normalizeStyle({left:`${y.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,Tl),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",Ll,[e.createElementVNode("div",Al,[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,Pl)]),T[3]||(T[3]=e.createElementVNode("span",{class:"vpg-input-separator"},"to",-1)),e.createElementVNode("div",Ul,[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,jl)])]),e.createElementVNode("div",Hl,[e.createElementVNode("button",{class:"vpg-range-btn",disabled:!h.value,onClick:L},[...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,Kl),e.createElementVNode("button",{class:"vpg-range-btn",onClick:O},[...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)])])]),h.value?(e.openBlock(),e.createElementBlock("div",Ol,[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},ql=xe(Wl,[["__scopeId","data-v-0c361932"]]),Gl={class:"vpg-filter-header"},_l={class:"vpg-filter-title"},Yl={class:"vpg-filter-count"},Il={class:"vpg-sort-controls"},Xl=["title"],Zl=["title"],Ql={key:0,class:"vpg-filter-tabs"},Jl={class:"vpg-search-container"},en={class:"vpg-values-list"},tn=["checked","onChange"],ln={key:0,class:"vpg-no-results"},bt=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),h=e.ref(l.numericRange?"range":"values"),y=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 L(){for(const d of N.value)E.value.add(d);E.value=new Set(E.value)}function O(){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){y.value=d}function U(){r("rangeFilter",y.value),r("close")}function G(){y.value=null,r("rangeFilter",null),r("close")}function $(d){h.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=>{y.value=d??null,d&&(h.value="range")},{immediate:!0}),(d,c)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:a,class:"vpg-filter-dropdown"},[e.createElementVNode("div",Gl,[e.createElementVNode("span",_l,e.toDisplayString(t.columnName),1),e.createElementVNode("span",Yl,e.toDisplayString(t.stats.uniqueValues.length.toLocaleString())+" unique ",1)]),e.createElementVNode("div",Il,[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,Xl),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,Zl)]),c[11]||(c[11]=e.createElementVNode("div",{class:"vpg-divider"},null,-1)),f.value?(e.openBlock(),e.createElementBlock("div",Ql,[e.createElementVNode("button",{class:e.normalizeClass(["vpg-tab-btn",{active:h.value==="values"}]),onClick:c[0]||(c[0]=u=>$("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:h.value==="range"}]),onClick:c[1]||(c[1]=u=>$("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||h.value==="values"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Jl,[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:L},[...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:O},[...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",en,[(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,tn),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",ln," 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(ql,{"data-min":t.stats.numericMin,"data-max":t.stats.numericMax,"current-range":y.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:G}," Clear Filter "),e.createElementVNode("button",{class:"vpg-btn-apply",onClick:U}," Apply ")])],64))],512))}}),[["__scopeId","data-v-d538c266"]]),nn={class:"vpg-modal"},on={class:"vpg-modal-header"},an={class:"vpg-modal-body"},rn={class:"vpg-form-group"},sn={class:"vpg-form-group"},cn={key:0,class:"vpg-error"},dn={class:"vpg-form-group"},un={class:"vpg-button-group"},mn={class:"vpg-form-group"},gn={key:0,class:"vpg-button-group vpg-field-buttons"},pn=["onClick"],fn={key:1,class:"vpg-no-fields"},vn={class:"vpg-form-row"},hn={class:"vpg-form-group vpg-form-group-half"},kn={class:"vpg-form-group vpg-form-group-half"},wn={key:0,class:"vpg-error vpg-error-box"},Vn={class:"vpg-modal-footer"},En=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),h=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),h.value=null)});const y=e.computed(()=>a.value.trim()?dt(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 L;if(!o.value.trim()){h.value="Name is required";return}const N=dt(a.value,l.availableFields);if(N){h.value=N;return}const w={id:((L=l.existingField)==null?void 0:L.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(L=>r("close"),["self"]))},[e.createElementVNode("div",nn,[e.createElementVNode("div",on,[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]=L=>r("close"))},"×")]),e.createElementVNode("div",an,[e.createElementVNode("div",rn,[w[13]||(w[13]=e.createElementVNode("label",{class:"vpg-label"},"Name",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[1]||(w[1]=L=>o.value=L),type:"text",class:"vpg-input",placeholder:"e.g., Profit Margin %"},null,512),[[e.vModelText,o.value]])]),e.createElementVNode("div",sn,[w[14]||(w[14]=e.createElementVNode("label",{class:"vpg-label"},"Formula",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":w[2]||(w[2]=L=>a.value=L),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)),y.value?(e.openBlock(),e.createElementBlock("div",cn,e.toDisplayString(y.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",dn,[w[16]||(w[16]=e.createElementVNode("label",{class:"vpg-label-small"},"Operators",-1)),e.createElementVNode("div",un,[e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[3]||(w[3]=L=>S("+"))},"+"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[4]||(w[4]=L=>S("-"))},"−"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[5]||(w[5]=L=>S("*"))},"×"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[6]||(w[6]=L=>S("/"))},"÷"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[7]||(w[7]=L=>S("("))},"("),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[8]||(w[8]=L=>S(")"))},")")])]),e.createElementVNode("div",mn,[w[17]||(w[17]=e.createElementVNode("label",{class:"vpg-label-small"},"Insert Field",-1)),t.availableFields.length>0?(e.openBlock(),e.createElementBlock("div",gn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.availableFields,L=>(e.openBlock(),e.createElementBlock("button",{key:L,class:"vpg-insert-btn vpg-field-btn",onClick:O=>E(L)},e.toDisplayString(L),9,pn))),128))])):(e.openBlock(),e.createElementBlock("div",fn," No numeric fields available "))]),e.createElementVNode("div",vn,[e.createElementVNode("div",hn,[w[19]||(w[19]=e.createElementVNode("label",{class:"vpg-label"},"Format As",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":w[9]||(w[9]=L=>p.value=L),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",kn,[w[20]||(w[20]=e.createElementVNode("label",{class:"vpg-label"},"Decimals",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[10]||(w[10]=L=>f.value=L),type:"number",class:"vpg-input",min:"0",max:"6"},null,512),[[e.vModelText,f.value,void 0,{number:!0}]])])]),h.value?(e.openBlock(),e.createElementBlock("div",wn,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Vn,[e.createElementVNode("button",{class:"vpg-btn vpg-btn-secondary",onClick:w[11]||(w[11]=L=>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"]]),Cn={class:"vpg-pivot-config"},Nn={class:"vpg-config-header"},yn={class:"vpg-header-actions"},bn={key:0,class:"vpg-assigned-section"},Fn={class:"vpg-assigned-list"},Sn=["title","onDragstart"],Bn={class:"vpg-item-main"},xn={class:"vpg-item-name"},Mn={class:"vpg-item-actions"},Dn=["title","onClick"],$n=["value","onChange"],Rn=["value","disabled"],Tn=["onClick"],zn={class:"vpg-unassigned-section"},Ln={class:"vpg-section-header"},An={class:"vpg-section-label"},Pn={class:"vpg-count"},Un={class:"vpg-field-search"},jn={class:"vpg-field-list"},Hn=["title","onDragstart"],Kn={class:"vpg-field-name"},On=["onClick"],Wn=["onClick"],qn={key:1,class:"vpg-unique-count"},Gn={key:0,class:"vpg-empty-hint"},_n={key:1,class:"vpg-empty-hint"},Yn={class:"vpg-options-section"},In={class:"vpg-option-toggle"},Xn=["checked"],Ft=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}=je(),a=_t;function p(c){return c!=="sum"}function f(c){return!p(c)||o.value}const h=e.ref(!1),y=e.ref(null),E=e.computed(()=>l.availableFields.filter(c=>c.isNumeric).map(c=>c.field));function S(c){y.value=c||null,h.value=!0}function F(c){y.value?r("updateCalculatedField",c):r("addCalculatedField",c),h.value=!1,y.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})):[]),L=e.computed(()=>[...l.availableFields.map(c=>({...c,isCalculated:!1})),...w.value]),O=e.computed(()=>{const c=new Set(l.rowFields),u=new Set(l.columnFields),V=new Map(l.valueFields.map(D=>[D.field,D]));return L.value.filter(D=>c.has(D.field)||u.has(D.field)||V.has(D.field)).map(D=>({...D,assignedTo:c.has(D.field)?"row":u.has(D.field)?"column":"value",valueConfig:V.get(D.field)}))}),H=e.computed(()=>{const c=new Set(l.rowFields),u=new Set(l.columnFields),V=new Set(l.valueFields.map(D=>D.field));return L.value.filter(D=>!c.has(D.field)&&!u.has(D.field)&&!V.has(D.field))}),P=e.computed(()=>O.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(),D=u.isCalculated&&u.calcName?u.calcName.toLowerCase():"";return V.includes(c)||D.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 G(c,u){var V;(V=u.dataTransfer)==null||V.setData("text/plain",c),u.dataTransfer.effectAllowed="move",r("dragStart",c,u)}function $(){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",Cn,[e.createElementVNode("div",Nn,[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",yn,[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",bn,[u[10]||(u[10]=e.createElementVNode("div",{class:"vpg-section-label"},"Active",-1)),e.createElementVNode("div",Fn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.value,V=>{var D;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=>G(V.field,j),onDragend:$},[e.createElementVNode("div",Bn,[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(it)(((D=V.valueConfig)==null?void 0:D.aggregation)||"sum")),3),e.createElementVNode("span",xn,e.toDisplayString(U(V)),1)]),e.createElementVNode("div",Mn,[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,Rn))),128))],40,$n)):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,Tn)])],42,Sn)}),128))])])):e.createCommentVNode("",!0),e.createElementVNode("div",zn,[e.createElementVNode("div",Ln,[e.createElementVNode("div",An,[u[11]||(u[11]=e.createTextVNode(" Available ",-1)),e.createElementVNode("span",Pn,e.toDisplayString(H.value.length),1)])]),e.createElementVNode("div",Un,[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",jn,[(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:D=>G(V.field,D),onDragend:$},[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",Kn,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(D=>{var j;return S((j=t.calculatedFields)==null?void 0:j.find(te=>te.id===V.calcId))},["stop"])},"✎",8,On),e.createElementVNode("button",{class:"vpg-field-delete",title:"Delete calculated field",onClick:e.withModifiers(D=>r("removeCalculatedField",V.calcId),["stop"])},"×",8,Wn)],64)):(e.openBlock(),e.createElementBlock("span",qn,e.toDisplayString(V.uniqueCount),1))],42,Hn))),128)),x.value.length===0&&M.value?(e.openBlock(),e.createElementBlock("div",Gn,' No fields match "'+e.toDisplayString(M.value)+'" ',1)):H.value.length===0?(e.openBlock(),e.createElementBlock("div",_n," All fields assigned ")):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Yn,[e.createElementVNode("label",In,[e.createElementVNode("input",{type:"checkbox",checked:t.showRowTotals,onChange:u[4]||(u[4]=V=>N(V.target.checked))},null,40,Xn),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(En,{show:h.value,"available-fields":E.value,"existing-field":y.value,onClose:u[6]||(u[6]=V=>{h.value=!1,y.value=null}),onSave:F},null,8,["show","available-fields","existing-field"])]))}}),[["__scopeId","data-v-d3d86021"]]),Zn={key:0,class:"vpg-toast"},Qn={class:"vpg-skeleton-header"},Jn={class:"vpg-header-right"},eo={class:"vpg-filter-text"},to={key:0,class:"vpg-filter-count"},lo={key:0,class:"vpg-filter-tooltip"},no={class:"vpg-tooltip-column"},oo={class:"vpg-tooltip-values"},ao={key:0,class:"vpg-tooltip-value vpg-range-value"},ro={key:0,class:"vpg-tooltip-more"},so={key:0,class:"vpg-tooltip-summary"},io={key:1,class:"vpg-config-summary"},co={class:"vpg-summary-badge vpg-rows"},uo={class:"vpg-summary-badge vpg-cols"},mo={class:"vpg-summary-badge vpg-vals"},go={key:2,class:"vpg-font-size-toggle"},po=["onClick"],fo={key:0,class:"vpg-pro-required"},vo={class:"vpg-config-bar"},ho={class:"vpg-zone-chips"},ko=["onDragstart","onDragover","onDrop"],wo={class:"vpg-mini-name"},Vo=["onClick"],Eo={key:0,class:"vpg-zone-hint"},Co={class:"vpg-zone-chips"},No=["onDragstart","onDragover","onDrop"],yo={class:"vpg-mini-name"},bo=["onClick"],Fo={key:0,class:"vpg-zone-hint"},So={class:"vpg-zone-chips"},Bo={class:"vpg-agg-symbol"},xo={class:"vpg-mini-name"},Mo=["onClick"],Do={key:0,class:"vpg-zone-hint"},$o={key:0,class:"vpg-placeholder"},Ro={class:"vpg-placeholder-content"},To={class:"vpg-placeholder-text"},zo={key:1,class:"vpg-table-container"},Lo={class:"vpg-pivot-table"},Ao=["rowspan"],Po={class:"vpg-header-content"},Uo=["colspan","onClick"],jo={class:"vpg-header-content"},Ho=["rowspan"],Ko=["onMousedown","onMouseenter"],Oo={key:0,class:"vpg-data-cell vpg-total-cell"},Wo={key:0,class:"vpg-totals-row"},qo={key:0,class:"vpg-data-cell vpg-grand-total-cell"},Go={key:2,class:"vpg-skeleton-footer"},_o={class:"vpg-footer-info"},Yo={key:0,class:"vpg-selection-stats"},Io={class:"vpg-stat"},Xo={class:"vpg-stat-value"},Zo={class:"vpg-stat"},Qo={class:"vpg-stat-value"},Jo={class:"vpg-stat"},ea={class:"vpg-stat-value"},ta={key:1,href:"https://tiny-pivot.com",target:"_blank",rel:"noopener"},St=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(b){var m;if(b.startsWith("calc:")){const R=b.replace("calc:",""),k=(m=l.calculatedFields)==null?void 0:m.find(B=>B.id===R);return(k==null?void 0:k.name)||b}return b}function o(b){return b.startsWith("calc:")}const a=s,{showWatermark:p,canUsePivot:f,isDemo:h}=je(),y=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),L=e.computed(()=>!l.activeFilters||l.activeFilters.length===0?"":l.activeFilters.map(m=>m.column).join(", ")),O=e.computed(()=>!l.activeFilters||l.activeFilters.length===0?[]:l.activeFilters.map(b=>{if(b.isRange&&b.displayText)return{column:b.column,displayText:b.displayText,isRange:!0,values:[],remaining:0};const m=b.values||[],R=5,k=m.slice(0,R),B=m.length-R;return{column:b.column,values:k,remaining:B>0?B:0,isRange:!1}})),H=e.ref(!1),P=e.ref("asc"),M=e.ref("row");function x(b="row"){M.value===b?P.value=P.value==="asc"?"desc":"asc":(M.value=b,P.value="asc")}const T=e.computed(()=>{if(!l.pivotResult)return[];const b=l.pivotResult.rowHeaders.map((k,B)=>B),m=l.pivotResult.rowHeaders,R=l.pivotResult.data;return b.sort((k,B)=>{var q,Z,se,_,Q,ie;let z;if(M.value==="row"){const le=((q=m[k])==null?void 0:q.join(" / "))||"",be=((Z=m[B])==null?void 0:Z.join(" / "))||"";z=le.localeCompare(be,void 0,{numeric:!0,sensitivity:"base"})}else{const le=M.value,be=((_=(se=R[k])==null?void 0:se[le])==null?void 0:_.value)??null,Oe=((ie=(Q=R[B])==null?void 0:Q[le])==null?void 0:ie.value)??null;be===null&&Oe===null?z=0:be===null?z=1:Oe===null?z=-1:z=be-Oe}return P.value==="asc"?z:-z}),b}),U=e.computed(()=>{if(!l.pivotResult||l.pivotResult.headers.length===0)return[l.valueFields.map(m=>({label:o(m.field)?`${r(m.field)} (${Pe(m.aggregation)})`:`${m.field} (${Pe(m.aggregation)})`,colspan:1}))];const b=[];for(let m=0;m<l.pivotResult.headers.length;m++){const R=l.pivotResult.headers[m],k=[];let B=0;for(;B<R.length;){const z=R[B];let q=1;for(;B+q<R.length&&R[B+q]===z;)q++;k.push({label:z,colspan:q}),B+=q}b.push(k)}return b}),G=e.ref(null),$=e.ref(null),C=e.ref(null),g=e.ref(!1),d=e.ref(!1),c=e.ref(""),u=e.computed(()=>!$.value||!C.value?null:{minRow:Math.min($.value.row,C.value.row),maxRow:Math.max($.value.row,C.value.row),minCol:Math.min($.value.col,C.value.col),maxCol:Math.max($.value.col,C.value.col)});function V(b,m,R){R.preventDefault(),R.shiftKey&&G.value?C.value={row:b,col:m}:(G.value={row:b,col:m},$.value={row:b,col:m},C.value={row:b,col:m},g.value=!0)}function D(b,m){g.value&&(C.value={row:b,col:m})}function j(){g.value=!1}function te(b,m){var q,Z;if(!u.value)return((q=G.value)==null?void 0:q.row)===b&&((Z=G.value)==null?void 0:Z.col)===m;const{minRow:R,maxRow:k,minCol:B,maxCol:z}=u.value;return b>=R&&b<=k&&m>=B&&m<=z}function ce(){var q;if(!u.value||!l.pivotResult)return;const{minRow:b,maxRow:m,minCol:R,maxCol:k}=u.value,B=[];for(let Z=b;Z<=m;Z++){const se=T.value[Z];if(se===void 0)continue;const _=[];for(let Q=R;Q<=k;Q++){const ie=(q=l.pivotResult.data[se])==null?void 0:q[Q];_.push((ie==null?void 0:ie.formattedValue)??"")}B.push(_.join(" "))}const z=B.join(`
|
|
9
|
-
`);navigator.clipboard.writeText(z).then(()=>{const Z=(m-b+1)*(k-R+1);c.value=`Copied ${Z} cell${Z>1?"s":""}`,d.value=!0,setTimeout(()=>{d.value=!1},2e3)}).catch(Z=>{console.error("Copy failed:",Z)})}function ve(b){if(u.value){if((b.ctrlKey||b.metaKey)&&b.key==="c"){b.preventDefault(),ce();return}b.key==="Escape"&&(G.value=null,$.value=null,C.value=null)}}const ae=e.computed(()=>{var se;if(!u.value||!l.pivotResult)return null;const{minRow:b,maxRow:m,minCol:R,maxCol:k}=u.value,B=[];let z=0;for(let _=b;_<=m;_++){const Q=T.value[_];if(Q!==void 0)for(let ie=R;ie<=k;ie++){const le=(se=l.pivotResult.data[Q])==null?void 0:se[ie];z++,(le==null?void 0:le.value)!==null&&(le==null?void 0:le.value)!==void 0&&typeof le.value=="number"&&B.push(le.value)}}if(z<=1)return null;const q=B.reduce((_,Q)=>_+Q,0),Z=B.length>0?q/B.length:0;return{count:z,numericCount:B.length,sum:q,avg:Z}});function Me(b){return Math.abs(b)>=1e6?`${(b/1e6).toFixed(2)}M`:Math.abs(b)>=1e3?`${(b/1e3).toFixed(2)}K`:b.toFixed(2)}e.onMounted(()=>{document.addEventListener("mouseup",j),document.addEventListener("keydown",ve)}),e.onUnmounted(()=>{document.removeEventListener("mouseup",j),document.removeEventListener("keydown",ve)});function de(b,m){m.preventDefault(),m.dataTransfer.dropEffect="move",y.value=b}function He(){y.value=null}function Ke(b,m){var B;m.preventDefault();const R=(B=m.dataTransfer)==null?void 0:B.getData("text/plain");if(!R||R.startsWith("reorder:")){y.value=null;return}l.rowFields.includes(R)&&a("removeRowField",R),l.columnFields.includes(R)&&a("removeColumnField",R);const k=l.valueFields.find(z=>z.field===R);switch(k&&a("removeValueField",R,k.aggregation),b){case"row":a("addRowField",R);break;case"column":a("addColumnField",R);break;case"value":a("addValueField",R,"sum");break}y.value=null}function Ce(b,m,R){E.value={zone:b,index:m},R.dataTransfer.effectAllowed="move",R.dataTransfer.setData("text/plain",`reorder:${b}:${m}`),requestAnimationFrame(()=>{y.value=null})}function Ne(){E.value=null,S.value=null}function ye(b,m,R){R.preventDefault(),E.value&&E.value.zone===b&&(R.dataTransfer.dropEffect="move",S.value={zone:b,index:m})}function De(){S.value=null}function $e(b,m,R){if(R.preventDefault(),R.stopPropagation(),!E.value||E.value.zone!==b)return;const k=E.value.index;if(k===m){E.value=null,S.value=null;return}const B=b==="row"?[...l.rowFields]:[...l.columnFields],[z]=B.splice(k,1);B.splice(m,0,z),a(b==="row"?"reorderRowFields":"reorderColumnFields",B),E.value=null,S.value=null}function Ie(b,m){var R,k;return((R=E.value)==null?void 0:R.zone)===b&&((k=E.value)==null?void 0:k.index)===m}function Re(b,m){var R,k;return((R=S.value)==null?void 0:R.zone)===b&&((k=S.value)==null?void 0:k.index)===m}const re=e.ref(180),Te=e.ref(80);return(b,m)=>{var R;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",Zn,[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",Qn,[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",Jn,[w.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-filter-indicator",onMouseenter:m[0]||(m[0]=k=>H.value=!0),onMouseleave:m[1]||(m[1]=k=>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",eo,[m[10]||(m[10]=e.createTextVNode(" Filtered: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(L.value),1),t.filteredRowCount!==void 0&&t.totalRowCount!==void 0?(e.openBlock(),e.createElementBlock("span",to," ("+e.toDisplayString(t.filteredRowCount.toLocaleString())+" of "+e.toDisplayString(t.totalRowCount.toLocaleString())+" rows) ",1)):e.createCommentVNode("",!0)]),H.value?(e.openBlock(),e.createElementBlock("div",lo,[m[11]||(m[11]=e.createElementVNode("div",{class:"vpg-tooltip-header"},"Active Filters",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.value,k=>(e.openBlock(),e.createElementBlock("div",{key:k.column,class:"vpg-tooltip-filter"},[e.createElementVNode("div",no,e.toDisplayString(k.column),1),e.createElementVNode("div",oo,[k.isRange?(e.openBlock(),e.createElementBlock("span",ao,e.toDisplayString(k.displayText),1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.values,(B,z)=>(e.openBlock(),e.createElementBlock("span",{key:z,class:"vpg-tooltip-value"},e.toDisplayString(B),1))),128)),k.remaining>0?(e.openBlock(),e.createElementBlock("span",ro," +"+e.toDisplayString(k.remaining)+" more ",1)):e.createCommentVNode("",!0)],64))])]))),128)),t.filteredRowCount!==void 0&&t.totalRowCount!==void 0?(e.openBlock(),e.createElementBlock("div",so," 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",io,[e.createElementVNode("span",co,e.toDisplayString(t.rowFields.length)+" row"+e.toDisplayString(t.rowFields.length!==1?"s":""),1),e.createElementVNode("span",uo,e.toDisplayString(t.columnFields.length)+" col"+e.toDisplayString(t.columnFields.length!==1?"s":""),1),e.createElementVNode("span",mo,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",go,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(N,k=>e.createElementVNode("button",{key:k.value,class:e.normalizeClass(["vpg-font-size-btn",{active:F.value===k.value}]),onClick:B=>F.value=k.value},e.toDisplayString(k.label),11,po)),64))])):e.createCommentVNode("",!0)])]),e.unref(f)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",vo,[e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-row-zone",{"vpg-drag-over":y.value==="row"}]),onDragover:m[2]||(m[2]=k=>de("row",k)),onDragleave:He,onDrop:m[3]||(m[3]=k=>Ke("row",k))},[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",ho,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.rowFields,(k,B)=>(e.openBlock(),e.createElementBlock("div",{key:k,class:e.normalizeClass(["vpg-mini-chip vpg-row-chip",{"vpg-chip-dragging":Ie("row",B),"vpg-chip-drop-target":Re("row",B)}]),draggable:"true",onDragstart:z=>Ce("row",B,z),onDragend:Ne,onDragover:z=>ye("row",B,z),onDragleave:De,onDrop:z=>$e("row",B,z)},[m[15]||(m[15]=e.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),e.createElementVNode("span",wo,e.toDisplayString(k),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:e.withModifiers(z=>a("removeRowField",k),["stop"])},"×",8,Vo)],42,ko))),128)),t.rowFields.length===0?(e.openBlock(),e.createElementBlock("span",Eo,"Drop here")):e.createCommentVNode("",!0)])],34),e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-column-zone",{"vpg-drag-over":y.value==="column"}]),onDragover:m[4]||(m[4]=k=>de("column",k)),onDragleave:He,onDrop:m[5]||(m[5]=k=>Ke("column",k))},[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",Co,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columnFields,(k,B)=>(e.openBlock(),e.createElementBlock("div",{key:k,class:e.normalizeClass(["vpg-mini-chip vpg-column-chip",{"vpg-chip-dragging":Ie("column",B),"vpg-chip-drop-target":Re("column",B)}]),draggable:"true",onDragstart:z=>Ce("column",B,z),onDragend:Ne,onDragover:z=>ye("column",B,z),onDragleave:De,onDrop:z=>$e("column",B,z)},[m[17]||(m[17]=e.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),e.createElementVNode("span",yo,e.toDisplayString(k),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:e.withModifiers(z=>a("removeColumnField",k),["stop"])},"×",8,bo)],42,No))),128)),t.columnFields.length===0?(e.openBlock(),e.createElementBlock("span",Fo,"Drop here")):e.createCommentVNode("",!0)])],34),e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-value-zone",{"vpg-drag-over":y.value==="value"}]),onDragover:m[6]||(m[6]=k=>de("value",k)),onDragleave:He,onDrop:m[7]||(m[7]=k=>Ke("value",k))},[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",So,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.valueFields,k=>(e.openBlock(),e.createElementBlock("div",{key:`${k.field}-${k.aggregation}`,class:e.normalizeClass(["vpg-mini-chip vpg-value-chip",{"vpg-calc-chip":o(k.field)}])},[e.createElementVNode("span",Bo,e.toDisplayString(o(k.field)?"ƒ":e.unref(it)(k.aggregation)),1),e.createElementVNode("span",xo,e.toDisplayString(r(k.field)),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:B=>a("removeValueField",k.field,k.aggregation)},"×",8,Mo)],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",$o,[e.createElementVNode("div",Ro,[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",To,[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",Lo,[e.createElementVNode("thead",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(U.value,(k,B)=>(e.openBlock(),e.createElementBlock("tr",{key:`header-${B}`,class:"vpg-column-header-row"},[B===0?(e.openBlock(),e.createElementBlock("th",{key:0,class:"vpg-row-header-label",rowspan:U.value.length,style:e.normalizeStyle({width:`${re.value}px`}),onClick:m[8]||(m[8]=z=>x("row"))},[e.createElementVNode("div",Po,[e.createElementVNode("span",null,e.toDisplayString(t.rowFields.join(" / ")||"Rows"),1),e.createElementVNode("span",{class:e.normalizeClass(["vpg-sort-indicator",{active:M.value==="row"}])},e.toDisplayString(M.value==="row"?P.value==="asc"?"↑":"↓":"⇅"),3)])],12,Ao)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k,(z,q)=>(e.openBlock(),e.createElementBlock("th",{key:q,class:"vpg-column-header-cell",colspan:z.colspan,style:e.normalizeStyle({width:`${Te.value*z.colspan}px`}),onClick:Z=>B===U.value.length-1&&x(q)},[e.createElementVNode("div",jo,[e.createElementVNode("span",null,e.toDisplayString(z.label),1),B===U.value.length-1?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["vpg-sort-indicator",{active:M.value===q}])},e.toDisplayString(M.value===q?P.value==="asc"?"↑":"↓":"⇅"),3)):e.createCommentVNode("",!0)])],12,Uo))),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,Ho)):e.createCommentVNode("",!0)]))),128))]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.value,k=>(e.openBlock(),e.createElementBlock("tr",{key:k,class:"vpg-data-row"},[e.createElementVNode("th",{class:"vpg-row-header-cell",style:e.normalizeStyle({width:`${re.value}px`})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.rowHeaders[k],(B,z)=>(e.openBlock(),e.createElementBlock("span",{key:z,class:"vpg-row-value"},e.toDisplayString(B),1))),128))],4),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.data[k],(B,z)=>(e.openBlock(),e.createElementBlock("td",{key:z,class:e.normalizeClass(["vpg-data-cell",[te(T.value.indexOf(k),z)&&"selected",B.value===null&&"vpg-is-null"]]),style:e.normalizeStyle({width:`${Te.value}px`}),onMousedown:q=>V(T.value.indexOf(k),z,q),onMouseenter:q=>D(T.value.indexOf(k),z)},e.toDisplayString(B.formattedValue),47,Ko))),128)),t.pivotResult.rowTotals[k]?(e.openBlock(),e.createElementBlock("td",Oo,e.toDisplayString(t.pivotResult.rowTotals[k].formattedValue),1)):e.createCommentVNode("",!0)]))),128)),t.pivotResult.columnTotals.length>0?(e.openBlock(),e.createElementBlock("tr",Wo,[e.createElementVNode("th",{class:"vpg-row-header-cell vpg-total-label",style:e.normalizeStyle({width:`${re.value}px`})}," Total ",4),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.columnTotals,(k,B)=>(e.openBlock(),e.createElementBlock("td",{key:B,class:"vpg-data-cell vpg-total-cell",style:e.normalizeStyle({width:`${Te.value}px`})},e.toDisplayString(k.formattedValue),5))),128)),t.pivotResult.rowTotals.length>0?(e.openBlock(),e.createElementBlock("td",qo,e.toDisplayString(t.pivotResult.grandTotal.formattedValue),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])])),t.isConfigured&&t.pivotResult?(e.openBlock(),e.createElementBlock("div",Go,[e.createElementVNode("span",_o,e.toDisplayString(t.pivotResult.rowHeaders.length)+" rows × "+e.toDisplayString(((R=t.pivotResult.data[0])==null?void 0:R.length)||0)+" columns",1),ae.value&&ae.value.count>1?(e.openBlock(),e.createElementBlock("div",Yo,[e.createElementVNode("span",Io,[m[29]||(m[29]=e.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),e.createElementVNode("span",Xo,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",Zo,[m[30]||(m[30]=e.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),e.createElementVNode("span",Qo,e.toDisplayString(Me(ae.value.sum)),1)]),m[33]||(m[33]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Jo,[m[31]||(m[31]=e.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),e.createElementVNode("span",ea,e.toDisplayString(Me(ae.value.avg)),1)])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("div",fo,[...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(h)}])},[e.unref(h)?(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",ta," Powered by TinyPivot "))],2)):e.createCommentVNode("",!0)],2)}}}),[["__scopeId","data-v-6b3a0147"]]),la={key:0,class:"vpg-toast"},na={class:"vpg-toolbar"},oa={class:"vpg-toolbar-left"},aa={key:0,class:"vpg-view-toggle"},ra={key:0,class:"vpg-search-container"},sa={key:1,class:"vpg-search-box"},ia={class:"vpg-font-size-control"},ca={class:"vpg-font-size-toggle"},da=["onClick"],ua={key:1,class:"vpg-filter-info"},ma={key:2,class:"vpg-search-info"},ga={key:0,class:"vpg-pivot-status"},pa={class:"vpg-toolbar-right"},fa=["disabled","title"],va={key:0,class:"vpg-loading"},ha={key:1,class:"vpg-empty"},ka={key:2,class:"vpg-empty"},wa={key:3,class:"vpg-table-wrapper"},Va=["onClick"],Ea={class:"vpg-header-content"},Ca={class:"vpg-header-text"},Na={class:"vpg-header-icons"},ya={key:0,class:"vpg-sort-indicator"},ba={key:0,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},Fa={key:1,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},Sa={key:1,class:"vpg-filter-indicator"},Ba=["onMousedown"],xa=["data-row","data-col","onMousedown","onMouseenter"],Ma={key:1,class:"vpg-pivot-container"},Da={key:0,class:"vpg-pivot-config-panel"},$a={class:"vpg-footer"},Ra={class:"vpg-footer-left"},Ta={key:0,class:"vpg-filtered-note"},za={key:1},La={class:"vpg-filtered-count"},Aa={key:0,class:"vpg-pagination"},Pa=["disabled"],Ua=["disabled"],ja={class:"vpg-page-info"},Ha=["disabled"],Ka=["disabled"],Oa={key:1,class:"vpg-selection-stats"},Wa={class:"vpg-stat"},qa={class:"vpg-stat-value"},Ga={class:"vpg-stat"},_a={class:"vpg-stat-value"},Ya={class:"vpg-stat"},Ia={class:"vpg-stat-value"},Xa={class:"vpg-footer-right"},Za={key:0,class:"vpg-demo-banner"},Qa={key:1,class:"vpg-watermark-inline"},Ve=120,Bt=350,Ja=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}=je(),h=e.computed(()=>{var i;return l.theme==="auto"?(i=window.matchMedia)!=null&&i.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light":l.theme}),y=e.ref(l.fontSize),E=e.ref(""),S=e.ref(!1),F=e.ref(1),N=e.ref(null),w=e.ref(0),L=e.ref(0),O=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"}],G=e.computed(()=>l.data),{table:$,columnKeys:C,filteredRowCount:g,totalRowCount:d,getColumnStats:c,hasActiveFilter:u,setColumnFilter:V,getColumnFilterValues:D,clearAllFilters:j,toggleSort:te,getSortDirection:ce,columnFilters:ve,activeFilters:ae,setNumericRangeFilter:Me,getNumericRangeFilter:de}=wt({data:G}),He=e.computed(()=>$.getFilteredRowModel().rows.map(n=>n.original)),Ke=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:De,showColumnTotals:$e,availableFields:Ie,isConfigured:Re,pivotResult:re,addRowField:Te,removeRowField:b,addColumnField:m,removeColumnField:R,addValueField:k,removeValueField:B,updateValueFieldAggregation:z,clearConfig:q,autoSuggestConfig:Z}=Vt(He),se=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})}),_=e.computed(()=>se.value.length),Q=e.computed(()=>l.enablePagination?Math.max(1,Math.ceil(_.value/l.pageSize)):1),ie=e.computed(()=>{if(!l.enablePagination)return se.value;const i=(F.value-1)*l.pageSize,n=i+l.pageSize;return se.value.slice(i,n)}),le=e.computed(()=>_.value===0?0:(F.value-1)*l.pageSize+1),be=e.computed(()=>Math.min(F.value*l.pageSize,_.value));function Oe(){F.value<Q.value&&F.value++}function er(){F.value>1&&F.value--}e.watch([ve,E],()=>{F.value=1});function xt(){if(ne.value==="pivot"){tr();return}const i=l.enableSearch&&E.value.trim()?se.value.map(n=>n.original):Fe.value.map(n=>n.original);Et(i,C.value,{filename:l.exportFilename,includeHeaders:!0}),r("export",{rowCount:i.length,filename:l.exportFilename})}function tr(){if(!re.value)return;const i=l.exportFilename.replace(".csv","-pivot.csv");Ct({headers:re.value.headers,rowHeaders:re.value.rowHeaders,data:re.value.data,rowTotals:re.value.rowTotals,columnTotals:re.value.columnTotals,grandTotal:re.value.grandTotal,showRowTotals:De.value,showColumnTotals:$e.value},Ce.value,Ne.value,ye.value,{filename:i});const n=re.value.rowHeaders.length;r("export",{rowCount:n,filename:i})}function lr(i,n){l.enableColumnResize&&(n.preventDefault(),n.stopPropagation(),N.value=i,w.value=n.clientX,L.value=he.value[i]||Ve,document.addEventListener("mousemove",Mt),document.addEventListener("mouseup",Dt))}function Mt(i){if(!N.value)return;const n=i.clientX-w.value,v=Math.max(Ve,Math.min(Bt,L.value+n));he.value={...he.value,[N.value]:v}}function Dt(){N.value=null,document.removeEventListener("mousemove",Mt),document.removeEventListener("mouseup",Dt)}function nr(i){l.enableVerticalResize&&(i.preventDefault(),H.value=!0,P.value=i.clientY,M.value=O.value,document.addEventListener("mousemove",$t),document.addEventListener("mouseup",Rt))}function $t(i){if(!H.value)return;const n=i.clientY-P.value,v=Math.max(l.minHeight,Math.min(l.maxHeight,M.value+n));O.value=v}function Rt(){H.value=!1,document.removeEventListener("mousemove",$t),document.removeEventListener("mouseup",Rt)}function Tt(){if(!me.value||!l.enableClipboard)return;const i=yt(Fe.value.map(n=>n.original),C.value,me.value);Nt(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 ne=e.ref("grid"),ze=e.ref(!0),tt=e.ref(null),pe=e.ref(pt());function or(i){i.id||(i.id=`calc_${Date.now()}_${Math.random().toString(36).substr(2,9)}`),pe.value=[...pe.value,i],Ue(pe.value)}function ar(i){pe.value=pe.value.filter(A=>A.id!==i),Ue(pe.value);const n=`calc:${i}`,v=ye.value.find(A=>A.field===n);v&&B(n,v.aggregation)}function rr(i){pe.value=pe.value.map(n=>n.id===i.id?i:n),Ue(pe.value)}function sr(i){tt.value=i}function ir(){tt.value=null}function cr(i){Ce.value=i}function dr(i){Ne.value=i}const lt=e.ref(),zt=e.ref(),Fe=e.computed(()=>$.getRowModel().rows),J=e.ref(null),Xe=e.ref({top:0,left:0,maxHeight:400}),he=e.ref({});function Lt(){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 K of C.value){let X=A.measureText(K).width+56;for(let I=0;I<n;I++){const Y=l.data[I][K],ee=Y==null?"":String(Y),we=A.measureText(ee).width+28;X=Math.max(X,we)}i[K]=Math.min(Math.max(X,Ve),Bt)}he.value=i}}function ur(i,n){n.stopPropagation();const v=n.currentTarget,A=v.closest(".vpg-header-cell"),K=(A==null?void 0:A.getBoundingClientRect())||v.getBoundingClientRect(),X=280,I=12;let Y=K.left;Y+X>window.innerWidth-I&&(Y=window.innerWidth-X-I),Y=Math.max(I,Y);const ee=window.innerHeight-K.bottom-I,we=K.top-I;let Se,Be;ee>=300||ee>=we?(Se=K.bottom+4,Be=Math.min(400,ee-4)):(Be=Math.min(400,we-4),Se=K.top-Be-4),Xe.value={top:Se,left:Y,maxHeight:Be},J.value=i}function Ze(){J.value=null}function mr(i,n){V(i,n)}function gr(i,n){Me(i,n)}function pr(i,n){if(n===null)ce(i)&&(te(i),ce(i)&&te(i));else{const v=ce(i);v===null?(te(i),n==="desc"&&ce(i)==="asc"&&te(i)):v!==n&&te(i)}}const Qe=e.computed(()=>ve.value.length),ke=e.ref(null),fe=e.ref(null),ue=e.ref(null),nt=e.ref(!1);function fr(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 vr(i,n){if(n.target.closest(".vpg-dropdown-arrow")){const A=C.value[i];ur(A,n)}else fr(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 hr(i,n){if(!me.value)return!1;const{minRow:v,maxRow:A,minCol:K,maxCol:X}=me.value;return i>=v&&i<=A&&n>=K&&n<=X}const Le=e.computed(()=>{if(!me.value)return null;const{minRow:i,maxRow:n,minCol:v,maxCol:A}=me.value,K=[];let X=0;for(let ee=i;ee<=n;ee++){const we=Fe.value[ee];if(we)for(let Se=v;Se<=A;Se++){const Be=C.value[Se];if(!Be)continue;const Ae=we.original[Be];if(X++,Ae!=null&&Ae!==""){const Kt=typeof Ae=="number"?Ae:Number.parseFloat(String(Ae));Number.isNaN(Kt)||K.push(Kt)}}}if(K.length===0)return{count:X,sum:null,avg:null,numericCount:0};const I=K.reduce((ee,we)=>ee+we,0),Y=I/K.length;return{count:X,sum:I,avg:Y,numericCount:K.length}});function At(i){return i===null?"-":Math.abs(i)>=1e3?i.toLocaleString("en-US",{maximumFractionDigits:2}):i.toLocaleString("en-US",{maximumFractionDigits:4})}function Pt(i){if((i.ctrlKey||i.metaKey)&&i.key==="c"&&me.value){i.preventDefault(),Tt();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||J.value)return;const{row:n,col:v}=ke.value,K=ie.value.length-1,X=C.value.length-1;function I(Y,ee){i.shiftKey?(fe.value||(fe.value={row:n,col:v}),ue.value={row:Y,col:ee}):(fe.value={row:Y,col:ee},ue.value={row:Y,col:ee}),ke.value={row:Y,col:ee},kr(Y,ee)}switch(i.key){case"ArrowUp":i.preventDefault(),n>0&&I(n-1,v);break;case"ArrowDown":i.preventDefault(),n<K&&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 kr(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 wr(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},nt.value=!0);const A=Fe.value[i];if(A){const K=C.value[n];r("cellClick",{row:i,col:n,value:A.original[K],rowData:A.original})}}function Vr(i,n){nt.value&&(ue.value={row:i,col:n})}function Ut(){nt.value=!1}function Er(i,n){var v,A;return hr(i,n)?!0:((v=ke.value)==null?void 0:v.row)===i&&((A=ke.value)==null?void 0:A.col)===n}const Cr=/^(?:.*_)?(?: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 Nr(i){return!Cr.test(i)}function yr(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):Nr(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 jt(){J.value&&Ze()}function Ht(i){var n;if(J.value){const v=i.target;if(v&&((n=v.closest)!=null&&n.call(v,".vpg-filter-portal")))return;Ze()}}e.onMounted(()=>{Lt(),document.addEventListener("keydown",Pt),document.addEventListener("mouseup",Ut),e.nextTick(()=>{var i;(i=lt.value)==null||i.addEventListener("scroll",jt,{passive:!0})}),window.addEventListener("scroll",Ht,{passive:!0,capture:!0})}),e.onUnmounted(()=>{var i;document.removeEventListener("keydown",Pt),document.removeEventListener("mouseup",Ut),(i=lt.value)==null||i.removeEventListener("scroll",jt),window.removeEventListener("scroll",Ht,{capture:!0})}),e.watch(()=>l.data,()=>{e.nextTick(Lt)},{immediate:!0});const br=e.computed(()=>C.value.reduce((i,n)=>i+(he.value[n]||Ve),0));function Fr(i){J.value&&(i.target.closest(".vpg-filter-portal")||Ze())}return(i,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vpg-data-grid",[`vpg-font-${y.value}`,`vpg-theme-${h.value}`,{"vpg-striped":t.stripedRows},{"vpg-resizing":N.value},{"vpg-resizing-vertical":H.value}]]),style:e.normalizeStyle({height:`${O.value}px`}),onClick:Fr},[e.createVNode(e.Transition,{name:"vpg-toast"},{default:e.withCtx(()=>[x.value?(e.openBlock(),e.createElementBlock("div",la,[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",na,[e.createElementVNode("div",oa,[t.showPivot?(e.openBlock(),e.createElementBlock("div",aa,[e.createElementVNode("button",{class:e.normalizeClass(["vpg-view-btn",{active:ne.value==="grid"}]),onClick:n[0]||(n[0]=v=>ne.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:ne.value==="pivot"}]),onClick:n[1]||(n[1]=v=>ne.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),ne.value==="grid"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.enableSearch?(e.openBlock(),e.createElementBlock("div",ra,[S.value?(e.openBlock(),e.createElementBlock("div",sa,[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",ia,[n[23]||(n[23]=e.createElementVNode("span",{class:"vpg-label"},"Size:",-1)),e.createElementVNode("div",ca,[(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:y.value===v.value}]),onClick:A=>y.value=v.value},e.toDisplayString(v.label),11,da)),64))])]),Qe.value>0?(e.openBlock(),e.createElementBlock("div",ua,[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(Qe.value)+" filter"+e.toDisplayString(Qe.value>1?"s":""),1)])):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createElementBlock("div",ma,[e.createElementVNode("span",null,e.toDisplayString(_.value)+" match"+e.toDisplayString(_.value!==1?"es":""),1)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),ne.value==="pivot"&&e.unref(a)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("button",{class:e.normalizeClass(["vpg-config-toggle",{active:ze.value}]),onClick:n[6]||(n[6]=v=>ze.value=!ze.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(ze.value?"Hide":"Show")+" Config ",1)],2),e.unref(Re)?(e.openBlock(),e.createElementBlock("div",ga,[...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",pa,[ne.value==="grid"&&Qe.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&&ne.value==="grid"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"vpg-icon-btn",title:"Copy selection (Ctrl+C)",onClick:Tt},[...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&&ne.value==="grid"?(e.openBlock(),e.createElementBlock("button",{key:2,class:"vpg-export-btn",title:"Export to CSV",onClick:xt},[...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&&ne.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)&&xt())},[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,fa)):e.createCommentVNode("",!0)])]),ne.value==="grid"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"tableContainerRef",ref:lt,class:"vpg-grid-container",tabindex:"0"},[t.loading?(e.openBlock(),e.createElementBlock("div",va,[...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",ha,[...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",ka,[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",wa,[e.createElementVNode("table",{class:"vpg-table",style:e.normalizeStyle({minWidth:`${br.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(ce)(v)!==null,"vpg-is-active":J.value===v}]),style:e.normalizeStyle({width:`${he.value[v]||Ve}px`,minWidth:`${he.value[v]||Ve}px`}),onClick:K=>vr(A,K)},[e.createElementVNode("div",Ea,[e.createElementVNode("span",Ca,e.toDisplayString(v),1),e.createElementVNode("div",Na,[e.unref(ce)(v)?(e.openBlock(),e.createElementBlock("span",ya,[e.unref(ce)(v)==="asc"?(e.openBlock(),e.createElementBlock("svg",ba,[...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",Fa,[...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",Sa,[...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:K=>lr(v,K)},null,40,Ba)):e.createCommentVNode("",!0)],14,Va))),128))])]),e.createElementVNode("tbody",{ref_key:"tableBodyRef",ref:zt},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ie.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),(K,X)=>(e.openBlock(),e.createElementBlock("td",{key:K,class:e.normalizeClass(["vpg-cell",{"vpg-selected":Er(A,X),"vpg-is-number":e.unref(c)(K).type==="number"}]),"data-row":A,"data-col":X,style:e.normalizeStyle({width:`${he.value[K]||Ve}px`,minWidth:`${he.value[K]||Ve}px`}),onMousedown:I=>wr(A,X,I),onMouseenter:I=>Vr(A,X)},e.toDisplayString(yr(v.original[K],K)),47,xa))),128))]))),128))],512)],4)]))],512)):(e.openBlock(),e.createElementBlock("div",Ma,[ze.value&&e.unref(a)?(e.openBlock(),e.createElementBlock("div",Da,[e.createVNode(Ft,{"available-fields":e.unref(Ie),"row-fields":e.unref(Ce),"column-fields":e.unref(Ne),"value-fields":e.unref(ye),"show-row-totals":e.unref(De),"show-column-totals":e.unref($e),"calculated-fields":pe.value,"onUpdate:showRowTotals":n[10]||(n[10]=v=>De.value=v),"onUpdate:showColumnTotals":n[11]||(n[11]=v=>$e.value=v),onClearConfig:e.unref(q),onDragStart:sr,onDragEnd:ir,onUpdateAggregation:e.unref(z),onAddRowField:e.unref(Te),onRemoveRowField:e.unref(b),onAddColumnField:e.unref(m),onRemoveColumnField:e.unref(R),onAddValueField:e.unref(k),onRemoveValueField:e.unref(B),onAddCalculatedField:or,onRemoveCalculatedField:ar,onUpdateCalculatedField:rr},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":!ze.value}])},[e.createVNode(St,{"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":tt.value,"pivot-result":e.unref(re),"font-size":y.value,"active-filters":Ke.value,"total-row-count":e.unref(d),"filtered-row-count":e.unref(g),onAddRowField:e.unref(Te),onRemoveRowField:e.unref(b),onAddColumnField:e.unref(m),onRemoveColumnField:e.unref(R),onAddValueField:e.unref(k),onRemoveValueField:e.unref(B),onUpdateAggregation:e.unref(z),onReorderRowFields:cr,onReorderColumnFields:dr},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",$a,[e.createElementVNode("div",Ra,[ne.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(le.value.toLocaleString())+"-"+e.toDisplayString(be.value.toLocaleString()),1),n[39]||(n[39]=e.createElementVNode("span",{class:"vpg-separator"},"of",-1)),e.createElementVNode("span",null,e.toDisplayString(_.value.toLocaleString()),1),_.value!==e.unref(d)?(e.openBlock(),e.createElementBlock("span",Ta," ("+e.toDisplayString(e.unref(d).toLocaleString())+" total) ",1)):e.createCommentVNode("",!0)],64)):e.unref(g)===e.unref(d)&&_.value===e.unref(d)?(e.openBlock(),e.createElementBlock("span",za,e.toDisplayString(e.unref(d).toLocaleString())+" records",1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("span",La,e.toDisplayString(_.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&&ne.value==="grid"&&Q.value>1?(e.openBlock(),e.createElementBlock("div",Aa,[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,Pa),e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===1,onClick:er},[...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,Ua),e.createElementVNode("span",ja," Page "+e.toDisplayString(F.value)+" of "+e.toDisplayString(Q.value),1),e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===Q.value,onClick:Oe},[...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,Ha),e.createElementVNode("button",{class:"vpg-page-btn",disabled:F.value===Q.value,onClick:n[13]||(n[13]=v=>F.value=Q.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,Ka)])):e.createCommentVNode("",!0),ne.value==="grid"&&Le.value&&Le.value.count>1?(e.openBlock(),e.createElementBlock("div",Oa,[e.createElementVNode("span",Wa,[n[48]||(n[48]=e.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),e.createElementVNode("span",qa,e.toDisplayString(Le.value.count),1)]),Le.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",Ga,[n[49]||(n[49]=e.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),e.createElementVNode("span",_a,e.toDisplayString(At(Le.value.sum)),1)]),n[52]||(n[52]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Ya,[n[50]||(n[50]=e.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),e.createElementVNode("span",Ia,e.toDisplayString(At(Le.value.avg)),1)])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Xa,[e.unref(p)?(e.openBlock(),e.createElementBlock("div",Za,[...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",Qa,[...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:nr},[...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"},[J.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-filter-portal",style:e.normalizeStyle({position:"fixed",top:`${Xe.value.top}px`,left:`${Xe.value.left}px`,maxHeight:`${Xe.value.maxHeight}px`,zIndex:9999})},[e.createVNode(bt,{"column-id":J.value,"column-name":J.value,stats:e.unref(c)(J.value),"selected-values":e.unref(D)(J.value),"sort-direction":e.unref(ce)(J.value),"numeric-range":e.unref(de)(J.value),onFilter:n[14]||(n[14]=v=>mr(J.value,v)),onRangeFilter:n[15]||(n[15]=v=>gr(J.value,v)),onSort:n[16]||(n[16]=v=>pr(J.value,v)),onClose:Ze},null,8,["column-id","column-name","stats","selected-values","sort-direction","numeric-range"])],4)):e.createCommentVNode("",!0)]))],6))}}),[["__scopeId","data-v-7b06f760"]]);W.ColumnFilter=bt,W.DataGrid=Ja,W.PivotConfig=Ft,W.PivotSkeleton=St,W.configureLicenseSecret=yl,W.copyToClipboard=Nt,W.enableDemoMode=Nl,W.exportPivotToCSV=Ct,W.exportToCSV=Et,W.formatCellValue=at,W.formatSelectionForClipboard=yt,W.getAggregationLabel=Pe,W.getColumnUniqueValues=ot,W.setLicenseKey=Cl,W.useColumnResize=Bl,W.useExcelGrid=wt,W.useGlobalSearch=Fl,W.useLicense=je,W.usePagination=bl,W.usePivotTable=Vt,W.useRowSelection=Sl,Object.defineProperty(W,Symbol.toStringTag,{value:"Module"})});
|
|
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"})});
|
|
10
10
|
//# sourceMappingURL=tinypivot-vue.umd.cjs.map
|