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