@smallwebco/tinypivot-vue 1.0.38 → 1.0.48

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,7 +1,10 @@
1
- (function(O,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):(O=typeof globalThis<"u"?globalThis:O||self,e(O.TinyPivotVue={},O.Vue,O.VueTable))})(this,function(O,e,We){"use strict";function _e(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)&&("min"in t||"max"in t)}function Ht(t){const c=t.filter(f=>f!=null&&f!=="");if(c.length===0)return"string";const l=c.slice(0,100);let i=0,a=0,s=0;for(const f of l)typeof f=="boolean"?s++:typeof f=="number"||!Number.isNaN(Number(f))&&f!==""?i++:(f instanceof Date||!Number.isNaN(Date.parse(String(f))))&&a++;const g=l.length*.8;return s>=g?"boolean":i>=g?"number":a>=g?"date":"string"}function Kt(t,c){const i=t.map(f=>f[c]).filter(f=>f!=null&&f!=="").slice(0,100);let a=0;const s=new Set;for(const f of i)s.add(String(f)),(typeof f=="number"||!Number.isNaN(Number(f))&&f!=="")&&a++;const g=a>=i.length*.8;return{field:c,type:g?"number":"string",uniqueCount:s.size,isNumeric:g}}function ot(t,c,l=500){const i=[];let a=0,s,g;for(const k of t){const N=k[c];if(N==null||N==="")a++;else{i.push(N);const R=typeof N=="number"?N:Number.parseFloat(String(N));Number.isNaN(R)||((s===void 0||R<s)&&(s=R),(g===void 0||R>g)&&(g=R))}}const f=new Set;for(const k of i)if(f.add(String(k)),f.size>=l)break;const V=Array.from(f).sort((k,N)=>{const R=Number.parseFloat(k),y=Number.parseFloat(N);return!Number.isNaN(R)&&!Number.isNaN(y)?R-y:k.localeCompare(N)}),E=Ht(i);return{uniqueValues:V,totalCount:t.length,nullCount:a,type:E,...E==="number"&&s!==void 0&&g!==void 0?{numericMin:s,numericMax:g}:{}}}function at(t,c){if(t==null||t==="")return"";switch(c){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,c){return c.map(l=>String(t[l]??"(blank)")).join("|||")}function st(t){return t.split("|||")}function Ot(t){const c=[...t].sort((i,a)=>i-a),l=Math.floor(c.length/2);return c.length%2!==0?c[l]:(c[l-1]+c[l])/2}function Wt(t){const c=t.reduce((a,s)=>a+s,0)/t.length,i=t.map(a=>(a-c)**2).reduce((a,s)=>a+s,0)/t.length;return Math.sqrt(i)}function qe(t,c,l,i,a){if(t.length===0&&c!=="custom")return null;switch(c){case"sum":return t.reduce((s,g)=>s+g,0);case"count":return t.length;case"avg":return t.reduce((s,g)=>s+g,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 Ot(t);case"stdDev":return Wt(t);case"percentOfTotal":{const s=t.reduce((g,f)=>g+f,0);return l===void 0||l===0?null:s/l*100}case"custom":return null;default:return t.reduce((s,g)=>s+g,0)}}function Ge(t,c){return t===null?"-":c==="count"||c==="countDistinct"?Math.round(t).toLocaleString():c==="percentOfTotal"?`${t.toFixed(1)}%`:c==="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,c){return t==="custom"&&c?c:{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,c){return t==="custom"&&c?c:{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 qt(t,c,l=2){if(t===null)return"-";switch(c){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 c=t.match(/[a-zA-Z_][a-zA-Z0-9_]*/g)||[],l=["true","false","null","undefined"];return[...new Set(c.filter(i=>!l.includes(i.toLowerCase())))]}function dt(t,c){if(!t.trim())return"Formula is required";const l=ct(t);if(l.length===0)return"Formula must reference at least one field";const i=c.map(a=>a.toLowerCase());for(const a of l)if(!i.includes(a.toLowerCase()))return`Unknown field: ${a}`;try{let a=t;for(const s of l){const g=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");a=a.replace(new RegExp(`\\b${g}\\b`,"gi"),"1")}new Function(`return ${a}`)}catch{return"Invalid formula syntax"}return null}function ut(t,c,l){try{const i=ct(t);let a=t;for(const g of i){const f=l.find(N=>N.toLowerCase()===g.toLowerCase())||g,V=c[f];if(V==null||V==="")return null;const E=typeof V=="number"?V:Number.parseFloat(String(V));if(Number.isNaN(E))return null;const k=g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");a=a.replace(new RegExp(`\\b${k}\\b`,"gi"),String(E))}if(!/^[\d\s+\-*/().]+$/.test(a))return null;const s=new Function(`return ${a}`)();return typeof s=="number"&&Number.isFinite(s)?s:null}catch{return null}}function Gt(t){return t.length===0?[]:Object.keys(t[0]).map(l=>Kt(t,l))}function Xt(t,c,l,i){const a=new Set([...c,...l,...i.map(s=>s.field)]);return t.filter(s=>!a.has(s.field))}function mt(t){return(t.rowFields.length>0||t.columnFields.length>0)&&t.valueFields.length>0}function Yt(t,c){const{rowFields:l,columnFields:i,valueFields:a,showRowTotals:s,showColumnTotals:g,calculatedFields:f}=c;if(!mt(c)||t.length===0)return null;const V=new Map;if(f)for(const S of f)V.set(S.id,S);const E=t.length>0?Object.keys(t[0]):[],k=new Set,N=new Set,R=new Map;for(const S of t){const C=l.length>0?rt(S,l):"__all__",r=i.length>0?rt(S,i):"__all__";k.add(C),N.add(r),R.has(C)||R.set(C,new Map);const o=R.get(C);o.has(r)||o.set(r,a.map(()=>[]));const d=o.get(r);for(let p=0;p<a.length;p++){const U=a[p];let j=null;if(U.field.startsWith("calc:")){const W=U.field.replace("calc:",""),le=V.get(W);le&&(j=ut(le.formula,S,E))}else{const W=S[U.field];W!=null&&W!==""&&(j=typeof W=="number"?W:Number.parseFloat(String(W)),Number.isNaN(j)&&(j=U.aggregation==="count"||U.aggregation==="countDistinct"?1:null))}j!==null&&d[p].push(j)}}const y=Array.from(k).sort(),w=Array.from(N).sort(),M=a.map((S,C)=>{let r=0;for(const o of t){let d=null;if(S.field.startsWith("calc:")){const p=S.field.replace("calc:",""),U=V.get(p);U&&(d=ut(U.formula,o,E))}else{const p=o[S.field];p!=null&&p!==""&&(d=typeof p=="number"?p:Number.parseFloat(String(p)),Number.isNaN(d)&&(d=null))}d!==null&&(r+=d)}return r});function K(S){if(S.field.startsWith("calc:")){const C=S.field.replace("calc:",""),r=V.get(C);return`${(r==null?void 0:r.name)||S.field} (${je(S.aggregation)})`}return`${S.label||S.field} (${je(S.aggregation)})`}const A=[];if(i.length>0){const S=a.length>1?a.length:1;for(let C=0;C<i.length;C++){const r=[];for(const o of w){const d=st(o);for(let p=0;p<S;p++)r.push(d[C]||"")}A.push(r)}}if(a.length>1||A.length===0){const S=[];for(const C of w)for(const r of a)S.push(K(r));w.length===1&&w[0]==="__all__"?A.push(a.map(C=>K(C))):A.push(S)}const L=y.map(S=>S==="__all__"?["Total"]:st(S)),$=[],B=[],D=new Map;for(const S of y){const C=[],r=a.map(()=>[]);for(const o of w){const d=R.get(S),p=(d==null?void 0:d.get(o))||a.map(()=>[]);for(let j=0;j<p.length;j++)r[j].push(...p[j]);D.has(o)||D.set(o,a.map(()=>[]));const U=D.get(o);for(let j=0;j<p.length;j++)U[j].push(...p[j]);for(let j=0;j<a.length;j++){const W=a[j],le=p[j]||[],Me=M[j],fe=qe(le,W.aggregation,Me);let re;if(W.field.startsWith("calc:")){const xe=W.field.replace("calc:",""),se=V.get(xe);re=qt(fe,(se==null?void 0:se.formatAs)||"number",(se==null?void 0:se.decimals)??2)}else re=Ge(fe,W.aggregation);C.push({value:fe,count:le.length,formattedValue:re})}}if($.push(C),s&&w.length>1)if(a.length>0){const o=a[0],d=r[0]||[],p=qe(d,o.aggregation,M[0]);B.push({value:p,count:d.length,formattedValue:Ge(p,o.aggregation)})}else B.push({value:null,count:0,formattedValue:"-"})}const P=[];if(g&&y.length>1)for(const S of w){const C=D.get(S)||a.map(()=>[]);for(let r=0;r<a.length;r++){const o=a[r],d=C[r]||[],p=qe(d,o.aggregation,M[r]);P.push({value:p,count:d.length,formattedValue:Ge(p,o.aggregation)})}}const G={value:null,count:0,formattedValue:"-"};if(s&&g&&a.length>0){const S=a.map(()=>[]);for(const d of y){const p=R.get(d);if(p)for(const U of w){const j=p.get(U);if(j)for(let W=0;W<j.length;W++)S[W].push(...j[W])}}const C=a[0],r=S[0]||[],o=qe(r,C.aggregation,M[0]);G.value=o,G.count=r.length,G.formattedValue=Ge(o,C.aggregation)}return{headers:A,rowHeaders:L,data:$,rowTotals:B,columnTotals:P,grandTotal:G}}const Zt="vpg-pivot-";function Jt(t){const l=[...t].sort().join("|").substring(0,100);return`${Zt}${l}`}function Qt(t,c){try{sessionStorage.setItem(t,JSON.stringify(c))}catch{}}function It(t){try{const c=sessionStorage.getItem(t);if(c)return JSON.parse(c)}catch{}return null}function Qe(t,c){const l=new Set(c);return[...t.rowFields,...t.columnFields,...t.valueFields.map(a=>a.field)].filter(a=>!a.startsWith("calc:")).every(a=>l.has(a))}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:!1,advancedAggregations:!1,percentageMode:!1,sessionPersistence:!1,noWatermark:!1}},Ie={type:"free",isValid:!1,features:{pivot:!1,advancedAggregations:!1,percentageMode:!1,sessionPersistence:!1,noWatermark:!1}},el={type:"free",isValid:!0,features:{pivot:!0,advancedAggregations:!0,percentageMode:!0,sessionPersistence:!0,noWatermark:!1}};async function tl(t,c,l){const i=globalThis.__TP_LICENSE_SECRET__;if(!i)return console.warn("[TinyPivot] License secret not configured. Call configureLicenseSecret() first."),!1;const a=`TP-${t}-${l}`;try{const s=new TextEncoder,g=s.encode(i),f=s.encode(a),V=await crypto.subtle.importKey("raw",g,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),E=await crypto.subtle.sign("HMAC",V,f),N=Array.from(new Uint8Array(E)).map(R=>R.toString(16).padStart(2,"0")).join("").slice(0,12).toUpperCase();return c===N}catch{return!1}}async function ll(t){if(!t||t==="")return ft;const c=t.split("-");if(c.length!==4||c[0]!=="TP")return Ie;const l=c[1],i=c[2],a=c[3];if(!await tl(l,i,a))return Ie;const g=Number.parseInt(a.slice(0,4)),f=Number.parseInt(a.slice(4,6))-1,V=Number.parseInt(a.slice(6,8)),E=new Date(g,f,V);if(E<new Date)return{...Ie,expiresAt:E};let k="free";return l==="PRO1"?k="pro-single":l==="PROU"?k="pro-unlimited":l==="PROT"&&(k="pro-team"),{type:k,isValid:!0,expiresAt:E,features:{pivot:k!=="free",advancedAggregations:k!=="free",percentageMode:k!=="free",sessionPersistence:k!=="free",noWatermark:k!=="free"}}}function nl(t){globalThis.__TP_LICENSE_SECRET__=t}const ol="A48AA0618518D3E62F31FCFCA2DD2B86E7FE0863E2F90756FB0A960AE7A51583";async function al(t){try{const l=new TextEncoder().encode(t),i=await crypto.subtle.digest("SHA-256",l);return Array.from(new Uint8Array(i)).map(s=>s.toString(16).padStart(2,"0")).join("").toUpperCase()}catch{return""}}async function rl(t){return!t||await al(t)!==ol?null:el}function sl(){return ft}function il(t){return t.features.pivot}function cl(t){return t.isValid&&t.type!=="free"}function dl(t,c){return c||!t.features.noWatermark}function ul(t){console.warn(`[TinyPivot] "${t}" requires a Pro license. Visit https://tiny-pivot.com/#pricing to upgrade.`)}function oe(t,c=","){if(t==null)return"";const l=String(t);return l.includes(c)||l.includes('"')||l.includes(`
2
- `)?`"${l.replace(/"/g,'""')}"`:l}function ml(t,c,l={}){const{filename:i="export.csv",includeHeaders:a=!0,delimiter:s=","}=l,g=[];a&&g.push(c.map(V=>oe(V,s)).join(s));for(const V of t){const E=c.map(k=>oe(V[k],s));g.push(E.join(s))}const f=g.join(`
3
- `);vt(f,i,"text/csv;charset=utf-8;")}function gl(t,c,l,i,a={}){const{filename:s="pivot-export.csv",delimiter:g=","}=a,f=[],{headers:V,rowHeaders:E,data:k,rowTotals:N,columnTotals:R,grandTotal:y,showRowTotals:w,showColumnTotals:M}=t,K=c.length||1;if(V.length>0)for(let L=0;L<V.length;L++){const $=[];for(let B=0;B<K;B++)$.push(L===V.length-1?oe(c[B]||"",g):"");for(const B of V[L])$.push(oe(B,g));if(w&&N&&N.length>0)if(L===V.length-1)for(const B of i)$.push(oe(`Total (${B.aggregation})`,g));else for(let B=0;B<i.length;B++)$.push("");f.push($.join(g))}else{const L=[];for(let $=0;$<K;$++)L.push(oe(c[$]||"",g));for(const $ of i)L.push(oe(`${$.field} (${$.aggregation})`,g));w&&N&&N.length>0&&L.push(oe("Total",g)),f.push(L.join(g))}for(let L=0;L<E.length;L++){const $=[],B=E[L]||[];for(let P=0;P<K;P++)$.push(oe(B[P]||"",g));const D=k[L]||[];for(const P of D)$.push(oe((P==null?void 0:P.formattedValue)||"",g));w&&N&&N[L]&&$.push(oe(N[L].formattedValue||"",g)),f.push($.join(g))}if(M&&R&&R.length>0){const L=[];L.push(oe("Total",g));for(let $=1;$<K;$++)L.push("");for(const $ of R)L.push(oe(($==null?void 0:$.formattedValue)||"",g));w&&y&&L.push(oe(y.formattedValue||"",g)),f.push(L.join(g))}const A=f.join(`
4
- `);vt(A,s,"text/csv;charset=utf-8;")}function vt(t,c,l){const i=new Blob([t],{type:l}),a=URL.createObjectURL(i),s=document.createElement("a");s.href=a,s.download=c,s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(a)}function pl(t,c,l){navigator.clipboard.writeText(t).then(c).catch(l)}function fl(t,c,l){const{minRow:i,maxRow:a,minCol:s,maxCol:g}=l,f=[];for(let V=i;V<=a;V++){const E=t[V];if(!E)continue;const k=[];for(let N=s;N<=g;N++){const R=c[N];if(!R)continue;const y=E[R];k.push(y==null?"":String(y))}f.push(k.join(" "))}return f.join(`
5
- `)}const ht=(t,c,l)=>{if(!l)return!0;if(_e(l)){const i=t.getValue(c);if(i==null||i==="")return!1;const a=typeof i=="number"?i:Number.parseFloat(String(i));if(Number.isNaN(a))return!1;const{min:s,max:g}=l;return!(s!==null&&a<s||g!==null&&a>g)}if(Array.isArray(l)&&l.length>0){const i=t.getValue(c),a=i==null||i===""?"(blank)":String(i);return l.includes(a)}return!0};function kt(t){const{data:c,enableSorting:l=!0,enableFiltering:i=!0}=t,a=e.ref([]),s=e.ref([]),g=e.ref({}),f=e.ref(""),V=e.ref({}),E=e.computed(()=>c.value.length===0?[]:Object.keys(c.value[0]));function k(C){const r=`${C}-${c.value.length}`;return V.value[r]||(V.value[r]=ot(c.value,C)),V.value[r]}function N(){V.value={}}const R=e.computed(()=>E.value.map(C=>{const r=k(C);return{id:C,accessorKey:C,header:C,cell:o=>at(o.getValue(),r.type),filterFn:ht,meta:{type:r.type,uniqueCount:r.uniqueValues.length}}})),y=We.useVueTable({get data(){return c.value},get columns(){return R.value},state:{get sorting(){return a.value},get columnFilters(){return s.value},get columnVisibility(){return g.value},get globalFilter(){return f.value}},onSortingChange:C=>{a.value=typeof C=="function"?C(a.value):C},onColumnFiltersChange:C=>{s.value=typeof C=="function"?C(s.value):C},getCoreRowModel:We.getCoreRowModel(),getSortedRowModel:l?We.getSortedRowModel():void 0,getFilteredRowModel:i?We.getFilteredRowModel():void 0,filterFns:{multiSelect:ht},enableSorting:l,enableFilters:i}),w=e.computed(()=>y.getFilteredRowModel().rows.length),M=e.computed(()=>c.value.length),K=e.computed(()=>s.value.map(C=>{const r=C.value;return r&&_e(r)?{column:C.id,type:"range",range:r,values:[]}:{column:C.id,type:"values",values:Array.isArray(r)?r:[],range:null}}));function A(C){const r=y.getColumn(C);if(!r)return!1;const o=r.getFilterValue();return o?_e(o)?o.min!==null||o.max!==null:Array.isArray(o)&&o.length>0:!1}function L(C,r){const o=y.getColumn(C);o&&(o.setFilterValue(r.length===0?void 0:r),s.value=y.getState().columnFilters)}function $(C,r){const o=y.getColumn(C);o&&(!r||r.min===null&&r.max===null?o.setFilterValue(void 0):o.setFilterValue(r),s.value=y.getState().columnFilters)}function B(C){const r=y.getColumn(C);if(!r)return null;const o=r.getFilterValue();return o&&_e(o)?o:null}function D(){y.resetColumnFilters(),f.value="",s.value=[]}function P(C){const r=y.getColumn(C);if(!r)return[];const o=r.getFilterValue();return Array.isArray(o)?o:[]}function G(C){const r=a.value.find(o=>o.id===C);r?r.desc?a.value=[]:a.value=[{id:C,desc:!0}]:a.value=[{id:C,desc:!1}]}function S(C){const r=a.value.find(o=>o.id===C);return r?r.desc?"desc":"asc":null}return e.watch(c,()=>{N()}),{table:y,sorting:a,columnFilters:s,columnVisibility:g,globalFilter:f,columnKeys:E,filteredRowCount:w,totalRowCount:M,activeFilters:K,getColumnStats:k,clearStatsCache:N,hasActiveFilter:A,setColumnFilter:L,getColumnFilterValues:P,clearAllFilters:D,toggleSort:G,getSortDirection:S,setNumericRangeFilter:$,getNumericRangeFilter:B}}const vl=e.ref(null),Ee=e.ref(!1),me=e.ref(sl());let et=null;async function hl(t){vl.value=t,et=ll(t),me.value=await et,et=null,me.value.isValid?me.value.type!=="free"&&console.info(`[TinyPivot] Pro license activated (${me.value.type})`):console.warn("[TinyPivot] Invalid or expired license key. Running in free mode.")}async function kl(t){const c=await rl(t);return c?(Ee.value=!0,me.value=c,console.info("[TinyPivot] Demo mode enabled - all Pro features unlocked for evaluation"),!0):(console.warn("[TinyPivot] Demo mode activation failed - invalid secret"),!1)}function wl(t){nl(t)}function He(){const t=e.computed(()=>Ee.value),c=e.computed(()=>Ee.value||cl(me.value)),l=e.computed(()=>Ee.value||il(me.value)),i=e.computed(()=>Ee.value||me.value.features.advancedAggregations),a=e.computed(()=>Ee.value||me.value.features.percentageMode),s=e.computed(()=>dl(me.value,Ee.value));function g(f){return c.value?!0:(ul(f),!1)}return{licenseInfo:e.computed(()=>me.value),isDemo:t,isPro:c,canUsePivot:l,canUseAdvancedAggregations:i,canUsePercentageMode:a,showWatermark:s,requirePro:g}}function wt(t){const{canUsePivot:c,requirePro:l}=He(),i=e.ref([]),a=e.ref([]),s=e.ref([]),g=e.ref(!0),f=e.ref(!0),V=e.ref(pt()),E=e.ref(null),k=e.computed(()=>Gt(t.value)),N=e.computed(()=>Xt(k.value,i.value,a.value,s.value)),R=e.computed(()=>mt({rowFields:i.value,columnFields:a.value,valueFields:s.value,showRowTotals:g.value,showColumnTotals:f.value})),y=e.computed(()=>!R.value||!c.value?null:Yt(t.value,{rowFields:i.value,columnFields:a.value,valueFields:s.value,showRowTotals:g.value,showColumnTotals:f.value,calculatedFields:V.value}));function w(r){l("Pivot Table - Row Fields")&&(i.value.includes(r)||(i.value=[...i.value,r]))}function M(r){i.value=i.value.filter(o=>o!==r)}function K(r){l("Pivot Table - Column Fields")&&(a.value.includes(r)||(a.value=[...a.value,r]))}function A(r){a.value=a.value.filter(o=>o!==r)}function L(r,o="sum"){l("Pivot Table - Value Fields")&&(s.value.some(d=>d.field===r&&d.aggregation===o)||(s.value=[...s.value,{field:r,aggregation:o}]))}function $(r,o){o?s.value=s.value.filter(d=>!(d.field===r&&d.aggregation===o)):s.value=s.value.filter(d=>d.field!==r)}function B(r,o,d){s.value=s.value.map(p=>p.field===r&&p.aggregation===o?{...p,aggregation:d}:p)}function D(){i.value=[],a.value=[],s.value=[]}function P(r,o){if(r.area===o.area){if(r.area==="row"){const d=[...i.value],[p]=d.splice(r.index,1);d.splice(o.index,0,p),i.value=d}else if(r.area==="column"){const d=[...a.value],[p]=d.splice(r.index,1);d.splice(o.index,0,p),a.value=d}}}function G(){if(!l("Pivot Table - Auto Suggest")||k.value.length===0)return;const r=k.value.filter(d=>!d.isNumeric&&d.uniqueCount<50),o=k.value.filter(d=>d.isNumeric);r.length>0&&o.length>0&&(i.value=[r[0].field],s.value=[{field:o[0].field,aggregation:"sum"}])}function S(r){const o=V.value.findIndex(d=>d.id===r.id);o>=0?V.value=[...V.value.slice(0,o),r,...V.value.slice(o+1)]:V.value=[...V.value,r],Ue(V.value)}function C(r){V.value=V.value.filter(o=>o.id!==r),s.value=s.value.filter(o=>o.field!==`calc:${r}`),Ue(V.value)}return e.watch(t,r=>{if(r.length===0)return;const o=Object.keys(r[0]),d=Jt(o);if(d!==E.value){E.value=d;const p=It(d);if(p&&Qe(p,o))i.value=p.rowFields,a.value=p.columnFields,s.value=p.valueFields,g.value=p.showRowTotals,f.value=p.showColumnTotals,p.calculatedFields&&(V.value=p.calculatedFields);else{const U={rowFields:i.value,columnFields:a.value,valueFields:s.value,showRowTotals:g.value,showColumnTotals:f.value};Qe(U,o)||D()}}else{const p={rowFields:i.value,columnFields:a.value,valueFields:s.value,showRowTotals:g.value,showColumnTotals:f.value};Qe(p,o)||D()}},{immediate:!0}),e.watch([i,a,s,g,f,V],()=>{if(!E.value)return;const r={rowFields:i.value,columnFields:a.value,valueFields:s.value,showRowTotals:g.value,showColumnTotals:f.value,calculatedFields:V.value};Qt(E.value,r)},{deep:!0}),{rowFields:i,columnFields:a,valueFields:s,showRowTotals:g,showColumnTotals:f,calculatedFields:V,availableFields:k,unassignedFields:N,isConfigured:R,pivotResult:y,addRowField:w,removeRowField:M,addColumnField:K,removeColumnField:A,addValueField:L,removeValueField:$,updateValueFieldAggregation:B,clearConfig:D,moveField:P,autoSuggestConfig:G,addCalculatedField:S,removeCalculatedField:C}}function Vt(t,c,l){ml(t,c,l)}function Et(t,c,l,i,a){gl(t,c,l,i,a)}function Ct(t,c,l){pl(t,c,l)}function Nt(t,c,l){return fl(t,c,l)}function Vl(t,c={}){const l=e.ref(c.pageSize??50),i=e.ref(c.currentPage??1),a=e.computed(()=>Math.max(1,Math.ceil(t.value.length/l.value))),s=e.computed(()=>{const w=(i.value-1)*l.value,M=w+l.value;return t.value.slice(w,M)}),g=e.computed(()=>(i.value-1)*l.value+1),f=e.computed(()=>Math.min(i.value*l.value,t.value.length));function V(w){i.value=Math.max(1,Math.min(w,a.value))}function E(){i.value<a.value&&i.value++}function k(){i.value>1&&i.value--}function N(){i.value=1}function R(){i.value=a.value}function y(w){l.value=w,i.value=1}return{pageSize:l,currentPage:i,totalPages:a,paginatedData:s,startIndex:g,endIndex:f,goToPage:V,nextPage:E,prevPage:k,firstPage:N,lastPage:R,setPageSize:y}}function El(t,c){const l=e.ref(""),i=e.ref(!1),a=e.computed(()=>{if(!l.value.trim())return t.value;const g=i.value?l.value.trim():l.value.trim().toLowerCase();return t.value.filter(f=>{for(const V of c.value){const E=f[V];if(E==null)continue;if((i.value?String(E):String(E).toLowerCase()).includes(g))return!0}return!1})});function s(){l.value=""}return{searchTerm:l,caseSensitive:i,filteredData:a,clearSearch:s}}function Cl(t){const c=e.ref(new Set),l=e.computed(()=>Array.from(c.value).sort((y,w)=>y-w).map(y=>t.value[y]).filter(Boolean)),i=e.computed(()=>t.value.length>0&&c.value.size===t.value.length),a=e.computed(()=>c.value.size>0&&c.value.size<t.value.length);function s(y){c.value.has(y)?c.value.delete(y):c.value.add(y),c.value=new Set(c.value)}function g(y){c.value.add(y),c.value=new Set(c.value)}function f(y){c.value.delete(y),c.value=new Set(c.value)}function V(){c.value=new Set(t.value.map((y,w)=>w))}function E(){c.value=new Set}function k(){i.value?E():V()}function N(y){return c.value.has(y)}function R(y,w){const M=Math.min(y,w),K=Math.max(y,w);for(let A=M;A<=K;A++)c.value.add(A);c.value=new Set(c.value)}return{selectedRowIndices:c,selectedRows:l,allSelected:i,someSelected:a,toggleRow:s,selectRow:g,deselectRow:f,selectAll:V,deselectAll:E,toggleAll:k,isSelected:N,selectRange:R}}function Nl(t,c=60,l=600){const i=e.ref({...t.value}),a=e.ref(!1),s=e.ref(null);function g(E,k){a.value=!0,s.value=E;const N=k.clientX,R=i.value[E]||150,y=M=>{const K=M.clientX-N,A=Math.max(c,Math.min(l,R+K));i.value={...i.value,[E]:A}},w=()=>{a.value=!1,s.value=null,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",w)};document.addEventListener("mousemove",y),document.addEventListener("mouseup",w)}function f(E){t.value[E]&&(i.value={...i.value,[E]:t.value[E]})}function V(){i.value={...t.value}}return{columnWidths:i,isResizing:a,resizingColumn:s,startResize:g,resetColumnWidth:f,resetAllWidths:V}}const yl={class:"vpg-range-filter"},bl={class:"vpg-range-info"},Fl={class:"vpg-range-bounds"},Sl={class:"vpg-slider-container"},Bl={class:"vpg-slider-track"},Ml=["min","max","step","value"],xl=["min","max","step","value"],$l={class:"vpg-range-inputs"},Dl={class:"vpg-input-group"},Rl=["placeholder","value","step"],Tl={class:"vpg-input-group"},zl=["placeholder","value","step"],Ll={class:"vpg-range-actions"},Al=["disabled"],Pl={key:0,class:"vpg-filter-summary"},jl=e.defineComponent({__name:"NumericRangeFilter",props:{dataMin:{},dataMax:{},currentRange:{}},emits:["change"],setup(t,{emit:c}){var L,$;const l=t,i=c,a=e.ref(((L=l.currentRange)==null?void 0:L.min)??null),s=e.ref((($=l.currentRange)==null?void 0:$.max)??null),g=e.computed(()=>{const B=l.dataMax-l.dataMin;return B===0?1:B<=1?.01:B<=10?.1:B<=100?1:B<=1e3?10:Math.pow(10,Math.floor(Math.log10(B))-2)}),f=B=>B===null?"":Number.isInteger(B)?B.toLocaleString():B.toLocaleString(void 0,{maximumFractionDigits:2}),V=e.computed(()=>a.value!==null||s.value!==null),E=e.computed(()=>a.value===null||l.dataMax===l.dataMin?0:(a.value-l.dataMin)/(l.dataMax-l.dataMin)*100),k=e.computed(()=>s.value===null||l.dataMax===l.dataMin?100:(s.value-l.dataMin)/(l.dataMax-l.dataMin)*100);function N(B){const D=B.target,P=Number.parseFloat(D.value);s.value!==null&&P>s.value?a.value=s.value:a.value=P}function R(B){const D=B.target,P=Number.parseFloat(D.value);a.value!==null&&P<a.value?s.value=a.value:s.value=P}function y(B){const D=B.target,P=D.value===""?null:Number.parseFloat(D.value);P!==null&&!Number.isNaN(P)?a.value=Math.max(l.dataMin,Math.min(P,s.value??l.dataMax)):P===null&&(a.value=null)}function w(B){const D=B.target,P=D.value===""?null:Number.parseFloat(D.value);P!==null&&!Number.isNaN(P)?s.value=Math.min(l.dataMax,Math.max(P,a.value??l.dataMin)):P===null&&(s.value=null)}function M(){a.value=null,s.value=null,A()}function K(){a.value=l.dataMin,s.value=l.dataMax,A()}function A(){a.value===null&&s.value===null?i("change",null):i("change",{min:a.value,max:s.value})}return e.watch(()=>l.currentRange,B=>{a.value=(B==null?void 0:B.min)??null,s.value=(B==null?void 0:B.max)??null},{immediate:!0}),(B,D)=>(e.openBlock(),e.createElementBlock("div",yl,[e.createElementVNode("div",bl,[D[0]||(D[0]=e.createElementVNode("span",{class:"vpg-range-label"},"Data range:",-1)),e.createElementVNode("span",Fl,e.toDisplayString(f(t.dataMin))+" – "+e.toDisplayString(f(t.dataMax)),1)]),e.createElementVNode("div",Sl,[e.createElementVNode("div",Bl,[e.createElementVNode("div",{class:"vpg-slider-fill",style:e.normalizeStyle({left:`${E.value}%`,right:`${100-k.value}%`})},null,4)]),e.createElementVNode("input",{type:"range",class:"vpg-slider vpg-slider-min",min:t.dataMin,max:t.dataMax,step:g.value,value:a.value??t.dataMin,onInput:N,onChange:A},null,40,Ml),e.createElementVNode("input",{type:"range",class:"vpg-slider vpg-slider-max",min:t.dataMin,max:t.dataMax,step:g.value,value:s.value??t.dataMax,onInput:R,onChange:A},null,40,xl)]),e.createElementVNode("div",$l,[e.createElementVNode("div",Dl,[D[1]||(D[1]=e.createElementVNode("label",{class:"vpg-input-label"},"Min",-1)),e.createElementVNode("input",{type:"number",class:"vpg-range-input",placeholder:f(t.dataMin),value:a.value??"",step:g.value,onInput:y,onChange:A},null,40,Rl)]),D[3]||(D[3]=e.createElementVNode("span",{class:"vpg-input-separator"},"to",-1)),e.createElementVNode("div",Tl,[D[2]||(D[2]=e.createElementVNode("label",{class:"vpg-input-label"},"Max",-1)),e.createElementVNode("input",{type:"number",class:"vpg-range-input",placeholder:f(t.dataMax),value:s.value??"",step:g.value,onInput:w,onChange:A},null,40,zl)])]),e.createElementVNode("div",Ll,[e.createElementVNode("button",{class:"vpg-range-btn",disabled:!V.value,onClick:M},[...D[4]||(D[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,Al),e.createElementVNode("button",{class:"vpg-range-btn",onClick:K},[...D[5]||(D[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)])])]),V.value?(e.openBlock(),e.createElementBlock("div",Pl,[D[7]||(D[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,[D[6]||(D[6]=e.createTextVNode(" Showing values ",-1)),e.createElementVNode("strong",null,e.toDisplayString(a.value!==null?`≥ ${f(a.value)}`:""),1),e.createTextVNode(" "+e.toDisplayString(a.value!==null&&s.value!==null?" and ":"")+" ",1),e.createElementVNode("strong",null,e.toDisplayString(s.value!==null?`≤ ${f(s.value)}`:""),1)])])):e.createCommentVNode("",!0)]))}}),Be=(t,c)=>{const l=t.__vccOpts||t;for(const[i,a]of c)l[i]=a;return l},Ul=Be(jl,[["__scopeId","data-v-0c361932"]]),Hl={class:"vpg-filter-header"},Kl={class:"vpg-filter-title"},Ol={class:"vpg-filter-count"},Wl={class:"vpg-sort-controls"},_l=["title"],ql=["title"],Gl={key:0,class:"vpg-filter-tabs"},Xl={class:"vpg-search-container"},Yl={class:"vpg-values-list"},Zl=["checked","onChange"],Jl={key:0,class:"vpg-no-results"},yt=Be(e.defineComponent({__name:"ColumnFilter",props:{columnId:{},columnName:{},stats:{},selectedValues:{},sortDirection:{},numericRange:{}},emits:["filter","sort","close","rangeFilter"],setup(t,{emit:c}){const l=t,i=c,a=e.ref(""),s=e.ref(),g=e.ref(),f=e.computed(()=>l.stats.type==="number"&&l.stats.numericMin!==void 0&&l.stats.numericMax!==void 0),V=e.ref(l.numericRange?"range":"values"),E=e.ref(l.numericRange??null);e.computed(()=>{const o=[...l.stats.uniqueValues];return l.stats.nullCount>0&&o.unshift("(blank)"),o});const k=e.ref(new Set(l.selectedValues)),N=e.computed(()=>l.stats.nullCount>0),R=e.computed(()=>{const o=l.stats.uniqueValues;if(!a.value)return o;const d=a.value.toLowerCase();return o.filter(p=>p.toLowerCase().includes(d))}),y=e.computed(()=>{const o=[...R.value];return N.value&&(!a.value||"(blank)".includes(a.value.toLowerCase()))&&o.unshift("(blank)"),o});e.computed(()=>y.value.every(o=>k.value.has(o))),e.computed(()=>k.value.size===0);function w(o){k.value.has(o)?k.value.delete(o):k.value.add(o),k.value=new Set(k.value)}function M(){for(const o of y.value)k.value.add(o);k.value=new Set(k.value)}function K(){k.value.clear(),k.value=new Set(k.value)}function A(){k.value.size===0?i("filter",[]):i("filter",Array.from(k.value)),i("close")}function L(){i("sort",l.sortDirection==="asc"?null:"asc")}function $(){i("sort",l.sortDirection==="desc"?null:"desc")}function B(){k.value.clear(),k.value=new Set(k.value),i("filter",[]),i("close")}function D(o){E.value=o}function P(){i("rangeFilter",E.value),i("close")}function G(){E.value=null,i("rangeFilter",null),i("close")}function S(o){V.value=o}function C(o){s.value&&!s.value.contains(o.target)&&i("close")}function r(o){o.key==="Escape"?i("close"):o.key==="Enter"&&o.ctrlKey&&A()}return e.onMounted(()=>{e.nextTick(()=>{var o;(o=g.value)==null||o.focus()}),document.addEventListener("mousedown",C),document.addEventListener("keydown",r)}),e.onUnmounted(()=>{document.removeEventListener("mousedown",C),document.removeEventListener("keydown",r)}),e.watch(()=>l.selectedValues,o=>{k.value=new Set(o)},{immediate:!0}),e.watch(()=>l.numericRange,o=>{E.value=o??null,o&&(V.value="range")},{immediate:!0}),(o,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:s,class:"vpg-filter-dropdown"},[e.createElementVNode("div",Hl,[e.createElementVNode("span",Kl,e.toDisplayString(t.columnName),1),e.createElementVNode("span",Ol,e.toDisplayString(t.stats.uniqueValues.length.toLocaleString())+" unique ",1)]),e.createElementVNode("div",Wl,[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:L},[d[4]||(d[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,_l),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:$},[d[5]||(d[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)]),d[11]||(d[11]=e.createElementVNode("div",{class:"vpg-divider"},null,-1)),f.value?(e.openBlock(),e.createElementBlock("div",Gl,[e.createElementVNode("button",{class:e.normalizeClass(["vpg-tab-btn",{active:V.value==="values"}]),onClick:d[0]||(d[0]=p=>S("values"))},[...d[6]||(d[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:V.value==="range"}]),onClick:d[1]||(d[1]=p=>S("range"))},[...d[7]||(d[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||V.value==="values"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Xl,[d[8]||(d[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:g,"onUpdate:modelValue":d[2]||(d[2]=p=>a.value=p),type:"text",placeholder:"Search values...",class:"vpg-search-input"},null,512),[[e.vModelText,a.value]]),a.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-clear-search",onClick:d[3]||(d[3]=p=>a.value="")}," × ")):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vpg-bulk-actions"},[e.createElementVNode("button",{class:"vpg-bulk-btn",onClick:M},[...d[9]||(d[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:K},[...d[10]||(d[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",Yl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,p=>(e.openBlock(),e.createElementBlock("label",{key:p,class:e.normalizeClass(["vpg-value-item",{selected:k.value.has(p)}])},[e.createElementVNode("input",{type:"checkbox",checked:k.value.has(p),class:"vpg-value-checkbox",onChange:U=>w(p)},null,40,Zl),e.createElementVNode("span",{class:e.normalizeClass(["vpg-value-text",{"vpg-blank":p==="(blank)"}])},e.toDisplayString(p),3)],2))),128)),y.value.length===0?(e.openBlock(),e.createElementBlock("div",Jl," No matching values ")):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vpg-filter-footer"},[e.createElementVNode("button",{class:"vpg-btn-clear",onClick:B}," Clear Filter "),e.createElementVNode("button",{class:"vpg-btn-apply",onClick:A}," Apply ")])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createVNode(Ul,{"data-min":t.stats.numericMin,"data-max":t.stats.numericMax,"current-range":E.value,onChange:D},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:P}," Apply ")])],64))],512))}}),[["__scopeId","data-v-d538c266"]]),Ql={class:"vpg-modal"},Il={class:"vpg-modal-header"},en={class:"vpg-modal-body"},tn={class:"vpg-form-group"},ln={class:"vpg-form-group"},nn={key:0,class:"vpg-error"},on={class:"vpg-form-group"},an={class:"vpg-button-group"},rn={class:"vpg-form-group"},sn={key:0,class:"vpg-button-group vpg-field-buttons"},cn=["onClick"],dn={key:1,class:"vpg-no-fields"},un={class:"vpg-form-row"},mn={class:"vpg-form-group vpg-form-group-half"},gn={class:"vpg-form-group vpg-form-group-half"},pn={key:0,class:"vpg-error vpg-error-box"},fn={class:"vpg-modal-footer"},vn=Be(e.defineComponent({__name:"CalculatedFieldModal",props:{show:{type:Boolean},availableFields:{},existingField:{}},emits:["close","save"],setup(t,{emit:c}){const l=t,i=c,a=e.ref(""),s=e.ref(""),g=e.ref("number"),f=e.ref(2),V=e.ref(null);e.watch(()=>l.show,y=>{y&&(l.existingField?(a.value=l.existingField.name,s.value=l.existingField.formula,g.value=l.existingField.formatAs||"number",f.value=l.existingField.decimals??2):(a.value="",s.value="",g.value="number",f.value=2),V.value=null)});const E=e.computed(()=>s.value.trim()?dt(s.value,l.availableFields):null);function k(y){s.value.trim()&&!s.value.endsWith(" ")&&(s.value+=" "),s.value+=y}function N(y){s.value.trim()&&!s.value.endsWith(" ")&&(s.value+=" "),s.value+=`${y} `}function R(){var M;if(!a.value.trim()){V.value="Name is required";return}const y=dt(s.value,l.availableFields);if(y){V.value=y;return}const w={id:((M=l.existingField)==null?void 0:M.id)||`calc_${Date.now()}`,name:a.value.trim(),formula:s.value.trim(),formatAs:g.value,decimals:f.value};i("save",w),i("close")}return(y,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(M=>i("close"),["self"]))},[e.createElementVNode("div",Ql,[e.createElementVNode("div",Il,[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]=M=>i("close"))},"×")]),e.createElementVNode("div",en,[e.createElementVNode("div",tn,[w[13]||(w[13]=e.createElementVNode("label",{class:"vpg-label"},"Name",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[1]||(w[1]=M=>a.value=M),type:"text",class:"vpg-input",placeholder:"e.g., Profit Margin %"},null,512),[[e.vModelText,a.value]])]),e.createElementVNode("div",ln,[w[14]||(w[14]=e.createElementVNode("label",{class:"vpg-label"},"Formula",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":w[2]||(w[2]=M=>s.value=M),class:"vpg-textarea",placeholder:"e.g., revenue / units",rows:"2"},null,512),[[e.vModelText,s.value]]),w[15]||(w[15]=e.createElementVNode("div",{class:"vpg-formula-hint"},"Use field names with math operators: + - * / ( )",-1)),E.value?(e.openBlock(),e.createElementBlock("div",nn,e.toDisplayString(E.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",on,[w[16]||(w[16]=e.createElementVNode("label",{class:"vpg-label-small"},"Operators",-1)),e.createElementVNode("div",an,[e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[3]||(w[3]=M=>N("+"))},"+"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[4]||(w[4]=M=>N("-"))},"−"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[5]||(w[5]=M=>N("*"))},"×"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[6]||(w[6]=M=>N("/"))},"÷"),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[7]||(w[7]=M=>N("("))},"("),e.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:w[8]||(w[8]=M=>N(")"))},")")])]),e.createElementVNode("div",rn,[w[17]||(w[17]=e.createElementVNode("label",{class:"vpg-label-small"},"Insert Field",-1)),t.availableFields.length>0?(e.openBlock(),e.createElementBlock("div",sn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.availableFields,M=>(e.openBlock(),e.createElementBlock("button",{key:M,class:"vpg-insert-btn vpg-field-btn",onClick:K=>k(M)},e.toDisplayString(M),9,cn))),128))])):(e.openBlock(),e.createElementBlock("div",dn," No numeric fields available "))]),e.createElementVNode("div",un,[e.createElementVNode("div",mn,[w[19]||(w[19]=e.createElementVNode("label",{class:"vpg-label"},"Format As",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":w[9]||(w[9]=M=>g.value=M),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,g.value]])]),e.createElementVNode("div",gn,[w[20]||(w[20]=e.createElementVNode("label",{class:"vpg-label"},"Decimals",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[10]||(w[10]=M=>f.value=M),type:"number",class:"vpg-input",min:"0",max:"6"},null,512),[[e.vModelText,f.value,void 0,{number:!0}]])])]),V.value?(e.openBlock(),e.createElementBlock("div",pn,e.toDisplayString(V.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",fn,[e.createElementVNode("button",{class:"vpg-btn vpg-btn-secondary",onClick:w[11]||(w[11]=M=>i("close"))},"Cancel"),e.createElementVNode("button",{class:"vpg-btn vpg-btn-primary",onClick:R},e.toDisplayString(t.existingField?"Update":"Add")+" Field ",1)])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-0cbcac92"]]),hn={class:"vpg-pivot-config"},kn={class:"vpg-config-header"},wn={class:"vpg-header-actions"},Vn={key:0,class:"vpg-assigned-section"},En={class:"vpg-assigned-list"},Cn=["title","onDragstart"],Nn={class:"vpg-item-main"},yn={class:"vpg-item-name"},bn={class:"vpg-item-actions"},Fn=["title","onClick"],Sn=["value","onChange"],Bn=["value"],Mn=["onClick"],xn={class:"vpg-unassigned-section"},$n={class:"vpg-section-header"},Dn={class:"vpg-section-label"},Rn={class:"vpg-count"},Tn={class:"vpg-field-search"},zn={class:"vpg-field-list"},Ln=["title","onDragstart"],An={class:"vpg-field-name"},Pn=["onClick"],jn=["onClick"],Un={key:1,class:"vpg-unique-count"},Hn={key:0,class:"vpg-empty-hint"},Kn={key:1,class:"vpg-empty-hint"},On={class:"vpg-options-section"},Wn={class:"vpg-option-toggle"},_n=["checked"],bt=Be(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:c}){const l=t,i=c,{isPro:a}=He(),s=_t,g=e.ref(!1),f=e.ref(null),V=e.computed(()=>l.availableFields.filter(r=>r.isNumeric).map(r=>r.field));function E(r){f.value=r||null,g.value=!0}function k(r){f.value?i("updateCalculatedField",r):i("addCalculatedField",r),g.value=!1,f.value=null}function N(r){i("update:showRowTotals",r),i("update:showColumnTotals",r)}const R=e.computed(()=>l.calculatedFields?l.calculatedFields.map(r=>({field:`calc:${r.id}`,type:"number",uniqueCount:0,isNumeric:!0,isCalculated:!0,calcId:r.id,calcName:r.name,calcFormula:r.formula})):[]),y=e.computed(()=>[...l.availableFields.map(r=>({...r,isCalculated:!1})),...R.value]),w=e.computed(()=>{const r=new Set(l.rowFields),o=new Set(l.columnFields),d=new Map(l.valueFields.map(p=>[p.field,p]));return y.value.filter(p=>r.has(p.field)||o.has(p.field)||d.has(p.field)).map(p=>({...p,assignedTo:r.has(p.field)?"row":o.has(p.field)?"column":"value",valueConfig:d.get(p.field)}))}),M=e.computed(()=>{const r=new Set(l.rowFields),o=new Set(l.columnFields),d=new Set(l.valueFields.map(p=>p.field));return y.value.filter(p=>!r.has(p.field)&&!o.has(p.field)&&!d.has(p.field))}),K=e.computed(()=>w.value.length),A=e.ref(""),L=e.computed(()=>{if(!A.value.trim())return M.value;const r=A.value.toLowerCase().trim();return M.value.filter(o=>{const d=o.field.toLowerCase(),p=o.isCalculated&&o.calcName?o.calcName.toLowerCase():"";return d.includes(r)||p.includes(r)})});function $(r,o){if(o)return"ƒ";switch(r){case"number":return"#";case"date":return"📅";case"boolean":return"✓";default:return"Aa"}}function B(r){return r.isCalculated&&r.calcName?r.calcName:r.field}function D(r,o){var d;(d=o.dataTransfer)==null||d.setData("text/plain",r),o.dataTransfer.effectAllowed="move",i("dragStart",r,o)}function P(){i("dragEnd")}function G(r,o,d){i("updateAggregation",r,o,d)}function S(r,o){o==="row"?(i("removeRowField",r),i("addColumnField",r)):(i("removeColumnField",r),i("addRowField",r))}function C(r,o,d){o==="row"?i("removeRowField",r):o==="column"?i("removeColumnField",r):d&&i("removeValueField",r,d.aggregation)}return(r,o)=>(e.openBlock(),e.createElementBlock("div",hn,[e.createElementVNode("div",kn,[o[8]||(o[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",wn,[K.value>0?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-action-btn vpg-clear-btn",title:"Clear all",onClick:o[0]||(o[0]=d=>i("clearConfig"))},[...o[7]||(o[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)])]),K.value>0?(e.openBlock(),e.createElementBlock("div",Vn,[o[10]||(o[10]=e.createElementVNode("div",{class:"vpg-section-label"},"Active",-1)),e.createElementVNode("div",En,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,d=>{var p;return e.openBlock(),e.createElementBlock("div",{key:d.field,class:e.normalizeClass(["vpg-assigned-item",[`vpg-type-${d.assignedTo}`,{"vpg-type-calc":d.isCalculated}]]),title:d.isCalculated?d.calcFormula:d.field,draggable:"true",onDragstart:U=>D(d.field,U),onDragend:P},[e.createElementVNode("div",Nn,[e.createElementVNode("span",{class:e.normalizeClass(["vpg-item-badge",[d.assignedTo,{calc:d.isCalculated}]])},e.toDisplayString(d.isCalculated?"ƒ":d.assignedTo==="row"?"R":d.assignedTo==="column"?"C":e.unref(it)(((p=d.valueConfig)==null?void 0:p.aggregation)||"sum")),3),e.createElementVNode("span",yn,e.toDisplayString(B(d)),1)]),e.createElementVNode("div",bn,[d.assignedTo==="row"||d.assignedTo==="column"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-toggle-btn",title:d.assignedTo==="row"?"Move to Columns":"Move to Rows",onClick:e.withModifiers(U=>S(d.field,d.assignedTo),["stop"])},[...o[9]||(o[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,Fn)):e.createCommentVNode("",!0),d.assignedTo==="value"&&d.valueConfig?(e.openBlock(),e.createElementBlock("select",{key:1,class:"vpg-agg-select",value:d.valueConfig.aggregation,onChange:U=>G(d.field,d.valueConfig.aggregation,U.target.value),onClick:o[1]||(o[1]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),U=>(e.openBlock(),e.createElementBlock("option",{key:U.value,value:U.value},e.toDisplayString(U.symbol)+" "+e.toDisplayString(U.label),9,Bn))),128))],40,Sn)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vpg-remove-btn",title:"Remove",onClick:e.withModifiers(U=>C(d.field,d.assignedTo,d.valueConfig),["stop"])}," × ",8,Mn)])],42,Cn)}),128))])])):e.createCommentVNode("",!0),e.createElementVNode("div",xn,[e.createElementVNode("div",$n,[e.createElementVNode("div",Dn,[o[11]||(o[11]=e.createTextVNode(" Available ",-1)),e.createElementVNode("span",Rn,e.toDisplayString(M.value.length),1)])]),e.createElementVNode("div",Tn,[o[13]||(o[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":o[2]||(o[2]=d=>A.value=d),type:"text",placeholder:"Search fields...",class:"vpg-search-input"},null,512),[[e.vModelText,A.value]]),A.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vpg-clear-search",onClick:o[3]||(o[3]=d=>A.value="")},[...o[12]||(o[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",zn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(L.value,d=>(e.openBlock(),e.createElementBlock("div",{key:d.field,class:e.normalizeClass(["vpg-field-item",{"vpg-is-numeric":d.isNumeric&&!d.isCalculated,"vpg-is-calculated":d.isCalculated}]),title:d.isCalculated?d.calcFormula:d.field,draggable:"true",onDragstart:p=>D(d.field,p),onDragend:P},[e.createElementVNode("span",{class:e.normalizeClass(["vpg-field-type-icon",{"vpg-calc-type":d.isCalculated}])},e.toDisplayString($(d.type,d.isCalculated)),3),e.createElementVNode("span",An,e.toDisplayString(B(d)),1),d.isCalculated?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{class:"vpg-field-edit",title:"Edit calculated field",onClick:e.withModifiers(p=>{var U;return E((U=t.calculatedFields)==null?void 0:U.find(j=>j.id===d.calcId))},["stop"])},"✎",8,Pn),e.createElementVNode("button",{class:"vpg-field-delete",title:"Delete calculated field",onClick:e.withModifiers(p=>i("removeCalculatedField",d.calcId),["stop"])},"×",8,jn)],64)):(e.openBlock(),e.createElementBlock("span",Un,e.toDisplayString(d.uniqueCount),1))],42,Ln))),128)),L.value.length===0&&A.value?(e.openBlock(),e.createElementBlock("div",Hn,' No fields match "'+e.toDisplayString(A.value)+'" ',1)):M.value.length===0?(e.openBlock(),e.createElementBlock("div",Kn," All fields assigned ")):e.createCommentVNode("",!0)])]),e.createElementVNode("div",On,[e.createElementVNode("label",Wn,[e.createElementVNode("input",{type:"checkbox",checked:t.showRowTotals,onChange:o[4]||(o[4]=d=>N(d.target.checked))},null,40,_n),o[14]||(o[14]=e.createElementVNode("span",null,"Totals",-1))]),e.createElementVNode("button",{class:"vpg-calc-btn",onClick:o[5]||(o[5]=d=>E()),title:"Add calculated field (e.g. Profit Margin %)"},[...o[15]||(o[15]=[e.createElementVNode("span",{class:"vpg-calc-icon"},"ƒ",-1),e.createElementVNode("span",null,"+ Calc",-1)])])]),e.createVNode(vn,{show:g.value,"available-fields":V.value,"existing-field":f.value,onClose:o[6]||(o[6]=d=>{g.value=!1,f.value=null}),onSave:k},null,8,["show","available-fields","existing-field"])]))}}),[["__scopeId","data-v-5e079f90"]]),qn={key:0,class:"vpg-toast"},Gn={class:"vpg-skeleton-header"},Xn={class:"vpg-header-right"},Yn={class:"vpg-filter-text"},Zn={key:0,class:"vpg-filter-count"},Jn={key:0,class:"vpg-filter-tooltip"},Qn={class:"vpg-tooltip-column"},In={class:"vpg-tooltip-values"},eo={key:0,class:"vpg-tooltip-value vpg-range-value"},to={key:0,class:"vpg-tooltip-more"},lo={key:0,class:"vpg-tooltip-summary"},no={key:1,class:"vpg-config-summary"},oo={class:"vpg-summary-badge vpg-rows"},ao={class:"vpg-summary-badge vpg-cols"},ro={class:"vpg-summary-badge vpg-vals"},so={key:2,class:"vpg-font-size-toggle"},io=["onClick"],co={key:0,class:"vpg-pro-required"},uo={class:"vpg-config-bar"},mo={class:"vpg-zone-chips"},go=["onDragstart","onDragover","onDrop"],po={class:"vpg-mini-name"},fo=["onClick"],vo={key:0,class:"vpg-zone-hint"},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={class:"vpg-agg-symbol"},yo={class:"vpg-mini-name"},bo=["onClick"],Fo={key:0,class:"vpg-zone-hint"},So={key:0,class:"vpg-placeholder"},Bo={class:"vpg-placeholder-content"},Mo={class:"vpg-placeholder-text"},xo={key:1,class:"vpg-table-container"},$o={class:"vpg-pivot-table"},Do=["rowspan"],Ro={class:"vpg-header-content"},To=["colspan","onClick"],zo={class:"vpg-header-content"},Lo=["rowspan"],Ao=["onMousedown","onMouseenter"],Po={key:0,class:"vpg-data-cell vpg-total-cell"},jo={key:0,class:"vpg-totals-row"},Uo={key:0,class:"vpg-data-cell vpg-grand-total-cell"},Ho={key:2,class:"vpg-skeleton-footer"},Ko={class:"vpg-footer-info"},Oo={key:0,class:"vpg-selection-stats"},Wo={class:"vpg-stat"},_o={class:"vpg-stat-value"},qo={class:"vpg-stat"},Go={class:"vpg-stat-value"},Xo={class:"vpg-stat"},Yo={class:"vpg-stat-value"},Zo={key:1,href:"https://tiny-pivot.com",target:"_blank",rel:"noopener"},Ft=Be(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:c}){const l=t;function i(b){var m;if(b.startsWith("calc:")){const x=b.replace("calc:",""),h=(m=l.calculatedFields)==null?void 0:m.find(F=>F.id===x);return(h==null?void 0:h.name)||b}return b}function a(b){return b.startsWith("calc:")}const s=c,{showWatermark:g,canUsePivot:f,isDemo:V}=He(),E=e.ref(null),k=e.ref(null),N=e.ref(null),R=e.ref(l.fontSize||"xs"),y=[{value:"xs",label:"S"},{value:"sm",label:"M"},{value:"base",label:"L"}],w=e.computed(()=>l.activeFilters&&l.activeFilters.length>0),M=e.computed(()=>!l.activeFilters||l.activeFilters.length===0?"":l.activeFilters.map(m=>m.column).join(", ")),K=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||[],x=5,h=m.slice(0,x),F=m.length-x;return{column:b.column,values:h,remaining:F>0?F:0,isRange:!1}})),A=e.ref(!1),L=e.ref("asc"),$=e.ref("row");function B(b="row"){$.value===b?L.value=L.value==="asc"?"desc":"asc":($.value=b,L.value="asc")}const D=e.computed(()=>{if(!l.pivotResult)return[];const b=l.pivotResult.rowHeaders.map((h,F)=>F),m=l.pivotResult.rowHeaders,x=l.pivotResult.data;return b.sort((h,F)=>{var _,q,J,Q,ae,ce;let T;if($.value==="row"){const ne=((_=m[h])==null?void 0:_.join(" / "))||"",ye=((q=m[F])==null?void 0:q.join(" / "))||"";T=ne.localeCompare(ye,void 0,{numeric:!0,sensitivity:"base"})}else{const ne=$.value,ye=((Q=(J=x[h])==null?void 0:J[ne])==null?void 0:Q.value)??null,Oe=((ce=(ae=x[F])==null?void 0:ae[ne])==null?void 0:ce.value)??null;ye===null&&Oe===null?T=0:ye===null?T=1:Oe===null?T=-1:T=ye-Oe}return L.value==="asc"?T:-T}),b}),P=e.computed(()=>{if(!l.pivotResult||l.pivotResult.headers.length===0)return[l.valueFields.map(m=>({label:a(m.field)?`${i(m.field)} (${je(m.aggregation)})`:`${m.field} (${je(m.aggregation)})`,colspan:1}))];const b=[];for(let m=0;m<l.pivotResult.headers.length;m++){const x=l.pivotResult.headers[m],h=[];let F=0;for(;F<x.length;){const T=x[F];let _=1;for(;F+_<x.length&&x[F+_]===T;)_++;h.push({label:T,colspan:_}),F+=_}b.push(h)}return b}),G=e.ref(null),S=e.ref(null),C=e.ref(null),r=e.ref(!1),o=e.ref(!1),d=e.ref(""),p=e.computed(()=>!S.value||!C.value?null:{minRow:Math.min(S.value.row,C.value.row),maxRow:Math.max(S.value.row,C.value.row),minCol:Math.min(S.value.col,C.value.col),maxCol:Math.max(S.value.col,C.value.col)});function U(b,m,x){x.preventDefault(),x.shiftKey&&G.value?C.value={row:b,col:m}:(G.value={row:b,col:m},S.value={row:b,col:m},C.value={row:b,col:m},r.value=!0)}function j(b,m){r.value&&(C.value={row:b,col:m})}function W(){r.value=!1}function le(b,m){var _,q;if(!p.value)return((_=G.value)==null?void 0:_.row)===b&&((q=G.value)==null?void 0:q.col)===m;const{minRow:x,maxRow:h,minCol:F,maxCol:T}=p.value;return b>=x&&b<=h&&m>=F&&m<=T}function Me(){var _;if(!p.value||!l.pivotResult)return;const{minRow:b,maxRow:m,minCol:x,maxCol:h}=p.value,F=[];for(let q=b;q<=m;q++){const J=D.value[q];if(J===void 0)continue;const Q=[];for(let ae=x;ae<=h;ae++){const ce=(_=l.pivotResult.data[J])==null?void 0:_[ae];Q.push((ce==null?void 0:ce.formattedValue)??"")}F.push(Q.join(" "))}const T=F.join(`
6
- `);navigator.clipboard.writeText(T).then(()=>{const q=(m-b+1)*(h-x+1);d.value=`Copied ${q} cell${q>1?"s":""}`,o.value=!0,setTimeout(()=>{o.value=!1},2e3)}).catch(q=>{console.error("Copy failed:",q)})}function fe(b){if(p.value){if((b.ctrlKey||b.metaKey)&&b.key==="c"){b.preventDefault(),Me();return}b.key==="Escape"&&(G.value=null,S.value=null,C.value=null)}}const re=e.computed(()=>{var J;if(!p.value||!l.pivotResult)return null;const{minRow:b,maxRow:m,minCol:x,maxCol:h}=p.value,F=[];let T=0;for(let Q=b;Q<=m;Q++){const ae=D.value[Q];if(ae!==void 0)for(let ce=x;ce<=h;ce++){const ne=(J=l.pivotResult.data[ae])==null?void 0:J[ce];T++,(ne==null?void 0:ne.value)!==null&&(ne==null?void 0:ne.value)!==void 0&&typeof ne.value=="number"&&F.push(ne.value)}}if(T<=1)return null;const _=F.reduce((Q,ae)=>Q+ae,0),q=F.length>0?_/F.length:0;return{count:T,numericCount:F.length,sum:_,avg:q}});function xe(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",W),document.addEventListener("keydown",fe)}),e.onUnmounted(()=>{document.removeEventListener("mouseup",W),document.removeEventListener("keydown",fe)});function se(b,m){m.preventDefault(),m.dataTransfer.dropEffect="move",E.value=b}function Ke(){E.value=null}function Ve(b,m){var F;m.preventDefault();const x=(F=m.dataTransfer)==null?void 0:F.getData("text/plain");if(!x||x.startsWith("reorder:")){E.value=null;return}l.rowFields.includes(x)&&s("removeRowField",x),l.columnFields.includes(x)&&s("removeColumnField",x);const h=l.valueFields.find(T=>T.field===x);switch(h&&s("removeValueField",x,h.aggregation),b){case"row":s("addRowField",x);break;case"column":s("addColumnField",x);break;case"value":s("addValueField",x,"sum");break}E.value=null}function Ce(b,m,x){k.value={zone:b,index:m},x.dataTransfer.effectAllowed="move",x.dataTransfer.setData("text/plain",`reorder:${b}:${m}`),requestAnimationFrame(()=>{E.value=null})}function Ne(){k.value=null,N.value=null}function $e(b,m,x){x.preventDefault(),k.value&&k.value.zone===b&&(x.dataTransfer.dropEffect="move",N.value={zone:b,index:m})}function De(){N.value=null}function Xe(b,m,x){if(x.preventDefault(),x.stopPropagation(),!k.value||k.value.zone!==b)return;const h=k.value.index;if(h===m){k.value=null,N.value=null;return}const F=b==="row"?[...l.rowFields]:[...l.columnFields],[T]=F.splice(h,1);F.splice(m,0,T),s(b==="row"?"reorderRowFields":"reorderColumnFields",F),k.value=null,N.value=null}function Re(b,m){var x,h;return((x=k.value)==null?void 0:x.zone)===b&&((h=k.value)==null?void 0:h.index)===m}function ie(b,m){var x,h;return((x=N.value)==null?void 0:x.zone)===b&&((h=N.value)==null?void 0:h.index)===m}const Te=e.ref(180),ze=e.ref(80);return(b,m)=>{var x;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vpg-pivot-skeleton",[`vpg-font-${R.value}`,{"vpg-is-dragging":t.draggingField}]])},[e.createVNode(e.Transition,{name:"vpg-toast"},{default:e.withCtx(()=>[o.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(d.value),1)])):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",Gn,[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",Xn,[w.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-filter-indicator",onMouseenter:m[0]||(m[0]=h=>A.value=!0),onMouseleave:m[1]||(m[1]=h=>A.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",Yn,[m[10]||(m[10]=e.createTextVNode(" Filtered: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(M.value),1),t.filteredRowCount!==void 0&&t.totalRowCount!==void 0?(e.openBlock(),e.createElementBlock("span",Zn," ("+e.toDisplayString(t.filteredRowCount.toLocaleString())+" of "+e.toDisplayString(t.totalRowCount.toLocaleString())+" rows) ",1)):e.createCommentVNode("",!0)]),A.value?(e.openBlock(),e.createElementBlock("div",Jn,[m[11]||(m[11]=e.createElementVNode("div",{class:"vpg-tooltip-header"},"Active Filters",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(K.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h.column,class:"vpg-tooltip-filter"},[e.createElementVNode("div",Qn,e.toDisplayString(h.column),1),e.createElementVNode("div",In,[h.isRange?(e.openBlock(),e.createElementBlock("span",eo,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,(F,T)=>(e.openBlock(),e.createElementBlock("span",{key:T,class:"vpg-tooltip-value"},e.toDisplayString(F),1))),128)),h.remaining>0?(e.openBlock(),e.createElementBlock("span",to," +"+e.toDisplayString(h.remaining)+" more ",1)):e.createCommentVNode("",!0)],64))])]))),128)),t.filteredRowCount!==void 0&&t.totalRowCount!==void 0?(e.openBlock(),e.createElementBlock("div",lo," 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",no,[e.createElementVNode("span",oo,e.toDisplayString(t.rowFields.length)+" row"+e.toDisplayString(t.rowFields.length!==1?"s":""),1),e.createElementVNode("span",ao,e.toDisplayString(t.columnFields.length)+" col"+e.toDisplayString(t.columnFields.length!==1?"s":""),1),e.createElementVNode("span",ro,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",so,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(y,h=>e.createElementVNode("button",{key:h.value,class:e.normalizeClass(["vpg-font-size-btn",{active:R.value===h.value}]),onClick:F=>R.value=h.value},e.toDisplayString(h.label),11,io)),64))])):e.createCommentVNode("",!0)])]),e.unref(f)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",uo,[e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-row-zone",{"vpg-drag-over":E.value==="row"}]),onDragover:m[2]||(m[2]=h=>se("row",h)),onDragleave:Ke,onDrop:m[3]||(m[3]=h=>Ve("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",mo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.rowFields,(h,F)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:e.normalizeClass(["vpg-mini-chip vpg-row-chip",{"vpg-chip-dragging":Re("row",F),"vpg-chip-drop-target":ie("row",F)}]),draggable:"true",onDragstart:T=>Ce("row",F,T),onDragend:Ne,onDragover:T=>$e("row",F,T),onDragleave:De,onDrop:T=>Xe("row",F,T)},[m[15]||(m[15]=e.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),e.createElementVNode("span",po,e.toDisplayString(h),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:e.withModifiers(T=>s("removeRowField",h),["stop"])},"×",8,fo)],42,go))),128)),t.rowFields.length===0?(e.openBlock(),e.createElementBlock("span",vo,"Drop here")):e.createCommentVNode("",!0)])],34),e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-column-zone",{"vpg-drag-over":E.value==="column"}]),onDragover:m[4]||(m[4]=h=>se("column",h)),onDragleave:Ke,onDrop:m[5]||(m[5]=h=>Ve("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",ho,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columnFields,(h,F)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:e.normalizeClass(["vpg-mini-chip vpg-column-chip",{"vpg-chip-dragging":Re("column",F),"vpg-chip-drop-target":ie("column",F)}]),draggable:"true",onDragstart:T=>Ce("column",F,T),onDragend:Ne,onDragover:T=>$e("column",F,T),onDragleave:De,onDrop:T=>Xe("column",F,T)},[m[17]||(m[17]=e.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),e.createElementVNode("span",wo,e.toDisplayString(h),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:e.withModifiers(T=>s("removeColumnField",h),["stop"])},"×",8,Vo)],42,ko))),128)),t.columnFields.length===0?(e.openBlock(),e.createElementBlock("span",Eo,"Drop here")):e.createCommentVNode("",!0)])],34),e.createElementVNode("div",{class:e.normalizeClass(["vpg-drop-zone vpg-value-zone",{"vpg-drag-over":E.value==="value"}]),onDragover:m[6]||(m[6]=h=>se("value",h)),onDragleave:Ke,onDrop:m[7]||(m[7]=h=>Ve("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",Co,[(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":a(h.field)}])},[e.createElementVNode("span",No,e.toDisplayString(a(h.field)?"ƒ":e.unref(it)(h.aggregation)),1),e.createElementVNode("span",yo,e.toDisplayString(i(h.field)),1),e.createElementVNode("button",{class:"vpg-mini-remove",onClick:F=>s("removeValueField",h.field,h.aggregation)},"×",8,bo)],2))),128)),t.valueFields.length===0?(e.openBlock(),e.createElementBlock("span",Fo,"Drop numeric")):e.createCommentVNode("",!0)])],34)]),!t.isConfigured||!t.pivotResult?(e.openBlock(),e.createElementBlock("div",So,[e.createElementVNode("div",Bo,[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",Mo,[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",xo,[e.createElementVNode("table",$o,[e.createElementVNode("thead",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(P.value,(h,F)=>(e.openBlock(),e.createElementBlock("tr",{key:`header-${F}`,class:"vpg-column-header-row"},[F===0?(e.openBlock(),e.createElementBlock("th",{key:0,class:"vpg-row-header-label",rowspan:P.value.length,style:e.normalizeStyle({width:`${Te.value}px`}),onClick:m[8]||(m[8]=T=>B("row"))},[e.createElementVNode("div",Ro,[e.createElementVNode("span",null,e.toDisplayString(t.rowFields.join(" / ")||"Rows"),1),e.createElementVNode("span",{class:e.normalizeClass(["vpg-sort-indicator",{active:$.value==="row"}])},e.toDisplayString($.value==="row"?L.value==="asc"?"↑":"↓":"⇅"),3)])],12,Do)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h,(T,_)=>(e.openBlock(),e.createElementBlock("th",{key:_,class:"vpg-column-header-cell",colspan:T.colspan,style:e.normalizeStyle({width:`${ze.value*T.colspan}px`}),onClick:q=>F===P.value.length-1&&B(_)},[e.createElementVNode("div",zo,[e.createElementVNode("span",null,e.toDisplayString(T.label),1),F===P.value.length-1?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["vpg-sort-indicator",{active:$.value===_}])},e.toDisplayString($.value===_?L.value==="asc"?"↑":"↓":"⇅"),3)):e.createCommentVNode("",!0)])],12,To))),128)),t.pivotResult.rowTotals.length>0&&F===0?(e.openBlock(),e.createElementBlock("th",{key:1,class:"vpg-total-header",rowspan:P.value.length}," Total ",8,Lo)):e.createCommentVNode("",!0)]))),128))]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,h=>(e.openBlock(),e.createElementBlock("tr",{key:h,class:"vpg-data-row"},[e.createElementVNode("th",{class:"vpg-row-header-cell",style:e.normalizeStyle({width:`${Te.value}px`})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.rowHeaders[h],(F,T)=>(e.openBlock(),e.createElementBlock("span",{key:T,class:"vpg-row-value"},e.toDisplayString(F),1))),128))],4),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.data[h],(F,T)=>(e.openBlock(),e.createElementBlock("td",{key:T,class:e.normalizeClass(["vpg-data-cell",[le(D.value.indexOf(h),T)&&"selected",F.value===null&&"vpg-is-null"]]),style:e.normalizeStyle({width:`${ze.value}px`}),onMousedown:_=>U(D.value.indexOf(h),T,_),onMouseenter:_=>j(D.value.indexOf(h),T)},e.toDisplayString(F.formattedValue),47,Ao))),128)),t.pivotResult.rowTotals[h]?(e.openBlock(),e.createElementBlock("td",Po,e.toDisplayString(t.pivotResult.rowTotals[h].formattedValue),1)):e.createCommentVNode("",!0)]))),128)),t.pivotResult.columnTotals.length>0?(e.openBlock(),e.createElementBlock("tr",jo,[e.createElementVNode("th",{class:"vpg-row-header-cell vpg-total-label",style:e.normalizeStyle({width:`${Te.value}px`})}," Total ",4),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pivotResult.columnTotals,(h,F)=>(e.openBlock(),e.createElementBlock("td",{key:F,class:"vpg-data-cell vpg-total-cell",style:e.normalizeStyle({width:`${ze.value}px`})},e.toDisplayString(h.formattedValue),5))),128)),t.pivotResult.rowTotals.length>0?(e.openBlock(),e.createElementBlock("td",Uo,e.toDisplayString(t.pivotResult.grandTotal.formattedValue),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])])),t.isConfigured&&t.pivotResult?(e.openBlock(),e.createElementBlock("div",Ho,[e.createElementVNode("span",Ko,e.toDisplayString(t.pivotResult.rowHeaders.length)+" rows × "+e.toDisplayString(((x=t.pivotResult.data[0])==null?void 0:x.length)||0)+" columns",1),re.value&&re.value.count>1?(e.openBlock(),e.createElementBlock("div",Oo,[e.createElementVNode("span",Wo,[m[29]||(m[29]=e.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),e.createElementVNode("span",_o,e.toDisplayString(re.value.count),1)]),re.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",qo,[m[30]||(m[30]=e.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),e.createElementVNode("span",Go,e.toDisplayString(xe(re.value.sum)),1)]),m[33]||(m[33]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Xo,[m[31]||(m[31]=e.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),e.createElementVNode("span",Yo,e.toDisplayString(xe(re.value.avg)),1)])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("div",co,[...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(g)&&e.unref(f)?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["vpg-watermark",{"vpg-demo-mode":e.unref(V)}])},[e.unref(V)?(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",Zo," Powered by TinyPivot "))],2)):e.createCommentVNode("",!0)],2)}}}),[["__scopeId","data-v-6b3a0147"]]),Jo={key:0,class:"vpg-toast"},Qo={class:"vpg-toolbar"},Io={class:"vpg-toolbar-left"},ea={key:0,class:"vpg-view-toggle"},ta={key:0,class:"vpg-search-container"},la={key:1,class:"vpg-search-box"},na={class:"vpg-font-size-control"},oa={class:"vpg-font-size-toggle"},aa=["onClick"],ra={key:1,class:"vpg-filter-info"},sa={key:2,class:"vpg-search-info"},ia={key:0,class:"vpg-pivot-status"},ca={class:"vpg-toolbar-right"},da=["title"],ua={key:0,class:"vpg-loading"},ma={key:1,class:"vpg-empty"},ga={key:2,class:"vpg-empty"},pa={key:3,class:"vpg-table-wrapper"},fa=["onClick"],va={class:"vpg-header-content"},ha={class:"vpg-header-text"},ka={class:"vpg-header-icons"},wa={key:0,class:"vpg-sort-indicator"},Va={key:0,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},Ea={key:1,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},Ca={key:1,class:"vpg-filter-indicator"},Na=["onMousedown"],ya=["data-row","data-col","onMousedown","onMouseenter"],ba={key:1,class:"vpg-pivot-container"},Fa={key:0,class:"vpg-pivot-config-panel"},Sa={class:"vpg-footer"},Ba={class:"vpg-footer-left"},Ma={key:0,class:"vpg-filtered-note"},xa={key:1},$a={class:"vpg-filtered-count"},Da={key:0,class:"vpg-pagination"},Ra=["disabled"],Ta=["disabled"],za={class:"vpg-page-info"},La=["disabled"],Aa=["disabled"],Pa={key:1,class:"vpg-selection-stats"},ja={class:"vpg-stat"},Ua={class:"vpg-stat-value"},Ha={class:"vpg-stat"},Ka={class:"vpg-stat-value"},Oa={class:"vpg-stat"},Wa={class:"vpg-stat-value"},_a={class:"vpg-footer-right"},qa={key:0,class:"vpg-demo-banner"},Ga={key:1,class:"vpg-watermark-inline"},we=120,St=350,Xa=Be(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:c}){const l=t,i=c,{showWatermark:a,canUsePivot:s,isDemo:g}=He(),f=e.computed(()=>{var u;return l.theme==="auto"?(u=window.matchMedia)!=null&&u.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light":l.theme}),V=e.ref(l.fontSize),E=e.ref(""),k=e.ref(!1),N=e.ref(1),R=e.ref(null),y=e.ref(0),w=e.ref(0),M=e.ref(l.initialHeight),K=e.ref(!1),A=e.ref(0),L=e.ref(0),$=e.ref(!1),B=e.ref(""),D=[{value:"xs",label:"S"},{value:"sm",label:"M"},{value:"base",label:"L"}],P=e.computed(()=>l.data),{table:G,columnKeys:S,filteredRowCount:C,totalRowCount:r,getColumnStats:o,hasActiveFilter:d,setColumnFilter:p,getColumnFilterValues:U,clearAllFilters:j,toggleSort:W,getSortDirection:le,columnFilters:Me,activeFilters:fe,setNumericRangeFilter:re,getNumericRangeFilter:xe}=kt({data:P}),se=e.computed(()=>G.getFilteredRowModel().rows.map(n=>n.original)),Ke=e.computed(()=>fe.value.length===0?null:fe.value.map(u=>{var n;if(u.type==="range"&&u.range){const v=[];return u.range.min!==null&&v.push(`≥ ${u.range.min}`),u.range.max!==null&&v.push(`≤ ${u.range.max}`),{column:u.column,valueCount:1,displayText:v.join(" and "),isRange:!0}}return{column:u.column,valueCount:((n=u.values)==null?void 0:n.length)||0,values:u.values||[],isRange:!1}})),{rowFields:Ve,columnFields:Ce,valueFields:Ne,showRowTotals:$e,showColumnTotals:De,availableFields:Xe,isConfigured:Re,pivotResult:ie,addRowField:Te,removeRowField:ze,addColumnField:b,removeColumnField:m,addValueField:x,removeValueField:h,updateValueFieldAggregation:F,clearConfig:T,autoSuggestConfig:_}=wt(se),q=e.computed(()=>{if(!E.value.trim()||!l.enableSearch)return be.value;const u=E.value.toLowerCase().trim();return be.value.filter(n=>{for(const v of S.value){const z=n.original[v];if(z!=null&&String(z).toLowerCase().includes(u))return!0}return!1})}),J=e.computed(()=>q.value.length),Q=e.computed(()=>l.enablePagination?Math.max(1,Math.ceil(J.value/l.pageSize)):1),ae=e.computed(()=>{if(!l.enablePagination)return q.value;const u=(N.value-1)*l.pageSize,n=u+l.pageSize;return q.value.slice(u,n)}),ce=e.computed(()=>J.value===0?0:(N.value-1)*l.pageSize+1),ne=e.computed(()=>Math.min(N.value*l.pageSize,J.value));function ye(){N.value<Q.value&&N.value++}function Oe(){N.value>1&&N.value--}e.watch([Me,E],()=>{N.value=1});function Ya(){if(I.value==="pivot"){Za();return}const u=l.enableSearch&&E.value.trim()?q.value.map(n=>n.original):be.value.map(n=>n.original);Vt(u,S.value,{filename:l.exportFilename,includeHeaders:!0}),i("export",{rowCount:u.length,filename:l.exportFilename})}function Za(){if(!ie.value)return;const u=l.exportFilename.replace(".csv","-pivot.csv");Et({headers:ie.value.headers,rowHeaders:ie.value.rowHeaders,data:ie.value.data,rowTotals:ie.value.rowTotals,columnTotals:ie.value.columnTotals,grandTotal:ie.value.grandTotal,showRowTotals:$e.value,showColumnTotals:De.value},Ve.value,Ce.value,Ne.value,{filename:u});const n=ie.value.rowHeaders.length;i("export",{rowCount:n,filename:u})}function Ja(u,n){l.enableColumnResize&&(n.preventDefault(),n.stopPropagation(),R.value=u,y.value=n.clientX,w.value=ve.value[u]||we,document.addEventListener("mousemove",Bt),document.addEventListener("mouseup",Mt))}function Bt(u){if(!R.value)return;const n=u.clientX-y.value,v=Math.max(we,Math.min(St,w.value+n));ve.value={...ve.value,[R.value]:v}}function Mt(){R.value=null,document.removeEventListener("mousemove",Bt),document.removeEventListener("mouseup",Mt)}function Qa(u){l.enableVerticalResize&&(u.preventDefault(),K.value=!0,A.value=u.clientY,L.value=M.value,document.addEventListener("mousemove",xt),document.addEventListener("mouseup",$t))}function xt(u){if(!K.value)return;const n=u.clientY-A.value,v=Math.max(l.minHeight,Math.min(l.maxHeight,L.value+n));M.value=v}function $t(){K.value=!1,document.removeEventListener("mousemove",xt),document.removeEventListener("mouseup",$t)}function Dt(){if(!ue.value||!l.enableClipboard)return;const u=Nt(be.value.map(n=>n.original),S.value,ue.value);Ct(u,()=>{const n=(ue.value.maxRow-ue.value.minRow+1)*(ue.value.maxCol-ue.value.minCol+1);B.value=`Copied ${n} cell${n>1?"s":""}`,$.value=!0,setTimeout(()=>{$.value=!1},2e3),i("copy",{text:u,cellCount:n})},n=>{B.value="Copy failed",$.value=!0,setTimeout(()=>{$.value=!1},2e3),console.error("Copy failed:",n)})}const I=e.ref("grid"),Le=e.ref(!0),tt=e.ref(null),ge=e.ref(pt());function Ia(u){u.id||(u.id=`calc_${Date.now()}_${Math.random().toString(36).substr(2,9)}`),ge.value=[...ge.value,u],Ue(ge.value)}function er(u){ge.value=ge.value.filter(z=>z.id!==u),Ue(ge.value);const n=`calc:${u}`,v=Ne.value.find(z=>z.field===n);v&&h(n,v.aggregation)}function tr(u){ge.value=ge.value.map(n=>n.id===u.id?u:n),Ue(ge.value)}function lr(u){tt.value=u}function nr(){tt.value=null}function or(u){Ve.value=u}function ar(u){Ce.value=u}const lt=e.ref(),Rt=e.ref(),be=e.computed(()=>G.getRowModel().rows),ee=e.ref(null),Ye=e.ref({top:0,left:0,maxHeight:400}),ve=e.ref({});function Tt(){if(l.data.length===0)return;const u={},n=Math.min(100,l.data.length),z=document.createElement("canvas").getContext("2d");if(z){z.font="13px system-ui, -apple-system, sans-serif";for(const H of S.value){let Z=z.measureText(H).width+56;for(let Y=0;Y<n;Y++){const X=l.data[Y][H],te=X==null?"":String(X),ke=z.measureText(te).width+28;Z=Math.max(Z,ke)}u[H]=Math.min(Math.max(Z,we),St)}ve.value=u}}function rr(u,n){n.stopPropagation();const v=n.currentTarget,z=v.closest(".vpg-header-cell"),H=(z==null?void 0:z.getBoundingClientRect())||v.getBoundingClientRect(),Z=280,Y=12;let X=H.left;X+Z>window.innerWidth-Y&&(X=window.innerWidth-Z-Y),X=Math.max(Y,X);const te=window.innerHeight-H.bottom-Y,ke=H.top-Y;let Fe,Se;te>=300||te>=ke?(Fe=H.bottom+4,Se=Math.min(400,te-4)):(Se=Math.min(400,ke-4),Fe=H.top-Se-4),Ye.value={top:Fe,left:X,maxHeight:Se},ee.value=u}function Ze(){ee.value=null}function sr(u,n){p(u,n)}function ir(u,n){re(u,n)}function cr(u,n){if(n===null)le(u)&&(W(u),le(u)&&W(u));else{const v=le(u);v===null?(W(u),n==="desc"&&le(u)==="asc"&&W(u)):v!==n&&W(u)}}const Je=e.computed(()=>Me.value.length),he=e.ref(null),pe=e.ref(null),de=e.ref(null),nt=e.ref(!1);function dr(u){const n=be.value.length-1;n<0||(pe.value={row:0,col:u},de.value={row:n,col:u},he.value={row:0,col:u})}function ur(u,n){if(n.target.closest(".vpg-dropdown-arrow")){const z=S.value[u];rr(z,n)}else dr(u)}const ue=e.computed(()=>!pe.value||!de.value?null:{minRow:Math.min(pe.value.row,de.value.row),maxRow:Math.max(pe.value.row,de.value.row),minCol:Math.min(pe.value.col,de.value.col),maxCol:Math.max(pe.value.col,de.value.col)});function mr(u,n){if(!ue.value)return!1;const{minRow:v,maxRow:z,minCol:H,maxCol:Z}=ue.value;return u>=v&&u<=z&&n>=H&&n<=Z}const Ae=e.computed(()=>{if(!ue.value)return null;const{minRow:u,maxRow:n,minCol:v,maxCol:z}=ue.value,H=[];let Z=0;for(let te=u;te<=n;te++){const ke=be.value[te];if(ke)for(let Fe=v;Fe<=z;Fe++){const Se=S.value[Fe];if(!Se)continue;const Pe=ke.original[Se];if(Z++,Pe!=null&&Pe!==""){const Ut=typeof Pe=="number"?Pe:Number.parseFloat(String(Pe));Number.isNaN(Ut)||H.push(Ut)}}}if(H.length===0)return{count:Z,sum:null,avg:null,numericCount:0};const Y=H.reduce((te,ke)=>te+ke,0),X=Y/H.length;return{count:Z,sum:Y,avg:X,numericCount:H.length}});function zt(u){return u===null?"-":Math.abs(u)>=1e3?u.toLocaleString("en-US",{maximumFractionDigits:2}):u.toLocaleString("en-US",{maximumFractionDigits:4})}function Lt(u){if((u.ctrlKey||u.metaKey)&&u.key==="c"&&ue.value){u.preventDefault(),Dt();return}if((u.ctrlKey||u.metaKey)&&u.key==="f"&&l.enableSearch){u.preventDefault(),k.value=!0,e.nextTick(()=>{const X=document.querySelector(".vpg-search-input");X==null||X.focus()});return}if(!he.value||ee.value)return;const{row:n,col:v}=he.value,H=ae.value.length-1,Z=S.value.length-1;function Y(X,te){u.shiftKey?(pe.value||(pe.value={row:n,col:v}),de.value={row:X,col:te}):(pe.value={row:X,col:te},de.value={row:X,col:te}),he.value={row:X,col:te},gr(X,te)}switch(u.key){case"ArrowUp":u.preventDefault(),n>0&&Y(n-1,v);break;case"ArrowDown":u.preventDefault(),n<H&&Y(n+1,v);break;case"ArrowLeft":u.preventDefault(),v>0&&Y(n,v-1);break;case"ArrowRight":u.preventDefault(),v<Z&&Y(n,v+1);break;case"Escape":he.value=null,pe.value=null,de.value=null,k.value=!1,E.value="";break}}function gr(u,n){e.nextTick(()=>{var z;const v=(z=Rt.value)==null?void 0:z.querySelector(`[data-row="${u}"][data-col="${n}"]`);v==null||v.scrollIntoView({block:"nearest",inline:"nearest"})})}function pr(u,n,v){v.preventDefault(),v.shiftKey&&he.value?de.value={row:u,col:n}:(he.value={row:u,col:n},pe.value={row:u,col:n},de.value={row:u,col:n},nt.value=!0);const z=be.value[u];if(z){const H=S.value[n];i("cellClick",{row:u,col:n,value:z.original[H],rowData:z.original})}}function fr(u,n){nt.value&&(de.value={row:u,col:n})}function At(){nt.value=!1}function vr(u,n){var v,z;return mr(u,n)?!0:((v=he.value)==null?void 0:v.row)===u&&((z=he.value)==null?void 0:z.col)===n}const hr=/^(?:.*_)?(?: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 kr(u){return!hr.test(u)}function wr(u,n){if(u==null||u==="")return"";if(o(n).type==="number"){const z=typeof u=="number"?u:Number.parseFloat(String(u));return Number.isNaN(z)?String(u):kr(n)&&Math.abs(z)>=1e3?z.toLocaleString("en-US",{maximumFractionDigits:2}):Number.isInteger(z)?String(z):z.toLocaleString("en-US",{maximumFractionDigits:4,useGrouping:!1})}return String(u)}function Pt(){ee.value&&Ze()}function jt(u){var n;if(ee.value){const v=u.target;if(v&&((n=v.closest)!=null&&n.call(v,".vpg-filter-portal")))return;Ze()}}e.onMounted(()=>{Tt(),document.addEventListener("keydown",Lt),document.addEventListener("mouseup",At),e.nextTick(()=>{var u;(u=lt.value)==null||u.addEventListener("scroll",Pt,{passive:!0})}),window.addEventListener("scroll",jt,{passive:!0,capture:!0})}),e.onUnmounted(()=>{var u;document.removeEventListener("keydown",Lt),document.removeEventListener("mouseup",At),(u=lt.value)==null||u.removeEventListener("scroll",Pt),window.removeEventListener("scroll",jt,{capture:!0})}),e.watch(()=>l.data,()=>{e.nextTick(Tt)},{immediate:!0});const Vr=e.computed(()=>S.value.reduce((u,n)=>u+(ve.value[n]||we),0));function Er(u){ee.value&&(u.target.closest(".vpg-filter-portal")||Ze())}return(u,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vpg-data-grid",[`vpg-font-${V.value}`,`vpg-theme-${f.value}`,{"vpg-striped":t.stripedRows},{"vpg-resizing":R.value},{"vpg-resizing-vertical":K.value}]]),style:e.normalizeStyle({height:`${M.value}px`}),onClick:Er},[e.createVNode(e.Transition,{name:"vpg-toast"},{default:e.withCtx(()=>[$.value?(e.openBlock(),e.createElementBlock("div",Jo,[n[16]||(n[16]=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(B.value),1)])):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",Qo,[e.createElementVNode("div",Io,[t.showPivot?(e.openBlock(),e.createElementBlock("div",ea,[e.createElementVNode("button",{class:e.normalizeClass(["vpg-view-btn",{active:I.value==="grid"}]),onClick:n[0]||(n[0]=v=>I.value="grid")},[...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:"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:I.value==="pivot"}]),onClick:n[1]||(n[1]=v=>I.value="pivot")},[...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:"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),I.value==="grid"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.enableSearch?(e.openBlock(),e.createElementBlock("div",ta,[k.value?(e.openBlock(),e.createElementBlock("div",la,[n[21]||(n[21]=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=>{k.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[20]||(n[20]=[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=>k.value=!0)},[...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:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)])]))])):e.createCommentVNode("",!0),e.createElementVNode("div",na,[n[22]||(n[22]=e.createElementVNode("span",{class:"vpg-label"},"Size:",-1)),e.createElementVNode("div",oa,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(D,v=>e.createElementVNode("button",{key:v.value,class:e.normalizeClass(["vpg-font-size-btn",{active:V.value===v.value}]),onClick:z=>V.value=v.value},e.toDisplayString(v.label),11,aa)),64))])]),Je.value>0?(e.openBlock(),e.createElementBlock("div",ra,[n[23]||(n[23]=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(Je.value)+" filter"+e.toDisplayString(Je.value>1?"s":""),1)])):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createElementBlock("div",sa,[e.createElementVNode("span",null,e.toDisplayString(J.value)+" match"+e.toDisplayString(J.value!==1?"es":""),1)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),I.value==="pivot"&&e.unref(s)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("button",{class:e.normalizeClass(["vpg-config-toggle",{active:Le.value}]),onClick:n[6]||(n[6]=v=>Le.value=!Le.value)},[n[24]||(n[24]=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(Le.value?"Hide":"Show")+" Config ",1)],2),e.unref(Re)?(e.openBlock(),e.createElementBlock("div",ia,[...n[25]||(n[25]=[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",ca,[I.value==="grid"&&Je.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[26]||(n[26]=[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&&ue.value&&I.value==="grid"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"vpg-icon-btn",title:"Copy selection (Ctrl+C)",onClick:Dt},[...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:"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&&(I.value==="grid"||I.value==="pivot"&&e.unref(Re))?(e.openBlock(),e.createElementBlock("button",{key:2,class:"vpg-export-btn",title:I.value==="pivot"?"Export Pivot to CSV":"Export to CSV",onClick:Ya},[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:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})],-1)),e.createTextVNode(" Export"+e.toDisplayString(I.value==="pivot"?" Pivot":""),1)],8,da)):e.createCommentVNode("",!0)])]),I.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",ua,[...n[29]||(n[29]=[e.createElementVNode("div",{class:"vpg-spinner"},null,-1),e.createElementVNode("span",null,"Loading data...",-1)])])):t.data.length===0?(e.openBlock(),e.createElementBlock("div",ma,[...n[30]||(n[30]=[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(C)===0?(e.openBlock(),e.createElementBlock("div",ga,[n[31]||(n[31]=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[32]||(n[32]=e.createElementVNode("span",null,"No matching records",-1)),e.createElementVNode("button",{class:"vpg-clear-link",onClick:n[8]||(n[8]=(...v)=>e.unref(j)&&e.unref(j)(...v))}," Clear all filters ")])):(e.openBlock(),e.createElementBlock("div",pa,[e.createElementVNode("table",{class:"vpg-table",style:e.normalizeStyle({minWidth:`${Vr.value}px`})},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(S),(v,z)=>(e.openBlock(),e.createElementBlock("th",{key:v,class:e.normalizeClass(["vpg-header-cell",{"vpg-has-filter":e.unref(d)(v),"vpg-is-sorted":e.unref(le)(v)!==null,"vpg-is-active":ee.value===v}]),style:e.normalizeStyle({width:`${ve.value[v]||we}px`,minWidth:`${ve.value[v]||we}px`}),onClick:H=>ur(z,H)},[e.createElementVNode("div",va,[e.createElementVNode("span",ha,e.toDisplayString(v),1),e.createElementVNode("div",ka,[e.unref(le)(v)?(e.openBlock(),e.createElementBlock("span",wa,[e.unref(le)(v)==="asc"?(e.openBlock(),e.createElementBlock("svg",Va,[...n[33]||(n[33]=[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",Ea,[...n[34]||(n[34]=[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(d)(v)?(e.openBlock(),e.createElementBlock("span",Ca,[...n[35]||(n[35]=[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[36]||(n[36]=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:H=>Ja(v,H)},null,40,Na)):e.createCommentVNode("",!0)],14,fa))),128))])]),e.createElementVNode("tbody",{ref_key:"tableBodyRef",ref:Rt},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ae.value,(v,z)=>(e.openBlock(),e.createElementBlock("tr",{key:v.id,class:"vpg-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(S),(H,Z)=>(e.openBlock(),e.createElementBlock("td",{key:H,class:e.normalizeClass(["vpg-cell",{"vpg-selected":vr(z,Z),"vpg-is-number":e.unref(o)(H).type==="number"}]),"data-row":z,"data-col":Z,style:e.normalizeStyle({width:`${ve.value[H]||we}px`,minWidth:`${ve.value[H]||we}px`}),onMousedown:Y=>pr(z,Z,Y),onMouseenter:Y=>fr(z,Z)},e.toDisplayString(wr(v.original[H],H)),47,ya))),128))]))),128))],512)],4)]))],512)):(e.openBlock(),e.createElementBlock("div",ba,[Le.value&&e.unref(s)?(e.openBlock(),e.createElementBlock("div",Fa,[e.createVNode(bt,{"available-fields":e.unref(Xe),"row-fields":e.unref(Ve),"column-fields":e.unref(Ce),"value-fields":e.unref(Ne),"show-row-totals":e.unref($e),"show-column-totals":e.unref(De),"calculated-fields":ge.value,"onUpdate:showRowTotals":n[9]||(n[9]=v=>$e.value=v),"onUpdate:showColumnTotals":n[10]||(n[10]=v=>De.value=v),onClearConfig:e.unref(T),onDragStart:lr,onDragEnd:nr,onUpdateAggregation:e.unref(F),onAddRowField:e.unref(Te),onRemoveRowField:e.unref(ze),onAddColumnField:e.unref(b),onRemoveColumnField:e.unref(m),onAddValueField:e.unref(x),onRemoveValueField:e.unref(h),onAddCalculatedField:Ia,onRemoveCalculatedField:er,onUpdateCalculatedField:tr},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":!Le.value}])},[e.createVNode(Ft,{"row-fields":e.unref(Ve),"column-fields":e.unref(Ce),"value-fields":e.unref(Ne),"calculated-fields":ge.value,"is-configured":e.unref(Re),"dragging-field":tt.value,"pivot-result":e.unref(ie),"font-size":V.value,"active-filters":Ke.value,"total-row-count":e.unref(r),"filtered-row-count":e.unref(C),onAddRowField:e.unref(Te),onRemoveRowField:e.unref(ze),onAddColumnField:e.unref(b),onRemoveColumnField:e.unref(m),onAddValueField:e.unref(x),onRemoveValueField:e.unref(h),onUpdateAggregation:e.unref(F),onReorderRowFields:or,onReorderColumnFields:ar},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",Sa,[e.createElementVNode("div",Ba,[I.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(ce.value.toLocaleString())+"-"+e.toDisplayString(ne.value.toLocaleString()),1),n[37]||(n[37]=e.createElementVNode("span",{class:"vpg-separator"},"of",-1)),e.createElementVNode("span",null,e.toDisplayString(J.value.toLocaleString()),1),J.value!==e.unref(r)?(e.openBlock(),e.createElementBlock("span",Ma," ("+e.toDisplayString(e.unref(r).toLocaleString())+" total) ",1)):e.createCommentVNode("",!0)],64)):e.unref(C)===e.unref(r)&&J.value===e.unref(r)?(e.openBlock(),e.createElementBlock("span",xa,e.toDisplayString(e.unref(r).toLocaleString())+" records",1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("span",$a,e.toDisplayString(J.value.toLocaleString()),1),n[38]||(n[38]=e.createElementVNode("span",{class:"vpg-separator"},"of",-1)),e.createElementVNode("span",null,e.toDisplayString(e.unref(r).toLocaleString()),1),n[39]||(n[39]=e.createElementVNode("span",{class:"vpg-separator"},"records",-1))],64))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[n[40]||(n[40]=e.createElementVNode("span",{class:"vpg-pivot-label"},"Pivot Table",-1)),n[41]||(n[41]=e.createElementVNode("span",{class:"vpg-separator"},"•",-1)),e.createElementVNode("span",null,e.toDisplayString(e.unref(r).toLocaleString())+" source records",1)],64))]),t.enablePagination&&I.value==="grid"&&Q.value>1?(e.openBlock(),e.createElementBlock("div",Da,[e.createElementVNode("button",{class:"vpg-page-btn",disabled:N.value===1,onClick:n[11]||(n[11]=v=>N.value=1)},[...n[42]||(n[42]=[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,Ra),e.createElementVNode("button",{class:"vpg-page-btn",disabled:N.value===1,onClick:Oe},[...n[43]||(n[43]=[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,Ta),e.createElementVNode("span",za," Page "+e.toDisplayString(N.value)+" of "+e.toDisplayString(Q.value),1),e.createElementVNode("button",{class:"vpg-page-btn",disabled:N.value===Q.value,onClick:ye},[...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:"M9 5l7 7-7 7"})],-1)])],8,La),e.createElementVNode("button",{class:"vpg-page-btn",disabled:N.value===Q.value,onClick:n[12]||(n[12]=v=>N.value=Q.value)},[...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:"M13 5l7 7-7 7M5 5l7 7-7 7"})],-1)])],8,Aa)])):e.createCommentVNode("",!0),I.value==="grid"&&Ae.value&&Ae.value.count>1?(e.openBlock(),e.createElementBlock("div",Pa,[e.createElementVNode("span",ja,[n[46]||(n[46]=e.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),e.createElementVNode("span",Ua,e.toDisplayString(Ae.value.count),1)]),Ae.value.numericCount>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[49]||(n[49]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Ha,[n[47]||(n[47]=e.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),e.createElementVNode("span",Ka,e.toDisplayString(zt(Ae.value.sum)),1)]),n[50]||(n[50]=e.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),e.createElementVNode("span",Oa,[n[48]||(n[48]=e.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),e.createElementVNode("span",Wa,e.toDisplayString(zt(Ae.value.avg)),1)])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",_a,[e.unref(g)?(e.openBlock(),e.createElementBlock("div",qa,[...n[51]||(n[51]=[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(a)?(e.openBlock(),e.createElementBlock("span",Ga,[...n[52]||(n[52]=[e.createStaticVNode('<a href="https://tiny-pivot.com" target="_blank" rel="noopener" data-v-8f2b59ce><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-8f2b59ce><rect x="3" y="3" width="7" height="7" data-v-8f2b59ce></rect><rect x="14" y="3" width="7" height="7" data-v-8f2b59ce></rect><rect x="14" y="14" width="7" height="7" data-v-8f2b59ce></rect><rect x="3" y="14" width="7" height="7" data-v-8f2b59ce></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:Qa},[...n[53]||(n[53]=[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"},[ee.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"vpg-filter-portal",style:e.normalizeStyle({position:"fixed",top:`${Ye.value.top}px`,left:`${Ye.value.left}px`,maxHeight:`${Ye.value.maxHeight}px`,zIndex:9999})},[e.createVNode(yt,{"column-id":ee.value,"column-name":ee.value,stats:e.unref(o)(ee.value),"selected-values":e.unref(U)(ee.value),"sort-direction":e.unref(le)(ee.value),"numeric-range":e.unref(xe)(ee.value),onFilter:n[13]||(n[13]=v=>sr(ee.value,v)),onRangeFilter:n[14]||(n[14]=v=>ir(ee.value,v)),onSort:n[15]||(n[15]=v=>cr(ee.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-8f2b59ce"]]);O.ColumnFilter=yt,O.DataGrid=Xa,O.PivotConfig=bt,O.PivotSkeleton=Ft,O.configureLicenseSecret=wl,O.copyToClipboard=Ct,O.enableDemoMode=kl,O.exportPivotToCSV=Et,O.exportToCSV=Vt,O.formatCellValue=at,O.formatSelectionForClipboard=Nt,O.getAggregationLabel=je,O.getColumnUniqueValues=ot,O.setLicenseKey=hl,O.useColumnResize=Nl,O.useExcelGrid=kt,O.useGlobalSearch=El,O.useLicense=He,O.usePagination=Vl,O.usePivotTable=wt,O.useRowSelection=Cl,Object.defineProperty(O,Symbol.toStringTag,{value:"Module"})});
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-----
2
+ MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE436rfGofder4lfo4UHsRF2M88Gs0
3
+ zLsikg2H9GMkL8hLGuOtnGMpVfLRlc7cD8FdkPBBRgiQ8UFnG8hm+nMIug==
4
+ -----END PUBLIC KEY-----`;function vt(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 ol(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 h=new Uint8Array(64);return h.set(p,0),h.set(f,32),h}async function al(){try{const t=nl.replace("-----BEGIN PUBLIC KEY-----","").replace("-----END PUBLIC KEY-----","").replace(/\s/g,""),s=vt(t);return await crypto.subtle.importKey("spki",new Uint8Array(s).buffer,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"])}catch{return null}}async function rl(t,s,l){const r=`TP-${t}-${l}`;try{const o=await al();if(!o)return!1;const p=new TextEncoder().encode(r),f=vt(s),h=ol(f);return await crypto.subtle.verify({name:"ECDSA",hash:"SHA-256"},o,new Uint8Array(h).buffer,p)}catch{return!1}}async function sl(t){if(!t||t==="")return ft;if(!t.startsWith("TP-"))return Ye;const s=t.lastIndexOf("-");if(s===-1||t.length-s!==9)return Ye;const l=t.slice(s+1),r=t.slice(3),o=r.indexOf("-");if(o===-1)return Ye;const a=r.slice(0,o),p=r.slice(o+1,r.lastIndexOf("-"));if(!await rl(a,p,l))return Ye;const h=Number.parseInt(l.slice(0,4)),y=Number.parseInt(l.slice(4,6))-1,E=Number.parseInt(l.slice(6,8)),S=new Date(h,y,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 il(t){console.warn("[TinyPivot] configureLicenseSecret() is deprecated and no longer needed.")}const cl="A48AA0618518D3E62F31FCFCA2DD2B86E7FE0863E2F90756FB0A960AE7A51583";async function dl(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 ul(t){return!t||await dl(t)!==cl?null:ll}function ml(){return ft}function gl(t){return t.features.pivot}function pl(t){return t.isValid&&t.type!=="free"}function fl(t,s){return s||!t.features.noWatermark}function vl(t){console.warn(`[TinyPivot] "${t}" requires a Pro license. Visit https://tiny-pivot.com/#pricing to upgrade.`)}function oe(t,s=","){if(t==null)return"";const l=String(t);return l.includes(s)||l.includes('"')||l.includes(`
5
+ `)?`"${l.replace(/"/g,'""')}"`:l}function hl(t,s,l={}){const{filename:r="export.csv",includeHeaders:o=!0,delimiter:a=","}=l,p=[];o&&p.push(s.map(h=>oe(h,a)).join(a));for(const h of t){const y=s.map(E=>oe(h[E],a));p.push(y.join(a))}const f=p.join(`
6
+ `);ht(f,r,"text/csv;charset=utf-8;")}function kl(t,s,l,r,o={}){const{filename:a="pivot-export.csv",delimiter:p=","}=o,f=[],{headers:h,rowHeaders:y,data:E,rowTotals:S,columnTotals:F,grandTotal:N,showRowTotals:w,showColumnTotals:L}=t,O=s.length||1;if(h.length>0)for(let P=0;P<h.length;P++){const M=[];for(let x=0;x<O;x++)M.push(P===h.length-1?oe(s[x]||"",p):"");for(const x of h[P])M.push(oe(x,p));if(w&&S&&S.length>0)if(P===h.length-1)for(const x of r)M.push(oe(`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<O;M++)P.push(oe(s[M]||"",p));for(const M of r)P.push(oe(`${M.field} (${M.aggregation})`,p));w&&S&&S.length>0&&P.push(oe("Total",p)),f.push(P.join(p))}for(let P=0;P<y.length;P++){const M=[],x=y[P]||[];for(let U=0;U<O;U++)M.push(oe(x[U]||"",p));const T=E[P]||[];for(const U of T)M.push(oe((U==null?void 0:U.formattedValue)||"",p));w&&S&&S[P]&&M.push(oe(S[P].formattedValue||"",p)),f.push(M.join(p))}if(L&&F&&F.length>0){const P=[];P.push(oe("Total",p));for(let M=1;M<O;M++)P.push("");for(const M of F)P.push(oe((M==null?void 0:M.formattedValue)||"",p));w&&N&&P.push(oe(N.formattedValue||"",p)),f.push(P.join(p))}const H=f.join(`
7
+ `);ht(H,a,"text/csv;charset=utf-8;")}function ht(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 wl(t,s,l){navigator.clipboard.writeText(t).then(s).catch(l)}function Vl(t,s,l){const{minRow:r,maxRow:o,minCol:a,maxCol:p}=l,f=[];for(let h=r;h<=o;h++){const y=t[h];if(!y)continue;const E=[];for(let S=a;S<=p;S++){const F=s[S];if(!F)continue;const N=y[F];E.push(N==null?"":String(N))}f.push(E.join(" "))}return f.join(`
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"})});
7
10
  //# sourceMappingURL=tinypivot-vue.umd.cjs.map