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