@smallwebco/tinypivot-vue 1.0.71 → 1.0.73

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.
@@ -300,7 +300,7 @@ ${n.map(t=>{const a=t.columns.filter(o=>o.name==="id"||o.name.endsWith("_id")||o
300
300
  - Columns: ${i}${r}`}).join(`
301
301
  `)}
302
302
  `}function Sl(n){return n.map(e=>{const t=e.nullable?"nullable":"required",a=e.description?` - ${e.description}`:"";return`- \`${e.name}\` (${e.type}, ${t})${a}`}).join(`
303
- `)}function Al(n){const e=/```sql\s*([\s\S]*?)```/i,t=n.match(e);if(t&&t[1]){const a=t[1].trim();return a.toUpperCase().startsWith("SELECT")?a:null}return null}function El(n){const e=n.toUpperCase().trim();if(!e.startsWith("SELECT")&&!e.startsWith("WITH"))return{valid:!1,error:"Only SELECT queries (including CTEs with WITH) are allowed"};if(e.startsWith("WITH")&&!e.includes("SELECT"))return{valid:!1,error:"CTE queries must include a final SELECT statement"};const t=["INSERT","UPDATE","DELETE","DROP","ALTER","TRUNCATE","CREATE","GRANT","REVOKE","EXEC","EXECUTE","INTO"];for(const a of t)if(new RegExp(`\\b${a}\\b`,"i").test(n))return{valid:!1,error:`Query contains forbidden keyword: ${a}`};return n.includes(";")&&n.split(";").filter(i=>i.trim().length>0).length>1?{valid:!1,error:"Multiple statements are not allowed"}:{valid:!0}}function Nl(n){return n.replace(/```sql\s*[\s\S]*?```\s*/gi,"").trim()}function Ml(){return`tp-ai-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}function fn(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function pn(n){const e=Date.now();return{id:n||Ml(),messages:[],dataSourceId:void 0,createdAt:e,updatedAt:e}}function Ll(n){return{id:fn(),role:"user",content:n,timestamp:Date.now()}}function nt(n,e){return{id:fn(),role:"assistant",content:n,timestamp:Date.now(),metadata:e}}function Qe(n,e){return{...n,messages:[...n.messages,e],updatedAt:Date.now()}}function Bl(n,e){return{...n,dataSourceId:e,updatedAt:Date.now()}}function Fl(n){return n.messages.filter(e=>e.role!=="system").map(e=>({role:e.role,content:e.content}))}const Yi=[{type:"bar",label:"Bar Chart",icon:"bar",description:"Compare values across categories",requiredFields:["dimension","measure"],optionalFields:["dimension"],guidance:"Drag a category to X-axis and a number to Y-axis",bestFor:["Comparing categories","Ranking","Part-to-whole"]},{type:"stackedBar",label:"Stacked Bar",icon:"stackedBar",description:"Compare composition across categories",requiredFields:["dimension","measure"],optionalFields:["dimension"],guidance:"Drag a category to X-axis, a number to Y-axis, and a grouping field to Series",bestFor:["Part-to-whole comparison","Composition over categories","Cumulative totals"]},{type:"line",label:"Line Chart",icon:"line",description:"Show trends over time or sequence",requiredFields:["dimension","measure"],optionalFields:["dimension"],guidance:"Best with time/date on X-axis and numbers on Y-axis",bestFor:["Trends over time","Continuous data","Multiple series"]},{type:"area",label:"Area Chart",icon:"area",description:"Show magnitude and trends",requiredFields:["dimension","measure"],optionalFields:["dimension"],guidance:"Like line charts but emphasizes volume. Great for stacked comparisons.",bestFor:["Cumulative totals","Part-to-whole over time","Volume trends"]},{type:"pie",label:"Pie Chart",icon:"pie",description:"Show proportions of a whole",requiredFields:["dimension","measure"],optionalFields:[],guidance:"Drag a category and a number. Best with 2-6 categories.",bestFor:["Part-to-whole","Proportions","Simple distributions"]},{type:"donut",label:"Donut Chart",icon:"donut",description:"Proportions with center space for metrics",requiredFields:["dimension","measure"],optionalFields:[],guidance:"Like pie but allows showing a total in the center",bestFor:["Part-to-whole","Showing total","Dashboard KPIs"]},{type:"scatter",label:"Scatter Plot",icon:"scatter",description:"Show relationships between two variables",requiredFields:["measure","measure"],optionalFields:["dimension"],guidance:"Drag a number to X-axis and another number to Y-axis",bestFor:["Correlation","Outlier detection","Distribution"]},{type:"bubble",label:"Bubble Chart",icon:"bubble",description:"Three-dimensional comparison",requiredFields:["measure","measure"],optionalFields:["measure","dimension"],guidance:"Like scatter, plus drag a third number to Size for bubble size",bestFor:["Multi-variable comparison","Weighted relationships"]},{type:"heatmap",label:"Heatmap",icon:"heatmap",description:"Visualize density or intensity",requiredFields:["dimension","dimension","measure"],optionalFields:[],guidance:"Drag two categories (X and Y) and a number to Color",bestFor:["Patterns","Density","Cross-tabulation"]},{type:"radar",label:"Radar Chart",icon:"radar",description:"Compare multiple variables",requiredFields:["dimension","measure"],optionalFields:["dimension"],guidance:"Best for comparing items across multiple metrics",bestFor:["Multi-metric comparison","Performance profiles","Balanced scorecards"]}],ni=[{value:"sum",label:"Sum",symbol:"SUM"},{value:"count",label:"Count",symbol:"COUNT"},{value:"avg",label:"Average",symbol:"AVG"},{value:"min",label:"Minimum",symbol:"MIN"},{value:"max",label:"Maximum",symbol:"MAX"},{value:"countDistinct",label:"Count Distinct",symbol:"DISTINCT"}],mn=["#6366f1","#22c55e","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899","#14b8a6","#f97316","#3b82f6"];function Tl(n,e){if(n.length===0)return"dimension";const a=n.slice(0,100).map(o=>o[e]).filter(o=>o!=null);if(a.length===0)return"dimension";let i=0,s=0;for(const o of a)(typeof o=="number"||!Number.isNaN(Number(o))&&o!==""&&typeof o!="boolean")&&i++,(o instanceof Date||typeof o=="string"&&!Number.isNaN(Date.parse(o))&&o.includes("-"))&&s++;const r=a.length*.8;return s>=r?"temporal":i>=r&&new Set(a.map(String)).size>Math.min(a.length*.3,20)?"measure":"dimension"}function Rl(n){if(n.length===0)return[];const e=Object.keys(n[0]),t=[];for(const a of e){const i=n.map(h=>h[a]).filter(h=>h!=null),s=Tl(n,a),r=new Set(i.map(String));let o="string",c,d;if(s==="measure"){o="number";const h=i.map(u=>Number(u)).filter(u=>!Number.isNaN(u));h.length>0&&(c=Math.min(...h),d=Math.max(...h))}else s==="temporal"?o="date":i.filter(u=>typeof u=="boolean"||u==="true"||u==="false").length>=i.length*.8&&(o="boolean");t.push({field:a,label:Xi(a),role:s,dataType:o,uniqueCount:r.size,sampleValues:Array.from(r).slice(0,5),min:c,max:d})}return t}function Xi(n){return n.replace(/([A-Z])/g," $1").replace(/[_-]/g," ").replace(/\s+/g," ").trim().split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ")}function xn(n){return Yi.find(e=>e.type===n)}function Dl(n){if(!xn(n.type))return!1;switch(n.type){case"bar":case"stackedBar":case"line":case"area":case"pie":case"donut":case"radar":return!!n.xAxis&&!!n.yAxis;case"scatter":return!!n.xAxis&&!!n.yAxis;case"bubble":return!!n.xAxis&&!!n.yAxis;case"heatmap":return!!n.xAxis&&!!n.yAxis&&!!n.colorField;default:return!1}}function Vl(n){const e=xn(n.type);if(!e)return"Select a chart type to begin";if(!n.xAxis&&!n.yAxis)return e.guidance;switch(n.type){case"bar":case"line":case"area":return n.xAxis?n.yAxis?n.seriesField?"Chart is ready! Adjust options as needed.":"Optionally add a field to Color for grouped series":"Drag a number field to the Y-axis":"Drag a category field to the X-axis";case"stackedBar":return n.xAxis?n.yAxis?n.seriesField?"Chart is ready! Each series is stacked within the bar.":"Add a field to Series to define stacked segments":"Drag a number field to the Y-axis":"Drag a category field to the X-axis";case"pie":case"donut":return n.xAxis?n.yAxis?"Chart is ready!":"Drag a number field (values)":"Drag a category field (slices)";case"radar":return n.xAxis?n.yAxis?"Chart is ready!":"Drag a number field for values":"Drag a category field for axes";case"scatter":return n.xAxis?n.yAxis?n.seriesField?"Tip: Filter data first for clearer visualizations":"Optionally add a category to color points by group":"Drag a number field to Y-axis":"Drag a number field to X-axis";case"bubble":return n.xAxis?n.yAxis?n.sizeField?"Tip: Filter to fewer records for readable bubbles":"Drag a number field to Size for bubble size":"Drag a number field to Y-axis":"Drag a number field to X-axis";case"heatmap":return n.xAxis?n.yAxis?n.colorField?"Chart is ready!":"Drag a number field to Value for color intensity":"Drag a category field to Y-axis":"Drag a category field to X-axis";default:return e.guidance}}function Wi(n,e){if(n.length===0)return 0;switch(e){case"sum":return n.reduce((t,a)=>t+a,0);case"count":return n.length;case"avg":return n.reduce((t,a)=>t+a,0)/n.length;case"min":return Math.min(...n);case"max":return Math.max(...n);case"countDistinct":return new Set(n).size;default:return n.reduce((t,a)=>t+a,0)}}function bn(n,e){var h;if(!e.xAxis||!e.yAxis||n.length===0)return{categories:[],series:[]};const t=e.xAxis.field,a=e.yAxis.field,i=e.yAxis.aggregation||"sum",s=(h=e.seriesField)==null?void 0:h.field,r=new Map;for(const u of n){const g=String(u[t]??"(blank)"),f=Number(u[a]),p=s?String(u[s]??"(blank)"):"_default";if(Number.isNaN(f))continue;r.has(g)||r.set(g,new Map);const m=r.get(g);m.has(p)||m.set(p,[]),m.get(p).push(f)}const o=Array.from(r.keys()).sort((u,g)=>{const f=Number.parseFloat(u),p=Number.parseFloat(g);return!Number.isNaN(f)&&!Number.isNaN(p)?f-p:u.localeCompare(g)}),c=new Set;for(const u of r.values())for(const g of u.keys())c.add(g);const d=[];for(const u of c){const g=[];for(const f of o){const p=r.get(f),m=(p==null?void 0:p.get(u))||[];g.push(Wi(m,i))}d.push({name:u==="_default"?Xi(a):u,data:g})}return{categories:o,series:d}}function vn(n,e){if(!e.xAxis||!e.yAxis||n.length===0)return{categories:[],series:[]};const t=e.xAxis.field,a=e.yAxis.field,i=e.yAxis.aggregation||"sum",s=new Map;for(const o of n){const c=String(o[t]??"(blank)"),d=Number(o[a]);Number.isNaN(d)||(s.has(c)||s.set(c,[]),s.get(c).push(d))}const r=Array.from(s.entries()).map(([o,c])=>({category:o,value:Wi(c,i)})).sort((o,c)=>c.value-o.value);return{categories:r.map(o=>o.category),series:[{name:Xi(a),data:r.map(o=>o.value)}]}}function Pl(n,e){var c,d;if(!e.xAxis||!e.yAxis||n.length===0)return{series:[]};const t=e.xAxis.field,a=e.yAxis.field,i=(c=e.sizeField)==null?void 0:c.field,s=(d=e.seriesField)==null?void 0:d.field,r=new Map;for(const h of n){const u=Number(h[t]),g=Number(h[a]);if(Number.isNaN(u)||Number.isNaN(g))continue;const f={x:u,y:g};if(i){const m=Number(h[i]);Number.isNaN(m)||(f.z=m)}const p=s?String(h[s]??"(blank)"):"_default";r.has(p)||r.set(p,[]),r.get(p).push(f)}return{series:Array.from(r.entries()).map(([h,u])=>{var g;return{name:h==="_default"?((g=e.yAxis)==null?void 0:g.label)||"Data":h,data:u}})}}function Il(n,e){if(!e.xAxis||!e.yAxis||!e.colorField||n.length===0)return{series:[]};const t=e.xAxis.field,a=e.yAxis.field,i=e.colorField.field,s=e.colorField.aggregation||"sum",r=new Map,o=new Set;for(const u of n){const g=String(u[t]??"(blank)"),f=String(u[a]??"(blank)"),p=Number(u[i]);if(Number.isNaN(p))continue;o.add(g),r.has(f)||r.set(f,new Map);const m=r.get(f);m.has(g)||m.set(g,[]),m.get(g).push(p)}const c=Array.from(o).sort((u,g)=>{const f=Number.parseFloat(u),p=Number.parseFloat(g);return!Number.isNaN(f)&&!Number.isNaN(p)?f-p:u.localeCompare(g)});return{series:Array.from(r.keys()).sort((u,g)=>{const f=Number.parseFloat(u),p=Number.parseFloat(g);return!Number.isNaN(f)&&!Number.isNaN(p)?f-p:u.localeCompare(g)}).map(u=>{const g=r.get(u),f=c.map(p=>{const m=g.get(p)||[],x=m.length>0?Wi(m,s):0;return{x:p,y:x}});return{name:u,data:f}})}}function zl(){return{type:"bar",options:{showDataLabels:!1,showLegend:!0,legendPosition:"top",animated:!0,colors:mn,showGrid:!0,enableZoom:!1,stacked:!1}}}function qe(n,e=","){if(n==null)return"";const t=String(n);return t.includes(e)||t.includes('"')||t.includes(`
303
+ `)}function Al(n){const e=/```sql\s*([\s\S]*?)```/i,t=n.match(e);if(t&&t[1]){const a=t[1].trim();return a.toUpperCase().startsWith("SELECT")?a:null}return null}function El(n){const e=n.toUpperCase().trim();if(!e.startsWith("SELECT")&&!e.startsWith("WITH"))return{valid:!1,error:"Only SELECT queries (including CTEs with WITH) are allowed"};if(e.startsWith("WITH")&&!e.includes("SELECT"))return{valid:!1,error:"CTE queries must include a final SELECT statement"};const t=["INSERT","UPDATE","DELETE","DROP","ALTER","TRUNCATE","CREATE","GRANT","REVOKE","EXEC","EXECUTE","INTO"];for(const a of t)if(new RegExp(`\\b${a}\\b`,"i").test(n))return{valid:!1,error:`Query contains forbidden keyword: ${a}`};return n.includes(";")&&n.split(";").filter(i=>i.trim().length>0).length>1?{valid:!1,error:"Multiple statements are not allowed"}:{valid:!0}}function Nl(n){return n.replace(/```sql\s*[\s\S]*?```\s*/gi,"").trim()}function Ml(){return`tp-ai-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}function fn(){return`msg-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function pn(n){const e=Date.now();return{id:n||Ml(),messages:[],dataSourceId:void 0,createdAt:e,updatedAt:e}}function Ll(n){return{id:fn(),role:"user",content:n,timestamp:Date.now()}}function nt(n,e){return{id:fn(),role:"assistant",content:n,timestamp:Date.now(),metadata:e}}function Qe(n,e){return{...n,messages:[...n.messages,e],updatedAt:Date.now()}}function Bl(n,e){return{...n,dataSourceId:e,updatedAt:Date.now()}}function Fl(n){return n.messages.filter(e=>e.role!=="system").map(e=>({role:e.role,content:e.content}))}const Yi=[{type:"bar",label:"Bar Chart",icon:"bar",description:"Compare values across categories",requiredFields:["dimension","measure"],optionalFields:["dimension"],guidance:"Drag a category to X-axis and a number to Y-axis",bestFor:["Comparing categories","Ranking","Part-to-whole"]},{type:"stackedBar",label:"Stacked Bar",icon:"stackedBar",description:"Compare composition across categories",requiredFields:["dimension","measure"],optionalFields:["dimension"],guidance:"Drag a category to X-axis, a number to Y-axis, and a grouping field to Series",bestFor:["Part-to-whole comparison","Composition over categories","Cumulative totals"]},{type:"line",label:"Line Chart",icon:"line",description:"Show trends over time or sequence",requiredFields:["dimension","measure"],optionalFields:["dimension"],guidance:"Best with time/date on X-axis and numbers on Y-axis",bestFor:["Trends over time","Continuous data","Multiple series"]},{type:"area",label:"Area Chart",icon:"area",description:"Show magnitude and trends",requiredFields:["dimension","measure"],optionalFields:["dimension"],guidance:"Like line charts but emphasizes volume. Great for stacked comparisons.",bestFor:["Cumulative totals","Part-to-whole over time","Volume trends"]},{type:"pie",label:"Pie Chart",icon:"pie",description:"Show proportions of a whole",requiredFields:["dimension","measure"],optionalFields:[],guidance:"Drag a category and a number. Best with 2-6 categories.",bestFor:["Part-to-whole","Proportions","Simple distributions"]},{type:"donut",label:"Donut Chart",icon:"donut",description:"Proportions with center space for metrics",requiredFields:["dimension","measure"],optionalFields:[],guidance:"Like pie but allows showing a total in the center",bestFor:["Part-to-whole","Showing total","Dashboard KPIs"]},{type:"scatter",label:"Scatter Plot",icon:"scatter",description:"Show relationships between two variables",requiredFields:["measure","measure"],optionalFields:["dimension"],guidance:"Drag a number to X-axis and another number to Y-axis",bestFor:["Correlation","Outlier detection","Distribution"]},{type:"bubble",label:"Bubble Chart",icon:"bubble",description:"Three-dimensional comparison",requiredFields:["measure","measure"],optionalFields:["measure","dimension"],guidance:"Like scatter, plus drag a third number to Size for bubble size",bestFor:["Multi-variable comparison","Weighted relationships"]},{type:"heatmap",label:"Heatmap",icon:"heatmap",description:"Visualize density or intensity",requiredFields:["dimension","dimension","measure"],optionalFields:[],guidance:"Drag two categories (X and Y) and a number to Color",bestFor:["Patterns","Density","Cross-tabulation"]},{type:"radar",label:"Radar Chart",icon:"radar",description:"Compare multiple variables",requiredFields:["dimension","measure"],optionalFields:["dimension"],guidance:"Best for comparing items across multiple metrics",bestFor:["Multi-metric comparison","Performance profiles","Balanced scorecards"]}],ni=[{value:"sum",label:"Sum",symbol:"SUM"},{value:"count",label:"Count",symbol:"COUNT"},{value:"avg",label:"Average",symbol:"AVG"},{value:"min",label:"Minimum",symbol:"MIN"},{value:"max",label:"Maximum",symbol:"MAX"},{value:"countDistinct",label:"Count Distinct",symbol:"DISTINCT"}],mn=["#6366f1","#22c55e","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899","#14b8a6","#f97316","#3b82f6"];function Tl(n,e,t){if(t!=null&&t[e])return t[e];if(n.length===0)return"dimension";const i=n.slice(0,100).map(d=>d[e]).filter(d=>d!=null);if(i.length===0)return"dimension";let s=0,r=0,o=0;for(const d of i)(typeof d=="number"||!Number.isNaN(Number(d))&&d!==""&&typeof d!="boolean")&&(s++,typeof d=="number"&&r++),(d instanceof Date||typeof d=="string"&&!Number.isNaN(Date.parse(d))&&d.includes("-"))&&o++;const c=i.length*.8;return o>=c?"temporal":s>=c&&(r>=s||new Set(i.map(String)).size>Math.min(i.length*.3,20))?"measure":"dimension"}function Rl(n,e){if(n.length===0)return[];const t=Object.keys(n[0]),a=[];for(const i of t){const s=n.map(u=>u[i]).filter(u=>u!=null),r=Tl(n,i,e),o=new Set(s.map(String));let c="string",d,h;if(r==="measure"){c="number";const u=s.map(g=>Number(g)).filter(g=>!Number.isNaN(g));u.length>0&&(d=Math.min(...u),h=Math.max(...u))}else r==="temporal"?c="date":s.filter(g=>typeof g=="boolean"||g==="true"||g==="false").length>=s.length*.8&&(c="boolean");a.push({field:i,label:Xi(i),role:r,dataType:c,uniqueCount:o.size,sampleValues:Array.from(o).slice(0,5),min:d,max:h})}return a}function Xi(n){return n.replace(/([A-Z])/g," $1").replace(/[_-]/g," ").replace(/\s+/g," ").trim().split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ")}function xn(n){return Yi.find(e=>e.type===n)}function Dl(n){if(!xn(n.type))return!1;switch(n.type){case"bar":case"stackedBar":case"line":case"area":case"pie":case"donut":case"radar":return!!n.xAxis&&!!n.yAxis;case"scatter":return!!n.xAxis&&!!n.yAxis;case"bubble":return!!n.xAxis&&!!n.yAxis;case"heatmap":return!!n.xAxis&&!!n.yAxis&&!!n.colorField;default:return!1}}function Vl(n){const e=xn(n.type);if(!e)return"Select a chart type to begin";if(!n.xAxis&&!n.yAxis)return e.guidance;switch(n.type){case"bar":case"line":case"area":return n.xAxis?n.yAxis?n.seriesField?"Chart is ready! Adjust options as needed.":"Optionally add a field to Color for grouped series":"Drag a number field to the Y-axis":"Drag a category field to the X-axis";case"stackedBar":return n.xAxis?n.yAxis?n.seriesField?"Chart is ready! Each series is stacked within the bar.":"Add a field to Series to define stacked segments":"Drag a number field to the Y-axis":"Drag a category field to the X-axis";case"pie":case"donut":return n.xAxis?n.yAxis?"Chart is ready!":"Drag a number field (values)":"Drag a category field (slices)";case"radar":return n.xAxis?n.yAxis?"Chart is ready!":"Drag a number field for values":"Drag a category field for axes";case"scatter":return n.xAxis?n.yAxis?n.seriesField?"Tip: Filter data first for clearer visualizations":"Optionally add a category to color points by group":"Drag a number field to Y-axis":"Drag a number field to X-axis";case"bubble":return n.xAxis?n.yAxis?n.sizeField?"Tip: Filter to fewer records for readable bubbles":"Drag a number field to Size for bubble size":"Drag a number field to Y-axis":"Drag a number field to X-axis";case"heatmap":return n.xAxis?n.yAxis?n.colorField?"Chart is ready!":"Drag a number field to Value for color intensity":"Drag a category field to Y-axis":"Drag a category field to X-axis";default:return e.guidance}}function Wi(n,e){if(n.length===0)return 0;switch(e){case"sum":return n.reduce((t,a)=>t+a,0);case"count":return n.length;case"avg":return n.reduce((t,a)=>t+a,0)/n.length;case"min":return Math.min(...n);case"max":return Math.max(...n);case"countDistinct":return new Set(n).size;default:return n.reduce((t,a)=>t+a,0)}}function bn(n,e){var h;if(!e.xAxis||!e.yAxis||n.length===0)return{categories:[],series:[]};const t=e.xAxis.field,a=e.yAxis.field,i=e.yAxis.aggregation||"sum",s=(h=e.seriesField)==null?void 0:h.field,r=new Map;for(const u of n){const g=String(u[t]??"(blank)"),f=Number(u[a]),p=s?String(u[s]??"(blank)"):"_default";if(Number.isNaN(f))continue;r.has(g)||r.set(g,new Map);const m=r.get(g);m.has(p)||m.set(p,[]),m.get(p).push(f)}const o=Array.from(r.keys()).sort((u,g)=>{const f=Number.parseFloat(u),p=Number.parseFloat(g);return!Number.isNaN(f)&&!Number.isNaN(p)?f-p:u.localeCompare(g)}),c=new Set;for(const u of r.values())for(const g of u.keys())c.add(g);const d=[];for(const u of c){const g=[];for(const f of o){const p=r.get(f),m=(p==null?void 0:p.get(u))||[];g.push(Wi(m,i))}d.push({name:u==="_default"?Xi(a):u,data:g})}return{categories:o,series:d}}function vn(n,e){if(!e.xAxis||!e.yAxis||n.length===0)return{categories:[],series:[]};const t=e.xAxis.field,a=e.yAxis.field,i=e.yAxis.aggregation||"sum",s=new Map;for(const o of n){const c=String(o[t]??"(blank)"),d=Number(o[a]);Number.isNaN(d)||(s.has(c)||s.set(c,[]),s.get(c).push(d))}const r=Array.from(s.entries()).map(([o,c])=>({category:o,value:Wi(c,i)})).sort((o,c)=>c.value-o.value);return{categories:r.map(o=>o.category),series:[{name:Xi(a),data:r.map(o=>o.value)}]}}function Pl(n,e){var c,d;if(!e.xAxis||!e.yAxis||n.length===0)return{series:[]};const t=e.xAxis.field,a=e.yAxis.field,i=(c=e.sizeField)==null?void 0:c.field,s=(d=e.seriesField)==null?void 0:d.field,r=new Map;for(const h of n){const u=Number(h[t]),g=Number(h[a]);if(Number.isNaN(u)||Number.isNaN(g))continue;const f={x:u,y:g};if(i){const m=Number(h[i]);Number.isNaN(m)||(f.z=m)}const p=s?String(h[s]??"(blank)"):"_default";r.has(p)||r.set(p,[]),r.get(p).push(f)}return{series:Array.from(r.entries()).map(([h,u])=>{var g;return{name:h==="_default"?((g=e.yAxis)==null?void 0:g.label)||"Data":h,data:u}})}}function Il(n,e){if(!e.xAxis||!e.yAxis||!e.colorField||n.length===0)return{series:[]};const t=e.xAxis.field,a=e.yAxis.field,i=e.colorField.field,s=e.colorField.aggregation||"sum",r=new Map,o=new Set;for(const u of n){const g=String(u[t]??"(blank)"),f=String(u[a]??"(blank)"),p=Number(u[i]);if(Number.isNaN(p))continue;o.add(g),r.has(f)||r.set(f,new Map);const m=r.get(f);m.has(g)||m.set(g,[]),m.get(g).push(p)}const c=Array.from(o).sort((u,g)=>{const f=Number.parseFloat(u),p=Number.parseFloat(g);return!Number.isNaN(f)&&!Number.isNaN(p)?f-p:u.localeCompare(g)});return{series:Array.from(r.keys()).sort((u,g)=>{const f=Number.parseFloat(u),p=Number.parseFloat(g);return!Number.isNaN(f)&&!Number.isNaN(p)?f-p:u.localeCompare(g)}).map(u=>{const g=r.get(u),f=c.map(p=>{const m=g.get(p)||[],x=m.length>0?Wi(m,s):0;return{x:p,y:x}});return{name:u,data:f}})}}function zl(){return{type:"bar",options:{showDataLabels:!1,showLegend:!0,legendPosition:"top",animated:!0,colors:mn,showGrid:!0,enableZoom:!1,stacked:!1}}}function qe(n,e=","){if(n==null)return"";const t=String(n);return t.includes(e)||t.includes('"')||t.includes(`
304
304
  `)?`"${t.replace(/"/g,'""')}"`:t}function _l(n,e,t={}){const{filename:a="export.csv",includeHeaders:i=!0,delimiter:s=","}=t,r=[];i&&r.push(e.map(c=>qe(c,s)).join(s));for(const c of n){const d=e.map(h=>qe(c[h],s));r.push(d.join(s))}const o=r.join(`
305
305
  `);yn(o,a,"text/csv;charset=utf-8;")}function Ol(n,e,t,a,i={}){const{filename:s="pivot-export.csv",delimiter:r=","}=i,o=[],{headers:c,rowHeaders:d,data:h,rowTotals:u,columnTotals:g,grandTotal:f,showRowTotals:p,showColumnTotals:m}=n,x=e.length||1;if(c.length>0)for(let v=0;v<c.length;v++){const y=[];for(let C=0;C<x;C++)y.push(v===c.length-1?qe(e[C]||"",r):"");for(const C of c[v])y.push(qe(C,r));if(p&&u&&u.length>0)if(v===c.length-1)for(const C of a)y.push(qe(`Total (${C.aggregation})`,r));else for(let C=0;C<a.length;C++)y.push("");o.push(y.join(r))}else{const v=[];for(let y=0;y<x;y++)v.push(qe(e[y]||"",r));for(const y of a)v.push(qe(`${y.field} (${y.aggregation})`,r));p&&u&&u.length>0&&v.push(qe("Total",r)),o.push(v.join(r))}for(let v=0;v<d.length;v++){const y=[],C=d[v]||[];for(let N=0;N<x;N++)y.push(qe(C[N]||"",r));const w=h[v]||[];for(const N of w)y.push(qe((N==null?void 0:N.formattedValue)||"",r));p&&u&&u[v]&&y.push(qe(u[v].formattedValue||"",r)),o.push(y.join(r))}if(m&&g&&g.length>0){const v=[];v.push(qe("Total",r));for(let y=1;y<x;y++)v.push("");for(const y of g)v.push(qe((y==null?void 0:y.formattedValue)||"",r));p&&f&&v.push(qe(f.formattedValue||"",r)),o.push(v.join(r))}const b=o.join(`
306
306
  `);yn(b,s,"text/csv;charset=utf-8;")}function yn(n,e,t){const a=new Blob([n],{type:t}),i=URL.createObjectURL(a),s=document.createElement("a");s.href=i,s.download=e,s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(i)}function Hl(n,e,t){navigator.clipboard.writeText(n).then(e).catch(t)}function Yl(n,e,t){const{minRow:a,maxRow:i,minCol:s,maxCol:r}=t,o=[];for(let c=a;c<=i;c++){const d=n[c];if(!d)continue;const h=[];for(let u=s;u<=r;u++){const g=e[u];if(!g)continue;const f=d[g];h.push(f==null?"":String(f))}o.push(h.join(" "))}return o.join(`
@@ -313,8 +313,8 @@ This typically happens when serving over plain HTTP. For best performance, consi
313
313
  2. Access via localhost (e.g. http://localhost:3000)
314
314
  3. Use a self-signed certificate for internal IPs`))}async function jl(){try{const n=await ji();if(!n)return null;const e=kn.replace("-----BEGIN PUBLIC KEY-----","").replace("-----END PUBLIC KEY-----","").replace(/\s/g,""),t=$i(e);return await n.importKey("spki",new Uint8Array(t).buffer,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"])}catch{return null}}function Gl(){const n=kn.replace("-----BEGIN PUBLIC KEY-----","").replace("-----END PUBLIC KEY-----","").replace(/\s/g,"");return $i(n)}async function Ul(n,e,t){const a=`TP-${n}-${t}`,s=new TextEncoder().encode(a),r=$i(e),o=await ji();if(!o){An();try{const c=Cn(r),d=Gl();return await Wl(c,s,d)}catch{return!1}}try{const c=Cn(r),d=await jl();return d?await o.verify({name:"ECDSA",hash:"SHA-256"},d,new Uint8Array(c).buffer,s):!1}catch{return!1}}async function ql(n){if(!n||n==="")return wn;if(!n.startsWith("TP-"))return ri;const e=n.lastIndexOf("-");if(e===-1||n.length-e!==9)return ri;const t=n.slice(e+1),a=n.slice(3),i=a.indexOf("-");if(i===-1)return ri;const s=a.slice(0,i),r=a.slice(i+1,a.lastIndexOf("-"));if(!await Ul(s,r,t))return ri;const c=Number.parseInt(t.slice(0,4)),d=Number.parseInt(t.slice(4,6))-1,h=Number.parseInt(t.slice(6,8)),u=new Date(c,d,h);let g="free";return s==="PRO1"?g="pro-single":s==="PROU"?g="pro-unlimited":s==="PROT"&&(g="pro-team"),{type:g,isValid:!0,expiresAt:u,features:{pivot:g!=="free",advancedAggregations:g!=="free",percentageMode:g!=="free",sessionPersistence:g!=="free",noWatermark:g!=="free",charts:g!=="free",aiAnalyst:g!=="free"}}}function Zl(n){console.warn("[TinyPivot] configureLicenseSecret() is deprecated and no longer needed.")}const Kl="A48AA0618518D3E62F31FCFCA2DD2B86E7FE0863E2F90756FB0A960AE7A51583";async function Jl(n){try{const e=await ji();if(!e)return An(),await $l(n);const a=new TextEncoder().encode(n),i=await e.digest("SHA-256",a);return Array.from(new Uint8Array(i)).map(r=>r.toString(16).padStart(2,"0")).join("").toUpperCase()}catch{return""}}async function Ql(n){return!n||await Jl(n)!==Kl?null:Xl}function ec(){return wn}function tc(n){return n.features.pivot}function ac(n){return n.features.charts}function ic(n){return n.features.aiAnalyst}function sc(n){return n.isValid&&n.type!=="free"}function nc(n,e){return e||!n.features.noWatermark}function rc(n){console.warn(`[TinyPivot] "${n}" requires a Pro license. Visit https://tiny-pivot.com/#pricing to upgrade.`)}function oc(n){const e=n.filter(o=>o!=null&&o!=="");if(e.length===0)return"string";const t=e.slice(0,100);let a=0,i=0,s=0;for(const o of t)typeof o=="boolean"?s++:typeof o=="number"||!Number.isNaN(Number(o))&&o!==""?a++:(o instanceof Date||!Number.isNaN(Date.parse(String(o))))&&i++;const r=t.length*.8;return s>=r?"boolean":a>=r?"number":i>=r?"date":"string"}function lc(n,e){const a=n.map(o=>o[e]).filter(o=>o!=null&&o!=="").slice(0,100);let i=0;const s=new Set;for(const o of a)s.add(String(o)),(typeof o=="number"||!Number.isNaN(Number(o))&&o!=="")&&i++;const r=i>=a.length*.8;return{field:e,type:r?"number":"string",uniqueCount:s.size,isNumeric:r}}function En(n,e,t=500){const a=[];let i=0,s,r,o,c;for(const g of n){const f=g[e];if(f==null||f==="")i++;else{a.push(f);const p=typeof f=="number"?f:Number.parseFloat(String(f));if(Number.isNaN(p)||((s===void 0||p<s)&&(s=p),(r===void 0||p>r)&&(r=p)),f instanceof Date||typeof f=="string"&&!Number.isNaN(Date.parse(String(f)))){const m=f instanceof Date?f:new Date(String(f));if(!Number.isNaN(m.getTime())){const x=m.toISOString().split("T")[0];(o===void 0||x<o)&&(o=x),(c===void 0||x>c)&&(c=x)}}}}const d=new Set;for(const g of a)if(d.add(String(g)),d.size>=t)break;const h=Array.from(d).sort((g,f)=>{const p=Number.parseFloat(g),m=Number.parseFloat(f);return!Number.isNaN(p)&&!Number.isNaN(m)?p-m:g.localeCompare(f)}),u=oc(a);return{uniqueValues:h,totalCount:n.length,nullCount:i,type:u,...u==="number"&&s!==void 0&&r!==void 0?{numericMin:s,numericMax:r}:{},...u==="date"&&o!==void 0&&c!==void 0?{dateMin:o,dateMax:c}:{}}}function Nn(n,e,t="us",a="iso"){if(n==null||n==="")return"";switch(e){case"number":{const i=typeof n=="number"?n:Number.parseFloat(String(n));return Number.isNaN(i)?String(n):kt(i,t)}case"date":return yt(n,a);case"boolean":return n?"Yes":"No";default:return String(n)}}function kt(n,e="us",t){if(n===null)return"-";const a=(t==null?void 0:t.maximumFractionDigits)??(Math.abs(n)>=1e3?2:4);switch(e){case"eu":return n.toLocaleString("de-DE",{maximumFractionDigits:a});case"plain":return Number.isInteger(n)?String(n):n.toFixed(Math.min(a,20));case"us":default:return n.toLocaleString("en-US",{maximumFractionDigits:a})}}function yt(n,e="iso"){const t=n instanceof Date?n:new Date(String(n));if(Number.isNaN(t.getTime()))return String(n);const a=t.getUTCFullYear(),i=String(t.getUTCMonth()+1).padStart(2,"0"),s=String(t.getUTCDate()).padStart(2,"0");switch(e){case"us":return`${i}/${s}/${a}`;case"eu":return`${s}/${i}/${a}`;case"iso":default:return`${a}-${i}-${s}`}}function oi(n,e="iso"){const t=n.trim();if(!t)return null;let a,i,s;switch(e){case"us":{const d=t.split("/");if(d.length!==3)return null;i=Number.parseInt(d[0],10),s=Number.parseInt(d[1],10),a=Number.parseInt(d[2],10);break}case"eu":{const d=t.split("/");if(d.length!==3)return null;s=Number.parseInt(d[0],10),i=Number.parseInt(d[1],10),a=Number.parseInt(d[2],10);break}case"iso":default:{const d=t.split("-");if(d.length!==3)return null;a=Number.parseInt(d[0],10),i=Number.parseInt(d[1],10),s=Number.parseInt(d[2],10);break}}if(Number.isNaN(a)||Number.isNaN(i)||Number.isNaN(s)||i<1||i>12||s<1||s>31||a<1)return null;const r=new Date(a,i-1,s);if(r.getFullYear()!==a||r.getMonth()!==i-1||r.getDate()!==s)return null;const o=String(i).padStart(2,"0"),c=String(s).padStart(2,"0");return`${a}-${o}-${c}`}function Mn(n="iso"){switch(n){case"us":return"MM/DD/YYYY";case"eu":return"DD/MM/YYYY";case"iso":default:return"YYYY-MM-DD"}}function Ln(n,e){return e.map(t=>String(n[t]??"(blank)")).join("|||")}function Bn(n){return n.split("|||")}function cc(n){const e=[...n].sort((a,i)=>a-i),t=Math.floor(e.length/2);return e.length%2!==0?e[t]:(e[t-1]+e[t])/2}function dc(n){const e=n.reduce((i,s)=>i+s,0)/n.length,a=n.map(i=>(i-e)**2).reduce((i,s)=>i+s,0)/n.length;return Math.sqrt(a)}function li(n,e,t,a,i){if(n.length===0&&e!=="custom")return null;switch(e){case"sum":return n.reduce((s,r)=>s+r,0);case"count":return n.length;case"avg":return n.reduce((s,r)=>s+r,0)/n.length;case"min":return Math.min(...n);case"max":return Math.max(...n);case"countDistinct":return new Set(n).size;case"median":return cc(n);case"stdDev":return dc(n);case"percentOfTotal":{const s=n.reduce((r,o)=>r+o,0);return t===void 0||t===0?null:s/t*100}case"custom":return null;default:return n.reduce((s,r)=>s+r,0)}}function ci(n,e,t="us"){return n===null?"-":e==="count"||e==="countDistinct"?kt(Math.round(n),t,{maximumFractionDigits:0}):e==="percentOfTotal"?`${n.toFixed(1)}%`:kt(n,t)}function za(n,e){return n==="custom"&&e?e:{sum:"Sum",count:"Count",avg:"Average",min:"Min",max:"Max",countDistinct:"Count Distinct",median:"Median",stdDev:"Std Dev",percentOfTotal:"% of Total",custom:"Custom"}[n]}function Fn(n,e){return n==="custom"&&e?e:{sum:"Σ",count:"#",avg:"x̄",min:"↓",max:"↑",countDistinct:"◇",median:"M̃",stdDev:"σ",percentOfTotal:"%Σ",custom:"ƒ"}[n]}const hc=[{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 uc(n,e,t=2,a="us"){if(n===null)return"-";switch(e){case"percent":return`${n.toFixed(t)}%`;case"currency":return`$${kt(n,a,{maximumFractionDigits:t})}`;default:return kt(n,a,{maximumFractionDigits:t})}}function Tn(n){const e=n.match(/[a-z_]\w*/gi)||[],t=["true","false","null","undefined"];return[...new Set(e.filter(a=>!t.includes(a.toLowerCase())))]}function Rn(n,e){if(!n.trim())return"Formula is required";const t=Tn(n);if(t.length===0)return"Formula must reference at least one field";const a=e.map(i=>i.toLowerCase());for(const i of t)if(!a.includes(i.toLowerCase()))return`Unknown field: ${i}`;try{let i=n;for(const s of t){const r=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");i=i.replace(new RegExp(`\\b${r}\\b`,"gi"),"1")}new Function(`return ${i}`)}catch{return"Invalid formula syntax"}return null}function Dn(n,e,t){try{const a=Tn(n);let i=n;for(const r of a){const o=t.find(u=>u.toLowerCase()===r.toLowerCase())||r,c=e[o];if(c==null||c==="")return null;const d=typeof c=="number"?c:Number.parseFloat(String(c));if(Number.isNaN(d))return null;const h=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");i=i.replace(new RegExp(`\\b${h}\\b`,"gi"),String(d))}if(!/^[\d\s+\-*/().]+$/.test(i))return null;const s=new Function(`return ${i}`)();return typeof s=="number"&&Number.isFinite(s)?s:null}catch{return null}}function gc(n){return n.length===0?[]:Object.keys(n[0]).map(t=>lc(n,t))}function fc(n,e,t,a){const i=new Set([...e,...t,...a.map(s=>s.field)]);return n.filter(s=>!i.has(s.field))}function Vn(n){return(n.rowFields.length>0||n.columnFields.length>0)&&n.valueFields.length>0}function pc(n,e){const{rowFields:t,columnFields:a,valueFields:i,showRowTotals:s,showColumnTotals:r,calculatedFields:o}=e;if(!Vn(e)||n.length===0)return null;const c=new Map;if(o)for(const A of o)c.set(A.id,A);const d=n.length>0?Object.keys(n[0]):[],h=new Set,u=new Set,g=new Map;for(const A of n){const B=t.length>0?Ln(A,t):"__all__",F=a.length>0?Ln(A,a):"__all__";h.add(B),u.add(F),g.has(B)||g.set(B,new Map);const M=g.get(B);M.has(F)||M.set(F,i.map(()=>[]));const S=M.get(F);for(let k=0;k<i.length;k++){const L=i[k];let T=null;if(L.field.startsWith("calc:")){const I=L.field.replace("calc:",""),R=c.get(I);R&&(T=Dn(R.formula,A,d))}else{const I=A[L.field];I!=null&&I!==""&&(T=typeof I=="number"?I:Number.parseFloat(String(I)),Number.isNaN(T)&&(T=L.aggregation==="count"||L.aggregation==="countDistinct"?1:null))}T!==null&&S[k].push(T)}}const f=Array.from(h).sort(),p=Array.from(u).sort(),m=i.map((A,B)=>{let F=0;for(const M of n){let S=null;if(A.field.startsWith("calc:")){const k=A.field.replace("calc:",""),L=c.get(k);L&&(S=Dn(L.formula,M,d))}else{const k=M[A.field];k!=null&&k!==""&&(S=typeof k=="number"?k:Number.parseFloat(String(k)),Number.isNaN(S)&&(S=null))}S!==null&&(F+=S)}return F});function x(A){if(A.field.startsWith("calc:")){const B=A.field.replace("calc:",""),F=c.get(B);return`${(F==null?void 0:F.name)||A.field} (${za(A.aggregation)})`}return`${A.label||A.field} (${za(A.aggregation)})`}const b=[];if(a.length>0){const A=i.length>1?i.length:1;for(let B=0;B<a.length;B++){const F=[];for(const M of p){const S=Bn(M);for(let k=0;k<A;k++)F.push(S[B]||"")}b.push(F)}}if(i.length>1||b.length===0){const A=[];for(const B of p)for(const F of i)A.push(x(F));p.length===1&&p[0]==="__all__"?b.push(i.map(B=>x(B))):b.push(A)}const v=f.map(A=>A==="__all__"?["Total"]:Bn(A)),y=[],C=[],w=new Map;for(const A of f){const B=[],F=i.map(()=>[]);for(const M of p){const S=g.get(A),k=(S==null?void 0:S.get(M))||i.map(()=>[]);for(let T=0;T<k.length;T++)F[T].push(...k[T]);w.has(M)||w.set(M,i.map(()=>[]));const L=w.get(M);for(let T=0;T<k.length;T++)L[T].push(...k[T]);for(let T=0;T<i.length;T++){const I=i[T],R=k[T]||[],P=m[T],H=li(R,I.aggregation,P);let D;if(I.field.startsWith("calc:")){const _=I.field.replace("calc:",""),O=c.get(_);D=uc(H,(O==null?void 0:O.formatAs)||"number",(O==null?void 0:O.decimals)??2)}else D=ci(H,I.aggregation);B.push({value:H,count:R.length,formattedValue:D})}}if(y.push(B),s&&p.length>1)if(i.length>0){const M=i[0],S=F[0]||[],k=li(S,M.aggregation,m[0]);C.push({value:k,count:S.length,formattedValue:ci(k,M.aggregation)})}else C.push({value:null,count:0,formattedValue:"-"})}const N=[];if(r&&f.length>1)for(const A of p){const B=w.get(A)||i.map(()=>[]);for(let F=0;F<i.length;F++){const M=i[F],S=B[F]||[],k=li(S,M.aggregation,m[F]);N.push({value:k,count:S.length,formattedValue:ci(k,M.aggregation)})}}const E={value:null,count:0,formattedValue:"-"};if(s&&r&&i.length>0){const A=i.map(()=>[]);for(const S of f){const k=g.get(S);if(k)for(const L of p){const T=k.get(L);if(T)for(let I=0;I<T.length;I++)A[I].push(...T[I])}}const B=i[0],F=A[0]||[],M=li(F,B.aggregation,m[0]);E.value=M,E.count=F.length,E.formattedValue=ci(M,B.aggregation)}return{headers:b,rowHeaders:v,data:y,rowTotals:C,columnTotals:N,grandTotal:E}}const mc="vpg-pivot-";function xc(n){const t=[...n].sort().join("|").substring(0,100);return`${mc}${t}`}function bc(n,e){try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}}function vc(n){try{const e=sessionStorage.getItem(n);if(e)return JSON.parse(e)}catch{}return null}function Gi(n,e){const t=new Set(e);return[...n.rowFields,...n.columnFields,...n.valueFields.map(i=>i.field)].filter(i=>!i.startsWith("calc:")).every(i=>t.has(i))}const Pn="vpg-calculated-fields";function _a(n){try{localStorage.setItem(Pn,JSON.stringify(n))}catch{}}function In(){try{const n=localStorage.getItem(Pn);if(n)return JSON.parse(n)}catch{}return[]}function di(n){if(n===null||typeof n!="object"||Array.isArray(n)||!("min"in n)&&!("max"in n))return!1;const e=n;return(e.min===null||typeof e.min=="number")&&(e.max===null||typeof e.max=="number")}function hi(n){if(n===null||typeof n!="object"||Array.isArray(n)||!("min"in n)&&!("max"in n))return!1;const e=n;return(e.min===null||typeof e.min=="string")&&(e.max===null||typeof e.max=="string")}function yc(n){const{config:e,onDataLoaded:t,onConversationUpdate:a,onQueryExecuted:i,onError:s}=n,r=e.persistToLocalStorage?`tinypivot-ai-conversation-${e.sessionId||"default"}`:null;function o(){if(r&&typeof window<"u")try{const D=localStorage.getItem(r);if(D){const _=JSON.parse(D);if(_.id&&Array.isArray(_.messages))return _}}catch(D){console.warn("[TinyPivot] Failed to load conversation from localStorage:",D)}return pn(e.sessionId)}function c(D){if(r&&typeof window<"u")try{const _=(O,Z)=>typeof Z=="bigint"?Number(Z):Z;localStorage.setItem(r,JSON.stringify(D,_))}catch(_){console.warn("[TinyPivot] Failed to save conversation to localStorage:",_)}}const d=l.ref(o()),h=l.ref(new Map),u=l.ref([]),g=l.ref(!1),f=l.ref(null),p=l.ref(null),m=l.ref([]),x=l.ref(!1),b=l.computed(()=>e.dataSources&&e.dataSources.length>0?e.dataSources:m.value),v=l.computed(()=>d.value.dataSourceId),y=l.computed(()=>b.value.find(D=>D.id===d.value.dataSourceId)),C=l.computed(()=>d.value.messages),w=l.computed(()=>d.value.messages.length>0);async function N(){if(e.endpoint){x.value=!0;try{const D=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"list-tables"})});if(!D.ok)throw new Error(`Failed to fetch tables: ${D.statusText}`);const _=await D.json();if(_.error)throw new Error(_.error);m.value=_.tables.map(O=>({id:O.name,table:O.name,name:O.name.charAt(0).toUpperCase()+O.name.slice(1),description:O.description})),await E()}catch(D){console.warn("[TinyPivot] Failed to fetch tables:",D),s==null||s({message:D instanceof Error?D.message:"Failed to fetch tables",type:"network"})}finally{x.value=!1}}}async function E(){if(e.endpoint)try{const D=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"get-all-schemas"})});if(!D.ok)throw new Error(`Failed to fetch all schemas: ${D.statusText}`);const _=await D.json();if(_.error)throw new Error(_.error);u.value=_.schemas;for(const O of _.schemas)h.value.set(O.table,O)}catch(D){console.warn("[TinyPivot] Failed to fetch all schemas:",D)}}l.onMounted(()=>{e.endpoint&&(!e.dataSources||e.dataSources.length===0)&&N()});async function A(D){const _=b.value.find(Z=>Z.id===D);if(!_){f.value=`Data source "${D}" not found`;return}d.value=Bl(d.value,D);const O=nt(`I'm now connected to **${_.name}**. ${_.description||""}
315
315
 
316
- What would you like to know about this data?`);if(d.value=Qe(d.value,O),e.dataSourceLoader)try{const{data:Z,schema:U}=await e.dataSourceLoader(D);U&&h.value.set(D,U),Z&&Z.length>0&&(p.value=Z,t==null||t({data:Z,query:`SELECT * FROM ${_.table} LIMIT 100`,dataSourceId:D,rowCount:Z.length}))}catch(Z){console.warn("Failed to load data source:",Z)}else if(e.demoMode){const Z=vl(D);Z&&h.value.set(D,Z);const U=gn(D);U&&(p.value=U,t==null||t({data:U,query:`SELECT * FROM ${_.table} LIMIT 10`,dataSourceId:D,rowCount:U.length}))}else e.endpoint&&(await B(_),await F(_));H()}async function B(D){if(e.endpoint)try{const _=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"get-schema",tables:[D.table]})});if(!_.ok)throw new Error(`Failed to fetch schema: ${_.statusText}`);const O=await _.json();if(O.error)throw new Error(O.error);O.schemas.length>0&&h.value.set(D.id,O.schemas[0])}catch(_){console.warn("Failed to fetch schema:",_)}}async function F(D){if(e.endpoint)try{const _=`SELECT * FROM ${D.table} LIMIT 100`,O=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"query",sql:_,table:D.table})});if(!O.ok)throw new Error(`Failed to fetch sample data: ${O.statusText}`);const Z=await O.json();if(Z.error)throw new Error(Z.error);Z.data&&Z.data.length>0&&(p.value=Z.data,t==null||t({data:Z.data,query:_,dataSourceId:D.id,rowCount:Z.data.length}))}catch(_){console.warn("Failed to fetch sample data:",_)}}async function M(D){if(!D.trim()||g.value)return;f.value=null,g.value=!0;const _=Ll(D);d.value=Qe(d.value,_),H();try{if(e.demoMode){await S(D);return}if(!d.value.dataSourceId){const U=nt("Please select a data source first by clicking one of the options above.");d.value=Qe(d.value,U),H();return}const O=await k(D),Z=Al(O);if(Z){const U=El(Z);if(!U.valid){const $=nt(`I generated an invalid query: ${U.error}. Let me try again with a corrected approach.`,{error:U.error});d.value=Qe(d.value,$),H();return}const W=nt(O,{query:Z});d.value=Qe(d.value,W),H(),await L(Z,W.id)}else{const U=nt(O);d.value=Qe(d.value,U),H()}}catch(O){const Z=O instanceof Error?O.message:"An error occurred";f.value=Z;const U=nt(`Sorry, I encountered an error: ${Z}. Please try again.`,{error:Z});d.value=Qe(d.value,U),H(),s==null||s({message:Z,type:"ai"})}finally{g.value=!1}}async function S(D){var Z;await new Promise(U=>setTimeout(U,800));const _=d.value.dataSourceId;if(!_){const U=nt("Please select a data source first by clicking one of the options above.");d.value=Qe(d.value,U),H(),g.value=!1;return}const O=xl(_,D);if(O){const U=nt(O.response,{query:O.query,rowCount:(Z=O.mockData)==null?void 0:Z.length});d.value=Qe(d.value,U),H(),O.mockData&&(p.value=O.mockData,t==null||t({data:O.mockData,query:O.query||"",dataSourceId:_,rowCount:O.mockData.length}),i==null||i({query:O.query||"",rowCount:O.mockData.length,duration:150,dataSourceId:_,success:!0}))}else{const U=bl(_),W=nt(U);d.value=Qe(d.value,W),H()}g.value=!1}async function k(D){if(!e.endpoint)throw new Error("No endpoint configured. Set `endpoint` in AI analyst config.");const _=d.value.dataSourceId,O=yl(b.value,h.value,_,u.value.length>0?u.value:void 0),Z=Fl(d.value),U=[{role:"user",content:O},{role:"assistant",content:"I understand. I'm ready to help you analyze the data."},...Z.slice(0,-1),{role:"user",content:D}],W=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"chat",messages:U})});if(!W.ok)throw new Error(`AI request failed: ${W.statusText}`);const $=await W.json();if($.error)throw new Error($.error);return $.content}async function L(D,_){const O=d.value.dataSourceId;if(!O)return;const Z=b.value.find(W=>W.id===O);if(!Z)return;const U=Date.now();try{let W;if(e.queryExecutor){const Y=await e.queryExecutor(D,Z.table);W={data:Y.data,rowCount:Y.rowCount,truncated:Y.truncated,error:Y.error,success:!Y.error}}else if(e.endpoint)W=await(await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"query",sql:D,table:Z.table})})).json();else throw new Error("No query executor or endpoint configured");const $=Date.now()-U;if(!W.success||W.error){const Y=nt(`The query failed: ${W.error||"Unknown error"}. Would you like me to try a different approach?`,{error:W.error,query:D});d.value=Qe(d.value,Y),H(),i==null||i({query:D,rowCount:0,duration:$,dataSourceId:O,success:!1,error:W.error}),s==null||s({message:W.error||"Query failed",query:D,type:"query"});return}if(W.data){if(p.value=W.data,_){const Y=d.value.messages.map(te=>te.id===_?{...te,metadata:{...te.metadata,data:W.data,rowCount:W.rowCount,truncated:W.truncated}}:te);d.value={...d.value,messages:Y,updatedAt:Date.now()}}else{const Y=W.truncated?` (limited to ${e.maxRows||1e4} rows)`:"",te=nt(`Retrieved **${W.rowCount} rows**${Y}.`,{query:D,rowCount:W.rowCount,data:W.data});d.value=Qe(d.value,te)}H(),t==null||t({data:W.data,query:D,dataSourceId:O,rowCount:W.rowCount||W.data.length}),i==null||i({query:D,rowCount:W.rowCount||W.data.length,duration:$,dataSourceId:O,success:!0})}}catch(W){const $=Date.now()-U,Y=W instanceof Error?W.message:"Query execution failed",te=nt(`Failed to execute query: ${Y}`,{error:Y,query:D});d.value=Qe(d.value,te),H(),i==null||i({query:D,rowCount:0,duration:$,dataSourceId:O,success:!1,error:Y}),s==null||s({message:Y,query:D,type:"network"})}}async function T(){const D=d.value.dataSourceId;if(!D)return null;const _=b.value.find(O=>O.id===D);if(!_)return null;if(e.dataSourceLoader){try{const{data:O}=await e.dataSourceLoader(D);if(O&&O.length>0)return O}catch(O){console.warn("Failed to load full data:",O),s==null||s({message:O instanceof Error?O.message:"Failed to load full data",type:"network"})}return null}if(e.queryExecutor){try{const O=await e.queryExecutor(`SELECT * FROM ${_.table}`,_.table);if(O.data&&O.data.length>0)return O.data}catch(O){console.warn("Failed to load full data via query:",O),s==null||s({message:O instanceof Error?O.message:"Failed to load full data",type:"network"})}return null}if(e.endpoint){try{const O=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"query",sql:`SELECT * FROM ${_.table}`,table:_.table})});if(!O.ok)throw new Error(`Failed to load data: ${O.statusText}`);const Z=await O.json();if(Z.data&&Z.data.length>0)return Z.data}catch(O){console.warn("Failed to load full data from endpoint:",O),s==null||s({message:O instanceof Error?O.message:"Failed to load full data",type:"network"})}return null}return e.demoMode&&gn(D)||null}function I(){d.value=pn(e.sessionId),f.value=null,p.value=null,H()}function R(){return{...d.value}}function P(D){d.value=D,H()}function H(){c(d.value),a==null||a({conversation:d.value})}return{conversation:d,messages:C,hasMessages:w,schemas:h,isLoading:g,isLoadingTables:x,error:f,lastLoadedData:p,selectedDataSource:v,selectedDataSourceInfo:y,dataSources:b,selectDataSource:A,sendMessage:M,clearConversation:I,exportConversation:R,importConversation:P,fetchTables:N,loadFullData:T}}const wc={key:0,class:"vpg-ai-picker-fullscreen"},kc={class:"vpg-ai-picker-content"},Cc={key:0,class:"vpg-ai-empty-state"},Sc={class:"vpg-ai-search"},Ac={class:"vpg-ai-datasource-grid"},Ec=["onClick"],Nc={class:"vpg-ai-datasource-info"},Mc={class:"vpg-ai-datasource-name"},Lc={key:0,class:"vpg-ai-datasource-desc"},Bc={key:0,class:"vpg-ai-no-results"},Fc={key:1,class:"vpg-ai-split-layout"},Tc={class:"vpg-ai-chat-panel"},Rc={class:"vpg-ai-chat-header"},Dc={class:"vpg-ai-chat-title"},Vc={class:"vpg-ai-chat-name"},Pc={key:0,class:"vpg-ai-welcome"},Ic={class:"vpg-ai-suggestions"},zc={key:0,class:"vpg-ai-msg vpg-ai-msg-user"},_c=["onClick"],Oc={class:"vpg-ai-result-header"},Hc={class:"vpg-ai-result-badge"},Yc={class:"vpg-ai-result-content"},Xc={key:2,class:"vpg-ai-msg vpg-ai-msg-assistant"},Wc={class:"vpg-ai-assistant-content"},$c={key:0,class:"vpg-ai-msg-error"},jc={key:1,class:"vpg-ai-msg vpg-ai-msg-loading"},Gc={class:"vpg-ai-input-area"},Uc=["disabled"],qc=["disabled"],Zc={class:"vpg-ai-input-footer"},Kc={key:0,class:"vpg-ai-model-name"},Jc={class:"vpg-ai-input-actions"},Qc={class:"vpg-ai-preview-panel"},ed={class:"vpg-ai-preview-header"},td={class:"vpg-ai-preview-title-row"},ad={class:"vpg-ai-preview-meta"},id={key:0,class:"vpg-ai-preview-count"},sd={key:0,class:"vpg-ai-schema-bar"},nd=["title"],rd={class:"vpg-ai-chip-type"},od={class:"vpg-ai-chip-name"},ld={key:0,class:"vpg-ai-sql-panel"},cd={class:"vpg-ai-sql-panel-header"},dd={class:"vpg-ai-sql-panel-actions"},hd={class:"vpg-ai-sql-panel-code"},ud={key:1,class:"vpg-ai-preview-loading"},gd={key:2,class:"vpg-ai-preview-ready"},fd={key:3,class:"vpg-ai-preview-empty"},pd={key:4,class:"vpg-ai-preview-table-container"},md={class:"vpg-ai-preview-table"},xd={key:0,class:"vpg-ai-preview-more"},bd=l.defineComponent({__name:"AIAnalyst",props:{config:{},theme:{}},emits:["dataLoaded","conversationUpdate","queryExecuted","error","viewResults"],setup(n,{expose:e,emit:t}){const a=n,i=t,{messages:s,hasMessages:r,isLoading:o,isLoadingTables:c,schemas:d,selectedDataSource:h,selectedDataSourceInfo:u,lastLoadedData:g,dataSources:f,selectDataSource:p,sendMessage:m,clearConversation:x,loadFullData:b}=yc({config:a.config,onDataLoaded:$=>i("dataLoaded",$),onConversationUpdate:$=>i("conversationUpdate",$),onQueryExecuted:$=>i("queryExecuted",$),onError:$=>i("error",$)});e({loadFullData:b,selectedDataSource:h});const v=l.ref(""),y=l.ref(""),C=l.ref(),w=l.ref(null),N=l.ref(!1),E=l.computed(()=>{if(!y.value.trim())return f.value;const $=y.value.toLowerCase();return f.value.filter(Y=>{var te;return Y.name.toLowerCase().includes($)||((te=Y.description)==null?void 0:te.toLowerCase().includes($))||Y.table.toLowerCase().includes($)})}),A=l.computed(()=>{if(h.value)return d.value.get(h.value)}),B=l.computed(()=>{var $;if(w.value){const Y=s.value.find(te=>te.id===w.value);if(($=Y==null?void 0:Y.metadata)!=null&&$.data)return Y.metadata.data.slice(0,100)}return g.value?g.value.slice(0,100):[]}),F=l.computed(()=>{var $;if(w.value){const Y=s.value.find(te=>te.id===w.value);if(($=Y==null?void 0:Y.metadata)!=null&&$.data)return Y.metadata.data}return g.value||[]}),M=l.computed(()=>B.value.length>0?Object.keys(B.value[0]):A.value?A.value.columns.map($=>$.name):[]),S=l.computed(()=>{var $,Y,te;if(w.value){const re=s.value.find(ee=>ee.id===w.value);return(($=re==null?void 0:re.metadata)==null?void 0:$.query)||""}for(let re=s.value.length-1;re>=0;re--)if((Y=s.value[re].metadata)!=null&&Y.data)return((te=s.value[re].metadata)==null?void 0:te.query)||"";return""});l.watch(s,()=>{l.nextTick(()=>{C.value&&(C.value.scrollTop=C.value.scrollHeight)});const $=[...s.value].reverse().find(Y=>{var te;return(te=Y.metadata)==null?void 0:te.data});$&&(w.value=$.id)},{deep:!0});function k(){!v.value.trim()||o.value||(m(v.value),v.value="")}function L($){$.key==="Enter"&&!$.shiftKey&&($.preventDefault(),k())}function T(){F.value.length>0&&i("viewResults",{data:F.value,query:S.value})}function I($){var te;const Y=s.value.find(re=>re.id===$);(te=Y==null?void 0:Y.metadata)!=null&&te.data&&(w.value=$)}function R(){N.value=!N.value}function P($){var Y;typeof window<"u"&&((Y=window.navigator)!=null&&Y.clipboard)&&window.navigator.clipboard.writeText($)}function H(){x(),y.value="",w.value=null,N.value=!1}function D(){x(),y.value="",w.value=null,N.value=!1}function _($){const Y=$.toLowerCase();return Y.includes("int")||Y.includes("float")||Y.includes("decimal")||Y.includes("number")?"#":Y.includes("date")||Y.includes("time")?"D":Y.includes("bool")?"?":"T"}function O($){return $==null?"":typeof $=="number"&&Math.abs($)>=1e3?$.toLocaleString("en-US",{maximumFractionDigits:2}):String($)}function Z($){return Nl($.content).replace(/\*\*/g,"").replace(/`([^`]+)`/g,"$1").trim()}function U($){const Y=$.target;Y.style.height="auto",Y.style.height=`${Math.min(Y.scrollHeight,120)}px`}function W($){var Y;return!!((Y=$.metadata)!=null&&Y.data)&&$.metadata.data.length>0}return($,Y)=>{var te,re;return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["vpg-ai-analyst",{"vpg-theme-dark":n.theme==="dark"}])},[l.unref(h)?(l.openBlock(),l.createElementBlock("div",Fc,[l.createElementVNode("div",Tc,[l.createElementVNode("div",Rc,[l.createElementVNode("button",{class:"vpg-ai-back-btn",title:"Change data source",onClick:D},[...Y[13]||(Y[13]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)])]),l.createElementVNode("div",Dc,[l.createElementVNode("span",Vc,l.toDisplayString((te=l.unref(u))==null?void 0:te.name),1)]),l.unref(r)?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-ai-clear-btn",title:"Clear conversation",onClick:H},[...Y[14]||(Y[14]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("polyline",{points:"3 6 5 6 21 6"}),l.createElementVNode("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)])])):l.createCommentVNode("",!0)]),l.createElementVNode("div",{ref_key:"messagesContainerRef",ref:C,class:"vpg-ai-messages"},[l.unref(r)?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("div",Pc,[Y[15]||(Y[15]=l.createElementVNode("p",null,"Ask questions about your data",-1)),l.createElementVNode("div",Ic,[l.createElementVNode("button",{onClick:Y[1]||(Y[1]=ee=>l.unref(m)("Show me a summary of the data"))}," Summary "),l.createElementVNode("button",{onClick:Y[2]||(Y[2]=ee=>l.unref(m)("Show me the top 10 records"))}," Top 10 "),l.createElementVNode("button",{onClick:Y[3]||(Y[3]=ee=>l.unref(m)("What are the trends?"))}," Trends ")])])),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(s),ee=>{var me,Re,ye,De;return l.openBlock(),l.createElementBlock(l.Fragment,{key:ee.id},[ee.role==="user"?(l.openBlock(),l.createElementBlock("div",zc,[l.createElementVNode("span",null,l.toDisplayString(ee.content),1)])):W(ee)?(l.openBlock(),l.createElementBlock("div",{key:1,class:l.normalizeClass(["vpg-ai-msg vpg-ai-msg-result",{"vpg-ai-msg-selected":w.value===ee.id}]),onClick:mt=>I(ee.id)},[l.createElementVNode("div",Oc,[l.createElementVNode("div",Hc,[Y[16]||(Y[16]=l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),l.createElementVNode("polyline",{points:"22 4 12 14.01 9 11.01"})],-1)),l.createElementVNode("span",null,l.toDisplayString((Re=(me=ee.metadata)==null?void 0:me.rowCount)==null?void 0:Re.toLocaleString())+" rows",1)]),(ye=ee.metadata)!=null&&ye.query?(l.openBlock(),l.createElementBlock("button",{key:0,class:l.normalizeClass(["vpg-ai-sql-toggle",{"vpg-ai-sql-expanded":N.value&&w.value===ee.id}]),title:"View SQL query",onClick:Y[4]||(Y[4]=l.withModifiers(mt=>R(),["stop"]))},[...Y[17]||(Y[17]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("polyline",{points:"16 18 22 12 16 6"}),l.createElementVNode("polyline",{points:"8 6 2 12 8 18"})],-1),l.createElementVNode("span",null,"SQL",-1)])],2)):l.createCommentVNode("",!0)]),l.createElementVNode("div",Yc,l.toDisplayString(Z(ee)),1)],10,_c)):ee.role==="assistant"?(l.openBlock(),l.createElementBlock("div",Xc,[l.createElementVNode("div",Wc,l.toDisplayString(Z(ee)),1),(De=ee.metadata)!=null&&De.error?(l.openBlock(),l.createElementBlock("div",$c,[...Y[18]||(Y[18]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),l.createElementVNode("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),l.createElementVNode("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})],-1),l.createTextVNode(" Error ",-1)])])):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)],64)}),128)),l.unref(o)?(l.openBlock(),l.createElementBlock("div",jc,[...Y[19]||(Y[19]=[l.createElementVNode("div",{class:"vpg-ai-typing"},[l.createElementVNode("span"),l.createElementVNode("span"),l.createElementVNode("span")],-1)])])):l.createCommentVNode("",!0)],512),l.createElementVNode("div",Gc,[l.createElementVNode("form",{class:"vpg-ai-input-form",onSubmit:l.withModifiers(k,["prevent"])},[l.withDirectives(l.createElementVNode("textarea",{"onUpdate:modelValue":Y[5]||(Y[5]=ee=>v.value=ee),class:"vpg-ai-input",placeholder:"Ask about your data...",disabled:l.unref(o),rows:"1",onKeydown:L,onInput:U},null,40,Uc),[[l.vModelText,v.value]]),l.createElementVNode("button",{type:"submit",class:"vpg-ai-send-btn",disabled:!v.value.trim()||l.unref(o),title:"Send"},[...Y[20]||(Y[20]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),l.createElementVNode("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})],-1)])],8,qc)],32),l.createElementVNode("div",Zc,[n.config.aiModelName?(l.openBlock(),l.createElementBlock("span",Kc,l.toDisplayString(n.config.aiModelName),1)):l.createCommentVNode("",!0),l.createElementVNode("div",Jc,[F.value.length>0?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-ai-action-btn vpg-ai-action-primary",title:"View in Grid tab",onClick:T},[...Y[21]||(Y[21]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1),l.createTextVNode(" View in Grid ",-1)])])):l.createCommentVNode("",!0)])])])]),l.createElementVNode("div",Qc,[l.createElementVNode("div",ed,[l.createElementVNode("div",td,[l.createElementVNode("h3",null,l.toDisplayString((re=l.unref(u))==null?void 0:re.name),1),l.createElementVNode("div",ad,[F.value.length>0?(l.openBlock(),l.createElementBlock("span",id,l.toDisplayString(F.value.length.toLocaleString())+" rows ",1)):l.createCommentVNode("",!0),S.value?(l.openBlock(),l.createElementBlock("button",{key:1,class:l.normalizeClass(["vpg-ai-preview-sql-btn",{"vpg-ai-sql-active":N.value}]),title:"Toggle SQL query",onClick:Y[6]||(Y[6]=ee=>R())},[...Y[22]||(Y[22]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("polyline",{points:"16 18 22 12 16 6"}),l.createElementVNode("polyline",{points:"8 6 2 12 8 18"})],-1),l.createTextVNode(" SQL ",-1)])],2)):l.createCommentVNode("",!0),F.value.length>0?(l.openBlock(),l.createElementBlock("button",{key:2,class:"vpg-ai-preview-view-btn",title:"View in Grid",onClick:T},[...Y[23]||(Y[23]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),l.createElementVNode("line",{x1:"3",y1:"9",x2:"21",y2:"9"}),l.createElementVNode("line",{x1:"9",y1:"21",x2:"9",y2:"9"})],-1),l.createTextVNode(" View in Grid ",-1)])])):l.createCommentVNode("",!0)])]),A.value?(l.openBlock(),l.createElementBlock("div",sd,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(A.value.columns,ee=>(l.openBlock(),l.createElementBlock("div",{key:ee.name,class:"vpg-ai-schema-chip",title:`${ee.name} (${ee.type})`},[l.createElementVNode("span",rd,l.toDisplayString(_(ee.type)),1),l.createElementVNode("span",od,l.toDisplayString(ee.name),1)],8,nd))),128))])):l.createCommentVNode("",!0)]),N.value&&S.value?(l.openBlock(),l.createElementBlock("div",ld,[l.createElementVNode("div",cd,[Y[26]||(Y[26]=l.createElementVNode("span",{class:"vpg-ai-sql-panel-title"},"SQL Query",-1)),l.createElementVNode("div",dd,[l.createElementVNode("button",{class:"vpg-ai-copy-btn",title:"Copy SQL",onClick:Y[7]||(Y[7]=ee=>P(S.value))},[...Y[24]||(Y[24]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),l.createElementVNode("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})],-1)])]),l.createElementVNode("button",{class:"vpg-ai-sql-panel-close",title:"Close",onClick:Y[8]||(Y[8]=ee=>N.value=!1)},[...Y[25]||(Y[25]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),l.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])])]),l.createElementVNode("pre",hd,[l.createElementVNode("code",null,l.toDisplayString(S.value),1)])])):l.createCommentVNode("",!0),l.unref(o)?(l.openBlock(),l.createElementBlock("div",ud,[...Y[27]||(Y[27]=[l.createElementVNode("div",{class:"vpg-ai-preview-spinner"},null,-1),l.createElementVNode("span",null,"Running query...",-1)])])):B.value.length===0&&A.value?(l.openBlock(),l.createElementBlock("div",gd,[Y[28]||(Y[28]=l.createStaticVNode('<div class="vpg-ai-preview-ready-icon" data-v-e1647db4><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" data-v-e1647db4><ellipse cx="12" cy="5" rx="9" ry="3" data-v-e1647db4></ellipse><path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5" data-v-e1647db4></path><path d="M3 12c0 1.66 4 3 9 3s9-1.34 9-3" data-v-e1647db4></path></svg></div><p data-v-e1647db4>Data source connected</p>',2)),l.createElementVNode("span",null,l.toDisplayString(A.value.columns.length)+" columns available",1),Y[29]||(Y[29]=l.createElementVNode("div",{class:"vpg-ai-preview-hint"}," Ask a question to explore the data ",-1))])):B.value.length===0?(l.openBlock(),l.createElementBlock("div",fd,[...Y[30]||(Y[30]=[l.createElementVNode("div",{class:"vpg-ai-preview-empty-icon"},[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[l.createElementVNode("path",{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),l.createElementVNode("p",null,"Loading data source...",-1)])])):(l.openBlock(),l.createElementBlock("div",pd,[l.createElementVNode("table",md,[l.createElementVNode("thead",null,[l.createElementVNode("tr",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(M.value,ee=>(l.openBlock(),l.createElementBlock("th",{key:ee},l.toDisplayString(ee),1))),128))])]),l.createElementVNode("tbody",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(B.value,(ee,me)=>(l.openBlock(),l.createElementBlock("tr",{key:me},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(M.value,Re=>(l.openBlock(),l.createElementBlock("td",{key:Re},l.toDisplayString(O(ee[Re])),1))),128))]))),128))])]),F.value.length>100?(l.openBlock(),l.createElementBlock("div",xd,[l.createTextVNode(" Showing 100 of "+l.toDisplayString(F.value.length.toLocaleString())+" rows. ",1),l.createElementVNode("button",{onClick:T}," View all in Grid ")])):l.createCommentVNode("",!0)]))])])):(l.openBlock(),l.createElementBlock("div",wc,[l.createElementVNode("div",kc,[Y[12]||(Y[12]=l.createStaticVNode('<div class="vpg-ai-picker-header" data-v-e1647db4><div class="vpg-ai-icon-lg" data-v-e1647db4><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-e1647db4><path d="M12 2a2 2 0 0 1 2 2c0 .74-.4 1.39-1 1.73V7h1a7 7 0 0 1 7 7h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-1H2a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h1a7 7 0 0 1 7-7h1V5.73c-.6-.34-1-.99-1-1.73a2 2 0 0 1 2-2z" data-v-e1647db4></path><circle cx="7.5" cy="14.5" r="1.5" fill="currentColor" data-v-e1647db4></circle><circle cx="16.5" cy="14.5" r="1.5" fill="currentColor" data-v-e1647db4></circle></svg></div><h2 data-v-e1647db4>AI Data Analyst</h2><p data-v-e1647db4>Select a data source to start exploring with AI</p></div>',1)),l.unref(f).length===0&&!l.unref(c)?(l.openBlock(),l.createElementBlock("div",Cc,[...Y[9]||(Y[9]=[l.createStaticVNode('<p data-v-e1647db4>No data sources configured.</p><a href="https://tinypivot.com/docs/ai-analyst" target="_blank" rel="noopener" class="vpg-ai-docs-link" data-v-e1647db4><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-e1647db4><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" data-v-e1647db4></path><polyline points="15 3 21 3 21 9" data-v-e1647db4></polyline><line x1="10" y1="14" x2="21" y2="3" data-v-e1647db4></line></svg> View Documentation </a>',2)])])):(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createElementVNode("div",Sc,[Y[10]||(Y[10]=l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("circle",{cx:"11",cy:"11",r:"8"}),l.createElementVNode("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})],-1)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":Y[0]||(Y[0]=ee=>y.value=ee),type:"text",placeholder:"Search data sources...",class:"vpg-ai-search-input"},null,512),[[l.vModelText,y.value]])]),l.createElementVNode("div",Ac,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(E.value,ee=>(l.openBlock(),l.createElementBlock("button",{key:ee.id,class:"vpg-ai-datasource-card",onClick:me=>l.unref(p)(ee.id)},[Y[11]||(Y[11]=l.createElementVNode("div",{class:"vpg-ai-datasource-icon"},[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),l.createElementVNode("path",{d:"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"})])],-1)),l.createElementVNode("div",Nc,[l.createElementVNode("span",Mc,l.toDisplayString(ee.name),1),ee.description?(l.openBlock(),l.createElementBlock("span",Lc,l.toDisplayString(ee.description),1)):l.createCommentVNode("",!0)])],8,Ec))),128))]),E.value.length===0?(l.openBlock(),l.createElementBlock("div",Bc,' No data sources match "'+l.toDisplayString(y.value)+'" ',1)):l.createCommentVNode("",!0)],64))])]))],2)}}}),Dt=(n,e)=>{const t=n.__vccOpts||n;for(const[a,i]of e)t[a]=i;return t},vd=Dt(bd,[["__scopeId","data-v-e1647db4"]]),yd={class:"vpg-modal"},wd={class:"vpg-modal-header"},kd={class:"vpg-modal-body"},Cd={class:"vpg-form-group"},Sd={class:"vpg-form-group"},Ad={key:0,class:"vpg-error"},Ed={class:"vpg-form-group"},Nd={class:"vpg-button-group"},Md={class:"vpg-form-group"},Ld={key:0,class:"vpg-button-group vpg-field-buttons"},Bd=["onClick"],Fd={key:1,class:"vpg-no-fields"},Td={class:"vpg-form-row"},Rd={class:"vpg-form-group vpg-form-group-half"},Dd={class:"vpg-form-group vpg-form-group-half"},Vd={key:0,class:"vpg-error vpg-error-box"},Pd={class:"vpg-modal-footer"},Id=Dt(l.defineComponent({__name:"CalculatedFieldModal",props:{show:{type:Boolean},availableFields:{},existingField:{}},emits:["close","save"],setup(n,{emit:e}){const t=n,a=e,i=l.ref(""),s=l.ref(""),r=l.ref("number"),o=l.ref(2),c=l.ref(null);l.watch(()=>t.show,f=>{f&&(t.existingField?(i.value=t.existingField.name,s.value=t.existingField.formula,r.value=t.existingField.formatAs||"number",o.value=t.existingField.decimals??2):(i.value="",s.value="",r.value="number",o.value=2),c.value=null)});const d=l.computed(()=>s.value.trim()?Rn(s.value,t.availableFields):null);function h(f){s.value.trim()&&!s.value.endsWith(" ")&&(s.value+=" "),s.value+=f}function u(f){s.value.trim()&&!s.value.endsWith(" ")&&(s.value+=" "),s.value+=`${f} `}function g(){var m;if(!i.value.trim()){c.value="Name is required";return}const f=Rn(s.value,t.availableFields);if(f){c.value=f;return}const p={id:((m=t.existingField)==null?void 0:m.id)||`calc_${Date.now()}`,name:i.value.trim(),formula:s.value.trim(),formatAs:r.value,decimals:o.value};a("save",p),a("close")}return(f,p)=>(l.openBlock(),l.createBlock(l.Teleport,{to:"body"},[n.show?(l.openBlock(),l.createElementBlock("div",{key:0,class:"vpg-modal-overlay",onClick:p[12]||(p[12]=l.withModifiers(m=>a("close"),["self"]))},[l.createElementVNode("div",yd,[l.createElementVNode("div",wd,[l.createElementVNode("h3",null,l.toDisplayString(n.existingField?"Edit":"Create")+" Calculated Field",1),l.createElementVNode("button",{class:"vpg-modal-close",onClick:p[0]||(p[0]=m=>a("close"))}," × ")]),l.createElementVNode("div",kd,[l.createElementVNode("div",Cd,[p[13]||(p[13]=l.createElementVNode("label",{class:"vpg-label"},"Name",-1)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":p[1]||(p[1]=m=>i.value=m),type:"text",class:"vpg-input",placeholder:"e.g., Profit Margin %"},null,512),[[l.vModelText,i.value]])]),l.createElementVNode("div",Sd,[p[14]||(p[14]=l.createElementVNode("label",{class:"vpg-label"},"Formula",-1)),l.withDirectives(l.createElementVNode("textarea",{"onUpdate:modelValue":p[2]||(p[2]=m=>s.value=m),class:"vpg-textarea",placeholder:"e.g., revenue / units",rows:"2"},null,512),[[l.vModelText,s.value]]),p[15]||(p[15]=l.createElementVNode("div",{class:"vpg-formula-hint"}," Use field names with math operators: + - * / ( ) ",-1)),d.value?(l.openBlock(),l.createElementBlock("div",Ad,l.toDisplayString(d.value),1)):l.createCommentVNode("",!0)]),l.createElementVNode("div",Ed,[p[16]||(p[16]=l.createElementVNode("label",{class:"vpg-label-small"},"Operators",-1)),l.createElementVNode("div",Nd,[l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[3]||(p[3]=m=>u("+"))}," + "),l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[4]||(p[4]=m=>u("-"))}," − "),l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[5]||(p[5]=m=>u("*"))}," × "),l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[6]||(p[6]=m=>u("/"))}," ÷ "),l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[7]||(p[7]=m=>u("("))}," ( "),l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[8]||(p[8]=m=>u(")"))}," ) ")])]),l.createElementVNode("div",Md,[p[17]||(p[17]=l.createElementVNode("label",{class:"vpg-label-small"},"Insert Field",-1)),n.availableFields.length>0?(l.openBlock(),l.createElementBlock("div",Ld,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.availableFields,m=>(l.openBlock(),l.createElementBlock("button",{key:m,class:"vpg-insert-btn vpg-field-btn",onClick:x=>h(m)},l.toDisplayString(m),9,Bd))),128))])):(l.openBlock(),l.createElementBlock("div",Fd," No numeric fields available "))]),l.createElementVNode("div",Td,[l.createElementVNode("div",Rd,[p[19]||(p[19]=l.createElementVNode("label",{class:"vpg-label"},"Format As",-1)),l.withDirectives(l.createElementVNode("select",{"onUpdate:modelValue":p[9]||(p[9]=m=>r.value=m),class:"vpg-select"},[...p[18]||(p[18]=[l.createElementVNode("option",{value:"number"}," Number ",-1),l.createElementVNode("option",{value:"percent"}," Percentage ",-1),l.createElementVNode("option",{value:"currency"}," Currency ($) ",-1)])],512),[[l.vModelSelect,r.value]])]),l.createElementVNode("div",Dd,[p[20]||(p[20]=l.createElementVNode("label",{class:"vpg-label"},"Decimals",-1)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":p[10]||(p[10]=m=>o.value=m),type:"number",class:"vpg-input",min:"0",max:"6"},null,512),[[l.vModelText,o.value,void 0,{number:!0}]])])]),c.value?(l.openBlock(),l.createElementBlock("div",Vd,l.toDisplayString(c.value),1)):l.createCommentVNode("",!0)]),l.createElementVNode("div",Pd,[l.createElementVNode("button",{class:"vpg-btn vpg-btn-secondary",onClick:p[11]||(p[11]=m=>a("close"))}," Cancel "),l.createElementVNode("button",{class:"vpg-btn vpg-btn-primary",onClick:g},l.toDisplayString(n.existingField?"Update":"Add")+" Field ",1)])])])):l.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-a29541ff"]]),zd={class:"vpg-chart-builder"},_d={class:"vpg-chart-type-bar"},Od=["title","onClick"],Hd={class:"vpg-icon",viewBox:"0 0 24 24",fill:"currentColor"},Yd=["d"],Xd={class:"vpg-chart-type-label"},Wd={class:"vpg-chart-builder-content"},$d={class:"vpg-chart-fields-panel"},jd={class:"vpg-chart-fields-section"},Gd={class:"vpg-chart-fields-list"},Ud=["onDragstart"],qd={class:"vpg-field-name"},Zd={class:"vpg-field-type"},Kd={key:0,class:"vpg-chart-fields-empty"},Jd={class:"vpg-chart-fields-section"},Qd={class:"vpg-chart-fields-list"},eh=["onDragstart"],th={class:"vpg-field-name"},ah={key:0,class:"vpg-chart-fields-empty"},ih={class:"vpg-chart-config-panel"},sh={class:"vpg-chart-drop-zone-wrapper"},nh={class:"vpg-chart-zone-label"},rh={class:"vpg-zone-field-name"},oh=["value"],lh=["value"],ch={key:1,class:"vpg-zone-placeholder"},dh={class:"vpg-chart-drop-zone-wrapper"},hh={class:"vpg-chart-zone-label"},uh={class:"vpg-zone-field-name"},gh=["value"],fh=["value"],ph={key:1,class:"vpg-zone-placeholder"},mh={key:0,class:"vpg-chart-drop-zone-wrapper"},xh={class:"vpg-chart-zone-label"},bh={class:"vpg-zone-field-name"},vh=["value"],yh=["value"],wh={key:1,class:"vpg-zone-placeholder"},kh={key:1,class:"vpg-chart-drop-zone-wrapper"},Ch={class:"vpg-zone-field-name"},Sh=["value"],Ah=["value"],Eh={key:1,class:"vpg-zone-placeholder"},Nh={class:"vpg-chart-guidance"},Mh={class:"vpg-chart-preview-panel"},Lh={key:0,class:"vpg-chart-container"},Bh={key:1,class:"vpg-chart-empty-state"},Fh={class:"vpg-icon-lg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},Th=["d"],Rh={class:"vpg-chart-hint"},Dh=l.defineComponent({__name:"ChartBuilder",props:{data:{},theme:{}},emits:["configChange"],setup(n,{emit:e}){const t=n,a=e,i=l.defineAsyncComponent(()=>Promise.resolve().then(()=>Rx).then(R=>R.default)),s=l.ref(zl()),r=l.computed(()=>Rl(t.data)),o=l.computed(()=>r.value.filter(R=>R.role==="dimension"||R.role==="temporal")),c=l.computed(()=>r.value.filter(R=>R.role==="measure")),d=l.ref(null),h=l.ref(null),u=l.ref(!1),g=l.computed(()=>Vl(s.value)),f=l.computed(()=>Dl(s.value)),p=l.computed(()=>Yi.find(R=>R.type===s.value.type)),m=l.computed(()=>{const R=s.value.type;switch(R){case"scatter":case"bubble":return{xAxis:"X-Axis (measure)",xAxisPlaceholder:"Drop a measure",yAxis:"Y-Axis (measure)",yAxisPlaceholder:"Drop a measure",series:"Color by (optional)",seriesPlaceholder:"Group points by dimension",showSize:R==="bubble",showSeries:!0};case"heatmap":return{xAxis:"X-Axis (dimension)",xAxisPlaceholder:"Drop a dimension",yAxis:"Y-Axis (dimension)",yAxisPlaceholder:"Drop a dimension",series:"Value / Intensity",seriesPlaceholder:"Drop a measure for color intensity",showSize:!1,showSeries:!0};case"pie":case"donut":return{xAxis:"Slices (dimension)",xAxisPlaceholder:"Drop a dimension",yAxis:"Values (measure)",yAxisPlaceholder:"Drop a measure",series:"",seriesPlaceholder:"",showSize:!1,showSeries:!1};case"radar":return{xAxis:"Axes (dimension)",xAxisPlaceholder:"Drop a dimension",yAxis:"Values (measure)",yAxisPlaceholder:"Drop a measure",series:"Compare by (optional)",seriesPlaceholder:"Group by dimension",showSize:!1,showSeries:!0};case"stackedBar":return{xAxis:"X-Axis (dimension)",xAxisPlaceholder:"Drop a dimension",yAxis:"Y-Axis (measure)",yAxisPlaceholder:"Drop a measure",series:"Series (stacking field)",seriesPlaceholder:"Drop a dimension to stack by",showSize:!1,showSeries:!0};default:return{xAxis:"X-Axis (dimension)",xAxisPlaceholder:"Drop a dimension",yAxis:"Y-Axis (measure)",yAxisPlaceholder:"Drop a measure",series:"Color / Series (optional)",seriesPlaceholder:"Group by dimension",showSize:!1,showSeries:!0}}}),x=l.computed(()=>["scatter","bubble"].includes(s.value.type)),b=l.computed(()=>s.value.type==="heatmap");function v(R,P){var H;d.value=R,(H=P.dataTransfer)==null||H.setData("text/plain",R.field)}function y(){d.value=null,h.value=null}function C(R,P){P.preventDefault(),h.value=R}function w(){h.value=null}function N(R,P){if(P.preventDefault(),h.value=null,!d.value)return;const H=d.value,D={field:H.field,label:H.label,role:H.role,aggregation:H.role==="measure"?"sum":void 0};switch(R){case"xAxis":s.value={...s.value,xAxis:D};break;case"yAxis":s.value={...s.value,yAxis:D};break;case"series":s.value={...s.value,seriesField:D};break;case"size":s.value={...s.value,sizeField:D};break;case"color":s.value={...s.value,colorField:D};break}a("configChange",s.value)}function E(R){switch(R){case"xAxis":s.value={...s.value,xAxis:void 0};break;case"yAxis":s.value={...s.value,yAxis:void 0};break;case"series":s.value={...s.value,seriesField:void 0};break;case"size":s.value={...s.value,sizeField:void 0};break;case"color":s.value={...s.value,colorField:void 0};break}a("configChange",s.value)}function A(R){s.value={...s.value,type:R},u.value=!1,a("configChange",s.value)}function B(R,P){const H=R==="yAxis"?s.value.yAxis:s.value.sizeField;if(!H)return;const D={...H,aggregation:P};R==="yAxis"?s.value={...s.value,yAxis:D}:R==="size"&&(s.value={...s.value,sizeField:D}),a("configChange",s.value)}const F=l.computed(()=>{const R=t.theme==="dark",P=s.value,H=P.options||{},D={chart:{type:L(P.type),background:"transparent",foreColor:R?"#e2e8f0":"#334155",toolbar:{show:!0,tools:{download:!0,selection:!1,zoom:H.enableZoom??!1,zoomin:H.enableZoom??!1,zoomout:H.enableZoom??!1,pan:!1,reset:H.enableZoom??!1},export:{csv:{filename:"chart-data"},svg:{filename:"chart"},png:{filename:"chart"}}},animations:{enabled:H.animated??!0,speed:400,dynamicAnimation:{enabled:!0,speed:300}},fontFamily:"system-ui, -apple-system, sans-serif"},colors:H.colors||mn,theme:{mode:R?"dark":"light"},grid:{show:H.showGrid??!0,borderColor:R?"#334155":"#e2e8f0"},legend:{show:H.showLegend??!0,position:H.legendPosition||"top"},dataLabels:{enabled:H.showDataLabels??!1},tooltip:{theme:R?"dark":"light",style:{fontSize:"12px"},cssClass:R?"":"apexcharts-tooltip-light"},stroke:{curve:"smooth",width:P.type==="line"?3:P.type==="area"?2:0},fill:{opacity:P.type==="area"?.4:1}};return P.xAxis&&(D.xaxis={...D.xaxis,title:{text:H.xAxisTitle||P.xAxis.label},labels:{style:{colors:R?"#94a3b8":"#64748b"}}}),P.yAxis&&!["pie","donut","radar"].includes(P.type)&&(D.yaxis={title:{text:H.yAxisTitle||P.yAxis.label},labels:{style:{colors:R?"#94a3b8":"#64748b"},formatter:_=>T(_,H.valueFormat,H.decimals)}}),H.title&&(D.title={text:H.title,style:{fontSize:"16px",fontWeight:600,color:R?"#e2e8f0":"#334155"}}),(P.type==="stackedBar"||H.stacked&&["bar","area"].includes(P.type))&&(D.chart.stacked=!0),(P.type==="pie"||P.type==="donut")&&(D.plotOptions={pie:{donut:{size:P.type==="donut"?"55%":"0%",labels:{show:P.type==="donut",total:{show:!0,label:"Total",formatter:_=>{const O=_.globals.seriesTotals.reduce((Z,U)=>Z+U,0);return T(O,H.valueFormat,H.decimals)}}}}}}),P.type==="radar"&&(D.plotOptions={radar:{polygons:{strokeColors:R?"#334155":"#e2e8f0",fill:{colors:R?["#1e293b","#0f172a"]:["#f8fafc","#f1f5f9"]}}}}),D}),M=l.computed(()=>{var H;const R=s.value;return f.value?R.type==="pie"||R.type==="donut"?((H=vn(t.data,R).series[0])==null?void 0:H.data)||[]:R.type==="scatter"||R.type==="bubble"?Pl(t.data,R).series:R.type==="heatmap"?Il(t.data,R).series:bn(t.data,R).series:[]}),S=l.computed(()=>{const R=s.value;return f.value?R.type==="pie"||R.type==="donut"?vn(t.data,R).categories:bn(t.data,R).categories:[]}),k=l.computed(()=>{const R={...F.value},P=s.value;return["pie","donut","scatter","bubble","heatmap"].includes(P.type)||(R.xaxis={...R.xaxis,categories:S.value}),(P.type==="pie"||P.type==="donut")&&(R.labels=S.value),P.type==="heatmap"&&(R.chart={...R.chart,type:"heatmap"},R.xaxis={...R.xaxis,type:"category"},R.dataLabels={enabled:!0,style:{colors:["#fff"],fontSize:"10px"},formatter:H=>H==null?"":typeof H!="number"?String(H):H>=1e6?`${(H/1e6).toFixed(1)}M`:H>=1e3?`${(H/1e3).toFixed(0)}K`:Math.round(H).toLocaleString()},R.plotOptions={heatmap:{shadeIntensity:.5,radius:2,enableShades:!0,colorScale:{inverse:!1}}},R.colors=["#6366f1"],R.legend={show:!1}),R});function L(R){return{bar:"bar",stackedBar:"bar",line:"line",area:"area",pie:"pie",donut:"donut",radar:"radar",scatter:"scatter",bubble:"bubble",heatmap:"heatmap"}[R]||"bar"}function T(R,P,H){if(R==null)return"";if(typeof R!="number")return String(R);if(Number.isNaN(R))return"";const D=H??0;return P==="percent"?`${R.toFixed(D)}%`:P==="currency"?`$${R.toLocaleString(void 0,{minimumFractionDigits:D,maximumFractionDigits:D})}`:Math.abs(R)>=1e3?R.toLocaleString(void 0,{maximumFractionDigits:D}):R.toFixed(D)}function I(R){const P={bar:"M3 3v18h18V3H3zm4 14H5v-6h2v6zm4 0H9V7h2v10zm4 0h-2V9h2v8zm4 0h-2v-4h2v4z",stackedBar:"M3 3v18h18V3H3zm4 14H5v-3h2v3zm0-4H5v-3h2v3zm4 4H9v-5h2v5zm0-6H9v-4h2v4zm4 6h-2v-3h2v3zm0-4h-2v-5h2v5zm4 4h-2v-2h2v2zm0-3h-2v-2h2v2z",line:"M3.5 18.5l6-6 4 4 8-8M14.5 8.5h6v6",area:"M3 17l6-6 4 4 8-8v10H3z",pie:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8v8l5.66 5.66C14.28 19.04 13.18 20 12 20z",donut:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 14c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z",scatter:"M7 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm5-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm5 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-3 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4z",bubble:"M7 14a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm5-5a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm5 7a4 4 0 1 0 0-8 4 4 0 0 0 0 8z",heatmap:"M3 3h4v4H3V3zm6 0h4v4H9V3zm6 0h4v4h-4V3zM3 9h4v4H3V9zm6 0h4v4H9V9zm6 0h4v4h-4V9zM3 15h4v4H3v-4zm6 0h4v4H9v-4zm6 0h4v4h-4v-4z",radar:"M12 2L4 6v6c0 5.55 3.84 10.74 8 12 4.16-1.26 8-6.45 8-12V6l-8-4zm0 3.18l6 3v5.09c0 4.08-2.76 7.91-6 9.14V5.18z"};return P[R]||P.bar}return l.watch(()=>t.data,()=>{},{deep:!0}),l.onMounted(()=>{a("configChange",s.value)}),(R,P)=>{var H,D,_,O,Z,U;return l.openBlock(),l.createElementBlock("div",zd,[l.createElementVNode("div",_d,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(Yi),W=>(l.openBlock(),l.createElementBlock("button",{key:W.type,class:l.normalizeClass(["vpg-chart-type-btn",{active:s.value.type===W.type}]),title:W.description,onClick:$=>A(W.type)},[(l.openBlock(),l.createElementBlock("svg",Hd,[l.createElementVNode("path",{d:I(W.type)},null,8,Yd)])),l.createElementVNode("span",Xd,l.toDisplayString(W.label.replace(" Chart","")),1)],10,Od))),128))]),l.createElementVNode("div",Wd,[l.createElementVNode("div",$d,[l.createElementVNode("div",jd,[P[16]||(P[16]=l.createElementVNode("h4",{class:"vpg-chart-fields-title"},[l.createElementVNode("svg",{class:"vpg-icon-sm",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M4 6h16M4 12h10M4 18h6"})]),l.createTextVNode(" Dimensions "),l.createElementVNode("span",{class:"vpg-chart-fields-hint"},"(text/date)")],-1)),l.createElementVNode("div",Gd,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(o.value,W=>(l.openBlock(),l.createElementBlock("div",{key:W.field,class:"vpg-chart-field-chip vpg-field-dimension",draggable:"true",onDragstart:$=>v(W,$),onDragend:y},[l.createElementVNode("span",qd,l.toDisplayString(W.label),1),l.createElementVNode("span",Zd,l.toDisplayString(W.role==="temporal"?"date":"text"),1)],40,Ud))),128)),o.value.length===0?(l.openBlock(),l.createElementBlock("div",Kd," No dimension fields detected ")):l.createCommentVNode("",!0)])]),l.createElementVNode("div",Jd,[P[18]||(P[18]=l.createElementVNode("h4",{class:"vpg-chart-fields-title"},[l.createElementVNode("svg",{class:"vpg-icon-sm",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M16 8v8M12 11v5M8 14v2M4 4v16h16"})]),l.createTextVNode(" Measures "),l.createElementVNode("span",{class:"vpg-chart-fields-hint"},"(numbers)")],-1)),l.createElementVNode("div",Qd,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(c.value,W=>(l.openBlock(),l.createElementBlock("div",{key:W.field,class:"vpg-chart-field-chip vpg-field-measure",draggable:"true",onDragstart:$=>v(W,$),onDragend:y},[l.createElementVNode("span",th,l.toDisplayString(W.label),1),P[17]||(P[17]=l.createElementVNode("span",{class:"vpg-field-type"},"#",-1))],40,eh))),128)),c.value.length===0?(l.openBlock(),l.createElementBlock("div",ah," No numeric fields detected ")):l.createCommentVNode("",!0)])])]),l.createElementVNode("div",ih,[l.createElementVNode("div",sh,[l.createElementVNode("label",nh,l.toDisplayString(m.value.xAxis),1),l.createElementVNode("div",{class:l.normalizeClass(["vpg-chart-drop-zone",{"drag-over":h.value==="xAxis","has-field":s.value.xAxis}]),onDragover:P[2]||(P[2]=W=>C("xAxis",W)),onDragleave:w,onDrop:P[3]||(P[3]=W=>N("xAxis",W))},[s.value.xAxis?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("span",rh,l.toDisplayString(s.value.xAxis.label),1),x.value&&s.value.xAxis.role==="measure"?(l.openBlock(),l.createElementBlock("select",{key:0,class:"vpg-zone-aggregation",value:s.value.xAxis.aggregation||"sum",onChange:P[0]||(P[0]=W=>B("xAxis",W.target.value))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(ni),W=>(l.openBlock(),l.createElementBlock("option",{key:W.value,value:W.value},l.toDisplayString(W.symbol),9,lh))),128))],40,oh)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:"vpg-zone-remove-btn",onClick:P[1]||(P[1]=W=>E("xAxis"))},[...P[19]||(P[19]=[l.createElementVNode("svg",{class:"vpg-icon-xs",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M6 18L18 6M6 6l12 12"})],-1)])])],64)):(l.openBlock(),l.createElementBlock("span",ch,l.toDisplayString(m.value.xAxisPlaceholder),1))],34)]),l.createElementVNode("div",dh,[l.createElementVNode("label",hh,l.toDisplayString(m.value.yAxis),1),l.createElementVNode("div",{class:l.normalizeClass(["vpg-chart-drop-zone",{"drag-over":h.value==="yAxis","has-field":s.value.yAxis}]),onDragover:P[6]||(P[6]=W=>C("yAxis",W)),onDragleave:w,onDrop:P[7]||(P[7]=W=>N("yAxis",W))},[s.value.yAxis?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("span",uh,l.toDisplayString(s.value.yAxis.label),1),s.value.yAxis.role==="measure"&&!b.value?(l.openBlock(),l.createElementBlock("select",{key:0,class:"vpg-zone-aggregation",value:s.value.yAxis.aggregation||"sum",onChange:P[4]||(P[4]=W=>B("yAxis",W.target.value))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(ni),W=>(l.openBlock(),l.createElementBlock("option",{key:W.value,value:W.value},l.toDisplayString(W.symbol),9,fh))),128))],40,gh)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:"vpg-zone-remove-btn",onClick:P[5]||(P[5]=W=>E("yAxis"))},[...P[20]||(P[20]=[l.createElementVNode("svg",{class:"vpg-icon-xs",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M6 18L18 6M6 6l12 12"})],-1)])])],64)):(l.openBlock(),l.createElementBlock("span",ph,l.toDisplayString(m.value.yAxisPlaceholder),1))],34)]),m.value.showSeries?(l.openBlock(),l.createElementBlock("div",mh,[l.createElementVNode("label",xh,l.toDisplayString(m.value.series),1),l.createElementVNode("div",{class:l.normalizeClass(["vpg-chart-drop-zone vpg-zone-optional",{"drag-over":h.value==="series","has-field":s.value.seriesField||b.value&&s.value.colorField}]),onDragover:P[10]||(P[10]=W=>C(b.value?"color":"series",W)),onDragleave:w,onDrop:P[11]||(P[11]=W=>N(b.value?"color":"series",W))},[(b.value?s.value.colorField:s.value.seriesField)?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("span",bh,l.toDisplayString(b.value?(H=s.value.colorField)==null?void 0:H.label:(D=s.value.seriesField)==null?void 0:D.label),1),b.value&&((_=s.value.colorField)==null?void 0:_.role)==="measure"?(l.openBlock(),l.createElementBlock("select",{key:0,class:"vpg-zone-aggregation",value:((O=s.value.colorField)==null?void 0:O.aggregation)||"sum",onChange:P[8]||(P[8]=W=>B("color",W.target.value))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(ni),W=>(l.openBlock(),l.createElementBlock("option",{key:W.value,value:W.value},l.toDisplayString(W.symbol),9,yh))),128))],40,vh)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:"vpg-zone-remove-btn",onClick:P[9]||(P[9]=W=>E(b.value?"color":"series"))},[...P[21]||(P[21]=[l.createElementVNode("svg",{class:"vpg-icon-xs",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M6 18L18 6M6 6l12 12"})],-1)])])],64)):(l.openBlock(),l.createElementBlock("span",wh,l.toDisplayString(m.value.seriesPlaceholder),1))],34)])):l.createCommentVNode("",!0),m.value.showSize?(l.openBlock(),l.createElementBlock("div",kh,[P[23]||(P[23]=l.createElementVNode("label",{class:"vpg-chart-zone-label"},"Size (number)",-1)),l.createElementVNode("div",{class:l.normalizeClass(["vpg-chart-drop-zone vpg-zone-optional",{"drag-over":h.value==="size","has-field":s.value.sizeField}]),onDragover:P[14]||(P[14]=W=>C("size",W)),onDragleave:w,onDrop:P[15]||(P[15]=W=>N("size",W))},[s.value.sizeField?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("span",Ch,l.toDisplayString(s.value.sizeField.label),1),s.value.sizeField.role==="measure"?(l.openBlock(),l.createElementBlock("select",{key:0,class:"vpg-zone-aggregation",value:s.value.sizeField.aggregation||"sum",onChange:P[12]||(P[12]=W=>B("size",W.target.value))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(ni),W=>(l.openBlock(),l.createElementBlock("option",{key:W.value,value:W.value},l.toDisplayString(W.symbol),9,Ah))),128))],40,Sh)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:"vpg-zone-remove-btn",onClick:P[13]||(P[13]=W=>E("size"))},[...P[22]||(P[22]=[l.createElementVNode("svg",{class:"vpg-icon-xs",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M6 18L18 6M6 6l12 12"})],-1)])])],64)):(l.openBlock(),l.createElementBlock("span",Eh,"Drop a number for bubble size"))],34)])):l.createCommentVNode("",!0),l.createElementVNode("div",Nh,[P[24]||(P[24]=l.createElementVNode("svg",{class:"vpg-icon-sm",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),l.createElementVNode("path",{d:"M12 16v-4M12 8h.01"})],-1)),l.createElementVNode("span",null,l.toDisplayString(g.value),1)])]),l.createElementVNode("div",Mh,[f.value?(l.openBlock(),l.createElementBlock("div",Lh,[(l.openBlock(),l.createBlock(l.Suspense,null,{fallback:l.withCtx(()=>[...P[25]||(P[25]=[l.createElementVNode("div",{class:"vpg-chart-loading"},[l.createElementVNode("div",{class:"vpg-chart-spinner"}),l.createElementVNode("span",null,"Loading chart...")],-1)])]),default:l.withCtx(()=>[(l.openBlock(),l.createBlock(l.unref(i),{key:`${s.value.type}-${JSON.stringify(s.value.xAxis)}-${JSON.stringify(s.value.yAxis)}`,type:L(s.value.type),options:k.value,series:M.value,height:"100%"},null,8,["type","options","series"]))]),_:1}))])):(l.openBlock(),l.createElementBlock("div",Bh,[(l.openBlock(),l.createElementBlock("svg",Fh,[l.createElementVNode("path",{d:I(s.value.type)},null,8,Th)])),P[26]||(P[26]=l.createElementVNode("h3",null,"Build your chart",-1)),P[27]||(P[27]=l.createElementVNode("p",null,"Drag fields from the left panel to configure your visualization",-1)),l.createElementVNode("div",Rh,[l.createElementVNode("strong",null,l.toDisplayString((Z=p.value)==null?void 0:Z.label),1),l.createTextVNode(": "+l.toDisplayString((U=p.value)==null?void 0:U.description),1)])]))])])])}}}),Vh={class:"vpg-range-filter"},Ph={class:"vpg-range-info"},Ih={class:"vpg-range-bounds"},zh={class:"vpg-range-inputs"},_h={class:"vpg-input-group"},Oh=["placeholder"],Hh={class:"vpg-input-group"},Yh=["placeholder"],Xh={class:"vpg-range-actions"},Wh=["disabled"],$h={key:0,class:"vpg-filter-summary"},jh={key:0},Gh={key:1},Uh=Dt(l.defineComponent({__name:"DateRangeFilter",props:{dataMin:{},dataMax:{},currentRange:{},dateFormat:{}},emits:["change"],setup(n,{emit:e}){const t=n,a=e,i=l.computed(()=>t.dateFormat??"iso"),s=l.ref(""),r=l.ref(""),o=l.ref(!1),c=l.ref(!1);function d(v){v!=null&&v.min?s.value=yt(v.min,i.value):s.value="",v!=null&&v.max?r.value=yt(v.max,i.value):r.value="",o.value=!1,c.value=!1}const h=l.computed(()=>yt(t.dataMin,i.value)),u=l.computed(()=>yt(t.dataMax,i.value)),g=l.computed(()=>s.value!==""||r.value!=="");function f(){if(s.value===""){o.value=!1,m();return}const v=oi(s.value,i.value);o.value=v===null,o.value||m()}function p(){if(r.value===""){c.value=!1,m();return}const v=oi(r.value,i.value);c.value=v===null,c.value||m()}function m(){const v=s.value?oi(s.value,i.value):null,y=r.value?oi(r.value,i.value):null;v===null&&y===null?a("change",null):a("change",{min:v,max:y})}function x(){s.value="",r.value="",o.value=!1,c.value=!1,a("change",null)}function b(){s.value=yt(t.dataMin,i.value),r.value=yt(t.dataMax,i.value),o.value=!1,c.value=!1,a("change",{min:t.dataMin,max:t.dataMax})}return l.watch(()=>t.currentRange,v=>{d(v)},{immediate:!0}),(v,y)=>(l.openBlock(),l.createElementBlock("div",Vh,[l.createElementVNode("div",Ph,[y[2]||(y[2]=l.createElementVNode("span",{class:"vpg-range-label"},"Data range:",-1)),l.createElementVNode("span",Ih,l.toDisplayString(h.value)+" – "+l.toDisplayString(u.value),1)]),l.createElementVNode("div",zh,[l.createElementVNode("div",_h,[y[3]||(y[3]=l.createElementVNode("label",{class:"vpg-input-label"},"From",-1)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=C=>s.value=C),type:"text",class:l.normalizeClass(["vpg-range-input",{"vpg-input-error":o.value}]),placeholder:l.unref(Mn)(i.value),onBlur:f,onKeyup:l.withKeys(f,["enter"])},null,42,Oh),[[l.vModelText,s.value]])]),y[5]||(y[5]=l.createElementVNode("span",{class:"vpg-input-separator"},"to",-1)),l.createElementVNode("div",Hh,[y[4]||(y[4]=l.createElementVNode("label",{class:"vpg-input-label"},"To",-1)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":y[1]||(y[1]=C=>r.value=C),type:"text",class:l.normalizeClass(["vpg-range-input",{"vpg-input-error":c.value}]),placeholder:l.unref(Mn)(i.value),onBlur:p,onKeyup:l.withKeys(p,["enter"])},null,42,Yh),[[l.vModelText,r.value]])])]),l.createElementVNode("div",Xh,[l.createElementVNode("button",{class:"vpg-range-btn",disabled:!g.value,onClick:x},[...y[6]||(y[6]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),l.createTextVNode(" Clear ",-1)])],8,Wh),l.createElementVNode("button",{class:"vpg-range-btn",onClick:b},[...y[7]||(y[7]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Full Range ",-1)])])]),g.value&&!o.value&&!c.value?(l.openBlock(),l.createElementBlock("div",$h,[y[9]||(y[9]=l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.createElementVNode("span",null,[y[8]||(y[8]=l.createTextVNode(" Showing dates ",-1)),s.value?(l.openBlock(),l.createElementBlock("strong",jh,"from "+l.toDisplayString(s.value),1)):l.createCommentVNode("",!0),l.createTextVNode(" "+l.toDisplayString(s.value&&r.value?" ":"")+" ",1),r.value?(l.openBlock(),l.createElementBlock("strong",Gh,"to "+l.toDisplayString(r.value),1)):l.createCommentVNode("",!0)])])):l.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-95f95fbd"]]),qh={class:"vpg-range-filter"},Zh={class:"vpg-range-info"},Kh={class:"vpg-range-bounds"},Jh={class:"vpg-slider-container"},Qh={class:"vpg-slider-track"},eu=["min","max","step","value"],tu=["min","max","step","value"],au={class:"vpg-range-inputs"},iu={class:"vpg-input-group"},su=["placeholder","value","step"],nu={class:"vpg-input-group"},ru=["placeholder","value","step"],ou={class:"vpg-range-actions"},lu=["disabled"],cu={key:0,class:"vpg-filter-summary"},du=Dt(l.defineComponent({__name:"NumericRangeFilter",props:{dataMin:{},dataMax:{},currentRange:{},numberFormat:{}},emits:["change"],setup(n,{emit:e}){var v,y;const t=n,a=e,i=l.ref(((v=t.currentRange)==null?void 0:v.min)??null),s=l.ref(((y=t.currentRange)==null?void 0:y.max)??null),r=l.computed(()=>{const C=t.dataMax-t.dataMin;return C===0?1:C<=1?.01:C<=10?.1:C<=100?1:C<=1e3?10:10**(Math.floor(Math.log10(C))-2)});function o(C){return C===null?"":kt(C,t.numberFormat??"us")}const c=l.computed(()=>i.value!==null||s.value!==null),d=l.computed(()=>i.value===null||t.dataMax===t.dataMin?0:(i.value-t.dataMin)/(t.dataMax-t.dataMin)*100),h=l.computed(()=>s.value===null||t.dataMax===t.dataMin?100:(s.value-t.dataMin)/(t.dataMax-t.dataMin)*100);function u(C){const w=C.target,N=Number.parseFloat(w.value);s.value!==null&&N>s.value?i.value=s.value:i.value=N}function g(C){const w=C.target,N=Number.parseFloat(w.value);i.value!==null&&N<i.value?s.value=i.value:s.value=N}function f(C){const w=C.target,N=w.value===""?null:Number.parseFloat(w.value);N!==null&&!Number.isNaN(N)?i.value=Math.max(t.dataMin,Math.min(N,s.value??t.dataMax)):N===null&&(i.value=null)}function p(C){const w=C.target,N=w.value===""?null:Number.parseFloat(w.value);N!==null&&!Number.isNaN(N)?s.value=Math.min(t.dataMax,Math.max(N,i.value??t.dataMin)):N===null&&(s.value=null)}function m(){i.value=null,s.value=null,b()}function x(){i.value=t.dataMin,s.value=t.dataMax,b()}function b(){i.value===null&&s.value===null?a("change",null):a("change",{min:i.value,max:s.value})}return l.watch(()=>t.currentRange,C=>{i.value=(C==null?void 0:C.min)??null,s.value=(C==null?void 0:C.max)??null},{immediate:!0}),(C,w)=>(l.openBlock(),l.createElementBlock("div",qh,[l.createElementVNode("div",Zh,[w[0]||(w[0]=l.createElementVNode("span",{class:"vpg-range-label"},"Data range:",-1)),l.createElementVNode("span",Kh,l.toDisplayString(o(n.dataMin))+" – "+l.toDisplayString(o(n.dataMax)),1)]),l.createElementVNode("div",Jh,[l.createElementVNode("div",Qh,[l.createElementVNode("div",{class:"vpg-slider-fill",style:l.normalizeStyle({left:`${d.value}%`,right:`${100-h.value}%`})},null,4)]),l.createElementVNode("input",{type:"range",class:"vpg-slider vpg-slider-min",min:n.dataMin,max:n.dataMax,step:r.value,value:i.value??n.dataMin,onInput:u,onChange:b},null,40,eu),l.createElementVNode("input",{type:"range",class:"vpg-slider vpg-slider-max",min:n.dataMin,max:n.dataMax,step:r.value,value:s.value??n.dataMax,onInput:g,onChange:b},null,40,tu)]),l.createElementVNode("div",au,[l.createElementVNode("div",iu,[w[1]||(w[1]=l.createElementVNode("label",{class:"vpg-input-label"},"Min",-1)),l.createElementVNode("input",{type:"number",class:"vpg-range-input",placeholder:o(n.dataMin),value:i.value??"",step:r.value,onInput:f,onChange:b},null,40,su)]),w[3]||(w[3]=l.createElementVNode("span",{class:"vpg-input-separator"},"to",-1)),l.createElementVNode("div",nu,[w[2]||(w[2]=l.createElementVNode("label",{class:"vpg-input-label"},"Max",-1)),l.createElementVNode("input",{type:"number",class:"vpg-range-input",placeholder:o(n.dataMax),value:s.value??"",step:r.value,onInput:p,onChange:b},null,40,ru)])]),l.createElementVNode("div",ou,[l.createElementVNode("button",{class:"vpg-range-btn",disabled:!c.value,onClick:m},[...w[4]||(w[4]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),l.createTextVNode(" Clear ",-1)])],8,lu),l.createElementVNode("button",{class:"vpg-range-btn",onClick:x},[...w[5]||(w[5]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Full Range ",-1)])])]),c.value?(l.openBlock(),l.createElementBlock("div",cu,[w[7]||(w[7]=l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.createElementVNode("span",null,[w[6]||(w[6]=l.createTextVNode(" Showing values ",-1)),l.createElementVNode("strong",null,l.toDisplayString(i.value!==null?`≥ ${o(i.value)}`:""),1),l.createTextVNode(" "+l.toDisplayString(i.value!==null&&s.value!==null?" and ":"")+" ",1),l.createElementVNode("strong",null,l.toDisplayString(s.value!==null?`≤ ${o(s.value)}`:""),1)])])):l.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-fbd61690"]]),hu={class:"vpg-filter-header"},uu={class:"vpg-filter-title"},gu={class:"vpg-filter-count"},fu={class:"vpg-sort-controls"},pu=["title"],mu=["title"],xu={key:0,class:"vpg-filter-tabs"},bu={class:"vpg-search-container"},vu={class:"vpg-values-list"},yu=["checked","onChange"],wu={key:0,class:"vpg-no-results"},zn=Dt(l.defineComponent({__name:"ColumnFilter",props:{columnId:{},columnName:{},stats:{},selectedValues:{},sortDirection:{},numericRange:{},dateRange:{},numberFormat:{},dateFormat:{}},emits:["filter","sort","close","rangeFilter","dateRangeFilter"],setup(n,{emit:e}){const t=n,a=e,i=l.ref(""),s=l.ref(),r=l.ref(),o=l.computed(()=>t.stats.type==="number"&&t.stats.numericMin!==void 0&&t.stats.numericMax!==void 0),c=l.computed(()=>t.stats.type==="date"&&t.stats.dateMin!==void 0&&t.stats.dateMax!==void 0),d=l.ref(t.numericRange||t.dateRange?"range":"values"),h=l.ref(t.numericRange??null),u=l.ref(t.dateRange??null),g=l.ref(new Set(t.selectedValues)),f=l.computed(()=>t.stats.nullCount>0),p=l.computed(()=>{const D=t.stats.uniqueValues;if(!i.value)return D;const _=i.value.toLowerCase();return D.filter(O=>O.toLowerCase().includes(_))}),m=l.computed(()=>{const D=[...p.value];return f.value&&(!i.value||"(blank)".includes(i.value.toLowerCase()))&&D.unshift("(blank)"),D}),x=l.computed(()=>c.value?"Old→New":o.value?"1→9":"A→Z"),b=l.computed(()=>c.value?"New→Old":o.value?"9→1":"Z→A"),v=l.computed(()=>c.value?"Sort Old to New":o.value?"Sort Low to High":"Sort A to Z"),y=l.computed(()=>c.value?"Sort New to Old":o.value?"Sort High to Low":"Sort Z to A");function C(D){g.value.has(D)?g.value.delete(D):g.value.add(D),g.value=new Set(g.value)}function w(){for(const D of m.value)g.value.add(D);g.value=new Set(g.value)}function N(){g.value.clear(),g.value=new Set(g.value)}function E(){g.value.size===0?a("filter",[]):a("filter",Array.from(g.value)),a("close")}function A(){a("sort",t.sortDirection==="asc"?null:"asc")}function B(){a("sort",t.sortDirection==="desc"?null:"desc")}function F(){g.value.clear(),g.value=new Set(g.value),a("filter",[]),a("close")}function M(D){h.value=D}function S(){a("rangeFilter",h.value),a("close")}function k(){h.value=null,a("rangeFilter",null),a("close")}function L(D){u.value=D}function T(){a("dateRangeFilter",u.value),a("close")}function I(){u.value=null,a("dateRangeFilter",null),a("close")}function R(D){d.value=D}function P(D){s.value&&!s.value.contains(D.target)&&a("close")}function H(D){D.key==="Escape"?a("close"):D.key==="Enter"&&D.ctrlKey&&E()}return l.onMounted(()=>{l.nextTick(()=>{var D;(D=r.value)==null||D.focus()}),document.addEventListener("mousedown",P),document.addEventListener("keydown",H)}),l.onUnmounted(()=>{document.removeEventListener("mousedown",P),document.removeEventListener("keydown",H)}),l.watch(()=>t.selectedValues,D=>{g.value=new Set(D)},{immediate:!0}),l.watch(()=>t.numericRange,D=>{h.value=D??null,D&&(d.value="range")},{immediate:!0}),l.watch(()=>t.dateRange,D=>{u.value=D??null,D&&(d.value="range")},{immediate:!0}),(D,_)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"dropdownRef",ref:s,class:"vpg-filter-dropdown"},[l.createElementVNode("div",hu,[l.createElementVNode("span",uu,l.toDisplayString(n.columnName),1),l.createElementVNode("span",gu,l.toDisplayString(n.stats.uniqueValues.length.toLocaleString())+" unique ",1)]),l.createElementVNode("div",fu,[l.createElementVNode("button",{class:l.normalizeClass(["vpg-sort-btn",{active:n.sortDirection==="asc"}]),title:v.value,onClick:A},[_[4]||(_[4]=l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})],-1)),l.createElementVNode("span",null,l.toDisplayString(x.value),1)],10,pu),l.createElementVNode("button",{class:l.normalizeClass(["vpg-sort-btn",{active:n.sortDirection==="desc"}]),title:y.value,onClick:B},[_[5]||(_[5]=l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"})],-1)),l.createElementVNode("span",null,l.toDisplayString(b.value),1)],10,mu)]),_[11]||(_[11]=l.createElementVNode("div",{class:"vpg-divider"},null,-1)),o.value||c.value?(l.openBlock(),l.createElementBlock("div",xu,[l.createElementVNode("button",{class:l.normalizeClass(["vpg-tab-btn",{active:d.value==="values"}]),onClick:_[0]||(_[0]=O=>R("values"))},[..._[6]||(_[6]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Values ",-1)])],2),l.createElementVNode("button",{class:l.normalizeClass(["vpg-tab-btn",{active:d.value==="range"}]),onClick:_[1]||(_[1]=O=>R("range"))},[..._[7]||(_[7]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Range ",-1)])],2)])):l.createCommentVNode("",!0),!o.value&&!c.value||d.value==="values"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createElementVNode("div",bu,[_[8]||(_[8]=l.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.withDirectives(l.createElementVNode("input",{ref_key:"searchInputRef",ref:r,"onUpdate:modelValue":_[2]||(_[2]=O=>i.value=O),type:"text",placeholder:"Search values...",class:"vpg-search-input"},null,512),[[l.vModelText,i.value]]),i.value?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-clear-search",onClick:_[3]||(_[3]=O=>i.value="")}," × ")):l.createCommentVNode("",!0)]),l.createElementVNode("div",{class:"vpg-bulk-actions"},[l.createElementVNode("button",{class:"vpg-bulk-btn",onClick:w},[..._[9]||(_[9]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Select All ",-1)])]),l.createElementVNode("button",{class:"vpg-bulk-btn",onClick:N},[..._[10]||(_[10]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),l.createTextVNode(" Clear All ",-1)])])]),l.createElementVNode("div",vu,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(m.value,O=>(l.openBlock(),l.createElementBlock("label",{key:O,class:l.normalizeClass(["vpg-value-item",{selected:g.value.has(O)}])},[l.createElementVNode("input",{type:"checkbox",checked:g.value.has(O),class:"vpg-value-checkbox",onChange:Z=>C(O)},null,40,yu),l.createElementVNode("span",{class:l.normalizeClass(["vpg-value-text",{"vpg-blank":O==="(blank)"}])},l.toDisplayString(O),3)],2))),128)),m.value.length===0?(l.openBlock(),l.createElementBlock("div",wu," No matching values ")):l.createCommentVNode("",!0)]),l.createElementVNode("div",{class:"vpg-filter-footer"},[l.createElementVNode("button",{class:"vpg-btn-clear",onClick:F}," Clear Filter "),l.createElementVNode("button",{class:"vpg-btn-apply",onClick:E}," Apply ")])],64)):o.value&&d.value==="range"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[l.createVNode(du,{"data-min":n.stats.numericMin,"data-max":n.stats.numericMax,"current-range":h.value,"number-format":n.numberFormat,onChange:M},null,8,["data-min","data-max","current-range","number-format"]),l.createElementVNode("div",{class:"vpg-filter-footer"},[l.createElementVNode("button",{class:"vpg-btn-clear",onClick:k}," Clear Filter "),l.createElementVNode("button",{class:"vpg-btn-apply",onClick:S}," Apply ")])],64)):c.value&&d.value==="range"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:3},[l.createVNode(Uh,{"data-min":n.stats.dateMin,"data-max":n.stats.dateMax,"current-range":u.value,"date-format":n.dateFormat,onChange:L},null,8,["data-min","data-max","current-range","date-format"]),l.createElementVNode("div",{class:"vpg-filter-footer"},[l.createElementVNode("button",{class:"vpg-btn-clear",onClick:I}," Clear Filter "),l.createElementVNode("button",{class:"vpg-btn-apply",onClick:T}," Apply ")])],64)):l.createCommentVNode("",!0)],512))}}),[["__scopeId","data-v-2567673f"]]),_n=(n,e,t)=>{if(!t)return!0;if(di(t)){const a=n.getValue(e);if(a==null||a==="")return!1;const i=typeof a=="number"?a:Number.parseFloat(String(a));if(Number.isNaN(i))return!1;const{min:s,max:r}=t;return!(s!==null&&i<s||r!==null&&i>r)}if(hi(t)){const a=n.getValue(e);if(a==null||a==="")return!1;const i=a instanceof Date?a:new Date(String(a));if(Number.isNaN(i.getTime()))return!1;const s=i.toISOString().split("T")[0],{min:r,max:o}=t;return!(r!==null&&s<r||o!==null&&s>o)}if(Array.isArray(t)&&t.length>0){const a=n.getValue(e),i=a==null||a===""?"(blank)":String(a);return t.includes(i)}return!0};function On(n){const{data:e,enableSorting:t=!0,enableFiltering:a=!0}=n,i=l.ref([]),s=l.ref([]),r=l.ref({}),o=l.ref(""),c=l.ref({}),d=l.computed(()=>e.value.length===0?[]:Object.keys(e.value[0]));function h(M){const S=`${M}-${e.value.length}`;return c.value[S]||(c.value[S]=En(e.value,M)),c.value[S]}function u(){c.value={}}const g=l.computed(()=>d.value.map(M=>{const S=h(M);return{id:M,accessorKey:M,header:M,cell:k=>Nn(k.getValue(),S.type),filterFn:_n,meta:{type:S.type,uniqueCount:S.uniqueValues.length}}})),f=si.useVueTable({get data(){return e.value},get columns(){return g.value},state:{get sorting(){return i.value},get columnFilters(){return s.value},get columnVisibility(){return r.value},get globalFilter(){return o.value}},onSortingChange:M=>{i.value=typeof M=="function"?M(i.value):M},onColumnFiltersChange:M=>{s.value=typeof M=="function"?M(s.value):M},getCoreRowModel:si.getCoreRowModel(),getSortedRowModel:t?si.getSortedRowModel():void 0,getFilteredRowModel:a?si.getFilteredRowModel():void 0,filterFns:{multiSelect:_n},enableSorting:t,enableFilters:a}),p=l.computed(()=>f.getFilteredRowModel().rows.length),m=l.computed(()=>e.value.length),x=l.computed(()=>s.value.map(M=>{const S=M.value;return S&&di(S)?{column:M.id,type:"range",range:S,dateRange:null,values:[]}:S&&hi(S)?{column:M.id,type:"dateRange",range:null,dateRange:S,values:[]}:{column:M.id,type:"values",values:Array.isArray(S)?S:[],range:null,dateRange:null}}));function b(M){const S=f.getColumn(M);if(!S)return!1;const k=S.getFilterValue();return k?di(k)||hi(k)?k.min!==null||k.max!==null:Array.isArray(k)&&k.length>0:!1}function v(M,S){const k=f.getColumn(M);k&&(k.setFilterValue(S.length===0?void 0:S),s.value=f.getState().columnFilters)}function y(M,S){const k=f.getColumn(M);k&&(!S||S.min===null&&S.max===null?k.setFilterValue(void 0):k.setFilterValue(S),s.value=f.getState().columnFilters)}function C(M){const S=f.getColumn(M);if(!S)return null;const k=S.getFilterValue();return k&&di(k)?k:null}function w(M,S){const k=f.getColumn(M);k&&(!S||S.min===null&&S.max===null?k.setFilterValue(void 0):k.setFilterValue(S),s.value=f.getState().columnFilters)}function N(M){const S=f.getColumn(M);if(!S)return null;const k=S.getFilterValue();return k&&hi(k)?k:null}function E(){f.resetColumnFilters(),o.value="",s.value=[]}function A(M){const S=f.getColumn(M);if(!S)return[];const k=S.getFilterValue();return Array.isArray(k)?k:[]}function B(M){const S=i.value.find(k=>k.id===M);S?S.desc?i.value=[]:i.value=[{id:M,desc:!0}]:i.value=[{id:M,desc:!1}]}function F(M){const S=i.value.find(k=>k.id===M);return S?S.desc?"desc":"asc":null}return l.watch(e,()=>{u()}),{table:f,sorting:i,columnFilters:s,columnVisibility:r,globalFilter:o,columnKeys:d,filteredRowCount:p,totalRowCount:m,activeFilters:x,getColumnStats:h,clearStatsCache:u,hasActiveFilter:b,setColumnFilter:v,getColumnFilterValues:A,clearAllFilters:E,toggleSort:B,getSortDirection:F,setNumericRangeFilter:y,getNumericRangeFilter:C,setDateRangeFilter:w,getDateRangeFilter:N}}function Hn(n,e,t){_l(n,e,t)}function Yn(n,e,t,a,i){Ol(n,e,t,a,i)}function Xn(n,e,t){Hl(n,e,t)}function Wn(n,e,t){return Yl(n,e,t)}function ku(n,e={}){const t=l.ref(e.pageSize??50),a=l.ref(e.currentPage??1),i=l.computed(()=>Math.max(1,Math.ceil(n.value.length/t.value))),s=l.computed(()=>{const p=(a.value-1)*t.value,m=p+t.value;return n.value.slice(p,m)}),r=l.computed(()=>(a.value-1)*t.value+1),o=l.computed(()=>Math.min(a.value*t.value,n.value.length));function c(p){a.value=Math.max(1,Math.min(p,i.value))}function d(){a.value<i.value&&a.value++}function h(){a.value>1&&a.value--}function u(){a.value=1}function g(){a.value=i.value}function f(p){t.value=p,a.value=1}return{pageSize:t,currentPage:a,totalPages:i,paginatedData:s,startIndex:r,endIndex:o,goToPage:c,nextPage:d,prevPage:h,firstPage:u,lastPage:g,setPageSize:f}}function Cu(n,e){const t=l.ref(""),a=l.ref(!1),i=l.computed(()=>{if(!t.value.trim())return n.value;const r=a.value?t.value.trim():t.value.trim().toLowerCase();return n.value.filter(o=>{for(const c of e.value){const d=o[c];if(d==null)continue;if((a.value?String(d):String(d).toLowerCase()).includes(r))return!0}return!1})});function s(){t.value=""}return{searchTerm:t,caseSensitive:a,filteredData:i,clearSearch:s}}function Su(n){const e=l.ref(new Set),t=l.computed(()=>Array.from(e.value).sort((f,p)=>f-p).map(f=>n.value[f]).filter(Boolean)),a=l.computed(()=>n.value.length>0&&e.value.size===n.value.length),i=l.computed(()=>e.value.size>0&&e.value.size<n.value.length);function s(f){e.value.has(f)?e.value.delete(f):e.value.add(f),e.value=new Set(e.value)}function r(f){e.value.add(f),e.value=new Set(e.value)}function o(f){e.value.delete(f),e.value=new Set(e.value)}function c(){e.value=new Set(n.value.map((f,p)=>p))}function d(){e.value=new Set}function h(){a.value?d():c()}function u(f){return e.value.has(f)}function g(f,p){const m=Math.min(f,p),x=Math.max(f,p);for(let b=m;b<=x;b++)e.value.add(b);e.value=new Set(e.value)}return{selectedRowIndices:e,selectedRows:t,allSelected:a,someSelected:i,toggleRow:s,selectRow:r,deselectRow:o,selectAll:c,deselectAll:d,toggleAll:h,isSelected:u,selectRange:g}}function Au(n,e=60,t=600){const a=l.ref({...n.value}),i=l.ref(!1),s=l.ref(null);function r(d,h){i.value=!0,s.value=d;const u=h.clientX,g=a.value[d]||150,f=m=>{const x=m.clientX-u,b=Math.max(e,Math.min(t,g+x));a.value={...a.value,[d]:b}},p=()=>{i.value=!1,s.value=null,document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",p)};document.addEventListener("mousemove",f),document.addEventListener("mouseup",p)}function o(d){n.value[d]&&(a.value={...a.value,[d]:n.value[d]})}function c(){a.value={...n.value}}return{columnWidths:a,isResizing:i,resizingColumn:s,startResize:r,resetColumnWidth:o,resetAllWidths:c}}const Eu=l.ref(null),Ct=l.ref(!1),et=l.ref(ec());let Ui=null;async function Nu(n){Eu.value=n,Ui=ql(n),et.value=await Ui,Ui=null,et.value.isValid?et.value.type!=="free"&&console.info(`[TinyPivot] Pro license activated (${et.value.type})`):console.warn("[TinyPivot] License validation failed. Check the console for environment details. Running in free mode.")}async function Mu(n){const e=await Ql(n);return e?(Ct.value=!0,et.value=e,console.info("[TinyPivot] Demo mode enabled - all Pro features unlocked for evaluation"),!0):(console.warn("[TinyPivot] Demo mode activation failed - invalid secret"),!1)}function Lu(n){Zl()}function Oa(){const n=l.computed(()=>Ct.value),e=l.computed(()=>Ct.value||sc(et.value)),t=l.computed(()=>Ct.value||tc(et.value)),a=l.computed(()=>Ct.value||et.value.features.advancedAggregations),i=l.computed(()=>Ct.value||et.value.features.percentageMode),s=l.computed(()=>Ct.value||ac(et.value)),r=l.computed(()=>Ct.value||ic(et.value)),o=l.computed(()=>nc(et.value,Ct.value));function c(d){return e.value?!0:(rc(d),!1)}return{licenseInfo:l.computed(()=>et.value),isDemo:n,isPro:e,canUsePivot:t,canUseAdvancedAggregations:a,canUsePercentageMode:i,canUseCharts:s,canUseAIAnalyst:r,showWatermark:o,requirePro:c}}function $n(n){const{canUsePivot:e,requirePro:t}=Oa(),a=l.ref([]),i=l.ref([]),s=l.ref([]),r=l.ref(!0),o=l.ref(!0),c=l.ref(In()),d=l.ref(null),h=l.computed(()=>gc(n.value)),u=l.computed(()=>fc(h.value,a.value,i.value,s.value)),g=l.computed(()=>Vn({rowFields:a.value,columnFields:i.value,valueFields:s.value,showRowTotals:r.value,showColumnTotals:o.value})),f=l.computed(()=>!g.value||!e.value?null:pc(n.value,{rowFields:a.value,columnFields:i.value,valueFields:s.value,showRowTotals:r.value,showColumnTotals:o.value,calculatedFields:c.value}));function p(F){a.value.includes(F)||(a.value=[...a.value,F])}function m(F){a.value=a.value.filter(M=>M!==F)}function x(F){i.value.includes(F)||(i.value=[...i.value,F])}function b(F){i.value=i.value.filter(M=>M!==F)}function v(F,M="sum"){M!=="sum"&&!t(`${M} aggregation`)||s.value.some(S=>S.field===F&&S.aggregation===M)||(s.value=[...s.value,{field:F,aggregation:M}])}function y(F,M){M?s.value=s.value.filter(S=>!(S.field===F&&S.aggregation===M)):s.value=s.value.filter(S=>S.field!==F)}function C(F,M,S){s.value=s.value.map(k=>k.field===F&&k.aggregation===M?{...k,aggregation:S}:k)}function w(){a.value=[],i.value=[],s.value=[]}function N(F,M){if(F.area===M.area){if(F.area==="row"){const S=[...a.value],[k]=S.splice(F.index,1);S.splice(M.index,0,k),a.value=S}else if(F.area==="column"){const S=[...i.value],[k]=S.splice(F.index,1);S.splice(M.index,0,k),i.value=S}}}function E(){if(!t("Pivot Table - Auto Suggest")||h.value.length===0)return;const F=h.value.filter(S=>!S.isNumeric&&S.uniqueCount<50),M=h.value.filter(S=>S.isNumeric);F.length>0&&M.length>0&&(a.value=[F[0].field],s.value=[{field:M[0].field,aggregation:"sum"}])}function A(F){const M=c.value.findIndex(S=>S.id===F.id);M>=0?c.value=[...c.value.slice(0,M),F,...c.value.slice(M+1)]:c.value=[...c.value,F],_a(c.value)}function B(F){c.value=c.value.filter(M=>M.id!==F),s.value=s.value.filter(M=>M.field!==`calc:${F}`),_a(c.value)}return l.watch(n,F=>{if(F.length===0)return;const M=Object.keys(F[0]),S=xc(M);if(S!==d.value){d.value=S;const k=vc(S);if(k&&Gi(k,M))a.value=k.rowFields,i.value=k.columnFields,s.value=k.valueFields,r.value=k.showRowTotals,o.value=k.showColumnTotals,k.calculatedFields&&(c.value=k.calculatedFields);else{const L={rowFields:a.value,columnFields:i.value,valueFields:s.value,showRowTotals:r.value,showColumnTotals:o.value};Gi(L,M)||w()}}else{const k={rowFields:a.value,columnFields:i.value,valueFields:s.value,showRowTotals:r.value,showColumnTotals:o.value};Gi(k,M)||w()}},{immediate:!0}),l.watch([a,i,s,r,o,c],()=>{if(!d.value)return;const F={rowFields:a.value,columnFields:i.value,valueFields:s.value,showRowTotals:r.value,showColumnTotals:o.value,calculatedFields:c.value};bc(d.value,F)},{deep:!0}),{rowFields:a,columnFields:i,valueFields:s,showRowTotals:r,showColumnTotals:o,calculatedFields:c,availableFields:h,unassignedFields:u,isConfigured:g,pivotResult:f,addRowField:p,removeRowField:m,addColumnField:x,removeColumnField:b,addValueField:v,removeValueField:y,updateValueFieldAggregation:C,clearConfig:w,moveField:N,autoSuggestConfig:E,addCalculatedField:A,removeCalculatedField:B}}const Bu={class:"vpg-pivot-config"},Fu={class:"vpg-config-header"},Tu={class:"vpg-header-actions"},Ru={key:0,class:"vpg-assigned-section"},Du={class:"vpg-assigned-list"},Vu=["title","onDragstart"],Pu={class:"vpg-item-main"},Iu={class:"vpg-item-name"},zu={class:"vpg-item-actions"},_u=["title","onClick"],Ou=["value","onChange"],Hu=["value","disabled"],Yu=["onClick"],Xu={class:"vpg-unassigned-section"},Wu={class:"vpg-section-header"},$u={class:"vpg-section-label"},ju={class:"vpg-count"},Gu={class:"vpg-field-search"},Uu={class:"vpg-field-list"},qu=["title","onDragstart"],Zu={class:"vpg-field-name"},Ku=["onClick"],Ju=["onClick"],Qu={key:1,class:"vpg-unique-count"},eg={key:0,class:"vpg-empty-hint"},tg={key:1,class:"vpg-empty-hint"},ag={class:"vpg-options-section"},ig={class:"vpg-option-toggle"},sg=["checked"],jn=Dt(l.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(n,{emit:e}){const t=n,a=e,{canUseAdvancedAggregations:i}=Oa(),s=hc;function r(S){return S!=="sum"}function o(S){return!r(S)||i.value}const c=l.ref(!1),d=l.ref(null),h=l.computed(()=>t.availableFields.filter(S=>S.isNumeric).map(S=>S.field));function u(S){d.value=S||null,c.value=!0}function g(S){d.value?a("updateCalculatedField",S):a("addCalculatedField",S),c.value=!1,d.value=null}function f(S){a("update:showRowTotals",S),a("update:showColumnTotals",S)}const p=l.computed(()=>t.calculatedFields?t.calculatedFields.map(S=>({field:`calc:${S.id}`,type:"number",uniqueCount:0,isNumeric:!0,isCalculated:!0,calcId:S.id,calcName:S.name,calcFormula:S.formula})):[]),m=l.computed(()=>[...t.availableFields.map(S=>({...S,isCalculated:!1})),...p.value]),x=l.computed(()=>{const S=new Set(t.rowFields),k=new Set(t.columnFields),L=new Map(t.valueFields.map(T=>[T.field,T]));return m.value.filter(T=>S.has(T.field)||k.has(T.field)||L.has(T.field)).map(T=>({...T,assignedTo:S.has(T.field)?"row":k.has(T.field)?"column":"value",valueConfig:L.get(T.field)}))}),b=l.computed(()=>{const S=new Set(t.rowFields),k=new Set(t.columnFields),L=new Set(t.valueFields.map(T=>T.field));return m.value.filter(T=>!S.has(T.field)&&!k.has(T.field)&&!L.has(T.field))}),v=l.computed(()=>x.value.length),y=l.ref(""),C=l.computed(()=>{if(!y.value.trim())return b.value;const S=y.value.toLowerCase().trim();return b.value.filter(k=>{const L=k.field.toLowerCase(),T=k.isCalculated&&k.calcName?k.calcName.toLowerCase():"";return L.includes(S)||T.includes(S)})});function w(S,k){if(k)return"ƒ";switch(S){case"number":return"#";case"date":return"📅";case"boolean":return"✓";default:return"Aa"}}function N(S){return S.isCalculated&&S.calcName?S.calcName:S.field}function E(S,k){var L;(L=k.dataTransfer)==null||L.setData("text/plain",S),k.dataTransfer.effectAllowed="move",a("dragStart",S,k)}function A(){a("dragEnd")}function B(S,k,L){if(!o(L)){console.warn(`[TinyPivot] "${L}" aggregation requires a Pro license. Visit https://tiny-pivot.com/#pricing to upgrade.`);return}a("updateAggregation",S,k,L)}function F(S,k){k==="row"?(a("removeRowField",S),a("addColumnField",S)):(a("removeColumnField",S),a("addRowField",S))}function M(S,k,L){k==="row"?a("removeRowField",S):k==="column"?a("removeColumnField",S):L&&a("removeValueField",S,L.aggregation)}return(S,k)=>(l.openBlock(),l.createElementBlock("div",Bu,[l.createElementVNode("div",Fu,[k[8]||(k[8]=l.createElementVNode("h3",{class:"vpg-config-title"},[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 10h16M4 14h16M4 18h16"})]),l.createTextVNode(" Fields ")],-1)),l.createElementVNode("div",Tu,[v.value>0?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-action-btn vpg-clear-btn",title:"Clear all",onClick:k[0]||(k[0]=L=>a("clearConfig"))},[...k[7]||(k[7]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):l.createCommentVNode("",!0)])]),v.value>0?(l.openBlock(),l.createElementBlock("div",Ru,[k[10]||(k[10]=l.createElementVNode("div",{class:"vpg-section-label"}," Active ",-1)),l.createElementVNode("div",Du,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(x.value,L=>{var T;return l.openBlock(),l.createElementBlock("div",{key:L.field,class:l.normalizeClass(["vpg-assigned-item",[`vpg-type-${L.assignedTo}`,{"vpg-type-calc":L.isCalculated}]]),title:L.isCalculated?L.calcFormula:L.field,draggable:"true",onDragstart:I=>E(L.field,I),onDragend:A},[l.createElementVNode("div",Pu,[l.createElementVNode("span",{class:l.normalizeClass(["vpg-item-badge",[L.assignedTo,{calc:L.isCalculated}]])},l.toDisplayString(L.isCalculated?"ƒ":L.assignedTo==="row"?"R":L.assignedTo==="column"?"C":l.unref(Fn)(((T=L.valueConfig)==null?void 0:T.aggregation)||"sum")),3),l.createElementVNode("span",Iu,l.toDisplayString(N(L)),1)]),l.createElementVNode("div",zu,[L.assignedTo==="row"||L.assignedTo==="column"?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-toggle-btn",title:L.assignedTo==="row"?"Move to Columns":"Move to Rows",onClick:l.withModifiers(I=>F(L.field,L.assignedTo),["stop"])},[...k[9]||(k[9]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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,_u)):l.createCommentVNode("",!0),L.assignedTo==="value"&&L.valueConfig?(l.openBlock(),l.createElementBlock("select",{key:1,class:"vpg-agg-select",value:L.valueConfig.aggregation,onChange:I=>B(L.field,L.valueConfig.aggregation,I.target.value),onClick:k[1]||(k[1]=l.withModifiers(()=>{},["stop"]))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(s),I=>(l.openBlock(),l.createElementBlock("option",{key:I.value,value:I.value,disabled:r(I.value)&&!l.unref(i)},l.toDisplayString(I.symbol)+" "+l.toDisplayString(I.label)+l.toDisplayString(r(I.value)&&!l.unref(i)?" (Pro)":""),9,Hu))),128))],40,Ou)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:"vpg-remove-btn",title:"Remove",onClick:l.withModifiers(I=>M(L.field,L.assignedTo,L.valueConfig),["stop"])}," × ",8,Yu)])],42,Vu)}),128))])])):l.createCommentVNode("",!0),l.createElementVNode("div",Xu,[l.createElementVNode("div",Wu,[l.createElementVNode("div",$u,[k[11]||(k[11]=l.createTextVNode(" Available ",-1)),l.createElementVNode("span",ju,l.toDisplayString(b.value.length),1)])]),l.createElementVNode("div",Gu,[k[13]||(k[13]=l.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":k[2]||(k[2]=L=>y.value=L),type:"text",placeholder:"Search fields...",class:"vpg-search-input"},null,512),[[l.vModelText,y.value]]),y.value?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-clear-search",onClick:k[3]||(k[3]=L=>y.value="")},[...k[12]||(k[12]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):l.createCommentVNode("",!0)]),l.createElementVNode("div",Uu,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(C.value,L=>(l.openBlock(),l.createElementBlock("div",{key:L.field,class:l.normalizeClass(["vpg-field-item",{"vpg-is-numeric":L.isNumeric&&!L.isCalculated,"vpg-is-calculated":L.isCalculated}]),title:L.isCalculated?L.calcFormula:L.field,draggable:"true",onDragstart:T=>E(L.field,T),onDragend:A},[l.createElementVNode("span",{class:l.normalizeClass(["vpg-field-type-icon",{"vpg-calc-type":L.isCalculated}])},l.toDisplayString(w(L.type,L.isCalculated)),3),l.createElementVNode("span",Zu,l.toDisplayString(N(L)),1),L.isCalculated?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("button",{class:"vpg-field-edit",title:"Edit calculated field",onClick:l.withModifiers(T=>{var I;return u((I=n.calculatedFields)==null?void 0:I.find(R=>R.id===L.calcId))},["stop"])}," ✎ ",8,Ku),l.createElementVNode("button",{class:"vpg-field-delete",title:"Delete calculated field",onClick:l.withModifiers(T=>L.calcId&&a("removeCalculatedField",L.calcId),["stop"])}," × ",8,Ju)],64)):(l.openBlock(),l.createElementBlock("span",Qu,l.toDisplayString(L.uniqueCount),1))],42,qu))),128)),C.value.length===0&&y.value?(l.openBlock(),l.createElementBlock("div",eg,' No fields match "'+l.toDisplayString(y.value)+'" ',1)):b.value.length===0?(l.openBlock(),l.createElementBlock("div",tg," All fields assigned ")):l.createCommentVNode("",!0)])]),l.createElementVNode("div",ag,[l.createElementVNode("label",ig,[l.createElementVNode("input",{type:"checkbox",checked:n.showRowTotals,onChange:k[4]||(k[4]=L=>f(L.target.checked))},null,40,sg),k[14]||(k[14]=l.createElementVNode("span",null,"Totals",-1))]),l.createElementVNode("button",{class:"vpg-calc-btn",title:"Add calculated field (e.g. Profit Margin %)",onClick:k[5]||(k[5]=L=>u())},[...k[15]||(k[15]=[l.createElementVNode("span",{class:"vpg-calc-icon"},"ƒ",-1),l.createElementVNode("span",null,"+ Calc",-1)])])]),l.createVNode(Id,{show:c.value,"available-fields":h.value,"existing-field":d.value,onClose:k[6]||(k[6]=L=>{c.value=!1,d.value=null}),onSave:g},null,8,["show","available-fields","existing-field"])]))}}),[["__scopeId","data-v-e94fe863"]]),ng={key:0,class:"vpg-toast"},rg={class:"vpg-skeleton-header"},og={class:"vpg-header-right"},lg={class:"vpg-filter-text"},cg={key:0,class:"vpg-filter-count"},dg={key:0,class:"vpg-filter-tooltip"},hg={class:"vpg-tooltip-column"},ug={class:"vpg-tooltip-values"},gg={key:0,class:"vpg-tooltip-value vpg-range-value"},fg={key:0,class:"vpg-tooltip-more"},pg={key:0,class:"vpg-tooltip-summary"},mg={key:1,class:"vpg-config-summary"},xg={class:"vpg-summary-badge vpg-rows"},bg={class:"vpg-summary-badge vpg-cols"},vg={class:"vpg-summary-badge vpg-vals"},yg={key:2,class:"vpg-font-size-toggle"},wg=["onClick"],kg={key:0,class:"vpg-pro-required"},Cg={class:"vpg-config-bar"},Sg={class:"vpg-zone-chips"},Ag=["onDragstart","onDragover","onDrop"],Eg={class:"vpg-mini-name"},Ng=["onClick"],Mg={key:0,class:"vpg-zone-hint"},Lg={class:"vpg-zone-chips"},Bg=["onDragstart","onDragover","onDrop"],Fg={class:"vpg-mini-name"},Tg=["onClick"],Rg={key:0,class:"vpg-zone-hint"},Dg={class:"vpg-zone-chips"},Vg={class:"vpg-agg-symbol"},Pg={class:"vpg-mini-name"},Ig=["onClick"],zg={key:0,class:"vpg-zone-hint"},_g={key:0,class:"vpg-placeholder"},Og={class:"vpg-placeholder-content"},Hg={class:"vpg-placeholder-text"},Yg={key:1,class:"vpg-table-container"},Xg={class:"vpg-pivot-table"},Wg=["rowspan"],$g={class:"vpg-header-content"},jg=["colspan","onClick"],Gg={class:"vpg-header-content"},Ug=["rowspan"],qg=["onMousedown","onMouseenter"],Zg={key:0,class:"vpg-data-cell vpg-total-cell"},Kg={key:0,class:"vpg-totals-row"},Jg=["colspan"],Qg={key:0,class:"vpg-data-cell vpg-grand-total-cell"},ef={key:2,class:"vpg-skeleton-footer"},tf={class:"vpg-footer-info"},af={key:0,class:"vpg-selection-stats"},sf={class:"vpg-stat"},nf={class:"vpg-stat-value"},rf={class:"vpg-stat"},of={class:"vpg-stat-value"},lf={class:"vpg-stat"},cf={class:"vpg-stat-value"},df={key:1,href:"https://tiny-pivot.com",target:"_blank",rel:"noopener"},Gn=Dt(l.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(n,{emit:e}){const t=n,a=e;function i(ae){var G;if(ae.startsWith("calc:")){const de=ae.replace("calc:",""),K=(G=t.calculatedFields)==null?void 0:G.find(ne=>ne.id===de);return(K==null?void 0:K.name)||ae}return ae}function s(ae){return ae.startsWith("calc:")}const{showWatermark:r,canUsePivot:o,isDemo:c}=Oa(),d=l.ref(null),h=l.ref(null),u=l.ref(null),g=l.ref(t.fontSize||"xs"),f=[{value:"xs",label:"S"},{value:"sm",label:"M"},{value:"base",label:"L"}],p=l.computed(()=>t.activeFilters&&t.activeFilters.length>0),m=l.computed(()=>!t.activeFilters||t.activeFilters.length===0?"":t.activeFilters.map(G=>G.column).join(", ")),x=l.computed(()=>!t.activeFilters||t.activeFilters.length===0?[]:t.activeFilters.map(ae=>{if(ae.isRange&&ae.displayText)return{column:ae.column,displayText:ae.displayText,isRange:!0,values:[],remaining:0};const G=ae.values||[],de=5,K=G.slice(0,de),ne=G.length-de;return{column:ae.column,values:K,remaining:ne>0?ne:0,isRange:!1}})),b=l.ref(!1),v=l.ref("asc"),y=l.ref("row");function C(ae="row"){y.value===ae?v.value=v.value==="asc"?"desc":"asc":(y.value=ae,v.value="asc")}const w=l.computed(()=>{if(!t.pivotResult)return[];const ae=t.pivotResult.rowHeaders.map((K,ne)=>ne),G=t.pivotResult.rowHeaders,de=t.pivotResult.data;return ae.sort((K,ne)=>{var xe,Ve,xt,Je,Ge,st;let ce;if(y.value==="row"){const Ue=((xe=G[K])==null?void 0:xe.join(" / "))||"",Ta=((Ve=G[ne])==null?void 0:Ve.join(" / "))||"";ce=Ue.localeCompare(Ta,void 0,{numeric:!0,sensitivity:"base"})}else{const Ue=y.value,Ta=((Je=(xt=de[K])==null?void 0:xt[Ue])==null?void 0:Je.value)??null,jt=((st=(Ge=de[ne])==null?void 0:Ge[Ue])==null?void 0:st.value)??null;Ta===null&&jt===null?ce=0:Ta===null?ce=1:jt===null?ce=-1:ce=Ta-jt}return v.value==="asc"?ce:-ce}),ae}),N=l.computed(()=>{if(!t.pivotResult||t.pivotResult.headers.length===0)return[t.valueFields.map(G=>({label:s(G.field)?`${i(G.field)} (${za(G.aggregation)})`:`${G.field} (${za(G.aggregation)})`,colspan:1}))];const ae=[];for(let G=0;G<t.pivotResult.headers.length;G++){const de=t.pivotResult.headers[G],K=[];let ne=0;for(;ne<de.length;){const ce=de[ne];let xe=1;for(;ne+xe<de.length&&de[ne+xe]===ce;)xe++;K.push({label:ce,colspan:xe}),ne+=xe}ae.push(K)}return ae}),E=l.ref(null),A=l.ref(null),B=l.ref(null),F=l.ref(!1),M=l.ref(!1),S=l.ref(""),k=l.computed(()=>!A.value||!B.value?null:{minRow:Math.min(A.value.row,B.value.row),maxRow:Math.max(A.value.row,B.value.row),minCol:Math.min(A.value.col,B.value.col),maxCol:Math.max(A.value.col,B.value.col)});function L(ae,G,de){de.preventDefault(),de.shiftKey&&E.value?B.value={row:ae,col:G}:(E.value={row:ae,col:G},A.value={row:ae,col:G},B.value={row:ae,col:G},F.value=!0)}function T(ae,G){F.value&&(B.value={row:ae,col:G})}function I(){F.value=!1}function R(ae,G){var xe,Ve;if(!k.value)return((xe=E.value)==null?void 0:xe.row)===ae&&((Ve=E.value)==null?void 0:Ve.col)===G;const{minRow:de,maxRow:K,minCol:ne,maxCol:ce}=k.value;return ae>=de&&ae<=K&&G>=ne&&G<=ce}function P(){var xe;if(!k.value||!t.pivotResult)return;const{minRow:ae,maxRow:G,minCol:de,maxCol:K}=k.value,ne=[];for(let Ve=ae;Ve<=G;Ve++){const xt=w.value[Ve];if(xt===void 0)continue;const Je=[];for(let Ge=de;Ge<=K;Ge++){const st=(xe=t.pivotResult.data[xt])==null?void 0:xe[Ge];Je.push((st==null?void 0:st.formattedValue)??"")}ne.push(Je.join(" "))}const ce=ne.join(`
317
- `);navigator.clipboard.writeText(ce).then(()=>{const Ve=(G-ae+1)*(K-de+1);S.value=`Copied ${Ve} cell${Ve>1?"s":""}`,M.value=!0,setTimeout(()=>{M.value=!1},2e3)}).catch(Ve=>{console.error("Copy failed:",Ve)})}function H(ae){if(k.value){if((ae.ctrlKey||ae.metaKey)&&ae.key==="c"){ae.preventDefault(),P();return}ae.key==="Escape"&&(E.value=null,A.value=null,B.value=null)}}const D=l.computed(()=>{var xt;if(!k.value||!t.pivotResult)return null;const{minRow:ae,maxRow:G,minCol:de,maxCol:K}=k.value,ne=[];let ce=0;for(let Je=ae;Je<=G;Je++){const Ge=w.value[Je];if(Ge!==void 0)for(let st=de;st<=K;st++){const Ue=(xt=t.pivotResult.data[Ge])==null?void 0:xt[st];ce++,(Ue==null?void 0:Ue.value)!==null&&(Ue==null?void 0:Ue.value)!==void 0&&typeof Ue.value=="number"&&ne.push(Ue.value)}}if(ce<=1)return null;const xe=ne.reduce((Je,Ge)=>Je+Ge,0),Ve=ne.length>0?xe/ne.length:0;return{count:ce,numericCount:ne.length,sum:xe,avg:Ve}});function _(ae){return Math.abs(ae)>=1e6?`${(ae/1e6).toFixed(2)}M`:Math.abs(ae)>=1e3?`${(ae/1e3).toFixed(2)}K`:ae.toFixed(2)}l.onMounted(()=>{document.addEventListener("mouseup",I),document.addEventListener("keydown",H)}),l.onUnmounted(()=>{document.removeEventListener("mouseup",I),document.removeEventListener("keydown",H)});function O(ae,G){G.preventDefault(),G.dataTransfer.dropEffect="move",d.value=ae}function Z(){d.value=null}function U(ae,G){var ne;G.preventDefault();const de=(ne=G.dataTransfer)==null?void 0:ne.getData("text/plain");if(!de||de.startsWith("reorder:")){d.value=null;return}t.rowFields.includes(de)&&a("removeRowField",de),t.columnFields.includes(de)&&a("removeColumnField",de);const K=t.valueFields.find(ce=>ce.field===de);switch(K&&a("removeValueField",de,K.aggregation),ae){case"row":a("addRowField",de);break;case"column":a("addColumnField",de);break;case"value":a("addValueField",de,"sum");break}d.value=null}function W(ae,G,de){h.value={zone:ae,index:G},de.dataTransfer.effectAllowed="move",de.dataTransfer.setData("text/plain",`reorder:${ae}:${G}`),requestAnimationFrame(()=>{d.value=null})}function $(){h.value=null,u.value=null}function Y(ae,G,de){de.preventDefault(),h.value&&h.value.zone===ae&&(de.dataTransfer.dropEffect="move",u.value={zone:ae,index:G})}function te(){u.value=null}function re(ae,G,de){if(de.preventDefault(),de.stopPropagation(),!h.value||h.value.zone!==ae)return;const K=h.value.index;if(K===G){h.value=null,u.value=null;return}const ne=ae==="row"?[...t.rowFields]:[...t.columnFields],[ce]=ne.splice(K,1);ne.splice(G,0,ce),a(ae==="row"?"reorderRowFields":"reorderColumnFields",ne),h.value=null,u.value=null}function ee(ae,G){var de,K;return((de=h.value)==null?void 0:de.zone)===ae&&((K=h.value)==null?void 0:K.index)===G}function me(ae,G){var de,K;return((de=u.value)==null?void 0:de.zone)===ae&&((K=u.value)==null?void 0:K.index)===G}const Re=l.ref(180),ye=l.ref(80),De=l.computed(()=>{const ae=Math.max(t.rowFields.length,1);return Math.max(Re.value/ae,80)});function mt(ae){return ae*De.value}return(ae,G)=>{var de;return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["vpg-pivot-skeleton",[`vpg-font-${g.value}`,{"vpg-is-dragging":n.draggingField}]])},[l.createVNode(l.Transition,{name:"vpg-toast"},{default:l.withCtx(()=>[M.value?(l.openBlock(),l.createElementBlock("div",ng,[G[9]||(G[9]=l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)),l.createTextVNode(" "+l.toDisplayString(S.value),1)])):l.createCommentVNode("",!0)]),_:1}),l.createElementVNode("div",rg,[G[13]||(G[13]=l.createElementVNode("div",{class:"vpg-skeleton-title"},[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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"})]),l.createElementVNode("span",null,"Pivot Table")],-1)),l.createElementVNode("div",og,[p.value?(l.openBlock(),l.createElementBlock("div",{key:0,class:"vpg-filter-indicator",onMouseenter:G[0]||(G[0]=K=>b.value=!0),onMouseleave:G[1]||(G[1]=K=>b.value=!1)},[G[12]||(G[12]=l.createElementVNode("svg",{class:"vpg-filter-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.createElementVNode("span",lg,[G[10]||(G[10]=l.createTextVNode(" Filtered: ",-1)),l.createElementVNode("strong",null,l.toDisplayString(m.value),1),n.filteredRowCount!==void 0&&n.totalRowCount!==void 0?(l.openBlock(),l.createElementBlock("span",cg," ("+l.toDisplayString(n.filteredRowCount.toLocaleString())+" of "+l.toDisplayString(n.totalRowCount.toLocaleString())+" rows) ",1)):l.createCommentVNode("",!0)]),b.value?(l.openBlock(),l.createElementBlock("div",dg,[G[11]||(G[11]=l.createElementVNode("div",{class:"vpg-tooltip-header"}," Active Filters ",-1)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(x.value,K=>(l.openBlock(),l.createElementBlock("div",{key:K.column,class:"vpg-tooltip-filter"},[l.createElementVNode("div",hg,l.toDisplayString(K.column),1),l.createElementVNode("div",ug,[K.isRange?(l.openBlock(),l.createElementBlock("span",gg,l.toDisplayString(K.displayText),1)):(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(K.values,(ne,ce)=>(l.openBlock(),l.createElementBlock("span",{key:ce,class:"vpg-tooltip-value"},l.toDisplayString(ne),1))),128)),K.remaining>0?(l.openBlock(),l.createElementBlock("span",fg," +"+l.toDisplayString(K.remaining)+" more ",1)):l.createCommentVNode("",!0)],64))])]))),128)),n.filteredRowCount!==void 0&&n.totalRowCount!==void 0?(l.openBlock(),l.createElementBlock("div",pg," Showing "+l.toDisplayString(n.filteredRowCount.toLocaleString())+" of "+l.toDisplayString(n.totalRowCount.toLocaleString())+" rows ",1)):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)],32)):l.createCommentVNode("",!0),n.isConfigured?(l.openBlock(),l.createElementBlock("div",mg,[l.createElementVNode("span",xg,l.toDisplayString(n.rowFields.length)+" row"+l.toDisplayString(n.rowFields.length!==1?"s":""),1),l.createElementVNode("span",bg,l.toDisplayString(n.columnFields.length)+" col"+l.toDisplayString(n.columnFields.length!==1?"s":""),1),l.createElementVNode("span",vg,l.toDisplayString(n.valueFields.length)+" val"+l.toDisplayString(n.valueFields.length!==1?"s":""),1)])):l.createCommentVNode("",!0),n.isConfigured&&n.pivotResult?(l.openBlock(),l.createElementBlock("div",yg,[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(f,K=>l.createElementVNode("button",{key:K.value,class:l.normalizeClass(["vpg-font-size-btn",{active:g.value===K.value}]),onClick:ne=>g.value=K.value},l.toDisplayString(K.label),11,wg)),64))])):l.createCommentVNode("",!0)])]),l.unref(o)?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createElementVNode("div",Cg,[l.createElementVNode("div",{class:l.normalizeClass(["vpg-drop-zone vpg-row-zone",{"vpg-drag-over":d.value==="row"}]),onDragover:G[2]||(G[2]=K=>O("row",K)),onDragleave:Z,onDrop:G[3]||(G[3]=K=>U("row",K))},[G[16]||(G[16]=l.createElementVNode("div",{class:"vpg-zone-header"},[l.createElementVNode("span",{class:"vpg-zone-icon vpg-row-icon"},"↓"),l.createElementVNode("span",{class:"vpg-zone-label"},"Rows")],-1)),l.createElementVNode("div",Sg,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.rowFields,(K,ne)=>(l.openBlock(),l.createElementBlock("div",{key:K,class:l.normalizeClass(["vpg-mini-chip vpg-row-chip",{"vpg-chip-dragging":ee("row",ne),"vpg-chip-drop-target":me("row",ne)}]),draggable:"true",onDragstart:ce=>W("row",ne,ce),onDragend:$,onDragover:ce=>Y("row",ne,ce),onDragleave:te,onDrop:ce=>re("row",ne,ce)},[G[15]||(G[15]=l.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),l.createElementVNode("span",Eg,l.toDisplayString(K),1),l.createElementVNode("button",{class:"vpg-mini-remove",onClick:l.withModifiers(ce=>a("removeRowField",K),["stop"])}," × ",8,Ng)],42,Ag))),128)),n.rowFields.length===0?(l.openBlock(),l.createElementBlock("span",Mg,"Drop here")):l.createCommentVNode("",!0)])],34),l.createElementVNode("div",{class:l.normalizeClass(["vpg-drop-zone vpg-column-zone",{"vpg-drag-over":d.value==="column"}]),onDragover:G[4]||(G[4]=K=>O("column",K)),onDragleave:Z,onDrop:G[5]||(G[5]=K=>U("column",K))},[G[18]||(G[18]=l.createElementVNode("div",{class:"vpg-zone-header"},[l.createElementVNode("span",{class:"vpg-zone-icon vpg-column-icon"},"→"),l.createElementVNode("span",{class:"vpg-zone-label"},"Columns")],-1)),l.createElementVNode("div",Lg,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.columnFields,(K,ne)=>(l.openBlock(),l.createElementBlock("div",{key:K,class:l.normalizeClass(["vpg-mini-chip vpg-column-chip",{"vpg-chip-dragging":ee("column",ne),"vpg-chip-drop-target":me("column",ne)}]),draggable:"true",onDragstart:ce=>W("column",ne,ce),onDragend:$,onDragover:ce=>Y("column",ne,ce),onDragleave:te,onDrop:ce=>re("column",ne,ce)},[G[17]||(G[17]=l.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),l.createElementVNode("span",Fg,l.toDisplayString(K),1),l.createElementVNode("button",{class:"vpg-mini-remove",onClick:l.withModifiers(ce=>a("removeColumnField",K),["stop"])}," × ",8,Tg)],42,Bg))),128)),n.columnFields.length===0?(l.openBlock(),l.createElementBlock("span",Rg,"Drop here")):l.createCommentVNode("",!0)])],34),l.createElementVNode("div",{class:l.normalizeClass(["vpg-drop-zone vpg-value-zone",{"vpg-drag-over":d.value==="value"}]),onDragover:G[6]||(G[6]=K=>O("value",K)),onDragleave:Z,onDrop:G[7]||(G[7]=K=>U("value",K))},[G[19]||(G[19]=l.createElementVNode("div",{class:"vpg-zone-header"},[l.createElementVNode("span",{class:"vpg-zone-icon vpg-value-icon"},"Σ"),l.createElementVNode("span",{class:"vpg-zone-label"},"Values")],-1)),l.createElementVNode("div",Dg,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.valueFields,K=>(l.openBlock(),l.createElementBlock("div",{key:`${K.field}-${K.aggregation}`,class:l.normalizeClass(["vpg-mini-chip vpg-value-chip",{"vpg-calc-chip":s(K.field)}])},[l.createElementVNode("span",Vg,l.toDisplayString(s(K.field)?"ƒ":l.unref(Fn)(K.aggregation)),1),l.createElementVNode("span",Pg,l.toDisplayString(i(K.field)),1),l.createElementVNode("button",{class:"vpg-mini-remove",onClick:ne=>a("removeValueField",K.field,K.aggregation)}," × ",8,Ig)],2))),128)),n.valueFields.length===0?(l.openBlock(),l.createElementBlock("span",zg,"Drop numeric")):l.createCommentVNode("",!0)])],34)]),!n.isConfigured||!n.pivotResult?(l.openBlock(),l.createElementBlock("div",_g,[l.createElementVNode("div",Og,[G[28]||(G[28]=l.createElementVNode("svg",{class:"vpg-placeholder-icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[l.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)),l.createElementVNode("span",Hg,[n.valueFields.length===0?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[G[20]||(G[20]=l.createTextVNode(" Add a ",-1)),G[21]||(G[21]=l.createElementVNode("strong",null,"Values",-1)),G[22]||(G[22]=l.createTextVNode(" field to see your pivot table ",-1))],64)):n.rowFields.length===0&&n.columnFields.length===0?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[G[23]||(G[23]=l.createTextVNode(" Add ",-1)),G[24]||(G[24]=l.createElementVNode("strong",null,"Row",-1)),G[25]||(G[25]=l.createTextVNode(" or ",-1)),G[26]||(G[26]=l.createElementVNode("strong",null,"Column",-1)),G[27]||(G[27]=l.createTextVNode(" fields to group your data ",-1))],64)):(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[l.createTextVNode(" Your pivot table will appear here ")],64))])])])):(l.openBlock(),l.createElementBlock("div",Yg,[l.createElementVNode("table",Xg,[l.createElementVNode("thead",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(N.value,(K,ne)=>(l.openBlock(),l.createElementBlock("tr",{key:`header-${ne}`,class:"vpg-column-header-row"},[ne===0?(l.openBlock(!0),l.createElementBlock(l.Fragment,{key:0},l.renderList(n.rowFields.length>0?n.rowFields:["Rows"],(ce,xe)=>(l.openBlock(),l.createElementBlock("th",{key:`row-header-${xe}`,class:"vpg-row-header-label",rowspan:N.value.length,style:l.normalizeStyle({width:`${De.value}px`,minWidth:"80px",left:`${mt(xe)}px`}),onClick:G[8]||(G[8]=Ve=>C("row"))},[l.createElementVNode("div",$g,[l.createElementVNode("span",null,l.toDisplayString(ce),1),xe===n.rowFields.length-1||n.rowFields.length===0?(l.openBlock(),l.createElementBlock("span",{key:0,class:l.normalizeClass(["vpg-sort-indicator",{active:y.value==="row"}])},l.toDisplayString(y.value==="row"?v.value==="asc"?"↑":"↓":"⇅"),3)):l.createCommentVNode("",!0)])],12,Wg))),128)):l.createCommentVNode("",!0),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(K,(ce,xe)=>(l.openBlock(),l.createElementBlock("th",{key:xe,class:"vpg-column-header-cell",colspan:ce.colspan,style:l.normalizeStyle({width:`${ye.value*ce.colspan}px`}),onClick:Ve=>ne===N.value.length-1&&C(xe)},[l.createElementVNode("div",Gg,[l.createElementVNode("span",null,l.toDisplayString(ce.label),1),ne===N.value.length-1?(l.openBlock(),l.createElementBlock("span",{key:0,class:l.normalizeClass(["vpg-sort-indicator",{active:y.value===xe}])},l.toDisplayString(y.value===xe?v.value==="asc"?"↑":"↓":"⇅"),3)):l.createCommentVNode("",!0)])],12,jg))),128)),n.pivotResult.rowTotals.length>0&&ne===0?(l.openBlock(),l.createElementBlock("th",{key:1,class:"vpg-total-header",rowspan:N.value.length}," Total ",8,Ug)):l.createCommentVNode("",!0)]))),128))]),l.createElementVNode("tbody",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(w.value,K=>(l.openBlock(),l.createElementBlock("tr",{key:K,class:"vpg-data-row"},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.pivotResult.rowHeaders[K],(ne,ce)=>(l.openBlock(),l.createElementBlock("th",{key:`row-${K}-${ce}`,class:"vpg-row-header-cell",style:l.normalizeStyle({width:`${De.value}px`,minWidth:"80px",left:`${mt(ce)}px`})},l.toDisplayString(ne),5))),128)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.pivotResult.data[K],(ne,ce)=>(l.openBlock(),l.createElementBlock("td",{key:ce,class:l.normalizeClass(["vpg-data-cell",[R(w.value.indexOf(K),ce)&&"selected",ne.value===null&&"vpg-is-null"]]),style:l.normalizeStyle({width:`${ye.value}px`}),onMousedown:xe=>L(w.value.indexOf(K),ce,xe),onMouseenter:xe=>T(w.value.indexOf(K),ce)},l.toDisplayString(ne.formattedValue),47,qg))),128)),n.pivotResult.rowTotals[K]?(l.openBlock(),l.createElementBlock("td",Zg,l.toDisplayString(n.pivotResult.rowTotals[K].formattedValue),1)):l.createCommentVNode("",!0)]))),128)),n.pivotResult.columnTotals.length>0?(l.openBlock(),l.createElementBlock("tr",Kg,[l.createElementVNode("th",{class:"vpg-row-header-cell vpg-total-label",colspan:Math.max(n.rowFields.length,1),style:l.normalizeStyle({width:`${Re.value}px`})}," Total ",12,Jg),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.pivotResult.columnTotals,(K,ne)=>(l.openBlock(),l.createElementBlock("td",{key:ne,class:"vpg-data-cell vpg-total-cell",style:l.normalizeStyle({width:`${ye.value}px`})},l.toDisplayString(K.formattedValue),5))),128)),n.pivotResult.rowTotals.length>0?(l.openBlock(),l.createElementBlock("td",Qg,l.toDisplayString(n.pivotResult.grandTotal.formattedValue),1)):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)])])])),n.isConfigured&&n.pivotResult?(l.openBlock(),l.createElementBlock("div",ef,[l.createElementVNode("span",tf,l.toDisplayString(n.pivotResult.rowHeaders.length)+" rows × "+l.toDisplayString(((de=n.pivotResult.data[0])==null?void 0:de.length)||0)+" columns",1),D.value&&D.value.count>1?(l.openBlock(),l.createElementBlock("div",af,[l.createElementVNode("span",sf,[G[29]||(G[29]=l.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),l.createElementVNode("span",nf,l.toDisplayString(D.value.count),1)]),D.value.numericCount>0?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[G[32]||(G[32]=l.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),l.createElementVNode("span",rf,[G[30]||(G[30]=l.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),l.createElementVNode("span",of,l.toDisplayString(_(D.value.sum)),1)]),G[33]||(G[33]=l.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),l.createElementVNode("span",lf,[G[31]||(G[31]=l.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),l.createElementVNode("span",cf,l.toDisplayString(_(D.value.avg)),1)])],64)):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)],64)):(l.openBlock(),l.createElementBlock("div",kg,[...G[14]||(G[14]=[l.createElementVNode("div",{class:"vpg-pro-content"},[l.createElementVNode("svg",{class:"vpg-pro-icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[l.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"})]),l.createElementVNode("h3",null,"Pro Feature"),l.createElementVNode("p",null,"Pivot Table functionality requires a Pro license."),l.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",class:"vpg-pro-link"}," Get Pro License → ")],-1)])])),l.unref(r)&&l.unref(o)?(l.openBlock(),l.createElementBlock("div",{key:2,class:l.normalizeClass(["vpg-watermark",{"vpg-demo-mode":l.unref(c)}])},[l.unref(c)?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[G[34]||(G[34]=l.createElementVNode("span",{class:"vpg-demo-badge"},"DEMO",-1)),G[35]||(G[35]=l.createElementVNode("span",null,"Pro features unlocked for evaluation",-1)),G[36]||(G[36]=l.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",rel:"noopener",class:"vpg-get-pro"}," Get Pro License → ",-1))],64)):(l.openBlock(),l.createElementBlock("a",df," Powered by TinyPivot "))],2)):l.createCommentVNode("",!0)],2)}}}),[["__scopeId","data-v-c5547603"]]),hf={key:0,class:"vpg-toast"},uf={class:"vpg-toolbar"},gf={class:"vpg-toolbar-left"},ff={key:0,class:"vpg-view-toggle"},pf=["title"],mf={key:0,class:"vpg-pro-badge"},xf={key:0,class:"vpg-search-container"},bf={key:1,class:"vpg-search-box"},vf={class:"vpg-font-size-control"},yf={class:"vpg-font-size-toggle"},wf=["onClick"],kf={key:1,class:"vpg-filter-info"},Cf=["disabled"],Sf={key:0,class:"vpg-icon vpg-spin",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Af={key:1,class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ef={key:3,class:"vpg-search-info"},Nf={key:0,class:"vpg-pivot-status"},Mf={class:"vpg-toolbar-right"},Lf=["disabled","title"],Bf={key:0,class:"vpg-ai-view"},Ff={key:0,class:"vpg-loading"},Tf={key:1,class:"vpg-empty"},Rf={key:2,class:"vpg-empty"},Df={key:3,class:"vpg-table-wrapper"},Vf=["onClick"],Pf={class:"vpg-header-content"},If={class:"vpg-header-text"},zf={class:"vpg-header-icons"},_f={key:0,class:"vpg-sort-indicator"},Of={key:0,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},Hf={key:1,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},Yf={key:1,class:"vpg-filter-indicator"},Xf=["onMousedown"],Wf=["data-row","data-col","onMousedown","onMouseenter"],$f={key:2,class:"vpg-pivot-container"},jf={key:0,class:"vpg-pivot-config-panel"},Gf={key:3,class:"vpg-chart-view"},Uf={key:0,class:"vpg-chart-filter-bar"},qf={class:"vpg-footer"},Zf={class:"vpg-footer-left"},Kf={key:0,class:"vpg-filtered-note"},Jf={key:1},Qf={class:"vpg-filtered-count"},ep={key:0,class:"vpg-pagination"},tp=["disabled"],ap=["disabled"],ip={class:"vpg-page-info"},sp=["disabled"],np=["disabled"],rp={key:1,class:"vpg-selection-stats"},op={class:"vpg-stat"},lp={class:"vpg-stat-value"},cp={class:"vpg-stat"},dp={class:"vpg-stat-value"},hp={class:"vpg-stat"},up={class:"vpg-stat-value"},gp={class:"vpg-footer-right"},fp={key:0,class:"vpg-demo-banner"},pp={key:1,class:"vpg-watermark-inline"},Vt=120,Un=350,mp=Dt(l.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},aiAnalyst:{default:void 0},numberFormat:{default:"us"},dateFormat:{default:"iso"}},emits:["cellClick","selectionChange","export","copy","aiDataLoaded","aiConversationUpdate","aiQueryExecuted","aiError"],setup(n,{emit:e}){const t=n,a=e,{showWatermark:i,canUsePivot:s,canUseCharts:r,canUseAIAnalyst:o,isDemo:c,isPro:d}=Oa(),h=l.computed(()=>{var X;return((X=t.aiAnalyst)==null?void 0:X.enabled)&&o.value}),u=l.computed(()=>{var X;return t.theme==="auto"?(X=window.matchMedia)!=null&&X.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light":t.theme}),g=l.ref(t.fontSize),f=l.ref(""),p=l.ref(!1),m=l.ref(1),x=l.ref(null),b=l.ref(0),v=l.ref(0),y=l.ref(t.initialHeight),C=l.ref(!1),w=l.ref(0),N=l.ref(0),E=l.ref(!1),A=l.ref(""),B=[{value:"xs",label:"S"},{value:"sm",label:"M"},{value:"base",label:"L"}],F=l.ref(null),M=l.ref(null),S=l.computed(()=>M.value||t.data),k=l.computed(()=>S.value),{table:L,columnKeys:T,filteredRowCount:I,totalRowCount:R,getColumnStats:P,hasActiveFilter:H,setColumnFilter:D,getColumnFilterValues:_,clearAllFilters:O,toggleSort:Z,getSortDirection:U,columnFilters:W,activeFilters:$,setNumericRangeFilter:Y,getNumericRangeFilter:te,setDateRangeFilter:re,getDateRangeFilter:ee}=On({data:k}),me=l.computed(()=>L.getFilteredRowModel().rows.map(V=>V.original)),Re=l.computed(()=>$.value.length===0?null:$.value.map(X=>{var V;if(X.type==="range"&&X.range){const oe=[];return X.range.min!==null&&oe.push(`≥ ${X.range.min}`),X.range.max!==null&&oe.push(`≤ ${X.range.max}`),{column:X.column,valueCount:1,displayText:oe.join(" and "),isRange:!0}}if(X.type==="dateRange"&&X.dateRange){const oe=[];return X.dateRange.min!==null&&oe.push(`from ${yt(X.dateRange.min,t.dateFormat)}`),X.dateRange.max!==null&&oe.push(`to ${yt(X.dateRange.max,t.dateFormat)}`),{column:X.column,valueCount:1,displayText:oe.join(" "),isRange:!0}}return{column:X.column,valueCount:((V=X.values)==null?void 0:V.length)||0,values:X.values||[],isRange:!1}})),{rowFields:ye,columnFields:De,valueFields:mt,showRowTotals:ae,showColumnTotals:G,availableFields:de,isConfigured:K,pivotResult:ne,addRowField:ce,removeRowField:xe,addColumnField:Ve,removeColumnField:xt,addValueField:Je,removeValueField:Ge,updateValueFieldAggregation:st,clearConfig:Ue,autoSuggestConfig:Ta}=$n(me),jt=l.computed(()=>{if(!f.value.trim()||!t.enableSearch)return ca.value;const X=f.value.toLowerCase().trim();return ca.value.filter(V=>{for(const oe of T.value){const J=V.original[oe];if(J!=null&&String(J).toLowerCase().includes(X))return!0}return!1})}),Bt=l.computed(()=>jt.value.length),Ra=l.computed(()=>t.enablePagination?Math.max(1,Math.ceil(Bt.value/t.pageSize)):1),tl=l.computed(()=>{if(!t.enablePagination)return jt.value;const X=(m.value-1)*t.pageSize,V=X+t.pageSize;return jt.value.slice(X,V)}),Dx=l.computed(()=>Bt.value===0?0:(m.value-1)*t.pageSize+1),Vx=l.computed(()=>Math.min(m.value*t.pageSize,Bt.value));function Px(){m.value<Ra.value&&m.value++}function Ix(){m.value>1&&m.value--}l.watch([W,f],()=>{m.value=1});function al(){if(Ne.value==="pivot"){zx();return}const X=t.enableSearch&&f.value.trim()?jt.value.map(V=>V.original):ca.value.map(V=>V.original);Hn(X,T.value,{filename:t.exportFilename,includeHeaders:!0}),a("export",{rowCount:X.length,filename:t.exportFilename})}function zx(){if(!ne.value)return;const X=t.exportFilename.replace(".csv","-pivot.csv");Yn({headers:ne.value.headers,rowHeaders:ne.value.rowHeaders,data:ne.value.data,rowTotals:ne.value.rowTotals,columnTotals:ne.value.columnTotals,grandTotal:ne.value.grandTotal,showRowTotals:ae.value,showColumnTotals:G.value},ye.value,De.value,mt.value,{filename:X});const V=ne.value.rowHeaders.length;a("export",{rowCount:V,filename:X})}function _x(X,V){t.enableColumnResize&&(V.preventDefault(),V.stopPropagation(),x.value=X,b.value=V.clientX,v.value=Ft.value[X]||Vt,document.addEventListener("mousemove",il),document.addEventListener("mouseup",sl))}function il(X){if(!x.value)return;const V=X.clientX-b.value,oe=Math.max(Vt,Math.min(Un,v.value+V));Ft.value={...Ft.value,[x.value]:oe}}function sl(){x.value=null,document.removeEventListener("mousemove",il),document.removeEventListener("mouseup",sl)}function Ox(X){t.enableVerticalResize&&(X.preventDefault(),C.value=!0,w.value=X.clientY,N.value=y.value,document.addEventListener("mousemove",nl),document.addEventListener("mouseup",rl))}function nl(X){if(!C.value)return;const V=X.clientY-w.value,oe=Math.max(t.minHeight,Math.min(t.maxHeight,N.value+V));y.value=oe}function rl(){C.value=!1,document.removeEventListener("mousemove",nl),document.removeEventListener("mouseup",rl)}function ol(){if(!ht.value||!t.enableClipboard)return;const X=Wn(ca.value.map(V=>V.original),T.value,ht.value);Xn(X,()=>{const V=(ht.value.maxRow-ht.value.minRow+1)*(ht.value.maxCol-ht.value.minCol+1);A.value=`Copied ${V} cell${V>1?"s":""}`,E.value=!0,setTimeout(()=>{E.value=!1},2e3),a("copy",{text:X,cellCount:V})},V=>{A.value="Copy failed",E.value=!0,setTimeout(()=>{E.value=!1},2e3),console.error("Copy failed:",V)})}const Ne=l.ref("grid");function Hx(X){M.value=X.data,a("aiDataLoaded",X)}const Yx=l.computed(()=>M.value!==null),Da=l.ref(!1);async function Xx(){var X;if((X=F.value)!=null&&X.selectedDataSource){Da.value=!0;try{const V=await F.value.loadFullData();V&&V.length>0?M.value=V:M.value=null}catch(V){console.warn("Failed to load full data:",V),M.value=null}finally{Da.value=!1}}else M.value=null;O()}function Wx(X){a("aiConversationUpdate",X)}function $x(X){a("aiQueryExecuted",X)}function jx(X){a("aiError",X)}function Gx(X){M.value=X.data,Ne.value="grid"}const Ux=l.ref(null);function qx(X){Ux.value=X}const Va=l.ref(!0),dn=l.ref(null),bt=l.ref(In());function Zx(X){X.id||(X.id=`calc_${Date.now()}_${Math.random().toString(36).substr(2,9)}`),bt.value=[...bt.value,X],_a(bt.value)}function Kx(X){bt.value=bt.value.filter(J=>J.id!==X),_a(bt.value);const V=`calc:${X}`,oe=mt.value.find(J=>J.field===V);oe&&Ge(V,oe.aggregation)}function Jx(X){bt.value=bt.value.map(V=>V.id===X.id?X:V),_a(bt.value)}function Qx(X){dn.value=X}function eb(){dn.value=null}function tb(X){ye.value=X}function ab(X){De.value=X}const hn=l.ref(),ll=l.ref(),ca=l.computed(()=>L.getRowModel().rows),Ie=l.ref(null),zi=l.ref({top:0,left:0,maxHeight:400}),Ft=l.ref({});function cl(){if(typeof document>"u"||S.value.length===0)return;const X={},V=Math.min(100,S.value.length),J=document.createElement("canvas").getContext("2d");if(J){J.font="13px system-ui, -apple-system, sans-serif";for(const ke of T.value){let Me=J.measureText(ke).width+56;for(let Te=0;Te<V;Te++){const Le=S.value[Te][ke],He=Le==null?"":String(Le),Rt=J.measureText(He).width+28;Me=Math.max(Me,Rt)}X[ke]=Math.min(Math.max(Me,Vt),Un)}Ft.value=X}}function ib(X,V){V.stopPropagation();const oe=V.currentTarget,J=oe.closest(".vpg-header-cell"),ke=(J==null?void 0:J.getBoundingClientRect())||oe.getBoundingClientRect(),Me=280,Te=12;let Le=ke.left;Le+Me>window.innerWidth-Te&&(Le=window.innerWidth-Me-Te),Le=Math.max(Te,Le);const He=window.innerHeight-ke.bottom-Te,Rt=ke.top-Te;let da,ha;He>=300||He>=Rt?(da=ke.bottom+4,ha=Math.min(400,He-4)):(ha=Math.min(400,Rt-4),da=ke.top-ha-4),zi.value={top:da,left:Le,maxHeight:ha},Ie.value=X}function _i(){Ie.value=null}function sb(X,V){D(X,V)}function nb(X,V){Y(X,V)}function rb(X,V){re(X,V)}function ob(X,V){if(V===null)U(X)&&(Z(X),U(X)&&Z(X));else{const oe=U(X);oe===null?(Z(X),V==="desc"&&U(X)==="asc"&&Z(X)):oe!==V&&Z(X)}}const Oi=l.computed(()=>W.value.length),Tt=l.ref(null),vt=l.ref(null),dt=l.ref(null),un=l.ref(!1);function lb(X){const V=ca.value.length-1;V<0||(vt.value={row:0,col:X},dt.value={row:V,col:X},Tt.value={row:0,col:X})}function cb(X,V){if(V.target.closest(".vpg-dropdown-arrow")){const J=T.value[X];ib(J,V)}else lb(X)}const ht=l.computed(()=>!vt.value||!dt.value?null:{minRow:Math.min(vt.value.row,dt.value.row),maxRow:Math.max(vt.value.row,dt.value.row),minCol:Math.min(vt.value.col,dt.value.col),maxCol:Math.max(vt.value.col,dt.value.col)});function db(X,V){if(!ht.value)return!1;const{minRow:oe,maxRow:J,minCol:ke,maxCol:Me}=ht.value;return X>=oe&&X<=J&&V>=ke&&V<=Me}const Pa=l.computed(()=>{if(!ht.value)return null;const{minRow:X,maxRow:V,minCol:oe,maxCol:J}=ht.value,ke=[];let Me=0;for(let He=X;He<=V;He++){const Rt=ca.value[He];if(Rt)for(let da=oe;da<=J;da++){const ha=T.value[da];if(!ha)continue;const Ia=Rt.original[ha];if(Me++,Ia!=null&&Ia!==""){const pl=typeof Ia=="number"?Ia:Number.parseFloat(String(Ia));Number.isNaN(pl)||ke.push(pl)}}}if(ke.length===0)return{count:Me,sum:null,avg:null,numericCount:0};const Te=ke.reduce((He,Rt)=>He+Rt,0),Le=Te/ke.length;return{count:Me,sum:Te,avg:Le,numericCount:ke.length}});function dl(X){return X===null?"-":kt(X,t.numberFormat)}function hl(X){if((X.ctrlKey||X.metaKey)&&X.key==="c"&&ht.value){X.preventDefault(),ol();return}if((X.ctrlKey||X.metaKey)&&X.key==="f"&&t.enableSearch){X.preventDefault(),p.value=!0,l.nextTick(()=>{const Le=document.querySelector(".vpg-search-input");Le==null||Le.focus()});return}if(!Tt.value||Ie.value)return;const{row:V,col:oe}=Tt.value,ke=tl.value.length-1,Me=T.value.length-1;function Te(Le,He){X.shiftKey?(vt.value||(vt.value={row:V,col:oe}),dt.value={row:Le,col:He}):(vt.value={row:Le,col:He},dt.value={row:Le,col:He}),Tt.value={row:Le,col:He},hb(Le,He)}switch(X.key){case"ArrowUp":X.preventDefault(),V>0&&Te(V-1,oe);break;case"ArrowDown":X.preventDefault(),V<ke&&Te(V+1,oe);break;case"ArrowLeft":X.preventDefault(),oe>0&&Te(V,oe-1);break;case"ArrowRight":X.preventDefault(),oe<Me&&Te(V,oe+1);break;case"Escape":Tt.value=null,vt.value=null,dt.value=null,p.value=!1,f.value="";break}}function hb(X,V){l.nextTick(()=>{var J;const oe=(J=ll.value)==null?void 0:J.querySelector(`[data-row="${X}"][data-col="${V}"]`);oe==null||oe.scrollIntoView({block:"nearest",inline:"nearest"})})}function ub(X,V,oe){oe.preventDefault(),oe.shiftKey&&Tt.value?dt.value={row:X,col:V}:(Tt.value={row:X,col:V},vt.value={row:X,col:V},dt.value={row:X,col:V},un.value=!0);const J=ca.value[X];if(J){const ke=T.value[V];a("cellClick",{row:X,col:V,value:J.original[ke],rowData:J.original})}}function gb(X,V){un.value&&(dt.value={row:X,col:V})}function ul(){un.value=!1}function fb(X,V){var oe,J;return db(X,V)?!0:((oe=Tt.value)==null?void 0:oe.row)===X&&((J=Tt.value)==null?void 0:J.col)===V}const pb=/^(?:.*_)?(?: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 mb(X){return!pb.test(X)}function xb(X,V){if(X==null||X==="")return"";const oe=P(V);if(oe.type==="date")return yt(X,t.dateFormat);if(oe.type==="number"){const J=typeof X=="number"?X:Number.parseFloat(String(X));return Number.isNaN(J)?String(X):mb(V)&&Math.abs(J)>=1e3?kt(J,t.numberFormat):Number.isInteger(J)?String(J):kt(J,t.numberFormat,{maximumFractionDigits:4})}return String(X)}function gl(){Ie.value&&_i()}function fl(X){var V;if(Ie.value){const oe=X.target;if(oe&&((V=oe.closest)!=null&&V.call(oe,".vpg-filter-portal")))return;_i()}}l.onMounted(()=>{cl(),document.addEventListener("keydown",hl),document.addEventListener("mouseup",ul),l.nextTick(()=>{var X;(X=hn.value)==null||X.addEventListener("scroll",gl,{passive:!0})}),window.addEventListener("scroll",fl,{passive:!0,capture:!0})}),l.onUnmounted(()=>{var X;document.removeEventListener("keydown",hl),document.removeEventListener("mouseup",ul),(X=hn.value)==null||X.removeEventListener("scroll",gl),window.removeEventListener("scroll",fl,{capture:!0})}),l.watch([()=>t.data,M],()=>{l.nextTick(cl)},{immediate:!0});const bb=l.computed(()=>T.value.reduce((X,V)=>X+(Ft.value[V]||Vt),0));function vb(X){Ie.value&&(X.target.closest(".vpg-filter-portal")||_i())}return(X,V)=>{var oe;return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["vpg-data-grid",[`vpg-font-${g.value}`,`vpg-theme-${u.value}`,{"vpg-striped":n.stripedRows},{"vpg-resizing":x.value},{"vpg-resizing-vertical":C.value}]]),style:l.normalizeStyle({height:`${y.value}px`}),onClick:vb},[l.createVNode(l.Transition,{name:"vpg-toast"},{default:l.withCtx(()=>[E.value?(l.openBlock(),l.createElementBlock("div",hf,[V[22]||(V[22]=l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)),l.createTextVNode(" "+l.toDisplayString(A.value),1)])):l.createCommentVNode("",!0)]),_:1}),l.createElementVNode("div",uf,[l.createElementVNode("div",gf,[n.showPivot?(l.openBlock(),l.createElementBlock("div",ff,[h.value?(l.openBlock(),l.createElementBlock("button",{key:0,class:l.normalizeClass(["vpg-view-btn vpg-ai-btn",{active:Ne.value==="ai"}]),onClick:V[0]||(V[0]=J=>Ne.value="ai")},[...V[23]||(V[23]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 2a2 2 0 0 1 2 2c0 .74-.4 1.39-1 1.73V7h1a7 7 0 0 1 7 7h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-1H2a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h1a7 7 0 0 1 7-7h1V5.73c-.6-.34-1-.99-1-1.73a2 2 0 0 1 2-2z"})],-1),l.createTextVNode(" AI Analyst ",-1)])],2)):(oe=n.aiAnalyst)!=null&&oe.enabled&&!l.unref(o)?(l.openBlock(),l.createElementBlock("button",{key:1,class:"vpg-view-btn vpg-ai-btn vpg-pro-feature",title:"AI Analyst (Pro feature)",onClick:V[1]||(V[1]=l.withModifiers(()=>{},["prevent"]))},[...V[24]||(V[24]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 2a2 2 0 0 1 2 2c0 .74-.4 1.39-1 1.73V7h1a7 7 0 0 1 7 7h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-1H2a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h1a7 7 0 0 1 7-7h1V5.73c-.6-.34-1-.99-1-1.73a2 2 0 0 1 2-2z"})],-1),l.createTextVNode(" AI Analyst ",-1),l.createElementVNode("span",{class:"vpg-pro-badge"},"Pro",-1)])])):l.createCommentVNode("",!0),l.createElementVNode("button",{class:l.normalizeClass(["vpg-view-btn",{active:Ne.value==="grid"}]),onClick:V[2]||(V[2]=J=>Ne.value="grid")},[...V[25]||(V[25]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Grid ",-1)])],2),l.createElementVNode("button",{class:l.normalizeClass(["vpg-view-btn vpg-pivot-btn",{active:Ne.value==="pivot"}]),onClick:V[3]||(V[3]=J=>Ne.value="pivot")},[...V[26]||(V[26]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Pivot ",-1)])],2),l.createElementVNode("button",{class:l.normalizeClass(["vpg-view-btn vpg-chart-btn",{active:Ne.value==="chart","vpg-pro-feature":!l.unref(r)}]),title:l.unref(r)?"Chart Builder":"Chart Builder (Pro feature)",onClick:V[4]||(V[4]=J=>l.unref(r)?Ne.value="chart":null)},[V[27]||(V[27]=l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})],-1)),V[28]||(V[28]=l.createTextVNode(" Chart ",-1)),l.unref(r)?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("span",mf,"Pro"))],10,pf)])):l.createCommentVNode("",!0),Ne.value==="grid"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[n.enableSearch?(l.openBlock(),l.createElementBlock("div",xf,[p.value?(l.openBlock(),l.createElementBlock("div",bf,[V[31]||(V[31]=l.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":V[6]||(V[6]=J=>f.value=J),type:"text",class:"vpg-search-input",placeholder:"Search all columns...",onKeydown:V[7]||(V[7]=l.withKeys(J=>{p.value=!1,f.value=""},["escape"]))},null,544),[[l.vModelText,f.value]]),f.value?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-search-clear",onClick:V[8]||(V[8]=J=>f.value="")},[...V[30]||(V[30]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):l.createCommentVNode("",!0)])):(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-icon-btn",title:"Search (Ctrl+F)",onClick:V[5]||(V[5]=J=>p.value=!0)},[...V[29]||(V[29]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)])]))])):l.createCommentVNode("",!0),l.createElementVNode("div",vf,[V[32]||(V[32]=l.createElementVNode("span",{class:"vpg-label"},"Size:",-1)),l.createElementVNode("div",yf,[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(B,J=>l.createElementVNode("button",{key:J.value,class:l.normalizeClass(["vpg-font-size-btn",{active:g.value===J.value}]),onClick:ke=>g.value=J.value},l.toDisplayString(J.label),11,wf)),64))])]),Oi.value>0?(l.openBlock(),l.createElementBlock("div",kf,[V[33]||(V[33]=l.createElementVNode("svg",{class:"vpg-icon",fill:"currentColor",viewBox:"0 0 20 20"},[l.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)),l.createElementVNode("span",null,l.toDisplayString(Oi.value)+" filter"+l.toDisplayString(Oi.value>1?"s":""),1)])):l.createCommentVNode("",!0),Yx.value?(l.openBlock(),l.createElementBlock("button",{key:2,class:l.normalizeClass(["vpg-reset-data-btn",{"vpg-loading-btn":Da.value}]),disabled:Da.value,title:"Reset to full dataset",onClick:Xx},[Da.value?(l.openBlock(),l.createElementBlock("svg",Sf,[...V[34]||(V[34]=[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"},null,-1)])])):(l.openBlock(),l.createElementBlock("svg",Af,[...V[35]||(V[35]=[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"},null,-1)])])),l.createElementVNode("span",null,l.toDisplayString(Da.value?"Loading...":"Full Data"),1)],10,Cf)):l.createCommentVNode("",!0),f.value?(l.openBlock(),l.createElementBlock("div",Ef,[l.createElementVNode("span",null,l.toDisplayString(Bt.value)+" match"+l.toDisplayString(Bt.value!==1?"es":""),1)])):l.createCommentVNode("",!0)],64)):l.createCommentVNode("",!0),Ne.value==="pivot"&&l.unref(s)?(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[l.createElementVNode("button",{class:l.normalizeClass(["vpg-config-toggle",{active:Va.value}]),onClick:V[9]||(V[9]=J=>Va.value=!Va.value)},[V[36]||(V[36]=l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.createTextVNode(" "+l.toDisplayString(Va.value?"Hide":"Show")+" Config ",1)],2),l.unref(K)?(l.openBlock(),l.createElementBlock("div",Nf,[...V[37]||(V[37]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"currentColor",viewBox:"0 0 20 20"},[l.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),l.createElementVNode("span",null,"Pivot configured",-1)])])):l.createCommentVNode("",!0)],64)):l.createCommentVNode("",!0)]),l.createElementVNode("div",Mf,[Ne.value==="grid"&&Oi.value>0?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-clear-filters",onClick:V[10]||(V[10]=(...J)=>l.unref(O)&&l.unref(O)(...J))},[...V[38]||(V[38]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),l.createTextVNode(" Clear Filters ",-1)])])):l.createCommentVNode("",!0),n.enableClipboard&&ht.value&&Ne.value==="grid"?(l.openBlock(),l.createElementBlock("button",{key:1,class:"vpg-icon-btn",title:"Copy selection (Ctrl+C)",onClick:ol},[...V[39]||(V[39]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)])])):l.createCommentVNode("",!0),n.enableExport&&Ne.value==="grid"?(l.openBlock(),l.createElementBlock("button",{key:2,class:"vpg-export-btn",title:"Export to CSV",onClick:al},[...V[40]||(V[40]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Export ",-1)])])):l.createCommentVNode("",!0),n.enableExport&&Ne.value==="pivot"&&l.unref(K)?(l.openBlock(),l.createElementBlock("button",{key:3,class:l.normalizeClass(["vpg-export-btn",{"vpg-export-btn-disabled":!l.unref(d)}]),disabled:!l.unref(d),title:l.unref(d)?"Export Pivot to CSV":"Export Pivot to CSV (Pro feature)",onClick:V[11]||(V[11]=J=>l.unref(d)&&al())},[V[41]||(V[41]=l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.createTextVNode(" Export Pivot"+l.toDisplayString(l.unref(d)?"":" (Pro)"),1)],10,Lf)):l.createCommentVNode("",!0)])]),h.value&&n.aiAnalyst?l.withDirectives((l.openBlock(),l.createElementBlock("div",Bf,[l.createVNode(vd,{ref_key:"aiAnalystRef",ref:F,config:n.aiAnalyst,theme:u.value,onDataLoaded:Hx,onConversationUpdate:Wx,onQueryExecuted:$x,onError:jx,onViewResults:Gx},null,8,["config","theme"])],512)),[[l.vShow,Ne.value==="ai"]]):l.createCommentVNode("",!0),Ne.value==="grid"?(l.openBlock(),l.createElementBlock("div",{key:1,ref_key:"tableContainerRef",ref:hn,class:"vpg-grid-container",tabindex:"0"},[n.loading?(l.openBlock(),l.createElementBlock("div",Ff,[...V[42]||(V[42]=[l.createElementVNode("div",{class:"vpg-spinner"},null,-1),l.createElementVNode("span",null,"Loading data...",-1)])])):S.value.length===0?(l.openBlock(),l.createElementBlock("div",Tf,[...V[43]||(V[43]=[l.createElementVNode("div",{class:"vpg-empty-icon"},[l.createElementVNode("svg",{class:"vpg-icon-lg",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createElementVNode("span",null,"No data available",-1)])])):l.unref(I)===0?(l.openBlock(),l.createElementBlock("div",Rf,[V[44]||(V[44]=l.createElementVNode("div",{class:"vpg-empty-icon vpg-warning"},[l.createElementVNode("svg",{class:"vpg-icon-lg",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),V[45]||(V[45]=l.createElementVNode("span",null,"No matching records",-1)),l.createElementVNode("button",{class:"vpg-clear-link",onClick:V[12]||(V[12]=(...J)=>l.unref(O)&&l.unref(O)(...J))}," Clear all filters ")])):(l.openBlock(),l.createElementBlock("div",Df,[l.createElementVNode("table",{class:"vpg-table",style:l.normalizeStyle({minWidth:`${bb.value}px`})},[l.createElementVNode("thead",null,[l.createElementVNode("tr",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(T),(J,ke)=>(l.openBlock(),l.createElementBlock("th",{key:J,class:l.normalizeClass(["vpg-header-cell",{"vpg-has-filter":l.unref(H)(J),"vpg-is-sorted":l.unref(U)(J)!==null,"vpg-is-active":Ie.value===J}]),style:l.normalizeStyle({width:`${Ft.value[J]||Vt}px`,minWidth:`${Ft.value[J]||Vt}px`}),onClick:Me=>cb(ke,Me)},[l.createElementVNode("div",Pf,[l.createElementVNode("span",If,l.toDisplayString(J),1),l.createElementVNode("div",zf,[l.unref(U)(J)?(l.openBlock(),l.createElementBlock("span",_f,[l.unref(U)(J)==="asc"?(l.openBlock(),l.createElementBlock("svg",Of,[...V[46]||(V[46]=[l.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)])])):(l.openBlock(),l.createElementBlock("svg",Hf,[...V[47]||(V[47]=[l.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)])]))])):l.createCommentVNode("",!0),l.unref(H)(J)?(l.openBlock(),l.createElementBlock("span",Yf,[...V[48]||(V[48]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"currentColor",viewBox:"0 0 20 20"},[l.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)])])):l.createCommentVNode("",!0),V[49]||(V[49]=l.createElementVNode("span",{class:"vpg-dropdown-arrow",title:"Filter & Sort"},[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})])],-1))])]),n.enableColumnResize?(l.openBlock(),l.createElementBlock("div",{key:0,class:"vpg-resize-handle",onMousedown:Me=>_x(J,Me)},null,40,Xf)):l.createCommentVNode("",!0)],14,Vf))),128))])]),l.createElementVNode("tbody",{ref_key:"tableBodyRef",ref:ll},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(tl.value,(J,ke)=>(l.openBlock(),l.createElementBlock("tr",{key:J.id,class:"vpg-row"},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(T),(Me,Te)=>(l.openBlock(),l.createElementBlock("td",{key:Me,class:l.normalizeClass(["vpg-cell",{"vpg-selected":fb(ke,Te),"vpg-is-number":l.unref(P)(Me).type==="number"}]),"data-row":ke,"data-col":Te,style:l.normalizeStyle({width:`${Ft.value[Me]||Vt}px`,minWidth:`${Ft.value[Me]||Vt}px`}),onMousedown:Le=>ub(ke,Te,Le),onMouseenter:Le=>gb(ke,Te)},l.toDisplayString(xb(J.original[Me],Me)),47,Wf))),128))]))),128))],512)],4)]))],512)):Ne.value==="pivot"?(l.openBlock(),l.createElementBlock("div",$f,[Va.value&&l.unref(s)?(l.openBlock(),l.createElementBlock("div",jf,[l.createVNode(jn,{"available-fields":l.unref(de),"row-fields":l.unref(ye),"column-fields":l.unref(De),"value-fields":l.unref(mt),"show-row-totals":l.unref(ae),"show-column-totals":l.unref(G),"calculated-fields":bt.value,"onUpdate:showRowTotals":V[13]||(V[13]=J=>ae.value=J),"onUpdate:showColumnTotals":V[14]||(V[14]=J=>G.value=J),onClearConfig:l.unref(Ue),onDragStart:Qx,onDragEnd:eb,onUpdateAggregation:l.unref(st),onAddRowField:l.unref(ce),onRemoveRowField:l.unref(xe),onAddColumnField:l.unref(Ve),onRemoveColumnField:l.unref(xt),onAddValueField:l.unref(Je),onRemoveValueField:l.unref(Ge),onAddCalculatedField:Zx,onRemoveCalculatedField:Kx,onUpdateCalculatedField:Jx},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"])])):l.createCommentVNode("",!0),l.createElementVNode("div",{class:l.normalizeClass(["vpg-pivot-main",{"vpg-full-width":!Va.value}])},[l.createVNode(Gn,{"row-fields":l.unref(ye),"column-fields":l.unref(De),"value-fields":l.unref(mt),"calculated-fields":bt.value,"is-configured":l.unref(K),"dragging-field":dn.value,"pivot-result":l.unref(ne),"font-size":g.value,"active-filters":Re.value,"total-row-count":l.unref(R),"filtered-row-count":l.unref(I),onAddRowField:l.unref(ce),onRemoveRowField:l.unref(xe),onAddColumnField:l.unref(Ve),onRemoveColumnField:l.unref(xt),onAddValueField:l.unref(Je),onRemoveValueField:l.unref(Ge),onUpdateAggregation:l.unref(st),onReorderRowFields:tb,onReorderColumnFields:ab},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)])):Ne.value==="chart"?(l.openBlock(),l.createElementBlock("div",Gf,[Re.value&&Re.value.length>0?(l.openBlock(),l.createElementBlock("div",Uf,[V[50]||(V[50]=l.createElementVNode("svg",{class:"vpg-icon",fill:"currentColor",viewBox:"0 0 20 20"},[l.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)),l.createElementVNode("span",null,"Chart showing "+l.toDisplayString(l.unref(I).toLocaleString())+" of "+l.toDisplayString(l.unref(R).toLocaleString())+" records",1),l.createElementVNode("button",{class:"vpg-chart-clear-filters",onClick:V[15]||(V[15]=(...J)=>l.unref(O)&&l.unref(O)(...J))}," Clear filters ")])):l.createCommentVNode("",!0),l.createVNode(Dh,{data:me.value,theme:u.value,onConfigChange:qx},null,8,["data","theme"])])):l.createCommentVNode("",!0),l.createElementVNode("div",qf,[l.createElementVNode("div",Zf,[Ne.value==="grid"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[n.enablePagination?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("span",null,l.toDisplayString(Dx.value.toLocaleString())+"-"+l.toDisplayString(Vx.value.toLocaleString()),1),V[51]||(V[51]=l.createElementVNode("span",{class:"vpg-separator"},"of",-1)),l.createElementVNode("span",null,l.toDisplayString(Bt.value.toLocaleString()),1),Bt.value!==l.unref(R)?(l.openBlock(),l.createElementBlock("span",Kf," ("+l.toDisplayString(l.unref(R).toLocaleString())+" total) ",1)):l.createCommentVNode("",!0)],64)):l.unref(I)===l.unref(R)&&Bt.value===l.unref(R)?(l.openBlock(),l.createElementBlock("span",Jf,l.toDisplayString(l.unref(R).toLocaleString())+" records",1)):(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[l.createElementVNode("span",Qf,l.toDisplayString(Bt.value.toLocaleString()),1),V[52]||(V[52]=l.createElementVNode("span",{class:"vpg-separator"},"of",-1)),l.createElementVNode("span",null,l.toDisplayString(l.unref(R).toLocaleString()),1),V[53]||(V[53]=l.createElementVNode("span",{class:"vpg-separator"},"records",-1))],64))],64)):Ne.value==="pivot"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[V[54]||(V[54]=l.createElementVNode("span",{class:"vpg-pivot-label"},"Pivot Table",-1)),V[55]||(V[55]=l.createElementVNode("span",{class:"vpg-separator"},"•",-1)),l.createElementVNode("span",null,l.toDisplayString(l.unref(R).toLocaleString())+" source records",1)],64)):Ne.value==="chart"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[V[56]||(V[56]=l.createElementVNode("span",{class:"vpg-chart-label"},"Chart Builder",-1)),V[57]||(V[57]=l.createElementVNode("span",{class:"vpg-separator"},"•",-1)),l.createElementVNode("span",null,l.toDisplayString(l.unref(R).toLocaleString())+" records",1)],64)):l.createCommentVNode("",!0)]),n.enablePagination&&Ne.value==="grid"&&Ra.value>1?(l.openBlock(),l.createElementBlock("div",ep,[l.createElementVNode("button",{class:"vpg-page-btn",disabled:m.value===1,onClick:V[16]||(V[16]=J=>m.value=1)},[...V[58]||(V[58]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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,tp),l.createElementVNode("button",{class:"vpg-page-btn",disabled:m.value===1,onClick:Ix},[...V[59]||(V[59]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])],8,ap),l.createElementVNode("span",ip," Page "+l.toDisplayString(m.value)+" of "+l.toDisplayString(Ra.value),1),l.createElementVNode("button",{class:"vpg-page-btn",disabled:m.value===Ra.value,onClick:Px},[...V[60]||(V[60]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"})],-1)])],8,sp),l.createElementVNode("button",{class:"vpg-page-btn",disabled:m.value===Ra.value,onClick:V[17]||(V[17]=J=>m.value=Ra.value)},[...V[61]||(V[61]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 5l7 7-7 7M5 5l7 7-7 7"})],-1)])],8,np)])):l.createCommentVNode("",!0),Ne.value==="grid"&&Pa.value&&Pa.value.count>1?(l.openBlock(),l.createElementBlock("div",rp,[l.createElementVNode("span",op,[V[62]||(V[62]=l.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),l.createElementVNode("span",lp,l.toDisplayString(Pa.value.count),1)]),Pa.value.numericCount>0?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[V[65]||(V[65]=l.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),l.createElementVNode("span",cp,[V[63]||(V[63]=l.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),l.createElementVNode("span",dp,l.toDisplayString(dl(Pa.value.sum)),1)]),V[66]||(V[66]=l.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),l.createElementVNode("span",hp,[V[64]||(V[64]=l.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),l.createElementVNode("span",up,l.toDisplayString(dl(Pa.value.avg)),1)])],64)):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0),l.createElementVNode("div",gp,[l.unref(c)?(l.openBlock(),l.createElementBlock("div",fp,[...V[67]||(V[67]=[l.createElementVNode("span",{class:"vpg-demo-badge"},"DEMO",-1),l.createElementVNode("span",null,"Pro features enabled",-1),l.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",rel:"noopener"},"Get License →",-1)])])):l.unref(i)?(l.openBlock(),l.createElementBlock("span",pp,[...V[68]||(V[68]=[l.createStaticVNode('<a href="https://tiny-pivot.com" target="_blank" rel="noopener" data-v-cd1c8e0e><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-cd1c8e0e><rect x="3" y="3" width="7" height="7" data-v-cd1c8e0e></rect><rect x="14" y="3" width="7" height="7" data-v-cd1c8e0e></rect><rect x="14" y="14" width="7" height="7" data-v-cd1c8e0e></rect><rect x="3" y="14" width="7" height="7" data-v-cd1c8e0e></rect></svg> Powered by TinyPivot </a>',1)])])):l.createCommentVNode("",!0)])]),n.enableVerticalResize?(l.openBlock(),l.createElementBlock("div",{key:4,class:"vpg-vertical-resize-handle",onMousedown:Ox},[...V[69]||(V[69]=[l.createElementVNode("div",{class:"vpg-resize-grip"},[l.createElementVNode("span"),l.createElementVNode("span"),l.createElementVNode("span")],-1)])],32)):l.createCommentVNode("",!0),(l.openBlock(),l.createBlock(l.Teleport,{to:"body"},[Ie.value?(l.openBlock(),l.createElementBlock("div",{key:0,class:"vpg-filter-portal",style:l.normalizeStyle({position:"fixed",top:`${zi.value.top}px`,left:`${zi.value.left}px`,maxHeight:`${zi.value.maxHeight}px`,zIndex:9999})},[l.createVNode(zn,{"column-id":Ie.value,"column-name":Ie.value,stats:l.unref(P)(Ie.value),"selected-values":l.unref(_)(Ie.value),"sort-direction":l.unref(U)(Ie.value),"numeric-range":l.unref(te)(Ie.value),"date-range":l.unref(ee)(Ie.value),"number-format":n.numberFormat,"date-format":n.dateFormat,onFilter:V[18]||(V[18]=J=>sb(Ie.value,J)),onRangeFilter:V[19]||(V[19]=J=>nb(Ie.value,J)),onDateRangeFilter:V[20]||(V[20]=J=>rb(Ie.value,J)),onSort:V[21]||(V[21]=J=>ob(Ie.value,J)),onClose:_i},null,8,["column-id","column-name","stats","selected-values","sort-direction","numeric-range","date-range","number-format","date-format"])],4)):l.createCommentVNode("",!0)]))],6)}}}),[["__scopeId","data-v-cd1c8e0e"]]),ua=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ui(n){return n instanceof Uint8Array||ArrayBuffer.isView(n)&&n.constructor.name==="Uint8Array"}function qi(n){if(!Number.isSafeInteger(n)||n<0)throw new Error("positive integer expected, got "+n)}function Ut(n,...e){if(!ui(n))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(n.length))throw new Error("Uint8Array expected of length "+e+", got length="+n.length)}function qn(n){if(typeof n!="function"||typeof n.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");qi(n.outputLen),qi(n.blockLen)}function gi(n,e=!0){if(n.destroyed)throw new Error("Hash instance has been destroyed");if(e&&n.finished)throw new Error("Hash#digest() has already been called")}function xp(n,e){Ut(n);const t=e.outputLen;if(n.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function ga(...n){for(let e=0;e<n.length;e++)n[e].fill(0)}function Zi(n){return new DataView(n.buffer,n.byteOffset,n.byteLength)}function wt(n,e){return n<<32-e|n>>>e}const Zn=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",bp=Array.from({length:256},(n,e)=>e.toString(16).padStart(2,"0"));function fa(n){if(Ut(n),Zn)return n.toHex();let e="";for(let t=0;t<n.length;t++)e+=bp[n[t]];return e}const St={_0:48,_9:57,A:65,F:70,a:97,f:102};function Kn(n){if(n>=St._0&&n<=St._9)return n-St._0;if(n>=St.A&&n<=St.F)return n-(St.A-10);if(n>=St.a&&n<=St.f)return n-(St.a-10)}function fi(n){if(typeof n!="string")throw new Error("hex string expected, got "+typeof n);if(Zn)return Uint8Array.fromHex(n);const e=n.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const a=new Uint8Array(t);for(let i=0,s=0;i<t;i++,s+=2){const r=Kn(n.charCodeAt(s)),o=Kn(n.charCodeAt(s+1));if(r===void 0||o===void 0){const c=n[s]+n[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}a[i]=r*16+o}return a}function vp(n){if(typeof n!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(n))}function Ki(n){return typeof n=="string"&&(n=vp(n)),Ut(n),n}function Pt(...n){let e=0;for(let a=0;a<n.length;a++){const i=n[a];Ut(i),e+=i.length}const t=new Uint8Array(e);for(let a=0,i=0;a<n.length;a++){const s=n[a];t.set(s,i),i+=s.length}return t}class Jn{}function Ji(n){const e=a=>n().update(Ki(a)).digest(),t=n();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>n(),e}function Qn(n=32){if(ua&&typeof ua.getRandomValues=="function")return ua.getRandomValues(new Uint8Array(n));if(ua&&typeof ua.randomBytes=="function")return Uint8Array.from(ua.randomBytes(n));throw new Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Qi=BigInt(0),es=BigInt(1);function pi(n,e=""){if(typeof n!="boolean"){const t=e&&`"${e}"`;throw new Error(t+"expected boolean, got type="+typeof n)}return n}function qt(n,e,t=""){const a=ui(n),i=n==null?void 0:n.length,s=e!==void 0;if(!a||s&&i!==e){const r=t&&`"${t}" `,o=s?` of length ${e}`:"",c=a?`length=${i}`:`type=${typeof n}`;throw new Error(r+"expected Uint8Array"+o+", got "+c)}return n}function mi(n){const e=n.toString(16);return e.length&1?"0"+e:e}function er(n){if(typeof n!="string")throw new Error("hex string expected, got "+typeof n);return n===""?Qi:BigInt("0x"+n)}function xi(n){return er(fa(n))}function tr(n){return Ut(n),er(fa(Uint8Array.from(n).reverse()))}function ts(n,e){return fi(n.toString(16).padStart(e*2,"0"))}function ar(n,e){return ts(n,e).reverse()}function Ze(n,e,t){let a;if(typeof e=="string")try{a=fi(e)}catch(i){throw new Error(n+" must be hex string or Uint8Array, cause: "+i)}else if(ui(e))a=Uint8Array.from(e);else throw new Error(n+" must be hex string or Uint8Array");return a.length,a}const as=n=>typeof n=="bigint"&&Qi<=n;function yp(n,e,t){return as(n)&&as(e)&&as(t)&&e<=n&&n<t}function wp(n,e,t,a){if(!yp(e,t,a))throw new Error("expected valid "+n+": "+t+" <= n < "+a+", got "+e)}function ir(n){let e;for(e=0;n>Qi;n>>=es,e+=1);return e}const Ha=n=>(es<<BigInt(n))-es;function kp(n,e,t){if(typeof n!="number"||n<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");const a=f=>new Uint8Array(f),i=f=>Uint8Array.of(f);let s=a(n),r=a(n),o=0;const c=()=>{s.fill(1),r.fill(0),o=0},d=(...f)=>t(r,s,...f),h=(f=a(0))=>{r=d(i(0),f),s=d(),f.length!==0&&(r=d(i(1),f),s=d())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let f=0;const p=[];for(;f<e;){s=d();const m=s.slice();p.push(m),f+=s.length}return Pt(...p)};return(f,p)=>{c(),h(f);let m;for(;!(m=p(u()));)h();return c(),m}}function is(n,e,t={}){if(!n||typeof n!="object")throw new Error("expected valid options object");function a(i,s,r){const o=n[i];if(r&&o===void 0)return;const c=typeof o;if(c!==s||o===null)throw new Error(`param "${i}" is invalid: expected ${s}, got ${c}`)}Object.entries(e).forEach(([i,s])=>a(i,s,!1)),Object.entries(t).forEach(([i,s])=>a(i,s,!0))}function sr(n){const e=new WeakMap;return(t,...a)=>{const i=e.get(t);if(i!==void 0)return i;const s=n(t,...a);return e.set(t,s),s}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const tt=BigInt(0),We=BigInt(1),Zt=BigInt(2),nr=BigInt(3),rr=BigInt(4),or=BigInt(5),Cp=BigInt(7),lr=BigInt(8),Sp=BigInt(9),cr=BigInt(16);function ut(n,e){const t=n%e;return t>=tt?t:e+t}function dr(n,e){if(n===tt)throw new Error("invert: expected non-zero number");if(e<=tt)throw new Error("invert: expected positive modulus, got "+e);let t=ut(n,e),a=e,i=tt,s=We;for(;t!==tt;){const o=a/t,c=a%t,d=i-s*o;a=t,t=c,i=s,s=d}if(a!==We)throw new Error("invert: does not exist");return ut(i,e)}function ss(n,e,t){if(!n.eql(n.sqr(e),t))throw new Error("Cannot find square root")}function hr(n,e){const t=(n.ORDER+We)/rr,a=n.pow(e,t);return ss(n,a,e),a}function Ap(n,e){const t=(n.ORDER-or)/lr,a=n.mul(e,Zt),i=n.pow(a,t),s=n.mul(e,i),r=n.mul(n.mul(s,Zt),i),o=n.mul(s,n.sub(r,n.ONE));return ss(n,o,e),o}function Ep(n){const e=Kt(n),t=ur(n),a=t(e,e.neg(e.ONE)),i=t(e,a),s=t(e,e.neg(a)),r=(n+Cp)/cr;return(o,c)=>{let d=o.pow(c,r),h=o.mul(d,a);const u=o.mul(d,i),g=o.mul(d,s),f=o.eql(o.sqr(h),c),p=o.eql(o.sqr(u),c);d=o.cmov(d,h,f),h=o.cmov(g,u,p);const m=o.eql(o.sqr(h),c),x=o.cmov(d,h,m);return ss(o,x,c),x}}function ur(n){if(n<nr)throw new Error("sqrt is not defined for small field");let e=n-We,t=0;for(;e%Zt===tt;)e/=Zt,t++;let a=Zt;const i=Kt(n);for(;fr(i,a)===1;)if(a++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return hr;let s=i.pow(a,e);const r=(e+We)/Zt;return function(c,d){if(c.is0(d))return d;if(fr(c,d)!==1)throw new Error("Cannot find square root");let h=t,u=c.mul(c.ONE,s),g=c.pow(d,e),f=c.pow(d,r);for(;!c.eql(g,c.ONE);){if(c.is0(g))return c.ZERO;let p=1,m=c.sqr(g);for(;!c.eql(m,c.ONE);)if(p++,m=c.sqr(m),p===h)throw new Error("Cannot find square root");const x=We<<BigInt(h-p-1),b=c.pow(u,x);h=p,u=c.sqr(b),g=c.mul(g,u),f=c.mul(f,b)}return f}}function Np(n){return n%rr===nr?hr:n%lr===or?Ap:n%cr===Sp?Ep(n):ur(n)}const Mp=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Lp(n){const e={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},t=Mp.reduce((a,i)=>(a[i]="function",a),e);return is(n,t),n}function Bp(n,e,t){if(t<tt)throw new Error("invalid exponent, negatives unsupported");if(t===tt)return n.ONE;if(t===We)return e;let a=n.ONE,i=e;for(;t>tt;)t&We&&(a=n.mul(a,i)),i=n.sqr(i),t>>=We;return a}function gr(n,e,t=!1){const a=new Array(e.length).fill(t?n.ZERO:void 0),i=e.reduce((r,o,c)=>n.is0(o)?r:(a[c]=r,n.mul(r,o)),n.ONE),s=n.inv(i);return e.reduceRight((r,o,c)=>n.is0(o)?r:(a[c]=n.mul(r,a[c]),n.mul(r,o)),s),a}function fr(n,e){const t=(n.ORDER-We)/Zt,a=n.pow(e,t),i=n.eql(a,n.ONE),s=n.eql(a,n.ZERO),r=n.eql(a,n.neg(n.ONE));if(!i&&!s&&!r)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function pr(n,e){e!==void 0&&qi(e);const t=e!==void 0?e:n.toString(2).length,a=Math.ceil(t/8);return{nBitLength:t,nByteLength:a}}function Kt(n,e,t=!1,a={}){if(n<=tt)throw new Error("invalid field: expected ORDER > 0, got "+n);let i,s,r=!1,o;if(typeof e=="object"&&e!=null){if(a.sqrt||t)throw new Error("cannot specify opts in two arguments");const g=e;g.BITS&&(i=g.BITS),g.sqrt&&(s=g.sqrt),typeof g.isLE=="boolean"&&(t=g.isLE),typeof g.modFromBytes=="boolean"&&(r=g.modFromBytes),o=g.allowedLengths}else typeof e=="number"&&(i=e),a.sqrt&&(s=a.sqrt);const{nBitLength:c,nByteLength:d}=pr(n,i);if(d>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let h;const u=Object.freeze({ORDER:n,isLE:t,BITS:c,BYTES:d,MASK:Ha(c),ZERO:tt,ONE:We,allowedLengths:o,create:g=>ut(g,n),isValid:g=>{if(typeof g!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof g);return tt<=g&&g<n},is0:g=>g===tt,isValidNot0:g=>!u.is0(g)&&u.isValid(g),isOdd:g=>(g&We)===We,neg:g=>ut(-g,n),eql:(g,f)=>g===f,sqr:g=>ut(g*g,n),add:(g,f)=>ut(g+f,n),sub:(g,f)=>ut(g-f,n),mul:(g,f)=>ut(g*f,n),pow:(g,f)=>Bp(u,g,f),div:(g,f)=>ut(g*dr(f,n),n),sqrN:g=>g*g,addN:(g,f)=>g+f,subN:(g,f)=>g-f,mulN:(g,f)=>g*f,inv:g=>dr(g,n),sqrt:s||(g=>(h||(h=Np(n)),h(u,g))),toBytes:g=>t?ar(g,d):ts(g,d),fromBytes:(g,f=!0)=>{if(o){if(!o.includes(g.length)||g.length>d)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+g.length);const m=new Uint8Array(d);m.set(g,t?0:m.length-g.length),g=m}if(g.length!==d)throw new Error("Field.fromBytes: expected "+d+" bytes, got "+g.length);let p=t?tr(g):xi(g);if(r&&(p=ut(p,n)),!f&&!u.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:g=>gr(u,g),cmov:(g,f,p)=>p?f:g});return Object.freeze(u)}function mr(n){if(typeof n!="bigint")throw new Error("field order must be bigint");const e=n.toString(2).length;return Math.ceil(e/8)}function xr(n){const e=mr(n);return e+Math.ceil(e/2)}function Fp(n,e,t=!1){const a=n.length,i=mr(e),s=xr(e);if(a<16||a<s||a>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+a);const r=t?tr(n):xi(n),o=ut(r,e-We)+We;return t?ar(o,i):ts(o,i)}function Tp(n,e,t,a){if(typeof n.setBigUint64=="function")return n.setBigUint64(e,t,a);const i=BigInt(32),s=BigInt(4294967295),r=Number(t>>i&s),o=Number(t&s),c=a?4:0,d=a?0:4;n.setUint32(e+c,r,a),n.setUint32(e+d,o,a)}function Rp(n,e,t){return n&e^~n&t}function Dp(n,e,t){return n&e^n&t^e&t}class br extends Jn{constructor(e,t,a,i){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=a,this.isLE=i,this.buffer=new Uint8Array(e),this.view=Zi(this.buffer)}update(e){gi(this),e=Ki(e),Ut(e);const{view:t,buffer:a,blockLen:i}=this,s=e.length;for(let r=0;r<s;){const o=Math.min(i-this.pos,s-r);if(o===i){const c=Zi(e);for(;i<=s-r;r+=i)this.process(c,r);continue}a.set(e.subarray(r,r+o),this.pos),this.pos+=o,r+=o,this.pos===i&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){gi(this),xp(e,this),this.finished=!0;const{buffer:t,view:a,blockLen:i,isLE:s}=this;let{pos:r}=this;t[r++]=128,ga(this.buffer.subarray(r)),this.padOffset>i-r&&(this.process(a,0),r=0);for(let u=r;u<i;u++)t[u]=0;Tp(a,i-8,BigInt(this.length*8),s),this.process(a,0);const o=Zi(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const d=c/4,h=this.get();if(d>h.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<d;u++)o.setUint32(4*u,h[u],s)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const a=e.slice(0,t);return this.destroy(),a}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:a,length:i,finished:s,destroyed:r,pos:o}=this;return e.destroyed=r,e.finished=s,e.length=i,e.pos=o,i%t&&e.buffer.set(a),e}clone(){return this._cloneInto()}}const It=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ye=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Xe=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),bi=BigInt(2**32-1),vr=BigInt(32);function Vp(n,e=!1){return e?{h:Number(n&bi),l:Number(n>>vr&bi)}:{h:Number(n>>vr&bi)|0,l:Number(n&bi)|0}}function Pp(n,e=!1){const t=n.length;let a=new Uint32Array(t),i=new Uint32Array(t);for(let s=0;s<t;s++){const{h:r,l:o}=Vp(n[s],e);[a[s],i[s]]=[r,o]}return[a,i]}const yr=(n,e,t)=>n>>>t,wr=(n,e,t)=>n<<32-t|e>>>t,pa=(n,e,t)=>n>>>t|e<<32-t,ma=(n,e,t)=>n<<32-t|e>>>t,vi=(n,e,t)=>n<<64-t|e>>>t-32,yi=(n,e,t)=>n>>>t-32|e<<64-t;function At(n,e,t,a){const i=(e>>>0)+(a>>>0);return{h:n+t+(i/2**32|0)|0,l:i|0}}const Ip=(n,e,t)=>(n>>>0)+(e>>>0)+(t>>>0),zp=(n,e,t,a)=>e+t+a+(n/2**32|0)|0,_p=(n,e,t,a)=>(n>>>0)+(e>>>0)+(t>>>0)+(a>>>0),Op=(n,e,t,a,i)=>e+t+a+i+(n/2**32|0)|0,Hp=(n,e,t,a,i)=>(n>>>0)+(e>>>0)+(t>>>0)+(a>>>0)+(i>>>0),Yp=(n,e,t,a,i,s)=>e+t+a+i+s+(n/2**32|0)|0,Xp=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),zt=new Uint32Array(64);class Wp extends br{constructor(e=32){super(64,e,8,!1),this.A=It[0]|0,this.B=It[1]|0,this.C=It[2]|0,this.D=It[3]|0,this.E=It[4]|0,this.F=It[5]|0,this.G=It[6]|0,this.H=It[7]|0}get(){const{A:e,B:t,C:a,D:i,E:s,F:r,G:o,H:c}=this;return[e,t,a,i,s,r,o,c]}set(e,t,a,i,s,r,o,c){this.A=e|0,this.B=t|0,this.C=a|0,this.D=i|0,this.E=s|0,this.F=r|0,this.G=o|0,this.H=c|0}process(e,t){for(let u=0;u<16;u++,t+=4)zt[u]=e.getUint32(t,!1);for(let u=16;u<64;u++){const g=zt[u-15],f=zt[u-2],p=wt(g,7)^wt(g,18)^g>>>3,m=wt(f,17)^wt(f,19)^f>>>10;zt[u]=m+zt[u-7]+p+zt[u-16]|0}let{A:a,B:i,C:s,D:r,E:o,F:c,G:d,H:h}=this;for(let u=0;u<64;u++){const g=wt(o,6)^wt(o,11)^wt(o,25),f=h+g+Rp(o,c,d)+Xp[u]+zt[u]|0,m=(wt(a,2)^wt(a,13)^wt(a,22))+Dp(a,i,s)|0;h=d,d=c,c=o,o=r+f|0,r=s,s=i,i=a,a=f+m|0}a=a+this.A|0,i=i+this.B|0,s=s+this.C|0,r=r+this.D|0,o=o+this.E|0,c=c+this.F|0,d=d+this.G|0,h=h+this.H|0,this.set(a,i,s,r,o,c,d,h)}roundClean(){ga(zt)}destroy(){this.set(0,0,0,0,0,0,0,0),ga(this.buffer)}}const kr=Pp(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(n=>BigInt(n))),$p=kr[0],jp=kr[1],_t=new Uint32Array(80),Ot=new Uint32Array(80);class Cr extends br{constructor(e=64){super(128,e,16,!1),this.Ah=Xe[0]|0,this.Al=Xe[1]|0,this.Bh=Xe[2]|0,this.Bl=Xe[3]|0,this.Ch=Xe[4]|0,this.Cl=Xe[5]|0,this.Dh=Xe[6]|0,this.Dl=Xe[7]|0,this.Eh=Xe[8]|0,this.El=Xe[9]|0,this.Fh=Xe[10]|0,this.Fl=Xe[11]|0,this.Gh=Xe[12]|0,this.Gl=Xe[13]|0,this.Hh=Xe[14]|0,this.Hl=Xe[15]|0}get(){const{Ah:e,Al:t,Bh:a,Bl:i,Ch:s,Cl:r,Dh:o,Dl:c,Eh:d,El:h,Fh:u,Fl:g,Gh:f,Gl:p,Hh:m,Hl:x}=this;return[e,t,a,i,s,r,o,c,d,h,u,g,f,p,m,x]}set(e,t,a,i,s,r,o,c,d,h,u,g,f,p,m,x){this.Ah=e|0,this.Al=t|0,this.Bh=a|0,this.Bl=i|0,this.Ch=s|0,this.Cl=r|0,this.Dh=o|0,this.Dl=c|0,this.Eh=d|0,this.El=h|0,this.Fh=u|0,this.Fl=g|0,this.Gh=f|0,this.Gl=p|0,this.Hh=m|0,this.Hl=x|0}process(e,t){for(let y=0;y<16;y++,t+=4)_t[y]=e.getUint32(t),Ot[y]=e.getUint32(t+=4);for(let y=16;y<80;y++){const C=_t[y-15]|0,w=Ot[y-15]|0,N=pa(C,w,1)^pa(C,w,8)^yr(C,w,7),E=ma(C,w,1)^ma(C,w,8)^wr(C,w,7),A=_t[y-2]|0,B=Ot[y-2]|0,F=pa(A,B,19)^vi(A,B,61)^yr(A,B,6),M=ma(A,B,19)^yi(A,B,61)^wr(A,B,6),S=_p(E,M,Ot[y-7],Ot[y-16]),k=Op(S,N,F,_t[y-7],_t[y-16]);_t[y]=k|0,Ot[y]=S|0}let{Ah:a,Al:i,Bh:s,Bl:r,Ch:o,Cl:c,Dh:d,Dl:h,Eh:u,El:g,Fh:f,Fl:p,Gh:m,Gl:x,Hh:b,Hl:v}=this;for(let y=0;y<80;y++){const C=pa(u,g,14)^pa(u,g,18)^vi(u,g,41),w=ma(u,g,14)^ma(u,g,18)^yi(u,g,41),N=u&f^~u&m,E=g&p^~g&x,A=Hp(v,w,E,jp[y],Ot[y]),B=Yp(A,b,C,N,$p[y],_t[y]),F=A|0,M=pa(a,i,28)^vi(a,i,34)^vi(a,i,39),S=ma(a,i,28)^yi(a,i,34)^yi(a,i,39),k=a&s^a&o^s&o,L=i&r^i&c^r&c;b=m|0,v=x|0,m=f|0,x=p|0,f=u|0,p=g|0,{h:u,l:g}=At(d|0,h|0,B|0,F|0),d=o|0,h=c|0,o=s|0,c=r|0,s=a|0,r=i|0;const T=Ip(F,S,L);a=zp(T,B,M,k),i=T|0}({h:a,l:i}=At(this.Ah|0,this.Al|0,a|0,i|0)),{h:s,l:r}=At(this.Bh|0,this.Bl|0,s|0,r|0),{h:o,l:c}=At(this.Ch|0,this.Cl|0,o|0,c|0),{h:d,l:h}=At(this.Dh|0,this.Dl|0,d|0,h|0),{h:u,l:g}=At(this.Eh|0,this.El|0,u|0,g|0),{h:f,l:p}=At(this.Fh|0,this.Fl|0,f|0,p|0),{h:m,l:x}=At(this.Gh|0,this.Gl|0,m|0,x|0),{h:b,l:v}=At(this.Hh|0,this.Hl|0,b|0,v|0),this.set(a,i,s,r,o,c,d,h,u,g,f,p,m,x,b,v)}roundClean(){ga(_t,Ot)}destroy(){ga(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Gp extends Cr{constructor(){super(48),this.Ah=Ye[0]|0,this.Al=Ye[1]|0,this.Bh=Ye[2]|0,this.Bl=Ye[3]|0,this.Ch=Ye[4]|0,this.Cl=Ye[5]|0,this.Dh=Ye[6]|0,this.Dl=Ye[7]|0,this.Eh=Ye[8]|0,this.El=Ye[9]|0,this.Fh=Ye[10]|0,this.Fl=Ye[11]|0,this.Gh=Ye[12]|0,this.Gl=Ye[13]|0,this.Hh=Ye[14]|0,this.Hl=Ye[15]|0}}const Sr=Ji(()=>new Wp),Up=Ji(()=>new Cr),qp=Ji(()=>new Gp);class Ar extends Jn{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,qn(e);const a=Ki(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,s=new Uint8Array(i);s.set(a.length>i?e.create().update(a).digest():a);for(let r=0;r<s.length;r++)s[r]^=54;this.iHash.update(s),this.oHash=e.create();for(let r=0;r<s.length;r++)s[r]^=106;this.oHash.update(s),ga(s)}update(e){return gi(this),this.iHash.update(e),this}digestInto(e){gi(this),Ut(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:a,finished:i,destroyed:s,blockLen:r,outputLen:o}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=r,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=a._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Er=(n,e,t)=>new Ar(n,e).update(t).digest();Er.create=(n,e)=>new Ar(n,e);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const xa=BigInt(0),Jt=BigInt(1);function wi(n,e){const t=e.negate();return n?t:e}function ns(n,e){const t=gr(n.Fp,e.map(a=>a.Z));return e.map((a,i)=>n.fromAffine(a.toAffine(t[i])))}function Nr(n,e){if(!Number.isSafeInteger(n)||n<=0||n>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+n)}function rs(n,e){Nr(n,e);const t=Math.ceil(e/n)+1,a=2**(n-1),i=2**n,s=Ha(n),r=BigInt(n);return{windows:t,windowSize:a,mask:s,maxNumber:i,shiftBy:r}}function Mr(n,e,t){const{windowSize:a,mask:i,maxNumber:s,shiftBy:r}=t;let o=Number(n&i),c=n>>r;o>a&&(o-=s,c+=Jt);const d=e*a,h=d+Math.abs(o)-1,u=o===0,g=o<0,f=e%2!==0;return{nextN:c,offset:h,isZero:u,isNeg:g,isNegF:f,offsetF:d}}function Zp(n,e){if(!Array.isArray(n))throw new Error("array expected");n.forEach((t,a)=>{if(!(t instanceof e))throw new Error("invalid point at index "+a)})}function Kp(n,e){if(!Array.isArray(n))throw new Error("array of scalars expected");n.forEach((t,a)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+a)})}const os=new WeakMap,Lr=new WeakMap;function ls(n){return Lr.get(n)||1}function Br(n){if(n!==xa)throw new Error("invalid wNAF")}class Jp{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,a=this.ZERO){let i=e;for(;t>xa;)t&Jt&&(a=a.add(i)),i=i.double(),t>>=Jt;return a}precomputeWindow(e,t){const{windows:a,windowSize:i}=rs(t,this.bits),s=[];let r=e,o=r;for(let c=0;c<a;c++){o=r,s.push(o);for(let d=1;d<i;d++)o=o.add(r),s.push(o);r=o.double()}return s}wNAF(e,t,a){if(!this.Fn.isValid(a))throw new Error("invalid scalar");let i=this.ZERO,s=this.BASE;const r=rs(e,this.bits);for(let o=0;o<r.windows;o++){const{nextN:c,offset:d,isZero:h,isNeg:u,isNegF:g,offsetF:f}=Mr(a,o,r);a=c,h?s=s.add(wi(g,t[f])):i=i.add(wi(u,t[d]))}return Br(a),{p:i,f:s}}wNAFUnsafe(e,t,a,i=this.ZERO){const s=rs(e,this.bits);for(let r=0;r<s.windows&&a!==xa;r++){const{nextN:o,offset:c,isZero:d,isNeg:h}=Mr(a,r,s);if(a=o,!d){const u=t[c];i=i.add(h?u.negate():u)}}return Br(a),i}getPrecomputes(e,t,a){let i=os.get(t);return i||(i=this.precomputeWindow(t,e),e!==1&&(typeof a=="function"&&(i=a(i)),os.set(t,i))),i}cached(e,t,a){const i=ls(e);return this.wNAF(i,this.getPrecomputes(i,e,a),t)}unsafe(e,t,a,i){const s=ls(e);return s===1?this._unsafeLadder(e,t,i):this.wNAFUnsafe(s,this.getPrecomputes(s,e,a),t,i)}createCache(e,t){Nr(t,this.bits),Lr.set(e,t),os.delete(e)}hasCache(e){return ls(e)!==1}}function Qp(n,e,t,a){let i=e,s=n.ZERO,r=n.ZERO;for(;t>xa||a>xa;)t&Jt&&(s=s.add(i)),a&Jt&&(r=r.add(i)),i=i.double(),t>>=Jt,a>>=Jt;return{p1:s,p2:r}}function em(n,e,t,a){Zp(t,n),Kp(a,e);const i=t.length,s=a.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const r=n.ZERO,o=ir(BigInt(i));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const d=Ha(c),h=new Array(Number(d)+1).fill(r),u=Math.floor((e.BITS-1)/c)*c;let g=r;for(let f=u;f>=0;f-=c){h.fill(r);for(let m=0;m<s;m++){const x=a[m],b=Number(x>>BigInt(f)&d);h[b]=h[b].add(t[m])}let p=r;for(let m=h.length-1,x=r;m>0;m--)x=x.add(h[m]),p=p.add(x);if(g=g.add(p),f!==0)for(let m=0;m<c;m++)g=g.double()}return g}function Fr(n,e,t){if(e){if(e.ORDER!==n)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Lp(e),e}else return Kt(n,{isLE:t})}function tm(n,e,t={},a){if(a===void 0&&(a=n==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${n} CURVE object`);for(const c of["p","n","h"]){const d=e[c];if(!(typeof d=="bigint"&&d>xa))throw new Error(`CURVE.${c} must be positive bigint`)}const i=Fr(e.p,t.Fp,a),s=Fr(e.n,t.Fn,a),o=["Gx","Gy","a","b"];for(const c of o)if(!i.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:i,Fn:s}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Tr=(n,e)=>(n+(n>=0?e:-e)/Rr)/e;function am(n,e,t){const[[a,i],[s,r]]=e,o=Tr(r*n,t),c=Tr(-i*n,t);let d=n-o*a-c*s,h=-o*i-c*r;const u=d<Nt,g=h<Nt;u&&(d=-d),g&&(h=-h);const f=Ha(Math.ceil(ir(t)/2))+ba;if(d<Nt||d>=f||h<Nt||h>=f)throw new Error("splitScalar (endomorphism): failed, k="+n);return{k1neg:u,k1:d,k2neg:g,k2:h}}function cs(n){if(!["compact","recovered","der"].includes(n))throw new Error('Signature format must be "compact", "recovered", or "der"');return n}function ds(n,e){const t={};for(let a of Object.keys(e))t[a]=n[a]===void 0?e[a]:n[a];return pi(t.lowS,"lowS"),pi(t.prehash,"prehash"),t.format!==void 0&&cs(t.format),t}class im extends Error{constructor(e=""){super(e)}}const Et={Err:im,_tlv:{encode:(n,e)=>{const{Err:t}=Et;if(n<0||n>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");const a=e.length/2,i=mi(a);if(i.length/2&128)throw new t("tlv.encode: long form length too big");const s=a>127?mi(i.length/2|128):"";return mi(n)+s+i+e},decode(n,e){const{Err:t}=Et;let a=0;if(n<0||n>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[a++]!==n)throw new t("tlv.decode: wrong tlv");const i=e[a++],s=!!(i&128);let r=0;if(!s)r=i;else{const c=i&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");const d=e.subarray(a,a+c);if(d.length!==c)throw new t("tlv.decode: length bytes not complete");if(d[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(const h of d)r=r<<8|h;if(a+=c,r<128)throw new t("tlv.decode(long): not minimal encoding")}const o=e.subarray(a,a+r);if(o.length!==r)throw new t("tlv.decode: wrong value length");return{v:o,l:e.subarray(a+r)}}},_int:{encode(n){const{Err:e}=Et;if(n<Nt)throw new e("integer: negative integers are not allowed");let t=mi(n);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(n){const{Err:e}=Et;if(n[0]&128)throw new e("invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return xi(n)}},toSig(n){const{Err:e,_int:t,_tlv:a}=Et,i=Ze("signature",n),{v:s,l:r}=a.decode(48,i);if(r.length)throw new e("invalid signature: left bytes after parsing");const{v:o,l:c}=a.decode(2,s),{v:d,l:h}=a.decode(2,c);if(h.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(o),s:t.decode(d)}},hexFromSig(n){const{_tlv:e,_int:t}=Et,a=e.encode(2,t.encode(n.r)),i=e.encode(2,t.encode(n.s)),s=a+i;return e.encode(48,s)}},Nt=BigInt(0),ba=BigInt(1),Rr=BigInt(2),ki=BigInt(3),sm=BigInt(4);function va(n,e){const{BYTES:t}=n;let a;if(typeof e=="bigint")a=e;else{let i=Ze("private key",e);try{a=n.fromBytes(i)}catch{throw new Error(`invalid private key: expected ui8a of size ${t}, got ${typeof e}`)}}if(!n.isValidNot0(a))throw new Error("invalid private key: out of range [1..N-1]");return a}function nm(n,e={}){const t=tm("weierstrass",n,e),{Fp:a,Fn:i}=t;let s=t.CURVE;const{h:r,n:o}=s;is(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:c}=e;if(c&&(!a.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const d=Vr(a,i);function h(){if(!a.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function u(S,k,L){const{x:T,y:I}=k.toAffine(),R=a.toBytes(T);if(pi(L,"isCompressed"),L){h();const P=!a.isOdd(I);return Pt(Dr(P),R)}else return Pt(Uint8Array.of(4),R,a.toBytes(I))}function g(S){qt(S,void 0,"Point");const{publicKey:k,publicKeyUncompressed:L}=d,T=S.length,I=S[0],R=S.subarray(1);if(T===k&&(I===2||I===3)){const P=a.fromBytes(R);if(!a.isValid(P))throw new Error("bad point: is not on curve, wrong x");const H=m(P);let D;try{D=a.sqrt(H)}catch(Z){const U=Z instanceof Error?": "+Z.message:"";throw new Error("bad point: is not on curve, sqrt error"+U)}h();const _=a.isOdd(D);return(I&1)===1!==_&&(D=a.neg(D)),{x:P,y:D}}else if(T===L&&I===4){const P=a.BYTES,H=a.fromBytes(R.subarray(0,P)),D=a.fromBytes(R.subarray(P,P*2));if(!x(H,D))throw new Error("bad point: is not on curve");return{x:H,y:D}}else throw new Error(`bad point: got length ${T}, expected compressed=${k} or uncompressed=${L}`)}const f=e.toBytes||u,p=e.fromBytes||g;function m(S){const k=a.sqr(S),L=a.mul(k,S);return a.add(a.add(L,a.mul(S,s.a)),s.b)}function x(S,k){const L=a.sqr(k),T=m(S);return a.eql(L,T)}if(!x(s.Gx,s.Gy))throw new Error("bad curve params: generator point");const b=a.mul(a.pow(s.a,ki),sm),v=a.mul(a.sqr(s.b),BigInt(27));if(a.is0(a.add(b,v)))throw new Error("bad curve params: a or b");function y(S,k,L=!1){if(!a.isValid(k)||L&&a.is0(k))throw new Error(`bad point coordinate ${S}`);return k}function C(S){if(!(S instanceof B))throw new Error("ProjectivePoint expected")}function w(S){if(!c||!c.basises)throw new Error("no endo");return am(S,c.basises,i.ORDER)}const N=sr((S,k)=>{const{X:L,Y:T,Z:I}=S;if(a.eql(I,a.ONE))return{x:L,y:T};const R=S.is0();k==null&&(k=R?a.ONE:a.inv(I));const P=a.mul(L,k),H=a.mul(T,k),D=a.mul(I,k);if(R)return{x:a.ZERO,y:a.ZERO};if(!a.eql(D,a.ONE))throw new Error("invZ was invalid");return{x:P,y:H}}),E=sr(S=>{if(S.is0()){if(e.allowInfinityPoint&&!a.is0(S.Y))return;throw new Error("bad point: ZERO")}const{x:k,y:L}=S.toAffine();if(!a.isValid(k)||!a.isValid(L))throw new Error("bad point: x or y not field elements");if(!x(k,L))throw new Error("bad point: equation left != right");if(!S.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function A(S,k,L,T,I){return L=new B(a.mul(L.X,S),L.Y,L.Z),k=wi(T,k),L=wi(I,L),k.add(L)}class B{constructor(k,L,T){this.X=y("x",k),this.Y=y("y",L,!0),this.Z=y("z",T),Object.freeze(this)}static CURVE(){return s}static fromAffine(k){const{x:L,y:T}=k||{};if(!k||!a.isValid(L)||!a.isValid(T))throw new Error("invalid affine point");if(k instanceof B)throw new Error("projective point not allowed");return a.is0(L)&&a.is0(T)?B.ZERO:new B(L,T,a.ONE)}static fromBytes(k){const L=B.fromAffine(p(qt(k,void 0,"point")));return L.assertValidity(),L}static fromHex(k){return B.fromBytes(Ze("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,L=!0){return M.createCache(this,k),L||this.multiply(ki),this}assertValidity(){E(this)}hasEvenY(){const{y:k}=this.toAffine();if(!a.isOdd)throw new Error("Field doesn't support isOdd");return!a.isOdd(k)}equals(k){C(k);const{X:L,Y:T,Z:I}=this,{X:R,Y:P,Z:H}=k,D=a.eql(a.mul(L,H),a.mul(R,I)),_=a.eql(a.mul(T,H),a.mul(P,I));return D&&_}negate(){return new B(this.X,a.neg(this.Y),this.Z)}double(){const{a:k,b:L}=s,T=a.mul(L,ki),{X:I,Y:R,Z:P}=this;let H=a.ZERO,D=a.ZERO,_=a.ZERO,O=a.mul(I,I),Z=a.mul(R,R),U=a.mul(P,P),W=a.mul(I,R);return W=a.add(W,W),_=a.mul(I,P),_=a.add(_,_),H=a.mul(k,_),D=a.mul(T,U),D=a.add(H,D),H=a.sub(Z,D),D=a.add(Z,D),D=a.mul(H,D),H=a.mul(W,H),_=a.mul(T,_),U=a.mul(k,U),W=a.sub(O,U),W=a.mul(k,W),W=a.add(W,_),_=a.add(O,O),O=a.add(_,O),O=a.add(O,U),O=a.mul(O,W),D=a.add(D,O),U=a.mul(R,P),U=a.add(U,U),O=a.mul(U,W),H=a.sub(H,O),_=a.mul(U,Z),_=a.add(_,_),_=a.add(_,_),new B(H,D,_)}add(k){C(k);const{X:L,Y:T,Z:I}=this,{X:R,Y:P,Z:H}=k;let D=a.ZERO,_=a.ZERO,O=a.ZERO;const Z=s.a,U=a.mul(s.b,ki);let W=a.mul(L,R),$=a.mul(T,P),Y=a.mul(I,H),te=a.add(L,T),re=a.add(R,P);te=a.mul(te,re),re=a.add(W,$),te=a.sub(te,re),re=a.add(L,I);let ee=a.add(R,H);return re=a.mul(re,ee),ee=a.add(W,Y),re=a.sub(re,ee),ee=a.add(T,I),D=a.add(P,H),ee=a.mul(ee,D),D=a.add($,Y),ee=a.sub(ee,D),O=a.mul(Z,re),D=a.mul(U,Y),O=a.add(D,O),D=a.sub($,O),O=a.add($,O),_=a.mul(D,O),$=a.add(W,W),$=a.add($,W),Y=a.mul(Z,Y),re=a.mul(U,re),$=a.add($,Y),Y=a.sub(W,Y),Y=a.mul(Z,Y),re=a.add(re,Y),W=a.mul($,re),_=a.add(_,W),W=a.mul(ee,re),D=a.mul(te,D),D=a.sub(D,W),W=a.mul(te,$),O=a.mul(ee,O),O=a.add(O,W),new B(D,_,O)}subtract(k){return this.add(k.negate())}is0(){return this.equals(B.ZERO)}multiply(k){const{endo:L}=e;if(!i.isValidNot0(k))throw new Error("invalid scalar: out of range");let T,I;const R=P=>M.cached(this,P,H=>ns(B,H));if(L){const{k1neg:P,k1:H,k2neg:D,k2:_}=w(k),{p:O,f:Z}=R(H),{p:U,f:W}=R(_);I=Z.add(W),T=A(L.beta,O,U,P,D)}else{const{p:P,f:H}=R(k);T=P,I=H}return ns(B,[T,I])[0]}multiplyUnsafe(k){const{endo:L}=e,T=this;if(!i.isValid(k))throw new Error("invalid scalar: out of range");if(k===Nt||T.is0())return B.ZERO;if(k===ba)return T;if(M.hasCache(this))return this.multiply(k);if(L){const{k1neg:I,k1:R,k2neg:P,k2:H}=w(k),{p1:D,p2:_}=Qp(B,T,R,H);return A(L.beta,D,_,I,P)}else return M.unsafe(T,k)}multiplyAndAddUnsafe(k,L,T){const I=this.multiplyUnsafe(L).add(k.multiplyUnsafe(T));return I.is0()?void 0:I}toAffine(k){return N(this,k)}isTorsionFree(){const{isTorsionFree:k}=e;return r===ba?!0:k?k(B,this):M.unsafe(this,o).is0()}clearCofactor(){const{clearCofactor:k}=e;return r===ba?this:k?k(B,this):this.multiplyUnsafe(r)}isSmallOrder(){return this.multiplyUnsafe(r).is0()}toBytes(k=!0){return pi(k,"isCompressed"),this.assertValidity(),f(B,this,k)}toHex(k=!0){return fa(this.toBytes(k))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return ns(B,k)}static msm(k,L){return em(B,i,k,L)}static fromPrivateKey(k){return B.BASE.multiply(va(i,k))}}B.BASE=new B(s.Gx,s.Gy,a.ONE),B.ZERO=new B(a.ZERO,a.ONE,a.ZERO),B.Fp=a,B.Fn=i;const F=i.BITS,M=new Jp(B,e.endo?Math.ceil(F/2):F);return B.BASE.precompute(8),B}function Dr(n){return Uint8Array.of(n?2:3)}function Vr(n,e){return{secretKey:e.BYTES,publicKey:1+n.BYTES,publicKeyUncompressed:1+2*n.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function rm(n,e={}){const{Fn:t}=n,a=e.randomBytes||Qn,i=Object.assign(Vr(n.Fp,t),{seed:xr(t.ORDER)});function s(f){try{return!!va(t,f)}catch{return!1}}function r(f,p){const{publicKey:m,publicKeyUncompressed:x}=i;try{const b=f.length;return p===!0&&b!==m||p===!1&&b!==x?!1:!!n.fromBytes(f)}catch{return!1}}function o(f=a(i.seed)){return Fp(qt(f,i.seed,"seed"),t.ORDER)}function c(f,p=!0){return n.BASE.multiply(va(t,f)).toBytes(p)}function d(f){const p=o(f);return{secretKey:p,publicKey:c(p)}}function h(f){if(typeof f=="bigint")return!1;if(f instanceof n)return!0;const{secretKey:p,publicKey:m,publicKeyUncompressed:x}=i;if(t.allowedLengths||p===m)return;const b=Ze("key",f).length;return b===m||b===x}function u(f,p,m=!0){if(h(f)===!0)throw new Error("first arg must be private key");if(h(p)===!1)throw new Error("second arg must be public key");const x=va(t,f);return n.fromHex(p).multiply(x).toBytes(m)}return Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:d,Point:n,utils:{isValidSecretKey:s,isValidPublicKey:r,randomSecretKey:o,isValidPrivateKey:s,randomPrivateKey:o,normPrivateKeyToScalar:f=>va(t,f),precompute(f=8,p=n.BASE){return p.precompute(f,!1)}},lengths:i})}function om(n,e,t={}){qn(e),is(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const a=t.randomBytes||Qn,i=t.hmac||((L,...T)=>Er(e,L,Pt(...T))),{Fp:s,Fn:r}=n,{ORDER:o,BITS:c}=r,{keygen:d,getPublicKey:h,getSharedSecret:u,utils:g,lengths:f}=rm(n,t),p={prehash:!1,lowS:typeof t.lowS=="boolean"?t.lowS:!1,format:void 0,extraEntropy:!1},m="compact";function x(L){const T=o>>ba;return L>T}function b(L,T){if(!r.isValidNot0(T))throw new Error(`invalid signature ${L}: out of range 1..Point.Fn.ORDER`);return T}function v(L,T){cs(T);const I=f.signature,R=T==="compact"?I:T==="recovered"?I+1:void 0;return qt(L,R,`${T} signature`)}class y{constructor(T,I,R){this.r=b("r",T),this.s=b("s",I),R!=null&&(this.recovery=R),Object.freeze(this)}static fromBytes(T,I=m){v(T,I);let R;if(I==="der"){const{r:_,s:O}=Et.toSig(qt(T));return new y(_,O)}I==="recovered"&&(R=T[0],I="compact",T=T.subarray(1));const P=r.BYTES,H=T.subarray(0,P),D=T.subarray(P,P*2);return new y(r.fromBytes(H),r.fromBytes(D),R)}static fromHex(T,I){return this.fromBytes(fi(T),I)}addRecoveryBit(T){return new y(this.r,this.s,T)}recoverPublicKey(T){const I=s.ORDER,{r:R,s:P,recovery:H}=this;if(H==null||![0,1,2,3].includes(H))throw new Error("recovery id invalid");if(o*Rr<I&&H>1)throw new Error("recovery id is ambiguous for h>1 curve");const _=H===2||H===3?R+o:R;if(!s.isValid(_))throw new Error("recovery id 2 or 3 invalid");const O=s.toBytes(_),Z=n.fromBytes(Pt(Dr((H&1)===0),O)),U=r.inv(_),W=w(Ze("msgHash",T)),$=r.create(-W*U),Y=r.create(P*U),te=n.BASE.multiplyUnsafe($).add(Z.multiplyUnsafe(Y));if(te.is0())throw new Error("point at infinify");return te.assertValidity(),te}hasHighS(){return x(this.s)}toBytes(T=m){if(cs(T),T==="der")return fi(Et.hexFromSig(this));const I=r.toBytes(this.r),R=r.toBytes(this.s);if(T==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return Pt(Uint8Array.of(this.recovery),I,R)}return Pt(I,R)}toHex(T){return fa(this.toBytes(T))}assertValidity(){}static fromCompact(T){return y.fromBytes(Ze("sig",T),"compact")}static fromDER(T){return y.fromBytes(Ze("sig",T),"der")}normalizeS(){return this.hasHighS()?new y(this.r,r.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return fa(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return fa(this.toBytes("compact"))}}const C=t.bits2int||function(T){if(T.length>8192)throw new Error("input is too large");const I=xi(T),R=T.length*8-c;return R>0?I>>BigInt(R):I},w=t.bits2int_modN||function(T){return r.create(C(T))},N=Ha(c);function E(L){return wp("num < 2^"+c,L,Nt,N),r.toBytes(L)}function A(L,T){return qt(L,void 0,"message"),T?qt(e(L),void 0,"prehashed message"):L}function B(L,T,I){if(["recovered","canonical"].some($=>$ in I))throw new Error("sign() legacy options not supported");const{lowS:R,prehash:P,extraEntropy:H}=ds(I,p);L=A(L,P);const D=w(L),_=va(r,T),O=[E(_),E(D)];if(H!=null&&H!==!1){const $=H===!0?a(f.secretKey):H;O.push(Ze("extraEntropy",$))}const Z=Pt(...O),U=D;function W($){const Y=C($);if(!r.isValidNot0(Y))return;const te=r.inv(Y),re=n.BASE.multiply(Y).toAffine(),ee=r.create(re.x);if(ee===Nt)return;const me=r.create(te*r.create(U+ee*_));if(me===Nt)return;let Re=(re.x===ee?0:2)|Number(re.y&ba),ye=me;return R&&x(me)&&(ye=r.neg(me),Re^=1),new y(ee,ye,Re)}return{seed:Z,k2sig:W}}function F(L,T,I={}){L=Ze("message",L);const{seed:R,k2sig:P}=B(L,T,I);return kp(e.outputLen,r.BYTES,i)(R,P)}function M(L){let T;const I=typeof L=="string"||ui(L),R=!I&&L!==null&&typeof L=="object"&&typeof L.r=="bigint"&&typeof L.s=="bigint";if(!I&&!R)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(R)T=new y(L.r,L.s);else if(I){try{T=y.fromBytes(Ze("sig",L),"der")}catch(P){if(!(P instanceof Et.Err))throw P}if(!T)try{T=y.fromBytes(Ze("sig",L),"compact")}catch{return!1}}return T||!1}function S(L,T,I,R={}){const{lowS:P,prehash:H,format:D}=ds(R,p);if(I=Ze("publicKey",I),T=A(Ze("message",T),H),"strict"in R)throw new Error("options.strict was renamed to lowS");const _=D===void 0?M(L):y.fromBytes(Ze("sig",L),D);if(_===!1)return!1;try{const O=n.fromBytes(I);if(P&&_.hasHighS())return!1;const{r:Z,s:U}=_,W=w(T),$=r.inv(U),Y=r.create(W*$),te=r.create(Z*$),re=n.BASE.multiplyUnsafe(Y).add(O.multiplyUnsafe(te));return re.is0()?!1:r.create(re.x)===Z}catch{return!1}}function k(L,T,I={}){const{prehash:R}=ds(I,p);return T=A(T,R),y.fromBytes(L,"recovered").recoverPublicKey(T).toBytes()}return Object.freeze({keygen:d,getPublicKey:h,getSharedSecret:u,utils:g,lengths:f,Point:n,sign:F,verify:S,recoverPublicKey:k,Signature:y,hash:e})}function lm(n){const e={a:n.a,b:n.b,p:n.Fp.ORDER,n:n.n,h:n.h,Gx:n.Gx,Gy:n.Gy},t=n.Fp;let a=n.allowedPrivateKeyLengths?Array.from(new Set(n.allowedPrivateKeyLengths.map(r=>Math.ceil(r/2)))):void 0;const i=Kt(e.n,{BITS:n.nBitLength,allowedLengths:a,modFromBytes:n.wrapPrivateKey}),s={Fp:t,Fn:i,allowInfinityPoint:n.allowInfinityPoint,endo:n.endo,isTorsionFree:n.isTorsionFree,clearCofactor:n.clearCofactor,fromBytes:n.fromBytes,toBytes:n.toBytes};return{CURVE:e,curveOpts:s}}function cm(n){const{CURVE:e,curveOpts:t}=lm(n),a={hmac:n.hmac,randomBytes:n.randomBytes,lowS:n.lowS,bits2int:n.bits2int,bits2int_modN:n.bits2int_modN};return{CURVE:e,curveOpts:t,hash:n.hash,ecdsaOpts:a}}function dm(n,e){const t=e.Point;return Object.assign({},e,{ProjectivePoint:t,CURVE:Object.assign({},n,pr(t.Fn.ORDER,t.Fn.BITS))})}function hm(n){const{CURVE:e,curveOpts:t,hash:a,ecdsaOpts:i}=cm(n),s=nm(e,t),r=om(s,a,i);return dm(n,r)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function hs(n,e){const t=a=>hm({...n,hash:a});return{...t(e),create:t}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Pr={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},Ir={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},zr={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},um=Kt(Pr.p),gm=Kt(Ir.p),fm=Kt(zr.p),pm=hs({...Pr,Fp:um,lowS:!1},Sr);hs({...Ir,Fp:gm,lowS:!1},qp),hs({...zr,Fp:fm,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Up);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const mm=Object.freeze(Object.defineProperty({__proto__:null,p256:pm},Symbol.toStringTag,{value:"Module"})),xm=Object.freeze(Object.defineProperty({__proto__:null,sha256:Sr},Symbol.toStringTag,{value:"Module"})),bm=Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"}));/*!
316
+ What would you like to know about this data?`);if(d.value=Qe(d.value,O),e.dataSourceLoader)try{const{data:Z,schema:U}=await e.dataSourceLoader(D);U&&h.value.set(D,U),Z&&Z.length>0&&(p.value=Z,t==null||t({data:Z,query:`SELECT * FROM ${_.table} LIMIT 100`,dataSourceId:D,rowCount:Z.length}))}catch(Z){console.warn("Failed to load data source:",Z)}else if(e.demoMode){const Z=vl(D);Z&&h.value.set(D,Z);const U=gn(D);U&&(p.value=U,t==null||t({data:U,query:`SELECT * FROM ${_.table} LIMIT 10`,dataSourceId:D,rowCount:U.length}))}else e.endpoint&&(await B(_),await F(_));H()}async function B(D){if(e.endpoint)try{const _=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"get-schema",tables:[D.table]})});if(!_.ok)throw new Error(`Failed to fetch schema: ${_.statusText}`);const O=await _.json();if(O.error)throw new Error(O.error);O.schemas.length>0&&h.value.set(D.id,O.schemas[0])}catch(_){console.warn("Failed to fetch schema:",_)}}async function F(D){if(e.endpoint)try{const _=`SELECT * FROM ${D.table} LIMIT 100`,O=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"query",sql:_,table:D.table})});if(!O.ok)throw new Error(`Failed to fetch sample data: ${O.statusText}`);const Z=await O.json();if(Z.error)throw new Error(Z.error);Z.data&&Z.data.length>0&&(p.value=Z.data,t==null||t({data:Z.data,query:_,dataSourceId:D.id,rowCount:Z.data.length}))}catch(_){console.warn("Failed to fetch sample data:",_)}}async function M(D){if(!D.trim()||g.value)return;f.value=null,g.value=!0;const _=Ll(D);d.value=Qe(d.value,_),H();try{if(e.demoMode){await S(D);return}if(!d.value.dataSourceId){const U=nt("Please select a data source first by clicking one of the options above.");d.value=Qe(d.value,U),H();return}const O=await k(D),Z=Al(O);if(Z){const U=El(Z);if(!U.valid){const $=nt(`I generated an invalid query: ${U.error}. Let me try again with a corrected approach.`,{error:U.error});d.value=Qe(d.value,$),H();return}const W=nt(O,{query:Z});d.value=Qe(d.value,W),H(),await L(Z,W.id)}else{const U=nt(O);d.value=Qe(d.value,U),H()}}catch(O){const Z=O instanceof Error?O.message:"An error occurred";f.value=Z;const U=nt(`Sorry, I encountered an error: ${Z}. Please try again.`,{error:Z});d.value=Qe(d.value,U),H(),s==null||s({message:Z,type:"ai"})}finally{g.value=!1}}async function S(D){var Z;await new Promise(U=>setTimeout(U,800));const _=d.value.dataSourceId;if(!_){const U=nt("Please select a data source first by clicking one of the options above.");d.value=Qe(d.value,U),H(),g.value=!1;return}const O=xl(_,D);if(O){const U=nt(O.response,{query:O.query,rowCount:(Z=O.mockData)==null?void 0:Z.length});d.value=Qe(d.value,U),H(),O.mockData&&(p.value=O.mockData,t==null||t({data:O.mockData,query:O.query||"",dataSourceId:_,rowCount:O.mockData.length}),i==null||i({query:O.query||"",rowCount:O.mockData.length,duration:150,dataSourceId:_,success:!0}))}else{const U=bl(_),W=nt(U);d.value=Qe(d.value,W),H()}g.value=!1}async function k(D){if(!e.endpoint)throw new Error("No endpoint configured. Set `endpoint` in AI analyst config.");const _=d.value.dataSourceId,O=yl(b.value,h.value,_,u.value.length>0?u.value:void 0),Z=Fl(d.value),U=[{role:"user",content:O},{role:"assistant",content:"I understand. I'm ready to help you analyze the data."},...Z.slice(0,-1),{role:"user",content:D}],W=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"chat",messages:U})});if(!W.ok)throw new Error(`AI request failed: ${W.statusText}`);const $=await W.json();if($.error)throw new Error($.error);return $.content}async function L(D,_){const O=d.value.dataSourceId;if(!O)return;const Z=b.value.find(W=>W.id===O);if(!Z)return;const U=Date.now();try{let W;if(e.queryExecutor){const Y=await e.queryExecutor(D,Z.table);W={data:Y.data,rowCount:Y.rowCount,truncated:Y.truncated,error:Y.error,success:!Y.error}}else if(e.endpoint)W=await(await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"query",sql:D,table:Z.table})})).json();else throw new Error("No query executor or endpoint configured");const $=Date.now()-U;if(!W.success||W.error){const Y=nt(`The query failed: ${W.error||"Unknown error"}. Would you like me to try a different approach?`,{error:W.error,query:D});d.value=Qe(d.value,Y),H(),i==null||i({query:D,rowCount:0,duration:$,dataSourceId:O,success:!1,error:W.error}),s==null||s({message:W.error||"Query failed",query:D,type:"query"});return}if(W.data){if(p.value=W.data,_){const Y=d.value.messages.map(te=>te.id===_?{...te,metadata:{...te.metadata,data:W.data,rowCount:W.rowCount,truncated:W.truncated}}:te);d.value={...d.value,messages:Y,updatedAt:Date.now()}}else{const Y=W.truncated?` (limited to ${e.maxRows||1e4} rows)`:"",te=nt(`Retrieved **${W.rowCount} rows**${Y}.`,{query:D,rowCount:W.rowCount,data:W.data});d.value=Qe(d.value,te)}H(),t==null||t({data:W.data,query:D,dataSourceId:O,rowCount:W.rowCount||W.data.length}),i==null||i({query:D,rowCount:W.rowCount||W.data.length,duration:$,dataSourceId:O,success:!0})}}catch(W){const $=Date.now()-U,Y=W instanceof Error?W.message:"Query execution failed",te=nt(`Failed to execute query: ${Y}`,{error:Y,query:D});d.value=Qe(d.value,te),H(),i==null||i({query:D,rowCount:0,duration:$,dataSourceId:O,success:!1,error:Y}),s==null||s({message:Y,query:D,type:"network"})}}async function T(){const D=d.value.dataSourceId;if(!D)return null;const _=b.value.find(O=>O.id===D);if(!_)return null;if(e.dataSourceLoader){try{const{data:O}=await e.dataSourceLoader(D);if(O&&O.length>0)return O}catch(O){console.warn("Failed to load full data:",O),s==null||s({message:O instanceof Error?O.message:"Failed to load full data",type:"network"})}return null}if(e.queryExecutor){try{const O=await e.queryExecutor(`SELECT * FROM ${_.table}`,_.table);if(O.data&&O.data.length>0)return O.data}catch(O){console.warn("Failed to load full data via query:",O),s==null||s({message:O instanceof Error?O.message:"Failed to load full data",type:"network"})}return null}if(e.endpoint){try{const O=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"query",sql:`SELECT * FROM ${_.table}`,table:_.table})});if(!O.ok)throw new Error(`Failed to load data: ${O.statusText}`);const Z=await O.json();if(Z.data&&Z.data.length>0)return Z.data}catch(O){console.warn("Failed to load full data from endpoint:",O),s==null||s({message:O instanceof Error?O.message:"Failed to load full data",type:"network"})}return null}return e.demoMode&&gn(D)||null}function I(){d.value=pn(e.sessionId),f.value=null,p.value=null,H()}function R(){return{...d.value}}function P(D){d.value=D,H()}function H(){c(d.value),a==null||a({conversation:d.value})}return{conversation:d,messages:C,hasMessages:w,schemas:h,isLoading:g,isLoadingTables:x,error:f,lastLoadedData:p,selectedDataSource:v,selectedDataSourceInfo:y,dataSources:b,selectDataSource:A,sendMessage:M,clearConversation:I,exportConversation:R,importConversation:P,fetchTables:N,loadFullData:T}}const wc={key:0,class:"vpg-ai-picker-fullscreen"},kc={class:"vpg-ai-picker-content"},Cc={key:0,class:"vpg-ai-empty-state"},Sc={class:"vpg-ai-search"},Ac={class:"vpg-ai-datasource-grid"},Ec=["onClick"],Nc={class:"vpg-ai-datasource-info"},Mc={class:"vpg-ai-datasource-name"},Lc={key:0,class:"vpg-ai-datasource-desc"},Bc={key:0,class:"vpg-ai-no-results"},Fc={key:1,class:"vpg-ai-split-layout"},Tc={class:"vpg-ai-chat-panel"},Rc={class:"vpg-ai-chat-header"},Dc={class:"vpg-ai-chat-title"},Vc={class:"vpg-ai-chat-name"},Pc={key:0,class:"vpg-ai-welcome"},Ic={class:"vpg-ai-suggestions"},zc={key:0,class:"vpg-ai-msg vpg-ai-msg-user"},_c=["onClick"],Oc={class:"vpg-ai-result-header"},Hc={class:"vpg-ai-result-badge"},Yc={class:"vpg-ai-result-content"},Xc={key:2,class:"vpg-ai-msg vpg-ai-msg-assistant"},Wc={class:"vpg-ai-assistant-content"},$c={key:0,class:"vpg-ai-msg-error"},jc={key:1,class:"vpg-ai-msg vpg-ai-msg-loading"},Gc={class:"vpg-ai-input-area"},Uc=["disabled"],qc=["disabled"],Zc={class:"vpg-ai-input-footer"},Kc={key:0,class:"vpg-ai-model-name"},Jc={class:"vpg-ai-input-actions"},Qc={class:"vpg-ai-preview-panel"},ed={class:"vpg-ai-preview-header"},td={class:"vpg-ai-preview-title-row"},ad={class:"vpg-ai-preview-meta"},id={key:0,class:"vpg-ai-preview-count"},sd={key:0,class:"vpg-ai-schema-bar"},nd=["title"],rd={class:"vpg-ai-chip-type"},od={class:"vpg-ai-chip-name"},ld={key:0,class:"vpg-ai-sql-panel"},cd={class:"vpg-ai-sql-panel-header"},dd={class:"vpg-ai-sql-panel-actions"},hd={class:"vpg-ai-sql-panel-code"},ud={key:1,class:"vpg-ai-preview-loading"},gd={key:2,class:"vpg-ai-preview-ready"},fd={key:3,class:"vpg-ai-preview-empty"},pd={key:4,class:"vpg-ai-preview-table-container"},md={class:"vpg-ai-preview-table"},xd={key:0,class:"vpg-ai-preview-more"},bd=l.defineComponent({__name:"AIAnalyst",props:{config:{},theme:{}},emits:["dataLoaded","conversationUpdate","queryExecuted","error","viewResults"],setup(n,{expose:e,emit:t}){const a=n,i=t,{messages:s,hasMessages:r,isLoading:o,isLoadingTables:c,schemas:d,selectedDataSource:h,selectedDataSourceInfo:u,lastLoadedData:g,dataSources:f,selectDataSource:p,sendMessage:m,clearConversation:x,loadFullData:b}=yc({config:a.config,onDataLoaded:$=>i("dataLoaded",$),onConversationUpdate:$=>i("conversationUpdate",$),onQueryExecuted:$=>i("queryExecuted",$),onError:$=>i("error",$)});e({loadFullData:b,selectedDataSource:h});const v=l.ref(""),y=l.ref(""),C=l.ref(),w=l.ref(null),N=l.ref(!1),E=l.computed(()=>{if(!y.value.trim())return f.value;const $=y.value.toLowerCase();return f.value.filter(Y=>{var te;return Y.name.toLowerCase().includes($)||((te=Y.description)==null?void 0:te.toLowerCase().includes($))||Y.table.toLowerCase().includes($)})}),A=l.computed(()=>{if(h.value)return d.value.get(h.value)}),B=l.computed(()=>{var $;if(w.value){const Y=s.value.find(te=>te.id===w.value);if(($=Y==null?void 0:Y.metadata)!=null&&$.data)return Y.metadata.data.slice(0,100)}return g.value?g.value.slice(0,100):[]}),F=l.computed(()=>{var $;if(w.value){const Y=s.value.find(te=>te.id===w.value);if(($=Y==null?void 0:Y.metadata)!=null&&$.data)return Y.metadata.data}return g.value||[]}),M=l.computed(()=>B.value.length>0?Object.keys(B.value[0]):A.value?A.value.columns.map($=>$.name):[]),S=l.computed(()=>{var $,Y,te;if(w.value){const re=s.value.find(ee=>ee.id===w.value);return(($=re==null?void 0:re.metadata)==null?void 0:$.query)||""}for(let re=s.value.length-1;re>=0;re--)if((Y=s.value[re].metadata)!=null&&Y.data)return((te=s.value[re].metadata)==null?void 0:te.query)||"";return""});l.watch(s,()=>{l.nextTick(()=>{C.value&&(C.value.scrollTop=C.value.scrollHeight)});const $=[...s.value].reverse().find(Y=>{var te;return(te=Y.metadata)==null?void 0:te.data});$&&(w.value=$.id)},{deep:!0});function k(){!v.value.trim()||o.value||(m(v.value),v.value="")}function L($){$.key==="Enter"&&!$.shiftKey&&($.preventDefault(),k())}function T(){F.value.length>0&&i("viewResults",{data:F.value,query:S.value})}function I($){var te;const Y=s.value.find(re=>re.id===$);(te=Y==null?void 0:Y.metadata)!=null&&te.data&&(w.value=$)}function R(){N.value=!N.value}function P($){var Y;typeof window<"u"&&((Y=window.navigator)!=null&&Y.clipboard)&&window.navigator.clipboard.writeText($)}function H(){x(),y.value="",w.value=null,N.value=!1}function D(){x(),y.value="",w.value=null,N.value=!1}function _($){const Y=$.toLowerCase();return Y.includes("int")||Y.includes("float")||Y.includes("decimal")||Y.includes("number")?"#":Y.includes("date")||Y.includes("time")?"D":Y.includes("bool")?"?":"T"}function O($){return $==null?"":typeof $=="number"&&Math.abs($)>=1e3?$.toLocaleString("en-US",{maximumFractionDigits:2}):String($)}function Z($){return Nl($.content).replace(/\*\*/g,"").replace(/`([^`]+)`/g,"$1").trim()}function U($){const Y=$.target;Y.style.height="auto",Y.style.height=`${Math.min(Y.scrollHeight,120)}px`}function W($){var Y;return!!((Y=$.metadata)!=null&&Y.data)&&$.metadata.data.length>0}return($,Y)=>{var te,re;return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["vpg-ai-analyst",{"vpg-theme-dark":n.theme==="dark"}])},[l.unref(h)?(l.openBlock(),l.createElementBlock("div",Fc,[l.createElementVNode("div",Tc,[l.createElementVNode("div",Rc,[l.createElementVNode("button",{class:"vpg-ai-back-btn",title:"Change data source",onClick:D},[...Y[13]||(Y[13]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)])]),l.createElementVNode("div",Dc,[l.createElementVNode("span",Vc,l.toDisplayString((te=l.unref(u))==null?void 0:te.name),1)]),l.unref(r)?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-ai-clear-btn",title:"Clear conversation",onClick:H},[...Y[14]||(Y[14]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("polyline",{points:"3 6 5 6 21 6"}),l.createElementVNode("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)])])):l.createCommentVNode("",!0)]),l.createElementVNode("div",{ref_key:"messagesContainerRef",ref:C,class:"vpg-ai-messages"},[l.unref(r)?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("div",Pc,[Y[15]||(Y[15]=l.createElementVNode("p",null,"Ask questions about your data",-1)),l.createElementVNode("div",Ic,[l.createElementVNode("button",{onClick:Y[1]||(Y[1]=ee=>l.unref(m)("Show me a summary of the data"))}," Summary "),l.createElementVNode("button",{onClick:Y[2]||(Y[2]=ee=>l.unref(m)("Show me the top 10 records"))}," Top 10 "),l.createElementVNode("button",{onClick:Y[3]||(Y[3]=ee=>l.unref(m)("What are the trends?"))}," Trends ")])])),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(s),ee=>{var me,Re,ye,De;return l.openBlock(),l.createElementBlock(l.Fragment,{key:ee.id},[ee.role==="user"?(l.openBlock(),l.createElementBlock("div",zc,[l.createElementVNode("span",null,l.toDisplayString(ee.content),1)])):W(ee)?(l.openBlock(),l.createElementBlock("div",{key:1,class:l.normalizeClass(["vpg-ai-msg vpg-ai-msg-result",{"vpg-ai-msg-selected":w.value===ee.id}]),onClick:mt=>I(ee.id)},[l.createElementVNode("div",Oc,[l.createElementVNode("div",Hc,[Y[16]||(Y[16]=l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),l.createElementVNode("polyline",{points:"22 4 12 14.01 9 11.01"})],-1)),l.createElementVNode("span",null,l.toDisplayString((Re=(me=ee.metadata)==null?void 0:me.rowCount)==null?void 0:Re.toLocaleString())+" rows",1)]),(ye=ee.metadata)!=null&&ye.query?(l.openBlock(),l.createElementBlock("button",{key:0,class:l.normalizeClass(["vpg-ai-sql-toggle",{"vpg-ai-sql-expanded":N.value&&w.value===ee.id}]),title:"View SQL query",onClick:Y[4]||(Y[4]=l.withModifiers(mt=>R(),["stop"]))},[...Y[17]||(Y[17]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("polyline",{points:"16 18 22 12 16 6"}),l.createElementVNode("polyline",{points:"8 6 2 12 8 18"})],-1),l.createElementVNode("span",null,"SQL",-1)])],2)):l.createCommentVNode("",!0)]),l.createElementVNode("div",Yc,l.toDisplayString(Z(ee)),1)],10,_c)):ee.role==="assistant"?(l.openBlock(),l.createElementBlock("div",Xc,[l.createElementVNode("div",Wc,l.toDisplayString(Z(ee)),1),(De=ee.metadata)!=null&&De.error?(l.openBlock(),l.createElementBlock("div",$c,[...Y[18]||(Y[18]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),l.createElementVNode("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),l.createElementVNode("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})],-1),l.createTextVNode(" Error ",-1)])])):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)],64)}),128)),l.unref(o)?(l.openBlock(),l.createElementBlock("div",jc,[...Y[19]||(Y[19]=[l.createElementVNode("div",{class:"vpg-ai-typing"},[l.createElementVNode("span"),l.createElementVNode("span"),l.createElementVNode("span")],-1)])])):l.createCommentVNode("",!0)],512),l.createElementVNode("div",Gc,[l.createElementVNode("form",{class:"vpg-ai-input-form",onSubmit:l.withModifiers(k,["prevent"])},[l.withDirectives(l.createElementVNode("textarea",{"onUpdate:modelValue":Y[5]||(Y[5]=ee=>v.value=ee),class:"vpg-ai-input",placeholder:"Ask about your data...",disabled:l.unref(o),rows:"1",onKeydown:L,onInput:U},null,40,Uc),[[l.vModelText,v.value]]),l.createElementVNode("button",{type:"submit",class:"vpg-ai-send-btn",disabled:!v.value.trim()||l.unref(o),title:"Send"},[...Y[20]||(Y[20]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),l.createElementVNode("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})],-1)])],8,qc)],32),l.createElementVNode("div",Zc,[n.config.aiModelName?(l.openBlock(),l.createElementBlock("span",Kc,l.toDisplayString(n.config.aiModelName),1)):l.createCommentVNode("",!0),l.createElementVNode("div",Jc,[F.value.length>0?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-ai-action-btn vpg-ai-action-primary",title:"View in Grid tab",onClick:T},[...Y[21]||(Y[21]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1),l.createTextVNode(" View in Grid ",-1)])])):l.createCommentVNode("",!0)])])])]),l.createElementVNode("div",Qc,[l.createElementVNode("div",ed,[l.createElementVNode("div",td,[l.createElementVNode("h3",null,l.toDisplayString((re=l.unref(u))==null?void 0:re.name),1),l.createElementVNode("div",ad,[F.value.length>0?(l.openBlock(),l.createElementBlock("span",id,l.toDisplayString(F.value.length.toLocaleString())+" rows ",1)):l.createCommentVNode("",!0),S.value?(l.openBlock(),l.createElementBlock("button",{key:1,class:l.normalizeClass(["vpg-ai-preview-sql-btn",{"vpg-ai-sql-active":N.value}]),title:"Toggle SQL query",onClick:Y[6]||(Y[6]=ee=>R())},[...Y[22]||(Y[22]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("polyline",{points:"16 18 22 12 16 6"}),l.createElementVNode("polyline",{points:"8 6 2 12 8 18"})],-1),l.createTextVNode(" SQL ",-1)])],2)):l.createCommentVNode("",!0),F.value.length>0?(l.openBlock(),l.createElementBlock("button",{key:2,class:"vpg-ai-preview-view-btn",title:"View in Grid",onClick:T},[...Y[23]||(Y[23]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),l.createElementVNode("line",{x1:"3",y1:"9",x2:"21",y2:"9"}),l.createElementVNode("line",{x1:"9",y1:"21",x2:"9",y2:"9"})],-1),l.createTextVNode(" View in Grid ",-1)])])):l.createCommentVNode("",!0)])]),A.value?(l.openBlock(),l.createElementBlock("div",sd,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(A.value.columns,ee=>(l.openBlock(),l.createElementBlock("div",{key:ee.name,class:"vpg-ai-schema-chip",title:`${ee.name} (${ee.type})`},[l.createElementVNode("span",rd,l.toDisplayString(_(ee.type)),1),l.createElementVNode("span",od,l.toDisplayString(ee.name),1)],8,nd))),128))])):l.createCommentVNode("",!0)]),N.value&&S.value?(l.openBlock(),l.createElementBlock("div",ld,[l.createElementVNode("div",cd,[Y[26]||(Y[26]=l.createElementVNode("span",{class:"vpg-ai-sql-panel-title"},"SQL Query",-1)),l.createElementVNode("div",dd,[l.createElementVNode("button",{class:"vpg-ai-copy-btn",title:"Copy SQL",onClick:Y[7]||(Y[7]=ee=>P(S.value))},[...Y[24]||(Y[24]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),l.createElementVNode("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})],-1)])]),l.createElementVNode("button",{class:"vpg-ai-sql-panel-close",title:"Close",onClick:Y[8]||(Y[8]=ee=>N.value=!1)},[...Y[25]||(Y[25]=[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),l.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])])]),l.createElementVNode("pre",hd,[l.createElementVNode("code",null,l.toDisplayString(S.value),1)])])):l.createCommentVNode("",!0),l.unref(o)?(l.openBlock(),l.createElementBlock("div",ud,[...Y[27]||(Y[27]=[l.createElementVNode("div",{class:"vpg-ai-preview-spinner"},null,-1),l.createElementVNode("span",null,"Running query...",-1)])])):B.value.length===0&&A.value?(l.openBlock(),l.createElementBlock("div",gd,[Y[28]||(Y[28]=l.createStaticVNode('<div class="vpg-ai-preview-ready-icon" data-v-e1647db4><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" data-v-e1647db4><ellipse cx="12" cy="5" rx="9" ry="3" data-v-e1647db4></ellipse><path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5" data-v-e1647db4></path><path d="M3 12c0 1.66 4 3 9 3s9-1.34 9-3" data-v-e1647db4></path></svg></div><p data-v-e1647db4>Data source connected</p>',2)),l.createElementVNode("span",null,l.toDisplayString(A.value.columns.length)+" columns available",1),Y[29]||(Y[29]=l.createElementVNode("div",{class:"vpg-ai-preview-hint"}," Ask a question to explore the data ",-1))])):B.value.length===0?(l.openBlock(),l.createElementBlock("div",fd,[...Y[30]||(Y[30]=[l.createElementVNode("div",{class:"vpg-ai-preview-empty-icon"},[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[l.createElementVNode("path",{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),l.createElementVNode("p",null,"Loading data source...",-1)])])):(l.openBlock(),l.createElementBlock("div",pd,[l.createElementVNode("table",md,[l.createElementVNode("thead",null,[l.createElementVNode("tr",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(M.value,ee=>(l.openBlock(),l.createElementBlock("th",{key:ee},l.toDisplayString(ee),1))),128))])]),l.createElementVNode("tbody",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(B.value,(ee,me)=>(l.openBlock(),l.createElementBlock("tr",{key:me},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(M.value,Re=>(l.openBlock(),l.createElementBlock("td",{key:Re},l.toDisplayString(O(ee[Re])),1))),128))]))),128))])]),F.value.length>100?(l.openBlock(),l.createElementBlock("div",xd,[l.createTextVNode(" Showing 100 of "+l.toDisplayString(F.value.length.toLocaleString())+" rows. ",1),l.createElementVNode("button",{onClick:T}," View all in Grid ")])):l.createCommentVNode("",!0)]))])])):(l.openBlock(),l.createElementBlock("div",wc,[l.createElementVNode("div",kc,[Y[12]||(Y[12]=l.createStaticVNode('<div class="vpg-ai-picker-header" data-v-e1647db4><div class="vpg-ai-icon-lg" data-v-e1647db4><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-e1647db4><path d="M12 2a2 2 0 0 1 2 2c0 .74-.4 1.39-1 1.73V7h1a7 7 0 0 1 7 7h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-1H2a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h1a7 7 0 0 1 7-7h1V5.73c-.6-.34-1-.99-1-1.73a2 2 0 0 1 2-2z" data-v-e1647db4></path><circle cx="7.5" cy="14.5" r="1.5" fill="currentColor" data-v-e1647db4></circle><circle cx="16.5" cy="14.5" r="1.5" fill="currentColor" data-v-e1647db4></circle></svg></div><h2 data-v-e1647db4>AI Data Analyst</h2><p data-v-e1647db4>Select a data source to start exploring with AI</p></div>',1)),l.unref(f).length===0&&!l.unref(c)?(l.openBlock(),l.createElementBlock("div",Cc,[...Y[9]||(Y[9]=[l.createStaticVNode('<p data-v-e1647db4>No data sources configured.</p><a href="https://tinypivot.com/docs/ai-analyst" target="_blank" rel="noopener" class="vpg-ai-docs-link" data-v-e1647db4><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-e1647db4><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" data-v-e1647db4></path><polyline points="15 3 21 3 21 9" data-v-e1647db4></polyline><line x1="10" y1="14" x2="21" y2="3" data-v-e1647db4></line></svg> View Documentation </a>',2)])])):(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createElementVNode("div",Sc,[Y[10]||(Y[10]=l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("circle",{cx:"11",cy:"11",r:"8"}),l.createElementVNode("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})],-1)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":Y[0]||(Y[0]=ee=>y.value=ee),type:"text",placeholder:"Search data sources...",class:"vpg-ai-search-input"},null,512),[[l.vModelText,y.value]])]),l.createElementVNode("div",Ac,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(E.value,ee=>(l.openBlock(),l.createElementBlock("button",{key:ee.id,class:"vpg-ai-datasource-card",onClick:me=>l.unref(p)(ee.id)},[Y[11]||(Y[11]=l.createElementVNode("div",{class:"vpg-ai-datasource-icon"},[l.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),l.createElementVNode("path",{d:"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"})])],-1)),l.createElementVNode("div",Nc,[l.createElementVNode("span",Mc,l.toDisplayString(ee.name),1),ee.description?(l.openBlock(),l.createElementBlock("span",Lc,l.toDisplayString(ee.description),1)):l.createCommentVNode("",!0)])],8,Ec))),128))]),E.value.length===0?(l.openBlock(),l.createElementBlock("div",Bc,' No data sources match "'+l.toDisplayString(y.value)+'" ',1)):l.createCommentVNode("",!0)],64))])]))],2)}}}),Dt=(n,e)=>{const t=n.__vccOpts||n;for(const[a,i]of e)t[a]=i;return t},vd=Dt(bd,[["__scopeId","data-v-e1647db4"]]),yd={class:"vpg-modal"},wd={class:"vpg-modal-header"},kd={class:"vpg-modal-body"},Cd={class:"vpg-form-group"},Sd={class:"vpg-form-group"},Ad={key:0,class:"vpg-error"},Ed={class:"vpg-form-group"},Nd={class:"vpg-button-group"},Md={class:"vpg-form-group"},Ld={key:0,class:"vpg-button-group vpg-field-buttons"},Bd=["onClick"],Fd={key:1,class:"vpg-no-fields"},Td={class:"vpg-form-row"},Rd={class:"vpg-form-group vpg-form-group-half"},Dd={class:"vpg-form-group vpg-form-group-half"},Vd={key:0,class:"vpg-error vpg-error-box"},Pd={class:"vpg-modal-footer"},Id=Dt(l.defineComponent({__name:"CalculatedFieldModal",props:{show:{type:Boolean},availableFields:{},existingField:{}},emits:["close","save"],setup(n,{emit:e}){const t=n,a=e,i=l.ref(""),s=l.ref(""),r=l.ref("number"),o=l.ref(2),c=l.ref(null);l.watch(()=>t.show,f=>{f&&(t.existingField?(i.value=t.existingField.name,s.value=t.existingField.formula,r.value=t.existingField.formatAs||"number",o.value=t.existingField.decimals??2):(i.value="",s.value="",r.value="number",o.value=2),c.value=null)});const d=l.computed(()=>s.value.trim()?Rn(s.value,t.availableFields):null);function h(f){s.value.trim()&&!s.value.endsWith(" ")&&(s.value+=" "),s.value+=f}function u(f){s.value.trim()&&!s.value.endsWith(" ")&&(s.value+=" "),s.value+=`${f} `}function g(){var m;if(!i.value.trim()){c.value="Name is required";return}const f=Rn(s.value,t.availableFields);if(f){c.value=f;return}const p={id:((m=t.existingField)==null?void 0:m.id)||`calc_${Date.now()}`,name:i.value.trim(),formula:s.value.trim(),formatAs:r.value,decimals:o.value};a("save",p),a("close")}return(f,p)=>(l.openBlock(),l.createBlock(l.Teleport,{to:"body"},[n.show?(l.openBlock(),l.createElementBlock("div",{key:0,class:"vpg-modal-overlay",onClick:p[12]||(p[12]=l.withModifiers(m=>a("close"),["self"]))},[l.createElementVNode("div",yd,[l.createElementVNode("div",wd,[l.createElementVNode("h3",null,l.toDisplayString(n.existingField?"Edit":"Create")+" Calculated Field",1),l.createElementVNode("button",{class:"vpg-modal-close",onClick:p[0]||(p[0]=m=>a("close"))}," × ")]),l.createElementVNode("div",kd,[l.createElementVNode("div",Cd,[p[13]||(p[13]=l.createElementVNode("label",{class:"vpg-label"},"Name",-1)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":p[1]||(p[1]=m=>i.value=m),type:"text",class:"vpg-input",placeholder:"e.g., Profit Margin %"},null,512),[[l.vModelText,i.value]])]),l.createElementVNode("div",Sd,[p[14]||(p[14]=l.createElementVNode("label",{class:"vpg-label"},"Formula",-1)),l.withDirectives(l.createElementVNode("textarea",{"onUpdate:modelValue":p[2]||(p[2]=m=>s.value=m),class:"vpg-textarea",placeholder:"e.g., revenue / units",rows:"2"},null,512),[[l.vModelText,s.value]]),p[15]||(p[15]=l.createElementVNode("div",{class:"vpg-formula-hint"}," Use field names with math operators: + - * / ( ) ",-1)),d.value?(l.openBlock(),l.createElementBlock("div",Ad,l.toDisplayString(d.value),1)):l.createCommentVNode("",!0)]),l.createElementVNode("div",Ed,[p[16]||(p[16]=l.createElementVNode("label",{class:"vpg-label-small"},"Operators",-1)),l.createElementVNode("div",Nd,[l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[3]||(p[3]=m=>u("+"))}," + "),l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[4]||(p[4]=m=>u("-"))}," − "),l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[5]||(p[5]=m=>u("*"))}," × "),l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[6]||(p[6]=m=>u("/"))}," ÷ "),l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[7]||(p[7]=m=>u("("))}," ( "),l.createElementVNode("button",{class:"vpg-insert-btn vpg-op-btn",onClick:p[8]||(p[8]=m=>u(")"))}," ) ")])]),l.createElementVNode("div",Md,[p[17]||(p[17]=l.createElementVNode("label",{class:"vpg-label-small"},"Insert Field",-1)),n.availableFields.length>0?(l.openBlock(),l.createElementBlock("div",Ld,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.availableFields,m=>(l.openBlock(),l.createElementBlock("button",{key:m,class:"vpg-insert-btn vpg-field-btn",onClick:x=>h(m)},l.toDisplayString(m),9,Bd))),128))])):(l.openBlock(),l.createElementBlock("div",Fd," No numeric fields available "))]),l.createElementVNode("div",Td,[l.createElementVNode("div",Rd,[p[19]||(p[19]=l.createElementVNode("label",{class:"vpg-label"},"Format As",-1)),l.withDirectives(l.createElementVNode("select",{"onUpdate:modelValue":p[9]||(p[9]=m=>r.value=m),class:"vpg-select"},[...p[18]||(p[18]=[l.createElementVNode("option",{value:"number"}," Number ",-1),l.createElementVNode("option",{value:"percent"}," Percentage ",-1),l.createElementVNode("option",{value:"currency"}," Currency ($) ",-1)])],512),[[l.vModelSelect,r.value]])]),l.createElementVNode("div",Dd,[p[20]||(p[20]=l.createElementVNode("label",{class:"vpg-label"},"Decimals",-1)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":p[10]||(p[10]=m=>o.value=m),type:"number",class:"vpg-input",min:"0",max:"6"},null,512),[[l.vModelText,o.value,void 0,{number:!0}]])])]),c.value?(l.openBlock(),l.createElementBlock("div",Vd,l.toDisplayString(c.value),1)):l.createCommentVNode("",!0)]),l.createElementVNode("div",Pd,[l.createElementVNode("button",{class:"vpg-btn vpg-btn-secondary",onClick:p[11]||(p[11]=m=>a("close"))}," Cancel "),l.createElementVNode("button",{class:"vpg-btn vpg-btn-primary",onClick:g},l.toDisplayString(n.existingField?"Update":"Add")+" Field ",1)])])])):l.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-a29541ff"]]),zd={class:"vpg-chart-builder"},_d={class:"vpg-chart-type-bar"},Od=["title","onClick"],Hd={class:"vpg-icon",viewBox:"0 0 24 24",fill:"currentColor"},Yd=["d"],Xd={class:"vpg-chart-type-label"},Wd={class:"vpg-chart-builder-content"},$d={class:"vpg-chart-fields-panel"},jd={class:"vpg-chart-fields-section"},Gd={class:"vpg-chart-fields-list"},Ud=["onDragstart"],qd={class:"vpg-field-name"},Zd={class:"vpg-field-type"},Kd={key:0,class:"vpg-chart-fields-empty"},Jd={class:"vpg-chart-fields-section"},Qd={class:"vpg-chart-fields-list"},eh=["onDragstart"],th={class:"vpg-field-name"},ah={key:0,class:"vpg-chart-fields-empty"},ih={class:"vpg-chart-config-panel"},sh={class:"vpg-chart-drop-zone-wrapper"},nh={class:"vpg-chart-zone-label"},rh={class:"vpg-zone-field-name"},oh=["value"],lh=["value"],ch={key:1,class:"vpg-zone-placeholder"},dh={class:"vpg-chart-drop-zone-wrapper"},hh={class:"vpg-chart-zone-label"},uh={class:"vpg-zone-field-name"},gh=["value"],fh=["value"],ph={key:1,class:"vpg-zone-placeholder"},mh={key:0,class:"vpg-chart-drop-zone-wrapper"},xh={class:"vpg-chart-zone-label"},bh={class:"vpg-zone-field-name"},vh=["value"],yh=["value"],wh={key:1,class:"vpg-zone-placeholder"},kh={key:1,class:"vpg-chart-drop-zone-wrapper"},Ch={class:"vpg-zone-field-name"},Sh=["value"],Ah=["value"],Eh={key:1,class:"vpg-zone-placeholder"},Nh={class:"vpg-chart-guidance"},Mh={class:"vpg-chart-preview-panel"},Lh={key:0,class:"vpg-chart-container"},Bh={key:1,class:"vpg-chart-empty-state"},Fh={class:"vpg-icon-lg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},Th=["d"],Rh={class:"vpg-chart-hint"},Dh=l.defineComponent({__name:"ChartBuilder",props:{data:{},theme:{},fieldRoleOverrides:{}},emits:["configChange"],setup(n,{emit:e}){const t=n,a=e,i=l.defineAsyncComponent(()=>Promise.resolve().then(()=>Rx).then(R=>R.default)),s=l.ref(zl()),r=l.computed(()=>Rl(t.data,t.fieldRoleOverrides)),o=l.computed(()=>r.value.filter(R=>R.role==="dimension"||R.role==="temporal")),c=l.computed(()=>r.value.filter(R=>R.role==="measure")),d=l.ref(null),h=l.ref(null),u=l.ref(!1),g=l.computed(()=>Vl(s.value)),f=l.computed(()=>Dl(s.value)),p=l.computed(()=>Yi.find(R=>R.type===s.value.type)),m=l.computed(()=>{const R=s.value.type;switch(R){case"scatter":case"bubble":return{xAxis:"X-Axis (measure)",xAxisPlaceholder:"Drop a measure",yAxis:"Y-Axis (measure)",yAxisPlaceholder:"Drop a measure",series:"Color by (optional)",seriesPlaceholder:"Group points by dimension",showSize:R==="bubble",showSeries:!0};case"heatmap":return{xAxis:"X-Axis (dimension)",xAxisPlaceholder:"Drop a dimension",yAxis:"Y-Axis (dimension)",yAxisPlaceholder:"Drop a dimension",series:"Value / Intensity",seriesPlaceholder:"Drop a measure for color intensity",showSize:!1,showSeries:!0};case"pie":case"donut":return{xAxis:"Slices (dimension)",xAxisPlaceholder:"Drop a dimension",yAxis:"Values (measure)",yAxisPlaceholder:"Drop a measure",series:"",seriesPlaceholder:"",showSize:!1,showSeries:!1};case"radar":return{xAxis:"Axes (dimension)",xAxisPlaceholder:"Drop a dimension",yAxis:"Values (measure)",yAxisPlaceholder:"Drop a measure",series:"Compare by (optional)",seriesPlaceholder:"Group by dimension",showSize:!1,showSeries:!0};case"stackedBar":return{xAxis:"X-Axis (dimension)",xAxisPlaceholder:"Drop a dimension",yAxis:"Y-Axis (measure)",yAxisPlaceholder:"Drop a measure",series:"Series (stacking field)",seriesPlaceholder:"Drop a dimension to stack by",showSize:!1,showSeries:!0};default:return{xAxis:"X-Axis (dimension)",xAxisPlaceholder:"Drop a dimension",yAxis:"Y-Axis (measure)",yAxisPlaceholder:"Drop a measure",series:"Color / Series (optional)",seriesPlaceholder:"Group by dimension",showSize:!1,showSeries:!0}}}),x=l.computed(()=>["scatter","bubble"].includes(s.value.type)),b=l.computed(()=>s.value.type==="heatmap");function v(R,P){var H;d.value=R,(H=P.dataTransfer)==null||H.setData("text/plain",R.field)}function y(){d.value=null,h.value=null}function C(R,P){P.preventDefault(),h.value=R}function w(){h.value=null}function N(R,P){if(P.preventDefault(),h.value=null,!d.value)return;const H=d.value,D={field:H.field,label:H.label,role:H.role,aggregation:H.role==="measure"?"sum":void 0};switch(R){case"xAxis":s.value={...s.value,xAxis:D};break;case"yAxis":s.value={...s.value,yAxis:D};break;case"series":s.value={...s.value,seriesField:D};break;case"size":s.value={...s.value,sizeField:D};break;case"color":s.value={...s.value,colorField:D};break}a("configChange",s.value)}function E(R){switch(R){case"xAxis":s.value={...s.value,xAxis:void 0};break;case"yAxis":s.value={...s.value,yAxis:void 0};break;case"series":s.value={...s.value,seriesField:void 0};break;case"size":s.value={...s.value,sizeField:void 0};break;case"color":s.value={...s.value,colorField:void 0};break}a("configChange",s.value)}function A(R){s.value={...s.value,type:R},u.value=!1,a("configChange",s.value)}function B(R,P){const H=R==="yAxis"?s.value.yAxis:s.value.sizeField;if(!H)return;const D={...H,aggregation:P};R==="yAxis"?s.value={...s.value,yAxis:D}:R==="size"&&(s.value={...s.value,sizeField:D}),a("configChange",s.value)}const F=l.computed(()=>{const R=t.theme==="dark",P=s.value,H=P.options||{},D={chart:{type:L(P.type),background:"transparent",foreColor:R?"#e2e8f0":"#334155",toolbar:{show:!0,tools:{download:!0,selection:!1,zoom:H.enableZoom??!1,zoomin:H.enableZoom??!1,zoomout:H.enableZoom??!1,pan:!1,reset:H.enableZoom??!1},export:{csv:{filename:"chart-data"},svg:{filename:"chart"},png:{filename:"chart"}}},animations:{enabled:H.animated??!0,speed:400,dynamicAnimation:{enabled:!0,speed:300}},fontFamily:"system-ui, -apple-system, sans-serif"},colors:H.colors||mn,theme:{mode:R?"dark":"light"},grid:{show:H.showGrid??!0,borderColor:R?"#334155":"#e2e8f0"},legend:{show:H.showLegend??!0,position:H.legendPosition||"top"},dataLabels:{enabled:H.showDataLabels??!1},tooltip:{theme:R?"dark":"light",style:{fontSize:"12px"},cssClass:R?"":"apexcharts-tooltip-light"},stroke:{curve:"smooth",width:P.type==="line"?3:P.type==="area"?2:0},fill:{opacity:P.type==="area"?.4:1}};return P.xAxis&&(D.xaxis={...D.xaxis,title:{text:H.xAxisTitle||P.xAxis.label},labels:{style:{colors:R?"#94a3b8":"#64748b"}}}),P.yAxis&&!["pie","donut","radar"].includes(P.type)&&(D.yaxis={title:{text:H.yAxisTitle||P.yAxis.label},labels:{style:{colors:R?"#94a3b8":"#64748b"},formatter:_=>T(_,H.valueFormat,H.decimals)}}),H.title&&(D.title={text:H.title,style:{fontSize:"16px",fontWeight:600,color:R?"#e2e8f0":"#334155"}}),(P.type==="stackedBar"||H.stacked&&["bar","area"].includes(P.type))&&(D.chart.stacked=!0),(P.type==="pie"||P.type==="donut")&&(D.plotOptions={pie:{donut:{size:P.type==="donut"?"55%":"0%",labels:{show:P.type==="donut",total:{show:!0,label:"Total",formatter:_=>{const O=_.globals.seriesTotals.reduce((Z,U)=>Z+U,0);return T(O,H.valueFormat,H.decimals)}}}}}}),P.type==="radar"&&(D.plotOptions={radar:{polygons:{strokeColors:R?"#334155":"#e2e8f0",fill:{colors:R?["#1e293b","#0f172a"]:["#f8fafc","#f1f5f9"]}}}}),D}),M=l.computed(()=>{var H;const R=s.value;return f.value?R.type==="pie"||R.type==="donut"?((H=vn(t.data,R).series[0])==null?void 0:H.data)||[]:R.type==="scatter"||R.type==="bubble"?Pl(t.data,R).series:R.type==="heatmap"?Il(t.data,R).series:bn(t.data,R).series:[]}),S=l.computed(()=>{const R=s.value;return f.value?R.type==="pie"||R.type==="donut"?vn(t.data,R).categories:bn(t.data,R).categories:[]}),k=l.computed(()=>{const R={...F.value},P=s.value;return["pie","donut","scatter","bubble","heatmap"].includes(P.type)||(R.xaxis={...R.xaxis,categories:S.value}),(P.type==="pie"||P.type==="donut")&&(R.labels=S.value),P.type==="heatmap"&&(R.chart={...R.chart,type:"heatmap"},R.xaxis={...R.xaxis,type:"category"},R.dataLabels={enabled:!0,style:{colors:["#fff"],fontSize:"10px"},formatter:H=>H==null?"":typeof H!="number"?String(H):H>=1e6?`${(H/1e6).toFixed(1)}M`:H>=1e3?`${(H/1e3).toFixed(0)}K`:Math.round(H).toLocaleString()},R.plotOptions={heatmap:{shadeIntensity:.5,radius:2,enableShades:!0,colorScale:{inverse:!1}}},R.colors=["#6366f1"],R.legend={show:!1}),R});function L(R){return{bar:"bar",stackedBar:"bar",line:"line",area:"area",pie:"pie",donut:"donut",radar:"radar",scatter:"scatter",bubble:"bubble",heatmap:"heatmap"}[R]||"bar"}function T(R,P,H){if(R==null)return"";if(typeof R!="number")return String(R);if(Number.isNaN(R))return"";const D=H??0;return P==="percent"?`${R.toFixed(D)}%`:P==="currency"?`$${R.toLocaleString(void 0,{minimumFractionDigits:D,maximumFractionDigits:D})}`:Math.abs(R)>=1e3?R.toLocaleString(void 0,{maximumFractionDigits:D}):R.toFixed(D)}function I(R){const P={bar:"M3 3v18h18V3H3zm4 14H5v-6h2v6zm4 0H9V7h2v10zm4 0h-2V9h2v8zm4 0h-2v-4h2v4z",stackedBar:"M3 3v18h18V3H3zm4 14H5v-3h2v3zm0-4H5v-3h2v3zm4 4H9v-5h2v5zm0-6H9v-4h2v4zm4 6h-2v-3h2v3zm0-4h-2v-5h2v5zm4 4h-2v-2h2v2zm0-3h-2v-2h2v2z",line:"M3.5 18.5l6-6 4 4 8-8M14.5 8.5h6v6",area:"M3 17l6-6 4 4 8-8v10H3z",pie:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8v8l5.66 5.66C14.28 19.04 13.18 20 12 20z",donut:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 14c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z",scatter:"M7 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm5-6a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm5 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-3 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4z",bubble:"M7 14a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm5-5a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm5 7a4 4 0 1 0 0-8 4 4 0 0 0 0 8z",heatmap:"M3 3h4v4H3V3zm6 0h4v4H9V3zm6 0h4v4h-4V3zM3 9h4v4H3V9zm6 0h4v4H9V9zm6 0h4v4h-4V9zM3 15h4v4H3v-4zm6 0h4v4H9v-4zm6 0h4v4h-4v-4z",radar:"M12 2L4 6v6c0 5.55 3.84 10.74 8 12 4.16-1.26 8-6.45 8-12V6l-8-4zm0 3.18l6 3v5.09c0 4.08-2.76 7.91-6 9.14V5.18z"};return P[R]||P.bar}return l.watch(()=>t.data,()=>{},{deep:!0}),l.onMounted(()=>{a("configChange",s.value)}),(R,P)=>{var H,D,_,O,Z,U;return l.openBlock(),l.createElementBlock("div",zd,[l.createElementVNode("div",_d,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(Yi),W=>(l.openBlock(),l.createElementBlock("button",{key:W.type,class:l.normalizeClass(["vpg-chart-type-btn",{active:s.value.type===W.type}]),title:W.description,onClick:$=>A(W.type)},[(l.openBlock(),l.createElementBlock("svg",Hd,[l.createElementVNode("path",{d:I(W.type)},null,8,Yd)])),l.createElementVNode("span",Xd,l.toDisplayString(W.label.replace(" Chart","")),1)],10,Od))),128))]),l.createElementVNode("div",Wd,[l.createElementVNode("div",$d,[l.createElementVNode("div",jd,[P[16]||(P[16]=l.createElementVNode("h4",{class:"vpg-chart-fields-title"},[l.createElementVNode("svg",{class:"vpg-icon-sm",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M4 6h16M4 12h10M4 18h6"})]),l.createTextVNode(" Dimensions "),l.createElementVNode("span",{class:"vpg-chart-fields-hint"},"(text/date)")],-1)),l.createElementVNode("div",Gd,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(o.value,W=>(l.openBlock(),l.createElementBlock("div",{key:W.field,class:"vpg-chart-field-chip vpg-field-dimension",draggable:"true",onDragstart:$=>v(W,$),onDragend:y},[l.createElementVNode("span",qd,l.toDisplayString(W.label),1),l.createElementVNode("span",Zd,l.toDisplayString(W.role==="temporal"?"date":"text"),1)],40,Ud))),128)),o.value.length===0?(l.openBlock(),l.createElementBlock("div",Kd," No dimension fields detected ")):l.createCommentVNode("",!0)])]),l.createElementVNode("div",Jd,[P[18]||(P[18]=l.createElementVNode("h4",{class:"vpg-chart-fields-title"},[l.createElementVNode("svg",{class:"vpg-icon-sm",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M16 8v8M12 11v5M8 14v2M4 4v16h16"})]),l.createTextVNode(" Measures "),l.createElementVNode("span",{class:"vpg-chart-fields-hint"},"(numbers)")],-1)),l.createElementVNode("div",Qd,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(c.value,W=>(l.openBlock(),l.createElementBlock("div",{key:W.field,class:"vpg-chart-field-chip vpg-field-measure",draggable:"true",onDragstart:$=>v(W,$),onDragend:y},[l.createElementVNode("span",th,l.toDisplayString(W.label),1),P[17]||(P[17]=l.createElementVNode("span",{class:"vpg-field-type"},"#",-1))],40,eh))),128)),c.value.length===0?(l.openBlock(),l.createElementBlock("div",ah," No numeric fields detected ")):l.createCommentVNode("",!0)])])]),l.createElementVNode("div",ih,[l.createElementVNode("div",sh,[l.createElementVNode("label",nh,l.toDisplayString(m.value.xAxis),1),l.createElementVNode("div",{class:l.normalizeClass(["vpg-chart-drop-zone",{"drag-over":h.value==="xAxis","has-field":s.value.xAxis}]),onDragover:P[2]||(P[2]=W=>C("xAxis",W)),onDragleave:w,onDrop:P[3]||(P[3]=W=>N("xAxis",W))},[s.value.xAxis?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("span",rh,l.toDisplayString(s.value.xAxis.label),1),x.value&&s.value.xAxis.role==="measure"?(l.openBlock(),l.createElementBlock("select",{key:0,class:"vpg-zone-aggregation",value:s.value.xAxis.aggregation||"sum",onChange:P[0]||(P[0]=W=>B("xAxis",W.target.value))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(ni),W=>(l.openBlock(),l.createElementBlock("option",{key:W.value,value:W.value},l.toDisplayString(W.symbol),9,lh))),128))],40,oh)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:"vpg-zone-remove-btn",onClick:P[1]||(P[1]=W=>E("xAxis"))},[...P[19]||(P[19]=[l.createElementVNode("svg",{class:"vpg-icon-xs",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M6 18L18 6M6 6l12 12"})],-1)])])],64)):(l.openBlock(),l.createElementBlock("span",ch,l.toDisplayString(m.value.xAxisPlaceholder),1))],34)]),l.createElementVNode("div",dh,[l.createElementVNode("label",hh,l.toDisplayString(m.value.yAxis),1),l.createElementVNode("div",{class:l.normalizeClass(["vpg-chart-drop-zone",{"drag-over":h.value==="yAxis","has-field":s.value.yAxis}]),onDragover:P[6]||(P[6]=W=>C("yAxis",W)),onDragleave:w,onDrop:P[7]||(P[7]=W=>N("yAxis",W))},[s.value.yAxis?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("span",uh,l.toDisplayString(s.value.yAxis.label),1),s.value.yAxis.role==="measure"&&!b.value?(l.openBlock(),l.createElementBlock("select",{key:0,class:"vpg-zone-aggregation",value:s.value.yAxis.aggregation||"sum",onChange:P[4]||(P[4]=W=>B("yAxis",W.target.value))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(ni),W=>(l.openBlock(),l.createElementBlock("option",{key:W.value,value:W.value},l.toDisplayString(W.symbol),9,fh))),128))],40,gh)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:"vpg-zone-remove-btn",onClick:P[5]||(P[5]=W=>E("yAxis"))},[...P[20]||(P[20]=[l.createElementVNode("svg",{class:"vpg-icon-xs",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M6 18L18 6M6 6l12 12"})],-1)])])],64)):(l.openBlock(),l.createElementBlock("span",ph,l.toDisplayString(m.value.yAxisPlaceholder),1))],34)]),m.value.showSeries?(l.openBlock(),l.createElementBlock("div",mh,[l.createElementVNode("label",xh,l.toDisplayString(m.value.series),1),l.createElementVNode("div",{class:l.normalizeClass(["vpg-chart-drop-zone vpg-zone-optional",{"drag-over":h.value==="series","has-field":s.value.seriesField||b.value&&s.value.colorField}]),onDragover:P[10]||(P[10]=W=>C(b.value?"color":"series",W)),onDragleave:w,onDrop:P[11]||(P[11]=W=>N(b.value?"color":"series",W))},[(b.value?s.value.colorField:s.value.seriesField)?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("span",bh,l.toDisplayString(b.value?(H=s.value.colorField)==null?void 0:H.label:(D=s.value.seriesField)==null?void 0:D.label),1),b.value&&((_=s.value.colorField)==null?void 0:_.role)==="measure"?(l.openBlock(),l.createElementBlock("select",{key:0,class:"vpg-zone-aggregation",value:((O=s.value.colorField)==null?void 0:O.aggregation)||"sum",onChange:P[8]||(P[8]=W=>B("color",W.target.value))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(ni),W=>(l.openBlock(),l.createElementBlock("option",{key:W.value,value:W.value},l.toDisplayString(W.symbol),9,yh))),128))],40,vh)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:"vpg-zone-remove-btn",onClick:P[9]||(P[9]=W=>E(b.value?"color":"series"))},[...P[21]||(P[21]=[l.createElementVNode("svg",{class:"vpg-icon-xs",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M6 18L18 6M6 6l12 12"})],-1)])])],64)):(l.openBlock(),l.createElementBlock("span",wh,l.toDisplayString(m.value.seriesPlaceholder),1))],34)])):l.createCommentVNode("",!0),m.value.showSize?(l.openBlock(),l.createElementBlock("div",kh,[P[23]||(P[23]=l.createElementVNode("label",{class:"vpg-chart-zone-label"},"Size (number)",-1)),l.createElementVNode("div",{class:l.normalizeClass(["vpg-chart-drop-zone vpg-zone-optional",{"drag-over":h.value==="size","has-field":s.value.sizeField}]),onDragover:P[14]||(P[14]=W=>C("size",W)),onDragleave:w,onDrop:P[15]||(P[15]=W=>N("size",W))},[s.value.sizeField?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("span",Ch,l.toDisplayString(s.value.sizeField.label),1),s.value.sizeField.role==="measure"?(l.openBlock(),l.createElementBlock("select",{key:0,class:"vpg-zone-aggregation",value:s.value.sizeField.aggregation||"sum",onChange:P[12]||(P[12]=W=>B("size",W.target.value))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(ni),W=>(l.openBlock(),l.createElementBlock("option",{key:W.value,value:W.value},l.toDisplayString(W.symbol),9,Ah))),128))],40,Sh)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:"vpg-zone-remove-btn",onClick:P[13]||(P[13]=W=>E("size"))},[...P[22]||(P[22]=[l.createElementVNode("svg",{class:"vpg-icon-xs",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("path",{d:"M6 18L18 6M6 6l12 12"})],-1)])])],64)):(l.openBlock(),l.createElementBlock("span",Eh,"Drop a number for bubble size"))],34)])):l.createCommentVNode("",!0),l.createElementVNode("div",Nh,[P[24]||(P[24]=l.createElementVNode("svg",{class:"vpg-icon-sm",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[l.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),l.createElementVNode("path",{d:"M12 16v-4M12 8h.01"})],-1)),l.createElementVNode("span",null,l.toDisplayString(g.value),1)])]),l.createElementVNode("div",Mh,[f.value?(l.openBlock(),l.createElementBlock("div",Lh,[(l.openBlock(),l.createBlock(l.Suspense,null,{fallback:l.withCtx(()=>[...P[25]||(P[25]=[l.createElementVNode("div",{class:"vpg-chart-loading"},[l.createElementVNode("div",{class:"vpg-chart-spinner"}),l.createElementVNode("span",null,"Loading chart...")],-1)])]),default:l.withCtx(()=>[(l.openBlock(),l.createBlock(l.unref(i),{key:`${s.value.type}-${JSON.stringify(s.value.xAxis)}-${JSON.stringify(s.value.yAxis)}`,type:L(s.value.type),options:k.value,series:M.value,height:"100%"},null,8,["type","options","series"]))]),_:1}))])):(l.openBlock(),l.createElementBlock("div",Bh,[(l.openBlock(),l.createElementBlock("svg",Fh,[l.createElementVNode("path",{d:I(s.value.type)},null,8,Th)])),P[26]||(P[26]=l.createElementVNode("h3",null,"Build your chart",-1)),P[27]||(P[27]=l.createElementVNode("p",null,"Drag fields from the left panel to configure your visualization",-1)),l.createElementVNode("div",Rh,[l.createElementVNode("strong",null,l.toDisplayString((Z=p.value)==null?void 0:Z.label),1),l.createTextVNode(": "+l.toDisplayString((U=p.value)==null?void 0:U.description),1)])]))])])])}}}),Vh={class:"vpg-range-filter"},Ph={class:"vpg-range-info"},Ih={class:"vpg-range-bounds"},zh={class:"vpg-range-inputs"},_h={class:"vpg-input-group"},Oh=["placeholder"],Hh={class:"vpg-input-group"},Yh=["placeholder"],Xh={class:"vpg-range-actions"},Wh=["disabled"],$h={key:0,class:"vpg-filter-summary"},jh={key:0},Gh={key:1},Uh=Dt(l.defineComponent({__name:"DateRangeFilter",props:{dataMin:{},dataMax:{},currentRange:{},dateFormat:{}},emits:["change"],setup(n,{emit:e}){const t=n,a=e,i=l.computed(()=>t.dateFormat??"iso"),s=l.ref(""),r=l.ref(""),o=l.ref(!1),c=l.ref(!1);function d(v){v!=null&&v.min?s.value=yt(v.min,i.value):s.value="",v!=null&&v.max?r.value=yt(v.max,i.value):r.value="",o.value=!1,c.value=!1}const h=l.computed(()=>yt(t.dataMin,i.value)),u=l.computed(()=>yt(t.dataMax,i.value)),g=l.computed(()=>s.value!==""||r.value!=="");function f(){if(s.value===""){o.value=!1,m();return}const v=oi(s.value,i.value);o.value=v===null,o.value||m()}function p(){if(r.value===""){c.value=!1,m();return}const v=oi(r.value,i.value);c.value=v===null,c.value||m()}function m(){const v=s.value?oi(s.value,i.value):null,y=r.value?oi(r.value,i.value):null;v===null&&y===null?a("change",null):a("change",{min:v,max:y})}function x(){s.value="",r.value="",o.value=!1,c.value=!1,a("change",null)}function b(){s.value=yt(t.dataMin,i.value),r.value=yt(t.dataMax,i.value),o.value=!1,c.value=!1,a("change",{min:t.dataMin,max:t.dataMax})}return l.watch(()=>t.currentRange,v=>{d(v)},{immediate:!0}),(v,y)=>(l.openBlock(),l.createElementBlock("div",Vh,[l.createElementVNode("div",Ph,[y[2]||(y[2]=l.createElementVNode("span",{class:"vpg-range-label"},"Data range:",-1)),l.createElementVNode("span",Ih,l.toDisplayString(h.value)+" – "+l.toDisplayString(u.value),1)]),l.createElementVNode("div",zh,[l.createElementVNode("div",_h,[y[3]||(y[3]=l.createElementVNode("label",{class:"vpg-input-label"},"From",-1)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=C=>s.value=C),type:"text",class:l.normalizeClass(["vpg-range-input",{"vpg-input-error":o.value}]),placeholder:l.unref(Mn)(i.value),onBlur:f,onKeyup:l.withKeys(f,["enter"])},null,42,Oh),[[l.vModelText,s.value]])]),y[5]||(y[5]=l.createElementVNode("span",{class:"vpg-input-separator"},"to",-1)),l.createElementVNode("div",Hh,[y[4]||(y[4]=l.createElementVNode("label",{class:"vpg-input-label"},"To",-1)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":y[1]||(y[1]=C=>r.value=C),type:"text",class:l.normalizeClass(["vpg-range-input",{"vpg-input-error":c.value}]),placeholder:l.unref(Mn)(i.value),onBlur:p,onKeyup:l.withKeys(p,["enter"])},null,42,Yh),[[l.vModelText,r.value]])])]),l.createElementVNode("div",Xh,[l.createElementVNode("button",{class:"vpg-range-btn",disabled:!g.value,onClick:x},[...y[6]||(y[6]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),l.createTextVNode(" Clear ",-1)])],8,Wh),l.createElementVNode("button",{class:"vpg-range-btn",onClick:b},[...y[7]||(y[7]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Full Range ",-1)])])]),g.value&&!o.value&&!c.value?(l.openBlock(),l.createElementBlock("div",$h,[y[9]||(y[9]=l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.createElementVNode("span",null,[y[8]||(y[8]=l.createTextVNode(" Showing dates ",-1)),s.value?(l.openBlock(),l.createElementBlock("strong",jh,"from "+l.toDisplayString(s.value),1)):l.createCommentVNode("",!0),l.createTextVNode(" "+l.toDisplayString(s.value&&r.value?" ":"")+" ",1),r.value?(l.openBlock(),l.createElementBlock("strong",Gh,"to "+l.toDisplayString(r.value),1)):l.createCommentVNode("",!0)])])):l.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-95f95fbd"]]),qh={class:"vpg-range-filter"},Zh={class:"vpg-range-info"},Kh={class:"vpg-range-bounds"},Jh={class:"vpg-slider-container"},Qh={class:"vpg-slider-track"},eu=["min","max","step","value"],tu=["min","max","step","value"],au={class:"vpg-range-inputs"},iu={class:"vpg-input-group"},su=["placeholder","value","step"],nu={class:"vpg-input-group"},ru=["placeholder","value","step"],ou={class:"vpg-range-actions"},lu=["disabled"],cu={key:0,class:"vpg-filter-summary"},du=Dt(l.defineComponent({__name:"NumericRangeFilter",props:{dataMin:{},dataMax:{},currentRange:{},numberFormat:{}},emits:["change"],setup(n,{emit:e}){var v,y;const t=n,a=e,i=l.ref(((v=t.currentRange)==null?void 0:v.min)??null),s=l.ref(((y=t.currentRange)==null?void 0:y.max)??null),r=l.computed(()=>{const C=t.dataMax-t.dataMin;return C===0?1:C<=1?.01:C<=10?.1:C<=100?1:C<=1e3?10:10**(Math.floor(Math.log10(C))-2)});function o(C){return C===null?"":kt(C,t.numberFormat??"us")}const c=l.computed(()=>i.value!==null||s.value!==null),d=l.computed(()=>i.value===null||t.dataMax===t.dataMin?0:(i.value-t.dataMin)/(t.dataMax-t.dataMin)*100),h=l.computed(()=>s.value===null||t.dataMax===t.dataMin?100:(s.value-t.dataMin)/(t.dataMax-t.dataMin)*100);function u(C){const w=C.target,N=Number.parseFloat(w.value);s.value!==null&&N>s.value?i.value=s.value:i.value=N}function g(C){const w=C.target,N=Number.parseFloat(w.value);i.value!==null&&N<i.value?s.value=i.value:s.value=N}function f(C){const w=C.target,N=w.value===""?null:Number.parseFloat(w.value);N!==null&&!Number.isNaN(N)?i.value=Math.max(t.dataMin,Math.min(N,s.value??t.dataMax)):N===null&&(i.value=null)}function p(C){const w=C.target,N=w.value===""?null:Number.parseFloat(w.value);N!==null&&!Number.isNaN(N)?s.value=Math.min(t.dataMax,Math.max(N,i.value??t.dataMin)):N===null&&(s.value=null)}function m(){i.value=null,s.value=null,b()}function x(){i.value=t.dataMin,s.value=t.dataMax,b()}function b(){i.value===null&&s.value===null?a("change",null):a("change",{min:i.value,max:s.value})}return l.watch(()=>t.currentRange,C=>{i.value=(C==null?void 0:C.min)??null,s.value=(C==null?void 0:C.max)??null},{immediate:!0}),(C,w)=>(l.openBlock(),l.createElementBlock("div",qh,[l.createElementVNode("div",Zh,[w[0]||(w[0]=l.createElementVNode("span",{class:"vpg-range-label"},"Data range:",-1)),l.createElementVNode("span",Kh,l.toDisplayString(o(n.dataMin))+" – "+l.toDisplayString(o(n.dataMax)),1)]),l.createElementVNode("div",Jh,[l.createElementVNode("div",Qh,[l.createElementVNode("div",{class:"vpg-slider-fill",style:l.normalizeStyle({left:`${d.value}%`,right:`${100-h.value}%`})},null,4)]),l.createElementVNode("input",{type:"range",class:"vpg-slider vpg-slider-min",min:n.dataMin,max:n.dataMax,step:r.value,value:i.value??n.dataMin,onInput:u,onChange:b},null,40,eu),l.createElementVNode("input",{type:"range",class:"vpg-slider vpg-slider-max",min:n.dataMin,max:n.dataMax,step:r.value,value:s.value??n.dataMax,onInput:g,onChange:b},null,40,tu)]),l.createElementVNode("div",au,[l.createElementVNode("div",iu,[w[1]||(w[1]=l.createElementVNode("label",{class:"vpg-input-label"},"Min",-1)),l.createElementVNode("input",{type:"number",class:"vpg-range-input",placeholder:o(n.dataMin),value:i.value??"",step:r.value,onInput:f,onChange:b},null,40,su)]),w[3]||(w[3]=l.createElementVNode("span",{class:"vpg-input-separator"},"to",-1)),l.createElementVNode("div",nu,[w[2]||(w[2]=l.createElementVNode("label",{class:"vpg-input-label"},"Max",-1)),l.createElementVNode("input",{type:"number",class:"vpg-range-input",placeholder:o(n.dataMax),value:s.value??"",step:r.value,onInput:p,onChange:b},null,40,ru)])]),l.createElementVNode("div",ou,[l.createElementVNode("button",{class:"vpg-range-btn",disabled:!c.value,onClick:m},[...w[4]||(w[4]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),l.createTextVNode(" Clear ",-1)])],8,lu),l.createElementVNode("button",{class:"vpg-range-btn",onClick:x},[...w[5]||(w[5]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Full Range ",-1)])])]),c.value?(l.openBlock(),l.createElementBlock("div",cu,[w[7]||(w[7]=l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.createElementVNode("span",null,[w[6]||(w[6]=l.createTextVNode(" Showing values ",-1)),l.createElementVNode("strong",null,l.toDisplayString(i.value!==null?`≥ ${o(i.value)}`:""),1),l.createTextVNode(" "+l.toDisplayString(i.value!==null&&s.value!==null?" and ":"")+" ",1),l.createElementVNode("strong",null,l.toDisplayString(s.value!==null?`≤ ${o(s.value)}`:""),1)])])):l.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-fbd61690"]]),hu={class:"vpg-filter-header"},uu={class:"vpg-filter-title"},gu={class:"vpg-filter-count"},fu={class:"vpg-sort-controls"},pu=["title"],mu=["title"],xu={key:0,class:"vpg-filter-tabs"},bu={class:"vpg-search-container"},vu={class:"vpg-values-list"},yu=["checked","onChange"],wu={key:0,class:"vpg-no-results"},zn=Dt(l.defineComponent({__name:"ColumnFilter",props:{columnId:{},columnName:{},stats:{},selectedValues:{},sortDirection:{},numericRange:{},dateRange:{},numberFormat:{},dateFormat:{}},emits:["filter","sort","close","rangeFilter","dateRangeFilter"],setup(n,{emit:e}){const t=n,a=e,i=l.ref(""),s=l.ref(),r=l.ref(),o=l.computed(()=>t.stats.type==="number"&&t.stats.numericMin!==void 0&&t.stats.numericMax!==void 0),c=l.computed(()=>t.stats.type==="date"&&t.stats.dateMin!==void 0&&t.stats.dateMax!==void 0),d=l.ref(t.numericRange||t.dateRange?"range":"values"),h=l.ref(t.numericRange??null),u=l.ref(t.dateRange??null),g=l.ref(new Set(t.selectedValues)),f=l.computed(()=>t.stats.nullCount>0),p=l.computed(()=>{const D=t.stats.uniqueValues;if(!i.value)return D;const _=i.value.toLowerCase();return D.filter(O=>O.toLowerCase().includes(_))}),m=l.computed(()=>{const D=[...p.value];return f.value&&(!i.value||"(blank)".includes(i.value.toLowerCase()))&&D.unshift("(blank)"),D}),x=l.computed(()=>c.value?"Old→New":o.value?"1→9":"A→Z"),b=l.computed(()=>c.value?"New→Old":o.value?"9→1":"Z→A"),v=l.computed(()=>c.value?"Sort Old to New":o.value?"Sort Low to High":"Sort A to Z"),y=l.computed(()=>c.value?"Sort New to Old":o.value?"Sort High to Low":"Sort Z to A");function C(D){g.value.has(D)?g.value.delete(D):g.value.add(D),g.value=new Set(g.value)}function w(){for(const D of m.value)g.value.add(D);g.value=new Set(g.value)}function N(){g.value.clear(),g.value=new Set(g.value)}function E(){g.value.size===0?a("filter",[]):a("filter",Array.from(g.value)),a("close")}function A(){a("sort",t.sortDirection==="asc"?null:"asc")}function B(){a("sort",t.sortDirection==="desc"?null:"desc")}function F(){g.value.clear(),g.value=new Set(g.value),a("filter",[]),a("close")}function M(D){h.value=D}function S(){a("rangeFilter",h.value),a("close")}function k(){h.value=null,a("rangeFilter",null),a("close")}function L(D){u.value=D}function T(){a("dateRangeFilter",u.value),a("close")}function I(){u.value=null,a("dateRangeFilter",null),a("close")}function R(D){d.value=D}function P(D){s.value&&!s.value.contains(D.target)&&a("close")}function H(D){D.key==="Escape"?a("close"):D.key==="Enter"&&D.ctrlKey&&E()}return l.onMounted(()=>{l.nextTick(()=>{var D;(D=r.value)==null||D.focus()}),document.addEventListener("mousedown",P),document.addEventListener("keydown",H)}),l.onUnmounted(()=>{document.removeEventListener("mousedown",P),document.removeEventListener("keydown",H)}),l.watch(()=>t.selectedValues,D=>{g.value=new Set(D)},{immediate:!0}),l.watch(()=>t.numericRange,D=>{h.value=D??null,D&&(d.value="range")},{immediate:!0}),l.watch(()=>t.dateRange,D=>{u.value=D??null,D&&(d.value="range")},{immediate:!0}),(D,_)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"dropdownRef",ref:s,class:"vpg-filter-dropdown"},[l.createElementVNode("div",hu,[l.createElementVNode("span",uu,l.toDisplayString(n.columnName),1),l.createElementVNode("span",gu,l.toDisplayString(n.stats.uniqueValues.length.toLocaleString())+" unique ",1)]),l.createElementVNode("div",fu,[l.createElementVNode("button",{class:l.normalizeClass(["vpg-sort-btn",{active:n.sortDirection==="asc"}]),title:v.value,onClick:A},[_[4]||(_[4]=l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})],-1)),l.createElementVNode("span",null,l.toDisplayString(x.value),1)],10,pu),l.createElementVNode("button",{class:l.normalizeClass(["vpg-sort-btn",{active:n.sortDirection==="desc"}]),title:y.value,onClick:B},[_[5]||(_[5]=l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"})],-1)),l.createElementVNode("span",null,l.toDisplayString(b.value),1)],10,mu)]),_[11]||(_[11]=l.createElementVNode("div",{class:"vpg-divider"},null,-1)),o.value||c.value?(l.openBlock(),l.createElementBlock("div",xu,[l.createElementVNode("button",{class:l.normalizeClass(["vpg-tab-btn",{active:d.value==="values"}]),onClick:_[0]||(_[0]=O=>R("values"))},[..._[6]||(_[6]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Values ",-1)])],2),l.createElementVNode("button",{class:l.normalizeClass(["vpg-tab-btn",{active:d.value==="range"}]),onClick:_[1]||(_[1]=O=>R("range"))},[..._[7]||(_[7]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Range ",-1)])],2)])):l.createCommentVNode("",!0),!o.value&&!c.value||d.value==="values"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createElementVNode("div",bu,[_[8]||(_[8]=l.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.withDirectives(l.createElementVNode("input",{ref_key:"searchInputRef",ref:r,"onUpdate:modelValue":_[2]||(_[2]=O=>i.value=O),type:"text",placeholder:"Search values...",class:"vpg-search-input"},null,512),[[l.vModelText,i.value]]),i.value?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-clear-search",onClick:_[3]||(_[3]=O=>i.value="")}," × ")):l.createCommentVNode("",!0)]),l.createElementVNode("div",{class:"vpg-bulk-actions"},[l.createElementVNode("button",{class:"vpg-bulk-btn",onClick:w},[..._[9]||(_[9]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Select All ",-1)])]),l.createElementVNode("button",{class:"vpg-bulk-btn",onClick:N},[..._[10]||(_[10]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),l.createTextVNode(" Clear All ",-1)])])]),l.createElementVNode("div",vu,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(m.value,O=>(l.openBlock(),l.createElementBlock("label",{key:O,class:l.normalizeClass(["vpg-value-item",{selected:g.value.has(O)}])},[l.createElementVNode("input",{type:"checkbox",checked:g.value.has(O),class:"vpg-value-checkbox",onChange:Z=>C(O)},null,40,yu),l.createElementVNode("span",{class:l.normalizeClass(["vpg-value-text",{"vpg-blank":O==="(blank)"}])},l.toDisplayString(O),3)],2))),128)),m.value.length===0?(l.openBlock(),l.createElementBlock("div",wu," No matching values ")):l.createCommentVNode("",!0)]),l.createElementVNode("div",{class:"vpg-filter-footer"},[l.createElementVNode("button",{class:"vpg-btn-clear",onClick:F}," Clear Filter "),l.createElementVNode("button",{class:"vpg-btn-apply",onClick:E}," Apply ")])],64)):o.value&&d.value==="range"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[l.createVNode(du,{"data-min":n.stats.numericMin,"data-max":n.stats.numericMax,"current-range":h.value,"number-format":n.numberFormat,onChange:M},null,8,["data-min","data-max","current-range","number-format"]),l.createElementVNode("div",{class:"vpg-filter-footer"},[l.createElementVNode("button",{class:"vpg-btn-clear",onClick:k}," Clear Filter "),l.createElementVNode("button",{class:"vpg-btn-apply",onClick:S}," Apply ")])],64)):c.value&&d.value==="range"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:3},[l.createVNode(Uh,{"data-min":n.stats.dateMin,"data-max":n.stats.dateMax,"current-range":u.value,"date-format":n.dateFormat,onChange:L},null,8,["data-min","data-max","current-range","date-format"]),l.createElementVNode("div",{class:"vpg-filter-footer"},[l.createElementVNode("button",{class:"vpg-btn-clear",onClick:I}," Clear Filter "),l.createElementVNode("button",{class:"vpg-btn-apply",onClick:T}," Apply ")])],64)):l.createCommentVNode("",!0)],512))}}),[["__scopeId","data-v-2567673f"]]),_n=(n,e,t)=>{if(!t)return!0;if(di(t)){const a=n.getValue(e);if(a==null||a==="")return!1;const i=typeof a=="number"?a:Number.parseFloat(String(a));if(Number.isNaN(i))return!1;const{min:s,max:r}=t;return!(s!==null&&i<s||r!==null&&i>r)}if(hi(t)){const a=n.getValue(e);if(a==null||a==="")return!1;const i=a instanceof Date?a:new Date(String(a));if(Number.isNaN(i.getTime()))return!1;const s=i.toISOString().split("T")[0],{min:r,max:o}=t;return!(r!==null&&s<r||o!==null&&s>o)}if(Array.isArray(t)&&t.length>0){const a=n.getValue(e),i=a==null||a===""?"(blank)":String(a);return t.includes(i)}return!0};function On(n){const{data:e,enableSorting:t=!0,enableFiltering:a=!0}=n,i=l.ref([]),s=l.ref([]),r=l.ref({}),o=l.ref(""),c=l.ref({}),d=l.computed(()=>e.value.length===0?[]:Object.keys(e.value[0]));function h(M){const S=`${M}-${e.value.length}`;return c.value[S]||(c.value[S]=En(e.value,M)),c.value[S]}function u(){c.value={}}const g=l.computed(()=>d.value.map(M=>{const S=h(M);return{id:M,accessorKey:M,header:M,cell:k=>Nn(k.getValue(),S.type),filterFn:_n,meta:{type:S.type,uniqueCount:S.uniqueValues.length}}})),f=si.useVueTable({get data(){return e.value},get columns(){return g.value},state:{get sorting(){return i.value},get columnFilters(){return s.value},get columnVisibility(){return r.value},get globalFilter(){return o.value}},onSortingChange:M=>{i.value=typeof M=="function"?M(i.value):M},onColumnFiltersChange:M=>{s.value=typeof M=="function"?M(s.value):M},getCoreRowModel:si.getCoreRowModel(),getSortedRowModel:t?si.getSortedRowModel():void 0,getFilteredRowModel:a?si.getFilteredRowModel():void 0,filterFns:{multiSelect:_n},enableSorting:t,enableFilters:a}),p=l.computed(()=>f.getFilteredRowModel().rows.length),m=l.computed(()=>e.value.length),x=l.computed(()=>s.value.map(M=>{const S=M.value;return S&&di(S)?{column:M.id,type:"range",range:S,dateRange:null,values:[]}:S&&hi(S)?{column:M.id,type:"dateRange",range:null,dateRange:S,values:[]}:{column:M.id,type:"values",values:Array.isArray(S)?S:[],range:null,dateRange:null}}));function b(M){const S=f.getColumn(M);if(!S)return!1;const k=S.getFilterValue();return k?di(k)||hi(k)?k.min!==null||k.max!==null:Array.isArray(k)&&k.length>0:!1}function v(M,S){const k=f.getColumn(M);k&&(k.setFilterValue(S.length===0?void 0:S),s.value=f.getState().columnFilters)}function y(M,S){const k=f.getColumn(M);k&&(!S||S.min===null&&S.max===null?k.setFilterValue(void 0):k.setFilterValue(S),s.value=f.getState().columnFilters)}function C(M){const S=f.getColumn(M);if(!S)return null;const k=S.getFilterValue();return k&&di(k)?k:null}function w(M,S){const k=f.getColumn(M);k&&(!S||S.min===null&&S.max===null?k.setFilterValue(void 0):k.setFilterValue(S),s.value=f.getState().columnFilters)}function N(M){const S=f.getColumn(M);if(!S)return null;const k=S.getFilterValue();return k&&hi(k)?k:null}function E(){f.resetColumnFilters(),o.value="",s.value=[]}function A(M){const S=f.getColumn(M);if(!S)return[];const k=S.getFilterValue();return Array.isArray(k)?k:[]}function B(M){const S=i.value.find(k=>k.id===M);S?S.desc?i.value=[]:i.value=[{id:M,desc:!0}]:i.value=[{id:M,desc:!1}]}function F(M){const S=i.value.find(k=>k.id===M);return S?S.desc?"desc":"asc":null}return l.watch(e,()=>{u()}),{table:f,sorting:i,columnFilters:s,columnVisibility:r,globalFilter:o,columnKeys:d,filteredRowCount:p,totalRowCount:m,activeFilters:x,getColumnStats:h,clearStatsCache:u,hasActiveFilter:b,setColumnFilter:v,getColumnFilterValues:A,clearAllFilters:E,toggleSort:B,getSortDirection:F,setNumericRangeFilter:y,getNumericRangeFilter:C,setDateRangeFilter:w,getDateRangeFilter:N}}function Hn(n,e,t){_l(n,e,t)}function Yn(n,e,t,a,i){Ol(n,e,t,a,i)}function Xn(n,e,t){Hl(n,e,t)}function Wn(n,e,t){return Yl(n,e,t)}function ku(n,e={}){const t=l.ref(e.pageSize??50),a=l.ref(e.currentPage??1),i=l.computed(()=>Math.max(1,Math.ceil(n.value.length/t.value))),s=l.computed(()=>{const p=(a.value-1)*t.value,m=p+t.value;return n.value.slice(p,m)}),r=l.computed(()=>(a.value-1)*t.value+1),o=l.computed(()=>Math.min(a.value*t.value,n.value.length));function c(p){a.value=Math.max(1,Math.min(p,i.value))}function d(){a.value<i.value&&a.value++}function h(){a.value>1&&a.value--}function u(){a.value=1}function g(){a.value=i.value}function f(p){t.value=p,a.value=1}return{pageSize:t,currentPage:a,totalPages:i,paginatedData:s,startIndex:r,endIndex:o,goToPage:c,nextPage:d,prevPage:h,firstPage:u,lastPage:g,setPageSize:f}}function Cu(n,e){const t=l.ref(""),a=l.ref(!1),i=l.computed(()=>{if(!t.value.trim())return n.value;const r=a.value?t.value.trim():t.value.trim().toLowerCase();return n.value.filter(o=>{for(const c of e.value){const d=o[c];if(d==null)continue;if((a.value?String(d):String(d).toLowerCase()).includes(r))return!0}return!1})});function s(){t.value=""}return{searchTerm:t,caseSensitive:a,filteredData:i,clearSearch:s}}function Su(n){const e=l.ref(new Set),t=l.computed(()=>Array.from(e.value).sort((f,p)=>f-p).map(f=>n.value[f]).filter(Boolean)),a=l.computed(()=>n.value.length>0&&e.value.size===n.value.length),i=l.computed(()=>e.value.size>0&&e.value.size<n.value.length);function s(f){e.value.has(f)?e.value.delete(f):e.value.add(f),e.value=new Set(e.value)}function r(f){e.value.add(f),e.value=new Set(e.value)}function o(f){e.value.delete(f),e.value=new Set(e.value)}function c(){e.value=new Set(n.value.map((f,p)=>p))}function d(){e.value=new Set}function h(){a.value?d():c()}function u(f){return e.value.has(f)}function g(f,p){const m=Math.min(f,p),x=Math.max(f,p);for(let b=m;b<=x;b++)e.value.add(b);e.value=new Set(e.value)}return{selectedRowIndices:e,selectedRows:t,allSelected:a,someSelected:i,toggleRow:s,selectRow:r,deselectRow:o,selectAll:c,deselectAll:d,toggleAll:h,isSelected:u,selectRange:g}}function Au(n,e=60,t=600){const a=l.ref({...n.value}),i=l.ref(!1),s=l.ref(null);function r(d,h){i.value=!0,s.value=d;const u=h.clientX,g=a.value[d]||150,f=m=>{const x=m.clientX-u,b=Math.max(e,Math.min(t,g+x));a.value={...a.value,[d]:b}},p=()=>{i.value=!1,s.value=null,document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",p)};document.addEventListener("mousemove",f),document.addEventListener("mouseup",p)}function o(d){n.value[d]&&(a.value={...a.value,[d]:n.value[d]})}function c(){a.value={...n.value}}return{columnWidths:a,isResizing:i,resizingColumn:s,startResize:r,resetColumnWidth:o,resetAllWidths:c}}const Eu=l.ref(null),Ct=l.ref(!1),et=l.ref(ec());let Ui=null;async function Nu(n){Eu.value=n,Ui=ql(n),et.value=await Ui,Ui=null,et.value.isValid?et.value.type!=="free"&&console.info(`[TinyPivot] Pro license activated (${et.value.type})`):console.warn("[TinyPivot] License validation failed. Check the console for environment details. Running in free mode.")}async function Mu(n){const e=await Ql(n);return e?(Ct.value=!0,et.value=e,console.info("[TinyPivot] Demo mode enabled - all Pro features unlocked for evaluation"),!0):(console.warn("[TinyPivot] Demo mode activation failed - invalid secret"),!1)}function Lu(n){Zl()}function Oa(){const n=l.computed(()=>Ct.value),e=l.computed(()=>Ct.value||sc(et.value)),t=l.computed(()=>Ct.value||tc(et.value)),a=l.computed(()=>Ct.value||et.value.features.advancedAggregations),i=l.computed(()=>Ct.value||et.value.features.percentageMode),s=l.computed(()=>Ct.value||ac(et.value)),r=l.computed(()=>Ct.value||ic(et.value)),o=l.computed(()=>nc(et.value,Ct.value));function c(d){return e.value?!0:(rc(d),!1)}return{licenseInfo:l.computed(()=>et.value),isDemo:n,isPro:e,canUsePivot:t,canUseAdvancedAggregations:a,canUsePercentageMode:i,canUseCharts:s,canUseAIAnalyst:r,showWatermark:o,requirePro:c}}function $n(n){const{canUsePivot:e,requirePro:t}=Oa(),a=l.ref([]),i=l.ref([]),s=l.ref([]),r=l.ref(!0),o=l.ref(!0),c=l.ref(In()),d=l.ref(null),h=l.computed(()=>gc(n.value)),u=l.computed(()=>fc(h.value,a.value,i.value,s.value)),g=l.computed(()=>Vn({rowFields:a.value,columnFields:i.value,valueFields:s.value,showRowTotals:r.value,showColumnTotals:o.value})),f=l.computed(()=>!g.value||!e.value?null:pc(n.value,{rowFields:a.value,columnFields:i.value,valueFields:s.value,showRowTotals:r.value,showColumnTotals:o.value,calculatedFields:c.value}));function p(F){a.value.includes(F)||(a.value=[...a.value,F])}function m(F){a.value=a.value.filter(M=>M!==F)}function x(F){i.value.includes(F)||(i.value=[...i.value,F])}function b(F){i.value=i.value.filter(M=>M!==F)}function v(F,M="sum"){M!=="sum"&&!t(`${M} aggregation`)||s.value.some(S=>S.field===F&&S.aggregation===M)||(s.value=[...s.value,{field:F,aggregation:M}])}function y(F,M){M?s.value=s.value.filter(S=>!(S.field===F&&S.aggregation===M)):s.value=s.value.filter(S=>S.field!==F)}function C(F,M,S){s.value=s.value.map(k=>k.field===F&&k.aggregation===M?{...k,aggregation:S}:k)}function w(){a.value=[],i.value=[],s.value=[]}function N(F,M){if(F.area===M.area){if(F.area==="row"){const S=[...a.value],[k]=S.splice(F.index,1);S.splice(M.index,0,k),a.value=S}else if(F.area==="column"){const S=[...i.value],[k]=S.splice(F.index,1);S.splice(M.index,0,k),i.value=S}}}function E(){if(!t("Pivot Table - Auto Suggest")||h.value.length===0)return;const F=h.value.filter(S=>!S.isNumeric&&S.uniqueCount<50),M=h.value.filter(S=>S.isNumeric);F.length>0&&M.length>0&&(a.value=[F[0].field],s.value=[{field:M[0].field,aggregation:"sum"}])}function A(F){const M=c.value.findIndex(S=>S.id===F.id);M>=0?c.value=[...c.value.slice(0,M),F,...c.value.slice(M+1)]:c.value=[...c.value,F],_a(c.value)}function B(F){c.value=c.value.filter(M=>M.id!==F),s.value=s.value.filter(M=>M.field!==`calc:${F}`),_a(c.value)}return l.watch(n,F=>{if(F.length===0)return;const M=Object.keys(F[0]),S=xc(M);if(S!==d.value){d.value=S;const k=vc(S);if(k&&Gi(k,M))a.value=k.rowFields,i.value=k.columnFields,s.value=k.valueFields,r.value=k.showRowTotals,o.value=k.showColumnTotals,k.calculatedFields&&(c.value=k.calculatedFields);else{const L={rowFields:a.value,columnFields:i.value,valueFields:s.value,showRowTotals:r.value,showColumnTotals:o.value};Gi(L,M)||w()}}else{const k={rowFields:a.value,columnFields:i.value,valueFields:s.value,showRowTotals:r.value,showColumnTotals:o.value};Gi(k,M)||w()}},{immediate:!0}),l.watch([a,i,s,r,o,c],()=>{if(!d.value)return;const F={rowFields:a.value,columnFields:i.value,valueFields:s.value,showRowTotals:r.value,showColumnTotals:o.value,calculatedFields:c.value};bc(d.value,F)},{deep:!0}),{rowFields:a,columnFields:i,valueFields:s,showRowTotals:r,showColumnTotals:o,calculatedFields:c,availableFields:h,unassignedFields:u,isConfigured:g,pivotResult:f,addRowField:p,removeRowField:m,addColumnField:x,removeColumnField:b,addValueField:v,removeValueField:y,updateValueFieldAggregation:C,clearConfig:w,moveField:N,autoSuggestConfig:E,addCalculatedField:A,removeCalculatedField:B}}const Bu={class:"vpg-pivot-config"},Fu={class:"vpg-config-header"},Tu={class:"vpg-header-actions"},Ru={key:0,class:"vpg-assigned-section"},Du={class:"vpg-assigned-list"},Vu=["title","onDragstart"],Pu={class:"vpg-item-main"},Iu={class:"vpg-item-name"},zu={class:"vpg-item-actions"},_u=["title","onClick"],Ou=["value","onChange"],Hu=["value","disabled"],Yu=["onClick"],Xu={class:"vpg-unassigned-section"},Wu={class:"vpg-section-header"},$u={class:"vpg-section-label"},ju={class:"vpg-count"},Gu={class:"vpg-field-search"},Uu={class:"vpg-field-list"},qu=["title","onDragstart"],Zu={class:"vpg-field-name"},Ku=["onClick"],Ju=["onClick"],Qu={key:1,class:"vpg-unique-count"},eg={key:0,class:"vpg-empty-hint"},tg={key:1,class:"vpg-empty-hint"},ag={class:"vpg-options-section"},ig={class:"vpg-option-toggle"},sg=["checked"],jn=Dt(l.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(n,{emit:e}){const t=n,a=e,{canUseAdvancedAggregations:i}=Oa(),s=hc;function r(S){return S!=="sum"}function o(S){return!r(S)||i.value}const c=l.ref(!1),d=l.ref(null),h=l.computed(()=>t.availableFields.filter(S=>S.isNumeric).map(S=>S.field));function u(S){d.value=S||null,c.value=!0}function g(S){d.value?a("updateCalculatedField",S):a("addCalculatedField",S),c.value=!1,d.value=null}function f(S){a("update:showRowTotals",S),a("update:showColumnTotals",S)}const p=l.computed(()=>t.calculatedFields?t.calculatedFields.map(S=>({field:`calc:${S.id}`,type:"number",uniqueCount:0,isNumeric:!0,isCalculated:!0,calcId:S.id,calcName:S.name,calcFormula:S.formula})):[]),m=l.computed(()=>[...t.availableFields.map(S=>({...S,isCalculated:!1})),...p.value]),x=l.computed(()=>{const S=new Set(t.rowFields),k=new Set(t.columnFields),L=new Map(t.valueFields.map(T=>[T.field,T]));return m.value.filter(T=>S.has(T.field)||k.has(T.field)||L.has(T.field)).map(T=>({...T,assignedTo:S.has(T.field)?"row":k.has(T.field)?"column":"value",valueConfig:L.get(T.field)}))}),b=l.computed(()=>{const S=new Set(t.rowFields),k=new Set(t.columnFields),L=new Set(t.valueFields.map(T=>T.field));return m.value.filter(T=>!S.has(T.field)&&!k.has(T.field)&&!L.has(T.field))}),v=l.computed(()=>x.value.length),y=l.ref(""),C=l.computed(()=>{if(!y.value.trim())return b.value;const S=y.value.toLowerCase().trim();return b.value.filter(k=>{const L=k.field.toLowerCase(),T=k.isCalculated&&k.calcName?k.calcName.toLowerCase():"";return L.includes(S)||T.includes(S)})});function w(S,k){if(k)return"ƒ";switch(S){case"number":return"#";case"date":return"📅";case"boolean":return"✓";default:return"Aa"}}function N(S){return S.isCalculated&&S.calcName?S.calcName:S.field}function E(S,k){var L;(L=k.dataTransfer)==null||L.setData("text/plain",S),k.dataTransfer.effectAllowed="move",a("dragStart",S,k)}function A(){a("dragEnd")}function B(S,k,L){if(!o(L)){console.warn(`[TinyPivot] "${L}" aggregation requires a Pro license. Visit https://tiny-pivot.com/#pricing to upgrade.`);return}a("updateAggregation",S,k,L)}function F(S,k){k==="row"?(a("removeRowField",S),a("addColumnField",S)):(a("removeColumnField",S),a("addRowField",S))}function M(S,k,L){k==="row"?a("removeRowField",S):k==="column"?a("removeColumnField",S):L&&a("removeValueField",S,L.aggregation)}return(S,k)=>(l.openBlock(),l.createElementBlock("div",Bu,[l.createElementVNode("div",Fu,[k[8]||(k[8]=l.createElementVNode("h3",{class:"vpg-config-title"},[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 10h16M4 14h16M4 18h16"})]),l.createTextVNode(" Fields ")],-1)),l.createElementVNode("div",Tu,[v.value>0?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-action-btn vpg-clear-btn",title:"Clear all",onClick:k[0]||(k[0]=L=>a("clearConfig"))},[...k[7]||(k[7]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):l.createCommentVNode("",!0)])]),v.value>0?(l.openBlock(),l.createElementBlock("div",Ru,[k[10]||(k[10]=l.createElementVNode("div",{class:"vpg-section-label"}," Active ",-1)),l.createElementVNode("div",Du,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(x.value,L=>{var T;return l.openBlock(),l.createElementBlock("div",{key:L.field,class:l.normalizeClass(["vpg-assigned-item",[`vpg-type-${L.assignedTo}`,{"vpg-type-calc":L.isCalculated}]]),title:L.isCalculated?L.calcFormula:L.field,draggable:"true",onDragstart:I=>E(L.field,I),onDragend:A},[l.createElementVNode("div",Pu,[l.createElementVNode("span",{class:l.normalizeClass(["vpg-item-badge",[L.assignedTo,{calc:L.isCalculated}]])},l.toDisplayString(L.isCalculated?"ƒ":L.assignedTo==="row"?"R":L.assignedTo==="column"?"C":l.unref(Fn)(((T=L.valueConfig)==null?void 0:T.aggregation)||"sum")),3),l.createElementVNode("span",Iu,l.toDisplayString(N(L)),1)]),l.createElementVNode("div",zu,[L.assignedTo==="row"||L.assignedTo==="column"?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-toggle-btn",title:L.assignedTo==="row"?"Move to Columns":"Move to Rows",onClick:l.withModifiers(I=>F(L.field,L.assignedTo),["stop"])},[...k[9]||(k[9]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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,_u)):l.createCommentVNode("",!0),L.assignedTo==="value"&&L.valueConfig?(l.openBlock(),l.createElementBlock("select",{key:1,class:"vpg-agg-select",value:L.valueConfig.aggregation,onChange:I=>B(L.field,L.valueConfig.aggregation,I.target.value),onClick:k[1]||(k[1]=l.withModifiers(()=>{},["stop"]))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(s),I=>(l.openBlock(),l.createElementBlock("option",{key:I.value,value:I.value,disabled:r(I.value)&&!l.unref(i)},l.toDisplayString(I.symbol)+" "+l.toDisplayString(I.label)+l.toDisplayString(r(I.value)&&!l.unref(i)?" (Pro)":""),9,Hu))),128))],40,Ou)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:"vpg-remove-btn",title:"Remove",onClick:l.withModifiers(I=>M(L.field,L.assignedTo,L.valueConfig),["stop"])}," × ",8,Yu)])],42,Vu)}),128))])])):l.createCommentVNode("",!0),l.createElementVNode("div",Xu,[l.createElementVNode("div",Wu,[l.createElementVNode("div",$u,[k[11]||(k[11]=l.createTextVNode(" Available ",-1)),l.createElementVNode("span",ju,l.toDisplayString(b.value.length),1)])]),l.createElementVNode("div",Gu,[k[13]||(k[13]=l.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":k[2]||(k[2]=L=>y.value=L),type:"text",placeholder:"Search fields...",class:"vpg-search-input"},null,512),[[l.vModelText,y.value]]),y.value?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-clear-search",onClick:k[3]||(k[3]=L=>y.value="")},[...k[12]||(k[12]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):l.createCommentVNode("",!0)]),l.createElementVNode("div",Uu,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(C.value,L=>(l.openBlock(),l.createElementBlock("div",{key:L.field,class:l.normalizeClass(["vpg-field-item",{"vpg-is-numeric":L.isNumeric&&!L.isCalculated,"vpg-is-calculated":L.isCalculated}]),title:L.isCalculated?L.calcFormula:L.field,draggable:"true",onDragstart:T=>E(L.field,T),onDragend:A},[l.createElementVNode("span",{class:l.normalizeClass(["vpg-field-type-icon",{"vpg-calc-type":L.isCalculated}])},l.toDisplayString(w(L.type,L.isCalculated)),3),l.createElementVNode("span",Zu,l.toDisplayString(N(L)),1),L.isCalculated?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("button",{class:"vpg-field-edit",title:"Edit calculated field",onClick:l.withModifiers(T=>{var I;return u((I=n.calculatedFields)==null?void 0:I.find(R=>R.id===L.calcId))},["stop"])}," ✎ ",8,Ku),l.createElementVNode("button",{class:"vpg-field-delete",title:"Delete calculated field",onClick:l.withModifiers(T=>L.calcId&&a("removeCalculatedField",L.calcId),["stop"])}," × ",8,Ju)],64)):(l.openBlock(),l.createElementBlock("span",Qu,l.toDisplayString(L.uniqueCount),1))],42,qu))),128)),C.value.length===0&&y.value?(l.openBlock(),l.createElementBlock("div",eg,' No fields match "'+l.toDisplayString(y.value)+'" ',1)):b.value.length===0?(l.openBlock(),l.createElementBlock("div",tg," All fields assigned ")):l.createCommentVNode("",!0)])]),l.createElementVNode("div",ag,[l.createElementVNode("label",ig,[l.createElementVNode("input",{type:"checkbox",checked:n.showRowTotals,onChange:k[4]||(k[4]=L=>f(L.target.checked))},null,40,sg),k[14]||(k[14]=l.createElementVNode("span",null,"Totals",-1))]),l.createElementVNode("button",{class:"vpg-calc-btn",title:"Add calculated field (e.g. Profit Margin %)",onClick:k[5]||(k[5]=L=>u())},[...k[15]||(k[15]=[l.createElementVNode("span",{class:"vpg-calc-icon"},"ƒ",-1),l.createElementVNode("span",null,"+ Calc",-1)])])]),l.createVNode(Id,{show:c.value,"available-fields":h.value,"existing-field":d.value,onClose:k[6]||(k[6]=L=>{c.value=!1,d.value=null}),onSave:g},null,8,["show","available-fields","existing-field"])]))}}),[["__scopeId","data-v-e94fe863"]]),ng={key:0,class:"vpg-toast"},rg={class:"vpg-skeleton-header"},og={class:"vpg-header-right"},lg={class:"vpg-filter-text"},cg={key:0,class:"vpg-filter-count"},dg={key:0,class:"vpg-filter-tooltip"},hg={class:"vpg-tooltip-column"},ug={class:"vpg-tooltip-values"},gg={key:0,class:"vpg-tooltip-value vpg-range-value"},fg={key:0,class:"vpg-tooltip-more"},pg={key:0,class:"vpg-tooltip-summary"},mg={key:1,class:"vpg-config-summary"},xg={class:"vpg-summary-badge vpg-rows"},bg={class:"vpg-summary-badge vpg-cols"},vg={class:"vpg-summary-badge vpg-vals"},yg={key:2,class:"vpg-font-size-toggle"},wg=["onClick"],kg={key:0,class:"vpg-pro-required"},Cg={class:"vpg-config-bar"},Sg={class:"vpg-zone-chips"},Ag=["onDragstart","onDragover","onDrop"],Eg={class:"vpg-mini-name"},Ng=["onClick"],Mg={key:0,class:"vpg-zone-hint"},Lg={class:"vpg-zone-chips"},Bg=["onDragstart","onDragover","onDrop"],Fg={class:"vpg-mini-name"},Tg=["onClick"],Rg={key:0,class:"vpg-zone-hint"},Dg={class:"vpg-zone-chips"},Vg={class:"vpg-agg-symbol"},Pg={class:"vpg-mini-name"},Ig=["onClick"],zg={key:0,class:"vpg-zone-hint"},_g={key:0,class:"vpg-placeholder"},Og={class:"vpg-placeholder-content"},Hg={class:"vpg-placeholder-text"},Yg={key:1,class:"vpg-table-container"},Xg={class:"vpg-pivot-table"},Wg=["rowspan"],$g={class:"vpg-header-content"},jg=["colspan","onClick"],Gg={class:"vpg-header-content"},Ug=["rowspan"],qg=["onMousedown","onMouseenter"],Zg={key:0,class:"vpg-data-cell vpg-total-cell"},Kg={key:0,class:"vpg-totals-row"},Jg=["colspan"],Qg={key:0,class:"vpg-data-cell vpg-grand-total-cell"},ef={key:2,class:"vpg-skeleton-footer"},tf={class:"vpg-footer-info"},af={key:0,class:"vpg-selection-stats"},sf={class:"vpg-stat"},nf={class:"vpg-stat-value"},rf={class:"vpg-stat"},of={class:"vpg-stat-value"},lf={class:"vpg-stat"},cf={class:"vpg-stat-value"},df={key:1,href:"https://tiny-pivot.com",target:"_blank",rel:"noopener"},Gn=Dt(l.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(n,{emit:e}){const t=n,a=e;function i(ae){var G;if(ae.startsWith("calc:")){const de=ae.replace("calc:",""),K=(G=t.calculatedFields)==null?void 0:G.find(ne=>ne.id===de);return(K==null?void 0:K.name)||ae}return ae}function s(ae){return ae.startsWith("calc:")}const{showWatermark:r,canUsePivot:o,isDemo:c}=Oa(),d=l.ref(null),h=l.ref(null),u=l.ref(null),g=l.ref(t.fontSize||"xs"),f=[{value:"xs",label:"S"},{value:"sm",label:"M"},{value:"base",label:"L"}],p=l.computed(()=>t.activeFilters&&t.activeFilters.length>0),m=l.computed(()=>!t.activeFilters||t.activeFilters.length===0?"":t.activeFilters.map(G=>G.column).join(", ")),x=l.computed(()=>!t.activeFilters||t.activeFilters.length===0?[]:t.activeFilters.map(ae=>{if(ae.isRange&&ae.displayText)return{column:ae.column,displayText:ae.displayText,isRange:!0,values:[],remaining:0};const G=ae.values||[],de=5,K=G.slice(0,de),ne=G.length-de;return{column:ae.column,values:K,remaining:ne>0?ne:0,isRange:!1}})),b=l.ref(!1),v=l.ref("asc"),y=l.ref("row");function C(ae="row"){y.value===ae?v.value=v.value==="asc"?"desc":"asc":(y.value=ae,v.value="asc")}const w=l.computed(()=>{if(!t.pivotResult)return[];const ae=t.pivotResult.rowHeaders.map((K,ne)=>ne),G=t.pivotResult.rowHeaders,de=t.pivotResult.data;return ae.sort((K,ne)=>{var xe,Ve,xt,Je,Ge,st;let ce;if(y.value==="row"){const Ue=((xe=G[K])==null?void 0:xe.join(" / "))||"",Ta=((Ve=G[ne])==null?void 0:Ve.join(" / "))||"";ce=Ue.localeCompare(Ta,void 0,{numeric:!0,sensitivity:"base"})}else{const Ue=y.value,Ta=((Je=(xt=de[K])==null?void 0:xt[Ue])==null?void 0:Je.value)??null,jt=((st=(Ge=de[ne])==null?void 0:Ge[Ue])==null?void 0:st.value)??null;Ta===null&&jt===null?ce=0:Ta===null?ce=1:jt===null?ce=-1:ce=Ta-jt}return v.value==="asc"?ce:-ce}),ae}),N=l.computed(()=>{if(!t.pivotResult||t.pivotResult.headers.length===0)return[t.valueFields.map(G=>({label:s(G.field)?`${i(G.field)} (${za(G.aggregation)})`:`${G.field} (${za(G.aggregation)})`,colspan:1}))];const ae=[];for(let G=0;G<t.pivotResult.headers.length;G++){const de=t.pivotResult.headers[G],K=[];let ne=0;for(;ne<de.length;){const ce=de[ne];let xe=1;for(;ne+xe<de.length&&de[ne+xe]===ce;)xe++;K.push({label:ce,colspan:xe}),ne+=xe}ae.push(K)}return ae}),E=l.ref(null),A=l.ref(null),B=l.ref(null),F=l.ref(!1),M=l.ref(!1),S=l.ref(""),k=l.computed(()=>!A.value||!B.value?null:{minRow:Math.min(A.value.row,B.value.row),maxRow:Math.max(A.value.row,B.value.row),minCol:Math.min(A.value.col,B.value.col),maxCol:Math.max(A.value.col,B.value.col)});function L(ae,G,de){de.preventDefault(),de.shiftKey&&E.value?B.value={row:ae,col:G}:(E.value={row:ae,col:G},A.value={row:ae,col:G},B.value={row:ae,col:G},F.value=!0)}function T(ae,G){F.value&&(B.value={row:ae,col:G})}function I(){F.value=!1}function R(ae,G){var xe,Ve;if(!k.value)return((xe=E.value)==null?void 0:xe.row)===ae&&((Ve=E.value)==null?void 0:Ve.col)===G;const{minRow:de,maxRow:K,minCol:ne,maxCol:ce}=k.value;return ae>=de&&ae<=K&&G>=ne&&G<=ce}function P(){var xe;if(!k.value||!t.pivotResult)return;const{minRow:ae,maxRow:G,minCol:de,maxCol:K}=k.value,ne=[];for(let Ve=ae;Ve<=G;Ve++){const xt=w.value[Ve];if(xt===void 0)continue;const Je=[];for(let Ge=de;Ge<=K;Ge++){const st=(xe=t.pivotResult.data[xt])==null?void 0:xe[Ge];Je.push((st==null?void 0:st.formattedValue)??"")}ne.push(Je.join(" "))}const ce=ne.join(`
317
+ `);navigator.clipboard.writeText(ce).then(()=>{const Ve=(G-ae+1)*(K-de+1);S.value=`Copied ${Ve} cell${Ve>1?"s":""}`,M.value=!0,setTimeout(()=>{M.value=!1},2e3)}).catch(Ve=>{console.error("Copy failed:",Ve)})}function H(ae){if(k.value){if((ae.ctrlKey||ae.metaKey)&&ae.key==="c"){ae.preventDefault(),P();return}ae.key==="Escape"&&(E.value=null,A.value=null,B.value=null)}}const D=l.computed(()=>{var xt;if(!k.value||!t.pivotResult)return null;const{minRow:ae,maxRow:G,minCol:de,maxCol:K}=k.value,ne=[];let ce=0;for(let Je=ae;Je<=G;Je++){const Ge=w.value[Je];if(Ge!==void 0)for(let st=de;st<=K;st++){const Ue=(xt=t.pivotResult.data[Ge])==null?void 0:xt[st];ce++,(Ue==null?void 0:Ue.value)!==null&&(Ue==null?void 0:Ue.value)!==void 0&&typeof Ue.value=="number"&&ne.push(Ue.value)}}if(ce<=1)return null;const xe=ne.reduce((Je,Ge)=>Je+Ge,0),Ve=ne.length>0?xe/ne.length:0;return{count:ce,numericCount:ne.length,sum:xe,avg:Ve}});function _(ae){return Math.abs(ae)>=1e6?`${(ae/1e6).toFixed(2)}M`:Math.abs(ae)>=1e3?`${(ae/1e3).toFixed(2)}K`:ae.toFixed(2)}l.onMounted(()=>{document.addEventListener("mouseup",I),document.addEventListener("keydown",H)}),l.onUnmounted(()=>{document.removeEventListener("mouseup",I),document.removeEventListener("keydown",H)});function O(ae,G){G.preventDefault(),G.dataTransfer.dropEffect="move",d.value=ae}function Z(){d.value=null}function U(ae,G){var ne;G.preventDefault();const de=(ne=G.dataTransfer)==null?void 0:ne.getData("text/plain");if(!de||de.startsWith("reorder:")){d.value=null;return}t.rowFields.includes(de)&&a("removeRowField",de),t.columnFields.includes(de)&&a("removeColumnField",de);const K=t.valueFields.find(ce=>ce.field===de);switch(K&&a("removeValueField",de,K.aggregation),ae){case"row":a("addRowField",de);break;case"column":a("addColumnField",de);break;case"value":a("addValueField",de,"sum");break}d.value=null}function W(ae,G,de){h.value={zone:ae,index:G},de.dataTransfer.effectAllowed="move",de.dataTransfer.setData("text/plain",`reorder:${ae}:${G}`),requestAnimationFrame(()=>{d.value=null})}function $(){h.value=null,u.value=null}function Y(ae,G,de){de.preventDefault(),h.value&&h.value.zone===ae&&(de.dataTransfer.dropEffect="move",u.value={zone:ae,index:G})}function te(){u.value=null}function re(ae,G,de){if(de.preventDefault(),de.stopPropagation(),!h.value||h.value.zone!==ae)return;const K=h.value.index;if(K===G){h.value=null,u.value=null;return}const ne=ae==="row"?[...t.rowFields]:[...t.columnFields],[ce]=ne.splice(K,1);ne.splice(G,0,ce),a(ae==="row"?"reorderRowFields":"reorderColumnFields",ne),h.value=null,u.value=null}function ee(ae,G){var de,K;return((de=h.value)==null?void 0:de.zone)===ae&&((K=h.value)==null?void 0:K.index)===G}function me(ae,G){var de,K;return((de=u.value)==null?void 0:de.zone)===ae&&((K=u.value)==null?void 0:K.index)===G}const Re=l.ref(180),ye=l.ref(80),De=l.computed(()=>{const ae=Math.max(t.rowFields.length,1);return Math.max(Re.value/ae,80)});function mt(ae){return ae*De.value}return(ae,G)=>{var de;return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["vpg-pivot-skeleton",[`vpg-font-${g.value}`,{"vpg-is-dragging":n.draggingField}]])},[l.createVNode(l.Transition,{name:"vpg-toast"},{default:l.withCtx(()=>[M.value?(l.openBlock(),l.createElementBlock("div",ng,[G[9]||(G[9]=l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)),l.createTextVNode(" "+l.toDisplayString(S.value),1)])):l.createCommentVNode("",!0)]),_:1}),l.createElementVNode("div",rg,[G[13]||(G[13]=l.createElementVNode("div",{class:"vpg-skeleton-title"},[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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"})]),l.createElementVNode("span",null,"Pivot Table")],-1)),l.createElementVNode("div",og,[p.value?(l.openBlock(),l.createElementBlock("div",{key:0,class:"vpg-filter-indicator",onMouseenter:G[0]||(G[0]=K=>b.value=!0),onMouseleave:G[1]||(G[1]=K=>b.value=!1)},[G[12]||(G[12]=l.createElementVNode("svg",{class:"vpg-filter-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.createElementVNode("span",lg,[G[10]||(G[10]=l.createTextVNode(" Filtered: ",-1)),l.createElementVNode("strong",null,l.toDisplayString(m.value),1),n.filteredRowCount!==void 0&&n.totalRowCount!==void 0?(l.openBlock(),l.createElementBlock("span",cg," ("+l.toDisplayString(n.filteredRowCount.toLocaleString())+" of "+l.toDisplayString(n.totalRowCount.toLocaleString())+" rows) ",1)):l.createCommentVNode("",!0)]),b.value?(l.openBlock(),l.createElementBlock("div",dg,[G[11]||(G[11]=l.createElementVNode("div",{class:"vpg-tooltip-header"}," Active Filters ",-1)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(x.value,K=>(l.openBlock(),l.createElementBlock("div",{key:K.column,class:"vpg-tooltip-filter"},[l.createElementVNode("div",hg,l.toDisplayString(K.column),1),l.createElementVNode("div",ug,[K.isRange?(l.openBlock(),l.createElementBlock("span",gg,l.toDisplayString(K.displayText),1)):(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(K.values,(ne,ce)=>(l.openBlock(),l.createElementBlock("span",{key:ce,class:"vpg-tooltip-value"},l.toDisplayString(ne),1))),128)),K.remaining>0?(l.openBlock(),l.createElementBlock("span",fg," +"+l.toDisplayString(K.remaining)+" more ",1)):l.createCommentVNode("",!0)],64))])]))),128)),n.filteredRowCount!==void 0&&n.totalRowCount!==void 0?(l.openBlock(),l.createElementBlock("div",pg," Showing "+l.toDisplayString(n.filteredRowCount.toLocaleString())+" of "+l.toDisplayString(n.totalRowCount.toLocaleString())+" rows ",1)):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)],32)):l.createCommentVNode("",!0),n.isConfigured?(l.openBlock(),l.createElementBlock("div",mg,[l.createElementVNode("span",xg,l.toDisplayString(n.rowFields.length)+" row"+l.toDisplayString(n.rowFields.length!==1?"s":""),1),l.createElementVNode("span",bg,l.toDisplayString(n.columnFields.length)+" col"+l.toDisplayString(n.columnFields.length!==1?"s":""),1),l.createElementVNode("span",vg,l.toDisplayString(n.valueFields.length)+" val"+l.toDisplayString(n.valueFields.length!==1?"s":""),1)])):l.createCommentVNode("",!0),n.isConfigured&&n.pivotResult?(l.openBlock(),l.createElementBlock("div",yg,[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(f,K=>l.createElementVNode("button",{key:K.value,class:l.normalizeClass(["vpg-font-size-btn",{active:g.value===K.value}]),onClick:ne=>g.value=K.value},l.toDisplayString(K.label),11,wg)),64))])):l.createCommentVNode("",!0)])]),l.unref(o)?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createElementVNode("div",Cg,[l.createElementVNode("div",{class:l.normalizeClass(["vpg-drop-zone vpg-row-zone",{"vpg-drag-over":d.value==="row"}]),onDragover:G[2]||(G[2]=K=>O("row",K)),onDragleave:Z,onDrop:G[3]||(G[3]=K=>U("row",K))},[G[16]||(G[16]=l.createElementVNode("div",{class:"vpg-zone-header"},[l.createElementVNode("span",{class:"vpg-zone-icon vpg-row-icon"},"↓"),l.createElementVNode("span",{class:"vpg-zone-label"},"Rows")],-1)),l.createElementVNode("div",Sg,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.rowFields,(K,ne)=>(l.openBlock(),l.createElementBlock("div",{key:K,class:l.normalizeClass(["vpg-mini-chip vpg-row-chip",{"vpg-chip-dragging":ee("row",ne),"vpg-chip-drop-target":me("row",ne)}]),draggable:"true",onDragstart:ce=>W("row",ne,ce),onDragend:$,onDragover:ce=>Y("row",ne,ce),onDragleave:te,onDrop:ce=>re("row",ne,ce)},[G[15]||(G[15]=l.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),l.createElementVNode("span",Eg,l.toDisplayString(K),1),l.createElementVNode("button",{class:"vpg-mini-remove",onClick:l.withModifiers(ce=>a("removeRowField",K),["stop"])}," × ",8,Ng)],42,Ag))),128)),n.rowFields.length===0?(l.openBlock(),l.createElementBlock("span",Mg,"Drop here")):l.createCommentVNode("",!0)])],34),l.createElementVNode("div",{class:l.normalizeClass(["vpg-drop-zone vpg-column-zone",{"vpg-drag-over":d.value==="column"}]),onDragover:G[4]||(G[4]=K=>O("column",K)),onDragleave:Z,onDrop:G[5]||(G[5]=K=>U("column",K))},[G[18]||(G[18]=l.createElementVNode("div",{class:"vpg-zone-header"},[l.createElementVNode("span",{class:"vpg-zone-icon vpg-column-icon"},"→"),l.createElementVNode("span",{class:"vpg-zone-label"},"Columns")],-1)),l.createElementVNode("div",Lg,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.columnFields,(K,ne)=>(l.openBlock(),l.createElementBlock("div",{key:K,class:l.normalizeClass(["vpg-mini-chip vpg-column-chip",{"vpg-chip-dragging":ee("column",ne),"vpg-chip-drop-target":me("column",ne)}]),draggable:"true",onDragstart:ce=>W("column",ne,ce),onDragend:$,onDragover:ce=>Y("column",ne,ce),onDragleave:te,onDrop:ce=>re("column",ne,ce)},[G[17]||(G[17]=l.createElementVNode("span",{class:"vpg-drag-handle"},"⋮⋮",-1)),l.createElementVNode("span",Fg,l.toDisplayString(K),1),l.createElementVNode("button",{class:"vpg-mini-remove",onClick:l.withModifiers(ce=>a("removeColumnField",K),["stop"])}," × ",8,Tg)],42,Bg))),128)),n.columnFields.length===0?(l.openBlock(),l.createElementBlock("span",Rg,"Drop here")):l.createCommentVNode("",!0)])],34),l.createElementVNode("div",{class:l.normalizeClass(["vpg-drop-zone vpg-value-zone",{"vpg-drag-over":d.value==="value"}]),onDragover:G[6]||(G[6]=K=>O("value",K)),onDragleave:Z,onDrop:G[7]||(G[7]=K=>U("value",K))},[G[19]||(G[19]=l.createElementVNode("div",{class:"vpg-zone-header"},[l.createElementVNode("span",{class:"vpg-zone-icon vpg-value-icon"},"Σ"),l.createElementVNode("span",{class:"vpg-zone-label"},"Values")],-1)),l.createElementVNode("div",Dg,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.valueFields,K=>(l.openBlock(),l.createElementBlock("div",{key:`${K.field}-${K.aggregation}`,class:l.normalizeClass(["vpg-mini-chip vpg-value-chip",{"vpg-calc-chip":s(K.field)}])},[l.createElementVNode("span",Vg,l.toDisplayString(s(K.field)?"ƒ":l.unref(Fn)(K.aggregation)),1),l.createElementVNode("span",Pg,l.toDisplayString(i(K.field)),1),l.createElementVNode("button",{class:"vpg-mini-remove",onClick:ne=>a("removeValueField",K.field,K.aggregation)}," × ",8,Ig)],2))),128)),n.valueFields.length===0?(l.openBlock(),l.createElementBlock("span",zg,"Drop numeric")):l.createCommentVNode("",!0)])],34)]),!n.isConfigured||!n.pivotResult?(l.openBlock(),l.createElementBlock("div",_g,[l.createElementVNode("div",Og,[G[28]||(G[28]=l.createElementVNode("svg",{class:"vpg-placeholder-icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[l.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)),l.createElementVNode("span",Hg,[n.valueFields.length===0?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[G[20]||(G[20]=l.createTextVNode(" Add a ",-1)),G[21]||(G[21]=l.createElementVNode("strong",null,"Values",-1)),G[22]||(G[22]=l.createTextVNode(" field to see your pivot table ",-1))],64)):n.rowFields.length===0&&n.columnFields.length===0?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[G[23]||(G[23]=l.createTextVNode(" Add ",-1)),G[24]||(G[24]=l.createElementVNode("strong",null,"Row",-1)),G[25]||(G[25]=l.createTextVNode(" or ",-1)),G[26]||(G[26]=l.createElementVNode("strong",null,"Column",-1)),G[27]||(G[27]=l.createTextVNode(" fields to group your data ",-1))],64)):(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[l.createTextVNode(" Your pivot table will appear here ")],64))])])])):(l.openBlock(),l.createElementBlock("div",Yg,[l.createElementVNode("table",Xg,[l.createElementVNode("thead",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(N.value,(K,ne)=>(l.openBlock(),l.createElementBlock("tr",{key:`header-${ne}`,class:"vpg-column-header-row"},[ne===0?(l.openBlock(!0),l.createElementBlock(l.Fragment,{key:0},l.renderList(n.rowFields.length>0?n.rowFields:["Rows"],(ce,xe)=>(l.openBlock(),l.createElementBlock("th",{key:`row-header-${xe}`,class:"vpg-row-header-label",rowspan:N.value.length,style:l.normalizeStyle({width:`${De.value}px`,minWidth:"80px",left:`${mt(xe)}px`}),onClick:G[8]||(G[8]=Ve=>C("row"))},[l.createElementVNode("div",$g,[l.createElementVNode("span",null,l.toDisplayString(ce),1),xe===n.rowFields.length-1||n.rowFields.length===0?(l.openBlock(),l.createElementBlock("span",{key:0,class:l.normalizeClass(["vpg-sort-indicator",{active:y.value==="row"}])},l.toDisplayString(y.value==="row"?v.value==="asc"?"↑":"↓":"⇅"),3)):l.createCommentVNode("",!0)])],12,Wg))),128)):l.createCommentVNode("",!0),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(K,(ce,xe)=>(l.openBlock(),l.createElementBlock("th",{key:xe,class:"vpg-column-header-cell",colspan:ce.colspan,style:l.normalizeStyle({width:`${ye.value*ce.colspan}px`}),onClick:Ve=>ne===N.value.length-1&&C(xe)},[l.createElementVNode("div",Gg,[l.createElementVNode("span",null,l.toDisplayString(ce.label),1),ne===N.value.length-1?(l.openBlock(),l.createElementBlock("span",{key:0,class:l.normalizeClass(["vpg-sort-indicator",{active:y.value===xe}])},l.toDisplayString(y.value===xe?v.value==="asc"?"↑":"↓":"⇅"),3)):l.createCommentVNode("",!0)])],12,jg))),128)),n.pivotResult.rowTotals.length>0&&ne===0?(l.openBlock(),l.createElementBlock("th",{key:1,class:"vpg-total-header",rowspan:N.value.length}," Total ",8,Ug)):l.createCommentVNode("",!0)]))),128))]),l.createElementVNode("tbody",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(w.value,K=>(l.openBlock(),l.createElementBlock("tr",{key:K,class:"vpg-data-row"},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.pivotResult.rowHeaders[K],(ne,ce)=>(l.openBlock(),l.createElementBlock("th",{key:`row-${K}-${ce}`,class:"vpg-row-header-cell",style:l.normalizeStyle({width:`${De.value}px`,minWidth:"80px",left:`${mt(ce)}px`})},l.toDisplayString(ne),5))),128)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.pivotResult.data[K],(ne,ce)=>(l.openBlock(),l.createElementBlock("td",{key:ce,class:l.normalizeClass(["vpg-data-cell",[R(w.value.indexOf(K),ce)&&"selected",ne.value===null&&"vpg-is-null"]]),style:l.normalizeStyle({width:`${ye.value}px`}),onMousedown:xe=>L(w.value.indexOf(K),ce,xe),onMouseenter:xe=>T(w.value.indexOf(K),ce)},l.toDisplayString(ne.formattedValue),47,qg))),128)),n.pivotResult.rowTotals[K]?(l.openBlock(),l.createElementBlock("td",Zg,l.toDisplayString(n.pivotResult.rowTotals[K].formattedValue),1)):l.createCommentVNode("",!0)]))),128)),n.pivotResult.columnTotals.length>0?(l.openBlock(),l.createElementBlock("tr",Kg,[l.createElementVNode("th",{class:"vpg-row-header-cell vpg-total-label",colspan:Math.max(n.rowFields.length,1),style:l.normalizeStyle({width:`${Re.value}px`})}," Total ",12,Jg),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.pivotResult.columnTotals,(K,ne)=>(l.openBlock(),l.createElementBlock("td",{key:ne,class:"vpg-data-cell vpg-total-cell",style:l.normalizeStyle({width:`${ye.value}px`})},l.toDisplayString(K.formattedValue),5))),128)),n.pivotResult.rowTotals.length>0?(l.openBlock(),l.createElementBlock("td",Qg,l.toDisplayString(n.pivotResult.grandTotal.formattedValue),1)):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)])])])),n.isConfigured&&n.pivotResult?(l.openBlock(),l.createElementBlock("div",ef,[l.createElementVNode("span",tf,l.toDisplayString(n.pivotResult.rowHeaders.length)+" rows × "+l.toDisplayString(((de=n.pivotResult.data[0])==null?void 0:de.length)||0)+" columns",1),D.value&&D.value.count>1?(l.openBlock(),l.createElementBlock("div",af,[l.createElementVNode("span",sf,[G[29]||(G[29]=l.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),l.createElementVNode("span",nf,l.toDisplayString(D.value.count),1)]),D.value.numericCount>0?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[G[32]||(G[32]=l.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),l.createElementVNode("span",rf,[G[30]||(G[30]=l.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),l.createElementVNode("span",of,l.toDisplayString(_(D.value.sum)),1)]),G[33]||(G[33]=l.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),l.createElementVNode("span",lf,[G[31]||(G[31]=l.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),l.createElementVNode("span",cf,l.toDisplayString(_(D.value.avg)),1)])],64)):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)],64)):(l.openBlock(),l.createElementBlock("div",kg,[...G[14]||(G[14]=[l.createElementVNode("div",{class:"vpg-pro-content"},[l.createElementVNode("svg",{class:"vpg-pro-icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[l.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"})]),l.createElementVNode("h3",null,"Pro Feature"),l.createElementVNode("p",null,"Pivot Table functionality requires a Pro license."),l.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",class:"vpg-pro-link"}," Get Pro License → ")],-1)])])),l.unref(r)&&l.unref(o)?(l.openBlock(),l.createElementBlock("div",{key:2,class:l.normalizeClass(["vpg-watermark",{"vpg-demo-mode":l.unref(c)}])},[l.unref(c)?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[G[34]||(G[34]=l.createElementVNode("span",{class:"vpg-demo-badge"},"DEMO",-1)),G[35]||(G[35]=l.createElementVNode("span",null,"Pro features unlocked for evaluation",-1)),G[36]||(G[36]=l.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",rel:"noopener",class:"vpg-get-pro"}," Get Pro License → ",-1))],64)):(l.openBlock(),l.createElementBlock("a",df," Powered by TinyPivot "))],2)):l.createCommentVNode("",!0)],2)}}}),[["__scopeId","data-v-c5547603"]]),hf={key:0,class:"vpg-toast"},uf={class:"vpg-toolbar"},gf={class:"vpg-toolbar-left"},ff={key:0,class:"vpg-view-toggle"},pf=["title"],mf={key:0,class:"vpg-pro-badge"},xf={key:0,class:"vpg-search-container"},bf={key:1,class:"vpg-search-box"},vf={class:"vpg-font-size-control"},yf={class:"vpg-font-size-toggle"},wf=["onClick"],kf={key:1,class:"vpg-filter-info"},Cf=["disabled"],Sf={key:0,class:"vpg-icon vpg-spin",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Af={key:1,class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Ef={key:3,class:"vpg-search-info"},Nf={key:0,class:"vpg-pivot-status"},Mf={class:"vpg-toolbar-right"},Lf=["disabled","title"],Bf={key:0,class:"vpg-ai-view"},Ff={key:0,class:"vpg-loading"},Tf={key:1,class:"vpg-empty"},Rf={key:2,class:"vpg-empty"},Df={key:3,class:"vpg-table-wrapper"},Vf=["onClick"],Pf={class:"vpg-header-content"},If={class:"vpg-header-text"},zf={class:"vpg-header-icons"},_f={key:0,class:"vpg-sort-indicator"},Of={key:0,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},Hf={key:1,class:"vpg-icon-sm",fill:"currentColor",viewBox:"0 0 20 20"},Yf={key:1,class:"vpg-filter-indicator"},Xf=["onMousedown"],Wf=["data-row","data-col","onMousedown","onMouseenter"],$f={key:2,class:"vpg-pivot-container"},jf={key:0,class:"vpg-pivot-config-panel"},Gf={key:3,class:"vpg-chart-view"},Uf={key:0,class:"vpg-chart-filter-bar"},qf={class:"vpg-footer"},Zf={class:"vpg-footer-left"},Kf={key:0,class:"vpg-filtered-note"},Jf={key:1},Qf={class:"vpg-filtered-count"},ep={key:0,class:"vpg-pagination"},tp=["disabled"],ap=["disabled"],ip={class:"vpg-page-info"},sp=["disabled"],np=["disabled"],rp={key:1,class:"vpg-selection-stats"},op={class:"vpg-stat"},lp={class:"vpg-stat-value"},cp={class:"vpg-stat"},dp={class:"vpg-stat-value"},hp={class:"vpg-stat"},up={class:"vpg-stat-value"},gp={class:"vpg-footer-right"},fp={key:0,class:"vpg-demo-banner"},pp={key:1,class:"vpg-watermark-inline"},Vt=120,Un=350,mp=Dt(l.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},aiAnalyst:{default:void 0},numberFormat:{default:"us"},dateFormat:{default:"iso"},fieldRoleOverrides:{}},emits:["cellClick","selectionChange","export","copy","aiDataLoaded","aiConversationUpdate","aiQueryExecuted","aiError"],setup(n,{emit:e}){const t=n,a=e,{showWatermark:i,canUsePivot:s,canUseCharts:r,canUseAIAnalyst:o,isDemo:c,isPro:d}=Oa(),h=l.computed(()=>{var X;return((X=t.aiAnalyst)==null?void 0:X.enabled)&&o.value}),u=l.computed(()=>{var X;return t.theme==="auto"?(X=window.matchMedia)!=null&&X.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light":t.theme}),g=l.ref(t.fontSize),f=l.ref(""),p=l.ref(!1),m=l.ref(1),x=l.ref(null),b=l.ref(0),v=l.ref(0),y=l.ref(t.initialHeight),C=l.ref(!1),w=l.ref(0),N=l.ref(0),E=l.ref(!1),A=l.ref(""),B=[{value:"xs",label:"S"},{value:"sm",label:"M"},{value:"base",label:"L"}],F=l.ref(null),M=l.ref(null),S=l.computed(()=>M.value||t.data),k=l.computed(()=>S.value),{table:L,columnKeys:T,filteredRowCount:I,totalRowCount:R,getColumnStats:P,hasActiveFilter:H,setColumnFilter:D,getColumnFilterValues:_,clearAllFilters:O,toggleSort:Z,getSortDirection:U,columnFilters:W,activeFilters:$,setNumericRangeFilter:Y,getNumericRangeFilter:te,setDateRangeFilter:re,getDateRangeFilter:ee}=On({data:k}),me=l.computed(()=>L.getFilteredRowModel().rows.map(V=>V.original)),Re=l.computed(()=>$.value.length===0?null:$.value.map(X=>{var V;if(X.type==="range"&&X.range){const oe=[];return X.range.min!==null&&oe.push(`≥ ${X.range.min}`),X.range.max!==null&&oe.push(`≤ ${X.range.max}`),{column:X.column,valueCount:1,displayText:oe.join(" and "),isRange:!0}}if(X.type==="dateRange"&&X.dateRange){const oe=[];return X.dateRange.min!==null&&oe.push(`from ${yt(X.dateRange.min,t.dateFormat)}`),X.dateRange.max!==null&&oe.push(`to ${yt(X.dateRange.max,t.dateFormat)}`),{column:X.column,valueCount:1,displayText:oe.join(" "),isRange:!0}}return{column:X.column,valueCount:((V=X.values)==null?void 0:V.length)||0,values:X.values||[],isRange:!1}})),{rowFields:ye,columnFields:De,valueFields:mt,showRowTotals:ae,showColumnTotals:G,availableFields:de,isConfigured:K,pivotResult:ne,addRowField:ce,removeRowField:xe,addColumnField:Ve,removeColumnField:xt,addValueField:Je,removeValueField:Ge,updateValueFieldAggregation:st,clearConfig:Ue,autoSuggestConfig:Ta}=$n(me),jt=l.computed(()=>{if(!f.value.trim()||!t.enableSearch)return ca.value;const X=f.value.toLowerCase().trim();return ca.value.filter(V=>{for(const oe of T.value){const J=V.original[oe];if(J!=null&&String(J).toLowerCase().includes(X))return!0}return!1})}),Bt=l.computed(()=>jt.value.length),Ra=l.computed(()=>t.enablePagination?Math.max(1,Math.ceil(Bt.value/t.pageSize)):1),tl=l.computed(()=>{if(!t.enablePagination)return jt.value;const X=(m.value-1)*t.pageSize,V=X+t.pageSize;return jt.value.slice(X,V)}),Dx=l.computed(()=>Bt.value===0?0:(m.value-1)*t.pageSize+1),Vx=l.computed(()=>Math.min(m.value*t.pageSize,Bt.value));function Px(){m.value<Ra.value&&m.value++}function Ix(){m.value>1&&m.value--}l.watch([W,f],()=>{m.value=1});function al(){if(Ne.value==="pivot"){zx();return}const X=t.enableSearch&&f.value.trim()?jt.value.map(V=>V.original):ca.value.map(V=>V.original);Hn(X,T.value,{filename:t.exportFilename,includeHeaders:!0}),a("export",{rowCount:X.length,filename:t.exportFilename})}function zx(){if(!ne.value)return;const X=t.exportFilename.replace(".csv","-pivot.csv");Yn({headers:ne.value.headers,rowHeaders:ne.value.rowHeaders,data:ne.value.data,rowTotals:ne.value.rowTotals,columnTotals:ne.value.columnTotals,grandTotal:ne.value.grandTotal,showRowTotals:ae.value,showColumnTotals:G.value},ye.value,De.value,mt.value,{filename:X});const V=ne.value.rowHeaders.length;a("export",{rowCount:V,filename:X})}function _x(X,V){t.enableColumnResize&&(V.preventDefault(),V.stopPropagation(),x.value=X,b.value=V.clientX,v.value=Ft.value[X]||Vt,document.addEventListener("mousemove",il),document.addEventListener("mouseup",sl))}function il(X){if(!x.value)return;const V=X.clientX-b.value,oe=Math.max(Vt,Math.min(Un,v.value+V));Ft.value={...Ft.value,[x.value]:oe}}function sl(){x.value=null,document.removeEventListener("mousemove",il),document.removeEventListener("mouseup",sl)}function Ox(X){t.enableVerticalResize&&(X.preventDefault(),C.value=!0,w.value=X.clientY,N.value=y.value,document.addEventListener("mousemove",nl),document.addEventListener("mouseup",rl))}function nl(X){if(!C.value)return;const V=X.clientY-w.value,oe=Math.max(t.minHeight,Math.min(t.maxHeight,N.value+V));y.value=oe}function rl(){C.value=!1,document.removeEventListener("mousemove",nl),document.removeEventListener("mouseup",rl)}function ol(){if(!ht.value||!t.enableClipboard)return;const X=Wn(ca.value.map(V=>V.original),T.value,ht.value);Xn(X,()=>{const V=(ht.value.maxRow-ht.value.minRow+1)*(ht.value.maxCol-ht.value.minCol+1);A.value=`Copied ${V} cell${V>1?"s":""}`,E.value=!0,setTimeout(()=>{E.value=!1},2e3),a("copy",{text:X,cellCount:V})},V=>{A.value="Copy failed",E.value=!0,setTimeout(()=>{E.value=!1},2e3),console.error("Copy failed:",V)})}const Ne=l.ref("grid");function Hx(X){M.value=X.data,a("aiDataLoaded",X)}const Yx=l.computed(()=>M.value!==null),Da=l.ref(!1);async function Xx(){var X;if((X=F.value)!=null&&X.selectedDataSource){Da.value=!0;try{const V=await F.value.loadFullData();V&&V.length>0?M.value=V:M.value=null}catch(V){console.warn("Failed to load full data:",V),M.value=null}finally{Da.value=!1}}else M.value=null;O()}function Wx(X){a("aiConversationUpdate",X)}function $x(X){a("aiQueryExecuted",X)}function jx(X){a("aiError",X)}function Gx(X){M.value=X.data,Ne.value="grid"}const Ux=l.ref(null);function qx(X){Ux.value=X}const Va=l.ref(!0),dn=l.ref(null),bt=l.ref(In());function Zx(X){X.id||(X.id=`calc_${Date.now()}_${Math.random().toString(36).substr(2,9)}`),bt.value=[...bt.value,X],_a(bt.value)}function Kx(X){bt.value=bt.value.filter(J=>J.id!==X),_a(bt.value);const V=`calc:${X}`,oe=mt.value.find(J=>J.field===V);oe&&Ge(V,oe.aggregation)}function Jx(X){bt.value=bt.value.map(V=>V.id===X.id?X:V),_a(bt.value)}function Qx(X){dn.value=X}function eb(){dn.value=null}function tb(X){ye.value=X}function ab(X){De.value=X}const hn=l.ref(),ll=l.ref(),ca=l.computed(()=>L.getRowModel().rows),Ie=l.ref(null),zi=l.ref({top:0,left:0,maxHeight:400}),Ft=l.ref({});function cl(){if(typeof document>"u"||S.value.length===0)return;const X={},V=Math.min(100,S.value.length),J=document.createElement("canvas").getContext("2d");if(J){J.font="13px system-ui, -apple-system, sans-serif";for(const ke of T.value){let Me=J.measureText(ke).width+56;for(let Te=0;Te<V;Te++){const Le=S.value[Te][ke],He=Le==null?"":String(Le),Rt=J.measureText(He).width+28;Me=Math.max(Me,Rt)}X[ke]=Math.min(Math.max(Me,Vt),Un)}Ft.value=X}}function ib(X,V){V.stopPropagation();const oe=V.currentTarget,J=oe.closest(".vpg-header-cell"),ke=(J==null?void 0:J.getBoundingClientRect())||oe.getBoundingClientRect(),Me=280,Te=12;let Le=ke.left;Le+Me>window.innerWidth-Te&&(Le=window.innerWidth-Me-Te),Le=Math.max(Te,Le);const He=window.innerHeight-ke.bottom-Te,Rt=ke.top-Te;let da,ha;He>=300||He>=Rt?(da=ke.bottom+4,ha=Math.min(400,He-4)):(ha=Math.min(400,Rt-4),da=ke.top-ha-4),zi.value={top:da,left:Le,maxHeight:ha},Ie.value=X}function _i(){Ie.value=null}function sb(X,V){D(X,V)}function nb(X,V){Y(X,V)}function rb(X,V){re(X,V)}function ob(X,V){if(V===null)U(X)&&(Z(X),U(X)&&Z(X));else{const oe=U(X);oe===null?(Z(X),V==="desc"&&U(X)==="asc"&&Z(X)):oe!==V&&Z(X)}}const Oi=l.computed(()=>W.value.length),Tt=l.ref(null),vt=l.ref(null),dt=l.ref(null),un=l.ref(!1);function lb(X){const V=ca.value.length-1;V<0||(vt.value={row:0,col:X},dt.value={row:V,col:X},Tt.value={row:0,col:X})}function cb(X,V){if(V.target.closest(".vpg-dropdown-arrow")){const J=T.value[X];ib(J,V)}else lb(X)}const ht=l.computed(()=>!vt.value||!dt.value?null:{minRow:Math.min(vt.value.row,dt.value.row),maxRow:Math.max(vt.value.row,dt.value.row),minCol:Math.min(vt.value.col,dt.value.col),maxCol:Math.max(vt.value.col,dt.value.col)});function db(X,V){if(!ht.value)return!1;const{minRow:oe,maxRow:J,minCol:ke,maxCol:Me}=ht.value;return X>=oe&&X<=J&&V>=ke&&V<=Me}const Pa=l.computed(()=>{if(!ht.value)return null;const{minRow:X,maxRow:V,minCol:oe,maxCol:J}=ht.value,ke=[];let Me=0;for(let He=X;He<=V;He++){const Rt=ca.value[He];if(Rt)for(let da=oe;da<=J;da++){const ha=T.value[da];if(!ha)continue;const Ia=Rt.original[ha];if(Me++,Ia!=null&&Ia!==""){const pl=typeof Ia=="number"?Ia:Number.parseFloat(String(Ia));Number.isNaN(pl)||ke.push(pl)}}}if(ke.length===0)return{count:Me,sum:null,avg:null,numericCount:0};const Te=ke.reduce((He,Rt)=>He+Rt,0),Le=Te/ke.length;return{count:Me,sum:Te,avg:Le,numericCount:ke.length}});function dl(X){return X===null?"-":kt(X,t.numberFormat)}function hl(X){if((X.ctrlKey||X.metaKey)&&X.key==="c"&&ht.value){X.preventDefault(),ol();return}if((X.ctrlKey||X.metaKey)&&X.key==="f"&&t.enableSearch){X.preventDefault(),p.value=!0,l.nextTick(()=>{const Le=document.querySelector(".vpg-search-input");Le==null||Le.focus()});return}if(!Tt.value||Ie.value)return;const{row:V,col:oe}=Tt.value,ke=tl.value.length-1,Me=T.value.length-1;function Te(Le,He){X.shiftKey?(vt.value||(vt.value={row:V,col:oe}),dt.value={row:Le,col:He}):(vt.value={row:Le,col:He},dt.value={row:Le,col:He}),Tt.value={row:Le,col:He},hb(Le,He)}switch(X.key){case"ArrowUp":X.preventDefault(),V>0&&Te(V-1,oe);break;case"ArrowDown":X.preventDefault(),V<ke&&Te(V+1,oe);break;case"ArrowLeft":X.preventDefault(),oe>0&&Te(V,oe-1);break;case"ArrowRight":X.preventDefault(),oe<Me&&Te(V,oe+1);break;case"Escape":Tt.value=null,vt.value=null,dt.value=null,p.value=!1,f.value="";break}}function hb(X,V){l.nextTick(()=>{var J;const oe=(J=ll.value)==null?void 0:J.querySelector(`[data-row="${X}"][data-col="${V}"]`);oe==null||oe.scrollIntoView({block:"nearest",inline:"nearest"})})}function ub(X,V,oe){oe.preventDefault(),oe.shiftKey&&Tt.value?dt.value={row:X,col:V}:(Tt.value={row:X,col:V},vt.value={row:X,col:V},dt.value={row:X,col:V},un.value=!0);const J=ca.value[X];if(J){const ke=T.value[V];a("cellClick",{row:X,col:V,value:J.original[ke],rowData:J.original})}}function gb(X,V){un.value&&(dt.value={row:X,col:V})}function ul(){un.value=!1}function fb(X,V){var oe,J;return db(X,V)?!0:((oe=Tt.value)==null?void 0:oe.row)===X&&((J=Tt.value)==null?void 0:J.col)===V}const pb=/^(?:.*_)?(?: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 mb(X){return!pb.test(X)}function xb(X,V){if(X==null||X==="")return"";const oe=P(V);if(oe.type==="date")return yt(X,t.dateFormat);if(oe.type==="number"){const J=typeof X=="number"?X:Number.parseFloat(String(X));return Number.isNaN(J)?String(X):mb(V)&&Math.abs(J)>=1e3?kt(J,t.numberFormat):Number.isInteger(J)?String(J):kt(J,t.numberFormat,{maximumFractionDigits:4})}return String(X)}function gl(){Ie.value&&_i()}function fl(X){var V;if(Ie.value){const oe=X.target;if(oe&&((V=oe.closest)!=null&&V.call(oe,".vpg-filter-portal")))return;_i()}}l.onMounted(()=>{cl(),document.addEventListener("keydown",hl),document.addEventListener("mouseup",ul),l.nextTick(()=>{var X;(X=hn.value)==null||X.addEventListener("scroll",gl,{passive:!0})}),window.addEventListener("scroll",fl,{passive:!0,capture:!0})}),l.onUnmounted(()=>{var X;document.removeEventListener("keydown",hl),document.removeEventListener("mouseup",ul),(X=hn.value)==null||X.removeEventListener("scroll",gl),window.removeEventListener("scroll",fl,{capture:!0})}),l.watch([()=>t.data,M],()=>{l.nextTick(cl)},{immediate:!0});const bb=l.computed(()=>T.value.reduce((X,V)=>X+(Ft.value[V]||Vt),0));function vb(X){Ie.value&&(X.target.closest(".vpg-filter-portal")||_i())}return(X,V)=>{var oe;return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["vpg-data-grid",[`vpg-font-${g.value}`,`vpg-theme-${u.value}`,{"vpg-striped":n.stripedRows},{"vpg-resizing":x.value},{"vpg-resizing-vertical":C.value}]]),style:l.normalizeStyle({height:`${y.value}px`}),onClick:vb},[l.createVNode(l.Transition,{name:"vpg-toast"},{default:l.withCtx(()=>[E.value?(l.openBlock(),l.createElementBlock("div",hf,[V[22]||(V[22]=l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)),l.createTextVNode(" "+l.toDisplayString(A.value),1)])):l.createCommentVNode("",!0)]),_:1}),l.createElementVNode("div",uf,[l.createElementVNode("div",gf,[n.showPivot?(l.openBlock(),l.createElementBlock("div",ff,[h.value?(l.openBlock(),l.createElementBlock("button",{key:0,class:l.normalizeClass(["vpg-view-btn vpg-ai-btn",{active:Ne.value==="ai"}]),onClick:V[0]||(V[0]=J=>Ne.value="ai")},[...V[23]||(V[23]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 2a2 2 0 0 1 2 2c0 .74-.4 1.39-1 1.73V7h1a7 7 0 0 1 7 7h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-1H2a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h1a7 7 0 0 1 7-7h1V5.73c-.6-.34-1-.99-1-1.73a2 2 0 0 1 2-2z"})],-1),l.createTextVNode(" AI Analyst ",-1)])],2)):(oe=n.aiAnalyst)!=null&&oe.enabled&&!l.unref(o)?(l.openBlock(),l.createElementBlock("button",{key:1,class:"vpg-view-btn vpg-ai-btn vpg-pro-feature",title:"AI Analyst (Pro feature)",onClick:V[1]||(V[1]=l.withModifiers(()=>{},["prevent"]))},[...V[24]||(V[24]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 2a2 2 0 0 1 2 2c0 .74-.4 1.39-1 1.73V7h1a7 7 0 0 1 7 7h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-1H2a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h1a7 7 0 0 1 7-7h1V5.73c-.6-.34-1-.99-1-1.73a2 2 0 0 1 2-2z"})],-1),l.createTextVNode(" AI Analyst ",-1),l.createElementVNode("span",{class:"vpg-pro-badge"},"Pro",-1)])])):l.createCommentVNode("",!0),l.createElementVNode("button",{class:l.normalizeClass(["vpg-view-btn",{active:Ne.value==="grid"}]),onClick:V[2]||(V[2]=J=>Ne.value="grid")},[...V[25]||(V[25]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Grid ",-1)])],2),l.createElementVNode("button",{class:l.normalizeClass(["vpg-view-btn vpg-pivot-btn",{active:Ne.value==="pivot"}]),onClick:V[3]||(V[3]=J=>Ne.value="pivot")},[...V[26]||(V[26]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Pivot ",-1)])],2),l.createElementVNode("button",{class:l.normalizeClass(["vpg-view-btn vpg-chart-btn",{active:Ne.value==="chart","vpg-pro-feature":!l.unref(r)}]),title:l.unref(r)?"Chart Builder":"Chart Builder (Pro feature)",onClick:V[4]||(V[4]=J=>l.unref(r)?Ne.value="chart":null)},[V[27]||(V[27]=l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})],-1)),V[28]||(V[28]=l.createTextVNode(" Chart ",-1)),l.unref(r)?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("span",mf,"Pro"))],10,pf)])):l.createCommentVNode("",!0),Ne.value==="grid"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[n.enableSearch?(l.openBlock(),l.createElementBlock("div",xf,[p.value?(l.openBlock(),l.createElementBlock("div",bf,[V[31]||(V[31]=l.createElementVNode("svg",{class:"vpg-search-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":V[6]||(V[6]=J=>f.value=J),type:"text",class:"vpg-search-input",placeholder:"Search all columns...",onKeydown:V[7]||(V[7]=l.withKeys(J=>{p.value=!1,f.value=""},["escape"]))},null,544),[[l.vModelText,f.value]]),f.value?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-search-clear",onClick:V[8]||(V[8]=J=>f.value="")},[...V[30]||(V[30]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):l.createCommentVNode("",!0)])):(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-icon-btn",title:"Search (Ctrl+F)",onClick:V[5]||(V[5]=J=>p.value=!0)},[...V[29]||(V[29]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)])]))])):l.createCommentVNode("",!0),l.createElementVNode("div",vf,[V[32]||(V[32]=l.createElementVNode("span",{class:"vpg-label"},"Size:",-1)),l.createElementVNode("div",yf,[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(B,J=>l.createElementVNode("button",{key:J.value,class:l.normalizeClass(["vpg-font-size-btn",{active:g.value===J.value}]),onClick:ke=>g.value=J.value},l.toDisplayString(J.label),11,wf)),64))])]),Oi.value>0?(l.openBlock(),l.createElementBlock("div",kf,[V[33]||(V[33]=l.createElementVNode("svg",{class:"vpg-icon",fill:"currentColor",viewBox:"0 0 20 20"},[l.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)),l.createElementVNode("span",null,l.toDisplayString(Oi.value)+" filter"+l.toDisplayString(Oi.value>1?"s":""),1)])):l.createCommentVNode("",!0),Yx.value?(l.openBlock(),l.createElementBlock("button",{key:2,class:l.normalizeClass(["vpg-reset-data-btn",{"vpg-loading-btn":Da.value}]),disabled:Da.value,title:"Reset to full dataset",onClick:Xx},[Da.value?(l.openBlock(),l.createElementBlock("svg",Sf,[...V[34]||(V[34]=[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"},null,-1)])])):(l.openBlock(),l.createElementBlock("svg",Af,[...V[35]||(V[35]=[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"},null,-1)])])),l.createElementVNode("span",null,l.toDisplayString(Da.value?"Loading...":"Full Data"),1)],10,Cf)):l.createCommentVNode("",!0),f.value?(l.openBlock(),l.createElementBlock("div",Ef,[l.createElementVNode("span",null,l.toDisplayString(Bt.value)+" match"+l.toDisplayString(Bt.value!==1?"es":""),1)])):l.createCommentVNode("",!0)],64)):l.createCommentVNode("",!0),Ne.value==="pivot"&&l.unref(s)?(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[l.createElementVNode("button",{class:l.normalizeClass(["vpg-config-toggle",{active:Va.value}]),onClick:V[9]||(V[9]=J=>Va.value=!Va.value)},[V[36]||(V[36]=l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.createTextVNode(" "+l.toDisplayString(Va.value?"Hide":"Show")+" Config ",1)],2),l.unref(K)?(l.openBlock(),l.createElementBlock("div",Nf,[...V[37]||(V[37]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"currentColor",viewBox:"0 0 20 20"},[l.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),l.createElementVNode("span",null,"Pivot configured",-1)])])):l.createCommentVNode("",!0)],64)):l.createCommentVNode("",!0)]),l.createElementVNode("div",Mf,[Ne.value==="grid"&&Oi.value>0?(l.openBlock(),l.createElementBlock("button",{key:0,class:"vpg-clear-filters",onClick:V[10]||(V[10]=(...J)=>l.unref(O)&&l.unref(O)(...J))},[...V[38]||(V[38]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),l.createTextVNode(" Clear Filters ",-1)])])):l.createCommentVNode("",!0),n.enableClipboard&&ht.value&&Ne.value==="grid"?(l.openBlock(),l.createElementBlock("button",{key:1,class:"vpg-icon-btn",title:"Copy selection (Ctrl+C)",onClick:ol},[...V[39]||(V[39]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)])])):l.createCommentVNode("",!0),n.enableExport&&Ne.value==="grid"?(l.openBlock(),l.createElementBlock("button",{key:2,class:"vpg-export-btn",title:"Export to CSV",onClick:al},[...V[40]||(V[40]=[l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createTextVNode(" Export ",-1)])])):l.createCommentVNode("",!0),n.enableExport&&Ne.value==="pivot"&&l.unref(K)?(l.openBlock(),l.createElementBlock("button",{key:3,class:l.normalizeClass(["vpg-export-btn",{"vpg-export-btn-disabled":!l.unref(d)}]),disabled:!l.unref(d),title:l.unref(d)?"Export Pivot to CSV":"Export Pivot to CSV (Pro feature)",onClick:V[11]||(V[11]=J=>l.unref(d)&&al())},[V[41]||(V[41]=l.createElementVNode("svg",{class:"vpg-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),l.createTextVNode(" Export Pivot"+l.toDisplayString(l.unref(d)?"":" (Pro)"),1)],10,Lf)):l.createCommentVNode("",!0)])]),h.value&&n.aiAnalyst?l.withDirectives((l.openBlock(),l.createElementBlock("div",Bf,[l.createVNode(vd,{ref_key:"aiAnalystRef",ref:F,config:n.aiAnalyst,theme:u.value,onDataLoaded:Hx,onConversationUpdate:Wx,onQueryExecuted:$x,onError:jx,onViewResults:Gx},null,8,["config","theme"])],512)),[[l.vShow,Ne.value==="ai"]]):l.createCommentVNode("",!0),Ne.value==="grid"?(l.openBlock(),l.createElementBlock("div",{key:1,ref_key:"tableContainerRef",ref:hn,class:"vpg-grid-container",tabindex:"0"},[n.loading?(l.openBlock(),l.createElementBlock("div",Ff,[...V[42]||(V[42]=[l.createElementVNode("div",{class:"vpg-spinner"},null,-1),l.createElementVNode("span",null,"Loading data...",-1)])])):S.value.length===0?(l.openBlock(),l.createElementBlock("div",Tf,[...V[43]||(V[43]=[l.createElementVNode("div",{class:"vpg-empty-icon"},[l.createElementVNode("svg",{class:"vpg-icon-lg",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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),l.createElementVNode("span",null,"No data available",-1)])])):l.unref(I)===0?(l.openBlock(),l.createElementBlock("div",Rf,[V[44]||(V[44]=l.createElementVNode("div",{class:"vpg-empty-icon vpg-warning"},[l.createElementVNode("svg",{class:"vpg-icon-lg",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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)),V[45]||(V[45]=l.createElementVNode("span",null,"No matching records",-1)),l.createElementVNode("button",{class:"vpg-clear-link",onClick:V[12]||(V[12]=(...J)=>l.unref(O)&&l.unref(O)(...J))}," Clear all filters ")])):(l.openBlock(),l.createElementBlock("div",Df,[l.createElementVNode("table",{class:"vpg-table",style:l.normalizeStyle({minWidth:`${bb.value}px`})},[l.createElementVNode("thead",null,[l.createElementVNode("tr",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(T),(J,ke)=>(l.openBlock(),l.createElementBlock("th",{key:J,class:l.normalizeClass(["vpg-header-cell",{"vpg-has-filter":l.unref(H)(J),"vpg-is-sorted":l.unref(U)(J)!==null,"vpg-is-active":Ie.value===J}]),style:l.normalizeStyle({width:`${Ft.value[J]||Vt}px`,minWidth:`${Ft.value[J]||Vt}px`}),onClick:Me=>cb(ke,Me)},[l.createElementVNode("div",Pf,[l.createElementVNode("span",If,l.toDisplayString(J),1),l.createElementVNode("div",zf,[l.unref(U)(J)?(l.openBlock(),l.createElementBlock("span",_f,[l.unref(U)(J)==="asc"?(l.openBlock(),l.createElementBlock("svg",Of,[...V[46]||(V[46]=[l.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)])])):(l.openBlock(),l.createElementBlock("svg",Hf,[...V[47]||(V[47]=[l.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)])]))])):l.createCommentVNode("",!0),l.unref(H)(J)?(l.openBlock(),l.createElementBlock("span",Yf,[...V[48]||(V[48]=[l.createElementVNode("svg",{class:"vpg-icon-xs",fill:"currentColor",viewBox:"0 0 20 20"},[l.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)])])):l.createCommentVNode("",!0),V[49]||(V[49]=l.createElementVNode("span",{class:"vpg-dropdown-arrow",title:"Filter & Sort"},[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})])],-1))])]),n.enableColumnResize?(l.openBlock(),l.createElementBlock("div",{key:0,class:"vpg-resize-handle",onMousedown:Me=>_x(J,Me)},null,40,Xf)):l.createCommentVNode("",!0)],14,Vf))),128))])]),l.createElementVNode("tbody",{ref_key:"tableBodyRef",ref:ll},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(tl.value,(J,ke)=>(l.openBlock(),l.createElementBlock("tr",{key:J.id,class:"vpg-row"},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(T),(Me,Te)=>(l.openBlock(),l.createElementBlock("td",{key:Me,class:l.normalizeClass(["vpg-cell",{"vpg-selected":fb(ke,Te),"vpg-is-number":l.unref(P)(Me).type==="number"}]),"data-row":ke,"data-col":Te,style:l.normalizeStyle({width:`${Ft.value[Me]||Vt}px`,minWidth:`${Ft.value[Me]||Vt}px`}),onMousedown:Le=>ub(ke,Te,Le),onMouseenter:Le=>gb(ke,Te)},l.toDisplayString(xb(J.original[Me],Me)),47,Wf))),128))]))),128))],512)],4)]))],512)):Ne.value==="pivot"?(l.openBlock(),l.createElementBlock("div",$f,[Va.value&&l.unref(s)?(l.openBlock(),l.createElementBlock("div",jf,[l.createVNode(jn,{"available-fields":l.unref(de),"row-fields":l.unref(ye),"column-fields":l.unref(De),"value-fields":l.unref(mt),"show-row-totals":l.unref(ae),"show-column-totals":l.unref(G),"calculated-fields":bt.value,"onUpdate:showRowTotals":V[13]||(V[13]=J=>ae.value=J),"onUpdate:showColumnTotals":V[14]||(V[14]=J=>G.value=J),onClearConfig:l.unref(Ue),onDragStart:Qx,onDragEnd:eb,onUpdateAggregation:l.unref(st),onAddRowField:l.unref(ce),onRemoveRowField:l.unref(xe),onAddColumnField:l.unref(Ve),onRemoveColumnField:l.unref(xt),onAddValueField:l.unref(Je),onRemoveValueField:l.unref(Ge),onAddCalculatedField:Zx,onRemoveCalculatedField:Kx,onUpdateCalculatedField:Jx},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"])])):l.createCommentVNode("",!0),l.createElementVNode("div",{class:l.normalizeClass(["vpg-pivot-main",{"vpg-full-width":!Va.value}])},[l.createVNode(Gn,{"row-fields":l.unref(ye),"column-fields":l.unref(De),"value-fields":l.unref(mt),"calculated-fields":bt.value,"is-configured":l.unref(K),"dragging-field":dn.value,"pivot-result":l.unref(ne),"font-size":g.value,"active-filters":Re.value,"total-row-count":l.unref(R),"filtered-row-count":l.unref(I),onAddRowField:l.unref(ce),onRemoveRowField:l.unref(xe),onAddColumnField:l.unref(Ve),onRemoveColumnField:l.unref(xt),onAddValueField:l.unref(Je),onRemoveValueField:l.unref(Ge),onUpdateAggregation:l.unref(st),onReorderRowFields:tb,onReorderColumnFields:ab},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)])):Ne.value==="chart"?(l.openBlock(),l.createElementBlock("div",Gf,[Re.value&&Re.value.length>0?(l.openBlock(),l.createElementBlock("div",Uf,[V[50]||(V[50]=l.createElementVNode("svg",{class:"vpg-icon",fill:"currentColor",viewBox:"0 0 20 20"},[l.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)),l.createElementVNode("span",null,"Chart showing "+l.toDisplayString(l.unref(I).toLocaleString())+" of "+l.toDisplayString(l.unref(R).toLocaleString())+" records",1),l.createElementVNode("button",{class:"vpg-chart-clear-filters",onClick:V[15]||(V[15]=(...J)=>l.unref(O)&&l.unref(O)(...J))}," Clear filters ")])):l.createCommentVNode("",!0),l.createVNode(Dh,{data:me.value,theme:u.value,"field-role-overrides":t.fieldRoleOverrides,onConfigChange:qx},null,8,["data","theme","field-role-overrides"])])):l.createCommentVNode("",!0),l.createElementVNode("div",qf,[l.createElementVNode("div",Zf,[Ne.value==="grid"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[n.enablePagination?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("span",null,l.toDisplayString(Dx.value.toLocaleString())+"-"+l.toDisplayString(Vx.value.toLocaleString()),1),V[51]||(V[51]=l.createElementVNode("span",{class:"vpg-separator"},"of",-1)),l.createElementVNode("span",null,l.toDisplayString(Bt.value.toLocaleString()),1),Bt.value!==l.unref(R)?(l.openBlock(),l.createElementBlock("span",Kf," ("+l.toDisplayString(l.unref(R).toLocaleString())+" total) ",1)):l.createCommentVNode("",!0)],64)):l.unref(I)===l.unref(R)&&Bt.value===l.unref(R)?(l.openBlock(),l.createElementBlock("span",Jf,l.toDisplayString(l.unref(R).toLocaleString())+" records",1)):(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[l.createElementVNode("span",Qf,l.toDisplayString(Bt.value.toLocaleString()),1),V[52]||(V[52]=l.createElementVNode("span",{class:"vpg-separator"},"of",-1)),l.createElementVNode("span",null,l.toDisplayString(l.unref(R).toLocaleString()),1),V[53]||(V[53]=l.createElementVNode("span",{class:"vpg-separator"},"records",-1))],64))],64)):Ne.value==="pivot"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[V[54]||(V[54]=l.createElementVNode("span",{class:"vpg-pivot-label"},"Pivot Table",-1)),V[55]||(V[55]=l.createElementVNode("span",{class:"vpg-separator"},"•",-1)),l.createElementVNode("span",null,l.toDisplayString(l.unref(R).toLocaleString())+" source records",1)],64)):Ne.value==="chart"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[V[56]||(V[56]=l.createElementVNode("span",{class:"vpg-chart-label"},"Chart Builder",-1)),V[57]||(V[57]=l.createElementVNode("span",{class:"vpg-separator"},"•",-1)),l.createElementVNode("span",null,l.toDisplayString(l.unref(R).toLocaleString())+" records",1)],64)):l.createCommentVNode("",!0)]),n.enablePagination&&Ne.value==="grid"&&Ra.value>1?(l.openBlock(),l.createElementBlock("div",ep,[l.createElementVNode("button",{class:"vpg-page-btn",disabled:m.value===1,onClick:V[16]||(V[16]=J=>m.value=1)},[...V[58]||(V[58]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.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,tp),l.createElementVNode("button",{class:"vpg-page-btn",disabled:m.value===1,onClick:Ix},[...V[59]||(V[59]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])],8,ap),l.createElementVNode("span",ip," Page "+l.toDisplayString(m.value)+" of "+l.toDisplayString(Ra.value),1),l.createElementVNode("button",{class:"vpg-page-btn",disabled:m.value===Ra.value,onClick:Px},[...V[60]||(V[60]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"})],-1)])],8,sp),l.createElementVNode("button",{class:"vpg-page-btn",disabled:m.value===Ra.value,onClick:V[17]||(V[17]=J=>m.value=Ra.value)},[...V[61]||(V[61]=[l.createElementVNode("svg",{class:"vpg-icon-sm",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[l.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 5l7 7-7 7M5 5l7 7-7 7"})],-1)])],8,np)])):l.createCommentVNode("",!0),Ne.value==="grid"&&Pa.value&&Pa.value.count>1?(l.openBlock(),l.createElementBlock("div",rp,[l.createElementVNode("span",op,[V[62]||(V[62]=l.createElementVNode("span",{class:"vpg-stat-label"},"Count:",-1)),l.createElementVNode("span",lp,l.toDisplayString(Pa.value.count),1)]),Pa.value.numericCount>0?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[V[65]||(V[65]=l.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),l.createElementVNode("span",cp,[V[63]||(V[63]=l.createElementVNode("span",{class:"vpg-stat-label"},"Sum:",-1)),l.createElementVNode("span",dp,l.toDisplayString(dl(Pa.value.sum)),1)]),V[66]||(V[66]=l.createElementVNode("span",{class:"vpg-stat-divider"},"|",-1)),l.createElementVNode("span",hp,[V[64]||(V[64]=l.createElementVNode("span",{class:"vpg-stat-label"},"Avg:",-1)),l.createElementVNode("span",up,l.toDisplayString(dl(Pa.value.avg)),1)])],64)):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0),l.createElementVNode("div",gp,[l.unref(c)?(l.openBlock(),l.createElementBlock("div",fp,[...V[67]||(V[67]=[l.createElementVNode("span",{class:"vpg-demo-badge"},"DEMO",-1),l.createElementVNode("span",null,"Pro features enabled",-1),l.createElementVNode("a",{href:"https://tiny-pivot.com/#pricing",target:"_blank",rel:"noopener"},"Get License →",-1)])])):l.unref(i)?(l.openBlock(),l.createElementBlock("span",pp,[...V[68]||(V[68]=[l.createStaticVNode('<a href="https://tiny-pivot.com" target="_blank" rel="noopener" data-v-4e43d32f><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-4e43d32f><rect x="3" y="3" width="7" height="7" data-v-4e43d32f></rect><rect x="14" y="3" width="7" height="7" data-v-4e43d32f></rect><rect x="14" y="14" width="7" height="7" data-v-4e43d32f></rect><rect x="3" y="14" width="7" height="7" data-v-4e43d32f></rect></svg> Powered by TinyPivot </a>',1)])])):l.createCommentVNode("",!0)])]),n.enableVerticalResize?(l.openBlock(),l.createElementBlock("div",{key:4,class:"vpg-vertical-resize-handle",onMousedown:Ox},[...V[69]||(V[69]=[l.createElementVNode("div",{class:"vpg-resize-grip"},[l.createElementVNode("span"),l.createElementVNode("span"),l.createElementVNode("span")],-1)])],32)):l.createCommentVNode("",!0),(l.openBlock(),l.createBlock(l.Teleport,{to:"body"},[Ie.value?(l.openBlock(),l.createElementBlock("div",{key:0,class:"vpg-filter-portal",style:l.normalizeStyle({position:"fixed",top:`${zi.value.top}px`,left:`${zi.value.left}px`,maxHeight:`${zi.value.maxHeight}px`,zIndex:9999})},[l.createVNode(zn,{"column-id":Ie.value,"column-name":Ie.value,stats:l.unref(P)(Ie.value),"selected-values":l.unref(_)(Ie.value),"sort-direction":l.unref(U)(Ie.value),"numeric-range":l.unref(te)(Ie.value),"date-range":l.unref(ee)(Ie.value),"number-format":n.numberFormat,"date-format":n.dateFormat,onFilter:V[18]||(V[18]=J=>sb(Ie.value,J)),onRangeFilter:V[19]||(V[19]=J=>nb(Ie.value,J)),onDateRangeFilter:V[20]||(V[20]=J=>rb(Ie.value,J)),onSort:V[21]||(V[21]=J=>ob(Ie.value,J)),onClose:_i},null,8,["column-id","column-name","stats","selected-values","sort-direction","numeric-range","date-range","number-format","date-format"])],4)):l.createCommentVNode("",!0)]))],6)}}}),[["__scopeId","data-v-4e43d32f"]]),ua=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ui(n){return n instanceof Uint8Array||ArrayBuffer.isView(n)&&n.constructor.name==="Uint8Array"}function qi(n){if(!Number.isSafeInteger(n)||n<0)throw new Error("positive integer expected, got "+n)}function Ut(n,...e){if(!ui(n))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(n.length))throw new Error("Uint8Array expected of length "+e+", got length="+n.length)}function qn(n){if(typeof n!="function"||typeof n.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");qi(n.outputLen),qi(n.blockLen)}function gi(n,e=!0){if(n.destroyed)throw new Error("Hash instance has been destroyed");if(e&&n.finished)throw new Error("Hash#digest() has already been called")}function xp(n,e){Ut(n);const t=e.outputLen;if(n.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function ga(...n){for(let e=0;e<n.length;e++)n[e].fill(0)}function Zi(n){return new DataView(n.buffer,n.byteOffset,n.byteLength)}function wt(n,e){return n<<32-e|n>>>e}const Zn=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",bp=Array.from({length:256},(n,e)=>e.toString(16).padStart(2,"0"));function fa(n){if(Ut(n),Zn)return n.toHex();let e="";for(let t=0;t<n.length;t++)e+=bp[n[t]];return e}const St={_0:48,_9:57,A:65,F:70,a:97,f:102};function Kn(n){if(n>=St._0&&n<=St._9)return n-St._0;if(n>=St.A&&n<=St.F)return n-(St.A-10);if(n>=St.a&&n<=St.f)return n-(St.a-10)}function fi(n){if(typeof n!="string")throw new Error("hex string expected, got "+typeof n);if(Zn)return Uint8Array.fromHex(n);const e=n.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const a=new Uint8Array(t);for(let i=0,s=0;i<t;i++,s+=2){const r=Kn(n.charCodeAt(s)),o=Kn(n.charCodeAt(s+1));if(r===void 0||o===void 0){const c=n[s]+n[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}a[i]=r*16+o}return a}function vp(n){if(typeof n!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(n))}function Ki(n){return typeof n=="string"&&(n=vp(n)),Ut(n),n}function Pt(...n){let e=0;for(let a=0;a<n.length;a++){const i=n[a];Ut(i),e+=i.length}const t=new Uint8Array(e);for(let a=0,i=0;a<n.length;a++){const s=n[a];t.set(s,i),i+=s.length}return t}class Jn{}function Ji(n){const e=a=>n().update(Ki(a)).digest(),t=n();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>n(),e}function Qn(n=32){if(ua&&typeof ua.getRandomValues=="function")return ua.getRandomValues(new Uint8Array(n));if(ua&&typeof ua.randomBytes=="function")return Uint8Array.from(ua.randomBytes(n));throw new Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Qi=BigInt(0),es=BigInt(1);function pi(n,e=""){if(typeof n!="boolean"){const t=e&&`"${e}"`;throw new Error(t+"expected boolean, got type="+typeof n)}return n}function qt(n,e,t=""){const a=ui(n),i=n==null?void 0:n.length,s=e!==void 0;if(!a||s&&i!==e){const r=t&&`"${t}" `,o=s?` of length ${e}`:"",c=a?`length=${i}`:`type=${typeof n}`;throw new Error(r+"expected Uint8Array"+o+", got "+c)}return n}function mi(n){const e=n.toString(16);return e.length&1?"0"+e:e}function er(n){if(typeof n!="string")throw new Error("hex string expected, got "+typeof n);return n===""?Qi:BigInt("0x"+n)}function xi(n){return er(fa(n))}function tr(n){return Ut(n),er(fa(Uint8Array.from(n).reverse()))}function ts(n,e){return fi(n.toString(16).padStart(e*2,"0"))}function ar(n,e){return ts(n,e).reverse()}function Ze(n,e,t){let a;if(typeof e=="string")try{a=fi(e)}catch(i){throw new Error(n+" must be hex string or Uint8Array, cause: "+i)}else if(ui(e))a=Uint8Array.from(e);else throw new Error(n+" must be hex string or Uint8Array");return a.length,a}const as=n=>typeof n=="bigint"&&Qi<=n;function yp(n,e,t){return as(n)&&as(e)&&as(t)&&e<=n&&n<t}function wp(n,e,t,a){if(!yp(e,t,a))throw new Error("expected valid "+n+": "+t+" <= n < "+a+", got "+e)}function ir(n){let e;for(e=0;n>Qi;n>>=es,e+=1);return e}const Ha=n=>(es<<BigInt(n))-es;function kp(n,e,t){if(typeof n!="number"||n<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");const a=f=>new Uint8Array(f),i=f=>Uint8Array.of(f);let s=a(n),r=a(n),o=0;const c=()=>{s.fill(1),r.fill(0),o=0},d=(...f)=>t(r,s,...f),h=(f=a(0))=>{r=d(i(0),f),s=d(),f.length!==0&&(r=d(i(1),f),s=d())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let f=0;const p=[];for(;f<e;){s=d();const m=s.slice();p.push(m),f+=s.length}return Pt(...p)};return(f,p)=>{c(),h(f);let m;for(;!(m=p(u()));)h();return c(),m}}function is(n,e,t={}){if(!n||typeof n!="object")throw new Error("expected valid options object");function a(i,s,r){const o=n[i];if(r&&o===void 0)return;const c=typeof o;if(c!==s||o===null)throw new Error(`param "${i}" is invalid: expected ${s}, got ${c}`)}Object.entries(e).forEach(([i,s])=>a(i,s,!1)),Object.entries(t).forEach(([i,s])=>a(i,s,!0))}function sr(n){const e=new WeakMap;return(t,...a)=>{const i=e.get(t);if(i!==void 0)return i;const s=n(t,...a);return e.set(t,s),s}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const tt=BigInt(0),We=BigInt(1),Zt=BigInt(2),nr=BigInt(3),rr=BigInt(4),or=BigInt(5),Cp=BigInt(7),lr=BigInt(8),Sp=BigInt(9),cr=BigInt(16);function ut(n,e){const t=n%e;return t>=tt?t:e+t}function dr(n,e){if(n===tt)throw new Error("invert: expected non-zero number");if(e<=tt)throw new Error("invert: expected positive modulus, got "+e);let t=ut(n,e),a=e,i=tt,s=We;for(;t!==tt;){const o=a/t,c=a%t,d=i-s*o;a=t,t=c,i=s,s=d}if(a!==We)throw new Error("invert: does not exist");return ut(i,e)}function ss(n,e,t){if(!n.eql(n.sqr(e),t))throw new Error("Cannot find square root")}function hr(n,e){const t=(n.ORDER+We)/rr,a=n.pow(e,t);return ss(n,a,e),a}function Ap(n,e){const t=(n.ORDER-or)/lr,a=n.mul(e,Zt),i=n.pow(a,t),s=n.mul(e,i),r=n.mul(n.mul(s,Zt),i),o=n.mul(s,n.sub(r,n.ONE));return ss(n,o,e),o}function Ep(n){const e=Kt(n),t=ur(n),a=t(e,e.neg(e.ONE)),i=t(e,a),s=t(e,e.neg(a)),r=(n+Cp)/cr;return(o,c)=>{let d=o.pow(c,r),h=o.mul(d,a);const u=o.mul(d,i),g=o.mul(d,s),f=o.eql(o.sqr(h),c),p=o.eql(o.sqr(u),c);d=o.cmov(d,h,f),h=o.cmov(g,u,p);const m=o.eql(o.sqr(h),c),x=o.cmov(d,h,m);return ss(o,x,c),x}}function ur(n){if(n<nr)throw new Error("sqrt is not defined for small field");let e=n-We,t=0;for(;e%Zt===tt;)e/=Zt,t++;let a=Zt;const i=Kt(n);for(;fr(i,a)===1;)if(a++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return hr;let s=i.pow(a,e);const r=(e+We)/Zt;return function(c,d){if(c.is0(d))return d;if(fr(c,d)!==1)throw new Error("Cannot find square root");let h=t,u=c.mul(c.ONE,s),g=c.pow(d,e),f=c.pow(d,r);for(;!c.eql(g,c.ONE);){if(c.is0(g))return c.ZERO;let p=1,m=c.sqr(g);for(;!c.eql(m,c.ONE);)if(p++,m=c.sqr(m),p===h)throw new Error("Cannot find square root");const x=We<<BigInt(h-p-1),b=c.pow(u,x);h=p,u=c.sqr(b),g=c.mul(g,u),f=c.mul(f,b)}return f}}function Np(n){return n%rr===nr?hr:n%lr===or?Ap:n%cr===Sp?Ep(n):ur(n)}const Mp=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Lp(n){const e={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},t=Mp.reduce((a,i)=>(a[i]="function",a),e);return is(n,t),n}function Bp(n,e,t){if(t<tt)throw new Error("invalid exponent, negatives unsupported");if(t===tt)return n.ONE;if(t===We)return e;let a=n.ONE,i=e;for(;t>tt;)t&We&&(a=n.mul(a,i)),i=n.sqr(i),t>>=We;return a}function gr(n,e,t=!1){const a=new Array(e.length).fill(t?n.ZERO:void 0),i=e.reduce((r,o,c)=>n.is0(o)?r:(a[c]=r,n.mul(r,o)),n.ONE),s=n.inv(i);return e.reduceRight((r,o,c)=>n.is0(o)?r:(a[c]=n.mul(r,a[c]),n.mul(r,o)),s),a}function fr(n,e){const t=(n.ORDER-We)/Zt,a=n.pow(e,t),i=n.eql(a,n.ONE),s=n.eql(a,n.ZERO),r=n.eql(a,n.neg(n.ONE));if(!i&&!s&&!r)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function pr(n,e){e!==void 0&&qi(e);const t=e!==void 0?e:n.toString(2).length,a=Math.ceil(t/8);return{nBitLength:t,nByteLength:a}}function Kt(n,e,t=!1,a={}){if(n<=tt)throw new Error("invalid field: expected ORDER > 0, got "+n);let i,s,r=!1,o;if(typeof e=="object"&&e!=null){if(a.sqrt||t)throw new Error("cannot specify opts in two arguments");const g=e;g.BITS&&(i=g.BITS),g.sqrt&&(s=g.sqrt),typeof g.isLE=="boolean"&&(t=g.isLE),typeof g.modFromBytes=="boolean"&&(r=g.modFromBytes),o=g.allowedLengths}else typeof e=="number"&&(i=e),a.sqrt&&(s=a.sqrt);const{nBitLength:c,nByteLength:d}=pr(n,i);if(d>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let h;const u=Object.freeze({ORDER:n,isLE:t,BITS:c,BYTES:d,MASK:Ha(c),ZERO:tt,ONE:We,allowedLengths:o,create:g=>ut(g,n),isValid:g=>{if(typeof g!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof g);return tt<=g&&g<n},is0:g=>g===tt,isValidNot0:g=>!u.is0(g)&&u.isValid(g),isOdd:g=>(g&We)===We,neg:g=>ut(-g,n),eql:(g,f)=>g===f,sqr:g=>ut(g*g,n),add:(g,f)=>ut(g+f,n),sub:(g,f)=>ut(g-f,n),mul:(g,f)=>ut(g*f,n),pow:(g,f)=>Bp(u,g,f),div:(g,f)=>ut(g*dr(f,n),n),sqrN:g=>g*g,addN:(g,f)=>g+f,subN:(g,f)=>g-f,mulN:(g,f)=>g*f,inv:g=>dr(g,n),sqrt:s||(g=>(h||(h=Np(n)),h(u,g))),toBytes:g=>t?ar(g,d):ts(g,d),fromBytes:(g,f=!0)=>{if(o){if(!o.includes(g.length)||g.length>d)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+g.length);const m=new Uint8Array(d);m.set(g,t?0:m.length-g.length),g=m}if(g.length!==d)throw new Error("Field.fromBytes: expected "+d+" bytes, got "+g.length);let p=t?tr(g):xi(g);if(r&&(p=ut(p,n)),!f&&!u.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:g=>gr(u,g),cmov:(g,f,p)=>p?f:g});return Object.freeze(u)}function mr(n){if(typeof n!="bigint")throw new Error("field order must be bigint");const e=n.toString(2).length;return Math.ceil(e/8)}function xr(n){const e=mr(n);return e+Math.ceil(e/2)}function Fp(n,e,t=!1){const a=n.length,i=mr(e),s=xr(e);if(a<16||a<s||a>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+a);const r=t?tr(n):xi(n),o=ut(r,e-We)+We;return t?ar(o,i):ts(o,i)}function Tp(n,e,t,a){if(typeof n.setBigUint64=="function")return n.setBigUint64(e,t,a);const i=BigInt(32),s=BigInt(4294967295),r=Number(t>>i&s),o=Number(t&s),c=a?4:0,d=a?0:4;n.setUint32(e+c,r,a),n.setUint32(e+d,o,a)}function Rp(n,e,t){return n&e^~n&t}function Dp(n,e,t){return n&e^n&t^e&t}class br extends Jn{constructor(e,t,a,i){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=a,this.isLE=i,this.buffer=new Uint8Array(e),this.view=Zi(this.buffer)}update(e){gi(this),e=Ki(e),Ut(e);const{view:t,buffer:a,blockLen:i}=this,s=e.length;for(let r=0;r<s;){const o=Math.min(i-this.pos,s-r);if(o===i){const c=Zi(e);for(;i<=s-r;r+=i)this.process(c,r);continue}a.set(e.subarray(r,r+o),this.pos),this.pos+=o,r+=o,this.pos===i&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){gi(this),xp(e,this),this.finished=!0;const{buffer:t,view:a,blockLen:i,isLE:s}=this;let{pos:r}=this;t[r++]=128,ga(this.buffer.subarray(r)),this.padOffset>i-r&&(this.process(a,0),r=0);for(let u=r;u<i;u++)t[u]=0;Tp(a,i-8,BigInt(this.length*8),s),this.process(a,0);const o=Zi(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const d=c/4,h=this.get();if(d>h.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<d;u++)o.setUint32(4*u,h[u],s)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const a=e.slice(0,t);return this.destroy(),a}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:a,length:i,finished:s,destroyed:r,pos:o}=this;return e.destroyed=r,e.finished=s,e.length=i,e.pos=o,i%t&&e.buffer.set(a),e}clone(){return this._cloneInto()}}const It=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ye=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Xe=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),bi=BigInt(2**32-1),vr=BigInt(32);function Vp(n,e=!1){return e?{h:Number(n&bi),l:Number(n>>vr&bi)}:{h:Number(n>>vr&bi)|0,l:Number(n&bi)|0}}function Pp(n,e=!1){const t=n.length;let a=new Uint32Array(t),i=new Uint32Array(t);for(let s=0;s<t;s++){const{h:r,l:o}=Vp(n[s],e);[a[s],i[s]]=[r,o]}return[a,i]}const yr=(n,e,t)=>n>>>t,wr=(n,e,t)=>n<<32-t|e>>>t,pa=(n,e,t)=>n>>>t|e<<32-t,ma=(n,e,t)=>n<<32-t|e>>>t,vi=(n,e,t)=>n<<64-t|e>>>t-32,yi=(n,e,t)=>n>>>t-32|e<<64-t;function At(n,e,t,a){const i=(e>>>0)+(a>>>0);return{h:n+t+(i/2**32|0)|0,l:i|0}}const Ip=(n,e,t)=>(n>>>0)+(e>>>0)+(t>>>0),zp=(n,e,t,a)=>e+t+a+(n/2**32|0)|0,_p=(n,e,t,a)=>(n>>>0)+(e>>>0)+(t>>>0)+(a>>>0),Op=(n,e,t,a,i)=>e+t+a+i+(n/2**32|0)|0,Hp=(n,e,t,a,i)=>(n>>>0)+(e>>>0)+(t>>>0)+(a>>>0)+(i>>>0),Yp=(n,e,t,a,i,s)=>e+t+a+i+s+(n/2**32|0)|0,Xp=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),zt=new Uint32Array(64);class Wp extends br{constructor(e=32){super(64,e,8,!1),this.A=It[0]|0,this.B=It[1]|0,this.C=It[2]|0,this.D=It[3]|0,this.E=It[4]|0,this.F=It[5]|0,this.G=It[6]|0,this.H=It[7]|0}get(){const{A:e,B:t,C:a,D:i,E:s,F:r,G:o,H:c}=this;return[e,t,a,i,s,r,o,c]}set(e,t,a,i,s,r,o,c){this.A=e|0,this.B=t|0,this.C=a|0,this.D=i|0,this.E=s|0,this.F=r|0,this.G=o|0,this.H=c|0}process(e,t){for(let u=0;u<16;u++,t+=4)zt[u]=e.getUint32(t,!1);for(let u=16;u<64;u++){const g=zt[u-15],f=zt[u-2],p=wt(g,7)^wt(g,18)^g>>>3,m=wt(f,17)^wt(f,19)^f>>>10;zt[u]=m+zt[u-7]+p+zt[u-16]|0}let{A:a,B:i,C:s,D:r,E:o,F:c,G:d,H:h}=this;for(let u=0;u<64;u++){const g=wt(o,6)^wt(o,11)^wt(o,25),f=h+g+Rp(o,c,d)+Xp[u]+zt[u]|0,m=(wt(a,2)^wt(a,13)^wt(a,22))+Dp(a,i,s)|0;h=d,d=c,c=o,o=r+f|0,r=s,s=i,i=a,a=f+m|0}a=a+this.A|0,i=i+this.B|0,s=s+this.C|0,r=r+this.D|0,o=o+this.E|0,c=c+this.F|0,d=d+this.G|0,h=h+this.H|0,this.set(a,i,s,r,o,c,d,h)}roundClean(){ga(zt)}destroy(){this.set(0,0,0,0,0,0,0,0),ga(this.buffer)}}const kr=Pp(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(n=>BigInt(n))),$p=kr[0],jp=kr[1],_t=new Uint32Array(80),Ot=new Uint32Array(80);class Cr extends br{constructor(e=64){super(128,e,16,!1),this.Ah=Xe[0]|0,this.Al=Xe[1]|0,this.Bh=Xe[2]|0,this.Bl=Xe[3]|0,this.Ch=Xe[4]|0,this.Cl=Xe[5]|0,this.Dh=Xe[6]|0,this.Dl=Xe[7]|0,this.Eh=Xe[8]|0,this.El=Xe[9]|0,this.Fh=Xe[10]|0,this.Fl=Xe[11]|0,this.Gh=Xe[12]|0,this.Gl=Xe[13]|0,this.Hh=Xe[14]|0,this.Hl=Xe[15]|0}get(){const{Ah:e,Al:t,Bh:a,Bl:i,Ch:s,Cl:r,Dh:o,Dl:c,Eh:d,El:h,Fh:u,Fl:g,Gh:f,Gl:p,Hh:m,Hl:x}=this;return[e,t,a,i,s,r,o,c,d,h,u,g,f,p,m,x]}set(e,t,a,i,s,r,o,c,d,h,u,g,f,p,m,x){this.Ah=e|0,this.Al=t|0,this.Bh=a|0,this.Bl=i|0,this.Ch=s|0,this.Cl=r|0,this.Dh=o|0,this.Dl=c|0,this.Eh=d|0,this.El=h|0,this.Fh=u|0,this.Fl=g|0,this.Gh=f|0,this.Gl=p|0,this.Hh=m|0,this.Hl=x|0}process(e,t){for(let y=0;y<16;y++,t+=4)_t[y]=e.getUint32(t),Ot[y]=e.getUint32(t+=4);for(let y=16;y<80;y++){const C=_t[y-15]|0,w=Ot[y-15]|0,N=pa(C,w,1)^pa(C,w,8)^yr(C,w,7),E=ma(C,w,1)^ma(C,w,8)^wr(C,w,7),A=_t[y-2]|0,B=Ot[y-2]|0,F=pa(A,B,19)^vi(A,B,61)^yr(A,B,6),M=ma(A,B,19)^yi(A,B,61)^wr(A,B,6),S=_p(E,M,Ot[y-7],Ot[y-16]),k=Op(S,N,F,_t[y-7],_t[y-16]);_t[y]=k|0,Ot[y]=S|0}let{Ah:a,Al:i,Bh:s,Bl:r,Ch:o,Cl:c,Dh:d,Dl:h,Eh:u,El:g,Fh:f,Fl:p,Gh:m,Gl:x,Hh:b,Hl:v}=this;for(let y=0;y<80;y++){const C=pa(u,g,14)^pa(u,g,18)^vi(u,g,41),w=ma(u,g,14)^ma(u,g,18)^yi(u,g,41),N=u&f^~u&m,E=g&p^~g&x,A=Hp(v,w,E,jp[y],Ot[y]),B=Yp(A,b,C,N,$p[y],_t[y]),F=A|0,M=pa(a,i,28)^vi(a,i,34)^vi(a,i,39),S=ma(a,i,28)^yi(a,i,34)^yi(a,i,39),k=a&s^a&o^s&o,L=i&r^i&c^r&c;b=m|0,v=x|0,m=f|0,x=p|0,f=u|0,p=g|0,{h:u,l:g}=At(d|0,h|0,B|0,F|0),d=o|0,h=c|0,o=s|0,c=r|0,s=a|0,r=i|0;const T=Ip(F,S,L);a=zp(T,B,M,k),i=T|0}({h:a,l:i}=At(this.Ah|0,this.Al|0,a|0,i|0)),{h:s,l:r}=At(this.Bh|0,this.Bl|0,s|0,r|0),{h:o,l:c}=At(this.Ch|0,this.Cl|0,o|0,c|0),{h:d,l:h}=At(this.Dh|0,this.Dl|0,d|0,h|0),{h:u,l:g}=At(this.Eh|0,this.El|0,u|0,g|0),{h:f,l:p}=At(this.Fh|0,this.Fl|0,f|0,p|0),{h:m,l:x}=At(this.Gh|0,this.Gl|0,m|0,x|0),{h:b,l:v}=At(this.Hh|0,this.Hl|0,b|0,v|0),this.set(a,i,s,r,o,c,d,h,u,g,f,p,m,x,b,v)}roundClean(){ga(_t,Ot)}destroy(){ga(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Gp extends Cr{constructor(){super(48),this.Ah=Ye[0]|0,this.Al=Ye[1]|0,this.Bh=Ye[2]|0,this.Bl=Ye[3]|0,this.Ch=Ye[4]|0,this.Cl=Ye[5]|0,this.Dh=Ye[6]|0,this.Dl=Ye[7]|0,this.Eh=Ye[8]|0,this.El=Ye[9]|0,this.Fh=Ye[10]|0,this.Fl=Ye[11]|0,this.Gh=Ye[12]|0,this.Gl=Ye[13]|0,this.Hh=Ye[14]|0,this.Hl=Ye[15]|0}}const Sr=Ji(()=>new Wp),Up=Ji(()=>new Cr),qp=Ji(()=>new Gp);class Ar extends Jn{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,qn(e);const a=Ki(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,s=new Uint8Array(i);s.set(a.length>i?e.create().update(a).digest():a);for(let r=0;r<s.length;r++)s[r]^=54;this.iHash.update(s),this.oHash=e.create();for(let r=0;r<s.length;r++)s[r]^=106;this.oHash.update(s),ga(s)}update(e){return gi(this),this.iHash.update(e),this}digestInto(e){gi(this),Ut(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:a,finished:i,destroyed:s,blockLen:r,outputLen:o}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=r,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=a._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Er=(n,e,t)=>new Ar(n,e).update(t).digest();Er.create=(n,e)=>new Ar(n,e);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const xa=BigInt(0),Jt=BigInt(1);function wi(n,e){const t=e.negate();return n?t:e}function ns(n,e){const t=gr(n.Fp,e.map(a=>a.Z));return e.map((a,i)=>n.fromAffine(a.toAffine(t[i])))}function Nr(n,e){if(!Number.isSafeInteger(n)||n<=0||n>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+n)}function rs(n,e){Nr(n,e);const t=Math.ceil(e/n)+1,a=2**(n-1),i=2**n,s=Ha(n),r=BigInt(n);return{windows:t,windowSize:a,mask:s,maxNumber:i,shiftBy:r}}function Mr(n,e,t){const{windowSize:a,mask:i,maxNumber:s,shiftBy:r}=t;let o=Number(n&i),c=n>>r;o>a&&(o-=s,c+=Jt);const d=e*a,h=d+Math.abs(o)-1,u=o===0,g=o<0,f=e%2!==0;return{nextN:c,offset:h,isZero:u,isNeg:g,isNegF:f,offsetF:d}}function Zp(n,e){if(!Array.isArray(n))throw new Error("array expected");n.forEach((t,a)=>{if(!(t instanceof e))throw new Error("invalid point at index "+a)})}function Kp(n,e){if(!Array.isArray(n))throw new Error("array of scalars expected");n.forEach((t,a)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+a)})}const os=new WeakMap,Lr=new WeakMap;function ls(n){return Lr.get(n)||1}function Br(n){if(n!==xa)throw new Error("invalid wNAF")}class Jp{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,a=this.ZERO){let i=e;for(;t>xa;)t&Jt&&(a=a.add(i)),i=i.double(),t>>=Jt;return a}precomputeWindow(e,t){const{windows:a,windowSize:i}=rs(t,this.bits),s=[];let r=e,o=r;for(let c=0;c<a;c++){o=r,s.push(o);for(let d=1;d<i;d++)o=o.add(r),s.push(o);r=o.double()}return s}wNAF(e,t,a){if(!this.Fn.isValid(a))throw new Error("invalid scalar");let i=this.ZERO,s=this.BASE;const r=rs(e,this.bits);for(let o=0;o<r.windows;o++){const{nextN:c,offset:d,isZero:h,isNeg:u,isNegF:g,offsetF:f}=Mr(a,o,r);a=c,h?s=s.add(wi(g,t[f])):i=i.add(wi(u,t[d]))}return Br(a),{p:i,f:s}}wNAFUnsafe(e,t,a,i=this.ZERO){const s=rs(e,this.bits);for(let r=0;r<s.windows&&a!==xa;r++){const{nextN:o,offset:c,isZero:d,isNeg:h}=Mr(a,r,s);if(a=o,!d){const u=t[c];i=i.add(h?u.negate():u)}}return Br(a),i}getPrecomputes(e,t,a){let i=os.get(t);return i||(i=this.precomputeWindow(t,e),e!==1&&(typeof a=="function"&&(i=a(i)),os.set(t,i))),i}cached(e,t,a){const i=ls(e);return this.wNAF(i,this.getPrecomputes(i,e,a),t)}unsafe(e,t,a,i){const s=ls(e);return s===1?this._unsafeLadder(e,t,i):this.wNAFUnsafe(s,this.getPrecomputes(s,e,a),t,i)}createCache(e,t){Nr(t,this.bits),Lr.set(e,t),os.delete(e)}hasCache(e){return ls(e)!==1}}function Qp(n,e,t,a){let i=e,s=n.ZERO,r=n.ZERO;for(;t>xa||a>xa;)t&Jt&&(s=s.add(i)),a&Jt&&(r=r.add(i)),i=i.double(),t>>=Jt,a>>=Jt;return{p1:s,p2:r}}function em(n,e,t,a){Zp(t,n),Kp(a,e);const i=t.length,s=a.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const r=n.ZERO,o=ir(BigInt(i));let c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);const d=Ha(c),h=new Array(Number(d)+1).fill(r),u=Math.floor((e.BITS-1)/c)*c;let g=r;for(let f=u;f>=0;f-=c){h.fill(r);for(let m=0;m<s;m++){const x=a[m],b=Number(x>>BigInt(f)&d);h[b]=h[b].add(t[m])}let p=r;for(let m=h.length-1,x=r;m>0;m--)x=x.add(h[m]),p=p.add(x);if(g=g.add(p),f!==0)for(let m=0;m<c;m++)g=g.double()}return g}function Fr(n,e,t){if(e){if(e.ORDER!==n)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Lp(e),e}else return Kt(n,{isLE:t})}function tm(n,e,t={},a){if(a===void 0&&(a=n==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${n} CURVE object`);for(const c of["p","n","h"]){const d=e[c];if(!(typeof d=="bigint"&&d>xa))throw new Error(`CURVE.${c} must be positive bigint`)}const i=Fr(e.p,t.Fp,a),s=Fr(e.n,t.Fn,a),o=["Gx","Gy","a","b"];for(const c of o)if(!i.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:i,Fn:s}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Tr=(n,e)=>(n+(n>=0?e:-e)/Rr)/e;function am(n,e,t){const[[a,i],[s,r]]=e,o=Tr(r*n,t),c=Tr(-i*n,t);let d=n-o*a-c*s,h=-o*i-c*r;const u=d<Nt,g=h<Nt;u&&(d=-d),g&&(h=-h);const f=Ha(Math.ceil(ir(t)/2))+ba;if(d<Nt||d>=f||h<Nt||h>=f)throw new Error("splitScalar (endomorphism): failed, k="+n);return{k1neg:u,k1:d,k2neg:g,k2:h}}function cs(n){if(!["compact","recovered","der"].includes(n))throw new Error('Signature format must be "compact", "recovered", or "der"');return n}function ds(n,e){const t={};for(let a of Object.keys(e))t[a]=n[a]===void 0?e[a]:n[a];return pi(t.lowS,"lowS"),pi(t.prehash,"prehash"),t.format!==void 0&&cs(t.format),t}class im extends Error{constructor(e=""){super(e)}}const Et={Err:im,_tlv:{encode:(n,e)=>{const{Err:t}=Et;if(n<0||n>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");const a=e.length/2,i=mi(a);if(i.length/2&128)throw new t("tlv.encode: long form length too big");const s=a>127?mi(i.length/2|128):"";return mi(n)+s+i+e},decode(n,e){const{Err:t}=Et;let a=0;if(n<0||n>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[a++]!==n)throw new t("tlv.decode: wrong tlv");const i=e[a++],s=!!(i&128);let r=0;if(!s)r=i;else{const c=i&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");const d=e.subarray(a,a+c);if(d.length!==c)throw new t("tlv.decode: length bytes not complete");if(d[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(const h of d)r=r<<8|h;if(a+=c,r<128)throw new t("tlv.decode(long): not minimal encoding")}const o=e.subarray(a,a+r);if(o.length!==r)throw new t("tlv.decode: wrong value length");return{v:o,l:e.subarray(a+r)}}},_int:{encode(n){const{Err:e}=Et;if(n<Nt)throw new e("integer: negative integers are not allowed");let t=mi(n);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(n){const{Err:e}=Et;if(n[0]&128)throw new e("invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return xi(n)}},toSig(n){const{Err:e,_int:t,_tlv:a}=Et,i=Ze("signature",n),{v:s,l:r}=a.decode(48,i);if(r.length)throw new e("invalid signature: left bytes after parsing");const{v:o,l:c}=a.decode(2,s),{v:d,l:h}=a.decode(2,c);if(h.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(o),s:t.decode(d)}},hexFromSig(n){const{_tlv:e,_int:t}=Et,a=e.encode(2,t.encode(n.r)),i=e.encode(2,t.encode(n.s)),s=a+i;return e.encode(48,s)}},Nt=BigInt(0),ba=BigInt(1),Rr=BigInt(2),ki=BigInt(3),sm=BigInt(4);function va(n,e){const{BYTES:t}=n;let a;if(typeof e=="bigint")a=e;else{let i=Ze("private key",e);try{a=n.fromBytes(i)}catch{throw new Error(`invalid private key: expected ui8a of size ${t}, got ${typeof e}`)}}if(!n.isValidNot0(a))throw new Error("invalid private key: out of range [1..N-1]");return a}function nm(n,e={}){const t=tm("weierstrass",n,e),{Fp:a,Fn:i}=t;let s=t.CURVE;const{h:r,n:o}=s;is(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:c}=e;if(c&&(!a.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const d=Vr(a,i);function h(){if(!a.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function u(S,k,L){const{x:T,y:I}=k.toAffine(),R=a.toBytes(T);if(pi(L,"isCompressed"),L){h();const P=!a.isOdd(I);return Pt(Dr(P),R)}else return Pt(Uint8Array.of(4),R,a.toBytes(I))}function g(S){qt(S,void 0,"Point");const{publicKey:k,publicKeyUncompressed:L}=d,T=S.length,I=S[0],R=S.subarray(1);if(T===k&&(I===2||I===3)){const P=a.fromBytes(R);if(!a.isValid(P))throw new Error("bad point: is not on curve, wrong x");const H=m(P);let D;try{D=a.sqrt(H)}catch(Z){const U=Z instanceof Error?": "+Z.message:"";throw new Error("bad point: is not on curve, sqrt error"+U)}h();const _=a.isOdd(D);return(I&1)===1!==_&&(D=a.neg(D)),{x:P,y:D}}else if(T===L&&I===4){const P=a.BYTES,H=a.fromBytes(R.subarray(0,P)),D=a.fromBytes(R.subarray(P,P*2));if(!x(H,D))throw new Error("bad point: is not on curve");return{x:H,y:D}}else throw new Error(`bad point: got length ${T}, expected compressed=${k} or uncompressed=${L}`)}const f=e.toBytes||u,p=e.fromBytes||g;function m(S){const k=a.sqr(S),L=a.mul(k,S);return a.add(a.add(L,a.mul(S,s.a)),s.b)}function x(S,k){const L=a.sqr(k),T=m(S);return a.eql(L,T)}if(!x(s.Gx,s.Gy))throw new Error("bad curve params: generator point");const b=a.mul(a.pow(s.a,ki),sm),v=a.mul(a.sqr(s.b),BigInt(27));if(a.is0(a.add(b,v)))throw new Error("bad curve params: a or b");function y(S,k,L=!1){if(!a.isValid(k)||L&&a.is0(k))throw new Error(`bad point coordinate ${S}`);return k}function C(S){if(!(S instanceof B))throw new Error("ProjectivePoint expected")}function w(S){if(!c||!c.basises)throw new Error("no endo");return am(S,c.basises,i.ORDER)}const N=sr((S,k)=>{const{X:L,Y:T,Z:I}=S;if(a.eql(I,a.ONE))return{x:L,y:T};const R=S.is0();k==null&&(k=R?a.ONE:a.inv(I));const P=a.mul(L,k),H=a.mul(T,k),D=a.mul(I,k);if(R)return{x:a.ZERO,y:a.ZERO};if(!a.eql(D,a.ONE))throw new Error("invZ was invalid");return{x:P,y:H}}),E=sr(S=>{if(S.is0()){if(e.allowInfinityPoint&&!a.is0(S.Y))return;throw new Error("bad point: ZERO")}const{x:k,y:L}=S.toAffine();if(!a.isValid(k)||!a.isValid(L))throw new Error("bad point: x or y not field elements");if(!x(k,L))throw new Error("bad point: equation left != right");if(!S.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function A(S,k,L,T,I){return L=new B(a.mul(L.X,S),L.Y,L.Z),k=wi(T,k),L=wi(I,L),k.add(L)}class B{constructor(k,L,T){this.X=y("x",k),this.Y=y("y",L,!0),this.Z=y("z",T),Object.freeze(this)}static CURVE(){return s}static fromAffine(k){const{x:L,y:T}=k||{};if(!k||!a.isValid(L)||!a.isValid(T))throw new Error("invalid affine point");if(k instanceof B)throw new Error("projective point not allowed");return a.is0(L)&&a.is0(T)?B.ZERO:new B(L,T,a.ONE)}static fromBytes(k){const L=B.fromAffine(p(qt(k,void 0,"point")));return L.assertValidity(),L}static fromHex(k){return B.fromBytes(Ze("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,L=!0){return M.createCache(this,k),L||this.multiply(ki),this}assertValidity(){E(this)}hasEvenY(){const{y:k}=this.toAffine();if(!a.isOdd)throw new Error("Field doesn't support isOdd");return!a.isOdd(k)}equals(k){C(k);const{X:L,Y:T,Z:I}=this,{X:R,Y:P,Z:H}=k,D=a.eql(a.mul(L,H),a.mul(R,I)),_=a.eql(a.mul(T,H),a.mul(P,I));return D&&_}negate(){return new B(this.X,a.neg(this.Y),this.Z)}double(){const{a:k,b:L}=s,T=a.mul(L,ki),{X:I,Y:R,Z:P}=this;let H=a.ZERO,D=a.ZERO,_=a.ZERO,O=a.mul(I,I),Z=a.mul(R,R),U=a.mul(P,P),W=a.mul(I,R);return W=a.add(W,W),_=a.mul(I,P),_=a.add(_,_),H=a.mul(k,_),D=a.mul(T,U),D=a.add(H,D),H=a.sub(Z,D),D=a.add(Z,D),D=a.mul(H,D),H=a.mul(W,H),_=a.mul(T,_),U=a.mul(k,U),W=a.sub(O,U),W=a.mul(k,W),W=a.add(W,_),_=a.add(O,O),O=a.add(_,O),O=a.add(O,U),O=a.mul(O,W),D=a.add(D,O),U=a.mul(R,P),U=a.add(U,U),O=a.mul(U,W),H=a.sub(H,O),_=a.mul(U,Z),_=a.add(_,_),_=a.add(_,_),new B(H,D,_)}add(k){C(k);const{X:L,Y:T,Z:I}=this,{X:R,Y:P,Z:H}=k;let D=a.ZERO,_=a.ZERO,O=a.ZERO;const Z=s.a,U=a.mul(s.b,ki);let W=a.mul(L,R),$=a.mul(T,P),Y=a.mul(I,H),te=a.add(L,T),re=a.add(R,P);te=a.mul(te,re),re=a.add(W,$),te=a.sub(te,re),re=a.add(L,I);let ee=a.add(R,H);return re=a.mul(re,ee),ee=a.add(W,Y),re=a.sub(re,ee),ee=a.add(T,I),D=a.add(P,H),ee=a.mul(ee,D),D=a.add($,Y),ee=a.sub(ee,D),O=a.mul(Z,re),D=a.mul(U,Y),O=a.add(D,O),D=a.sub($,O),O=a.add($,O),_=a.mul(D,O),$=a.add(W,W),$=a.add($,W),Y=a.mul(Z,Y),re=a.mul(U,re),$=a.add($,Y),Y=a.sub(W,Y),Y=a.mul(Z,Y),re=a.add(re,Y),W=a.mul($,re),_=a.add(_,W),W=a.mul(ee,re),D=a.mul(te,D),D=a.sub(D,W),W=a.mul(te,$),O=a.mul(ee,O),O=a.add(O,W),new B(D,_,O)}subtract(k){return this.add(k.negate())}is0(){return this.equals(B.ZERO)}multiply(k){const{endo:L}=e;if(!i.isValidNot0(k))throw new Error("invalid scalar: out of range");let T,I;const R=P=>M.cached(this,P,H=>ns(B,H));if(L){const{k1neg:P,k1:H,k2neg:D,k2:_}=w(k),{p:O,f:Z}=R(H),{p:U,f:W}=R(_);I=Z.add(W),T=A(L.beta,O,U,P,D)}else{const{p:P,f:H}=R(k);T=P,I=H}return ns(B,[T,I])[0]}multiplyUnsafe(k){const{endo:L}=e,T=this;if(!i.isValid(k))throw new Error("invalid scalar: out of range");if(k===Nt||T.is0())return B.ZERO;if(k===ba)return T;if(M.hasCache(this))return this.multiply(k);if(L){const{k1neg:I,k1:R,k2neg:P,k2:H}=w(k),{p1:D,p2:_}=Qp(B,T,R,H);return A(L.beta,D,_,I,P)}else return M.unsafe(T,k)}multiplyAndAddUnsafe(k,L,T){const I=this.multiplyUnsafe(L).add(k.multiplyUnsafe(T));return I.is0()?void 0:I}toAffine(k){return N(this,k)}isTorsionFree(){const{isTorsionFree:k}=e;return r===ba?!0:k?k(B,this):M.unsafe(this,o).is0()}clearCofactor(){const{clearCofactor:k}=e;return r===ba?this:k?k(B,this):this.multiplyUnsafe(r)}isSmallOrder(){return this.multiplyUnsafe(r).is0()}toBytes(k=!0){return pi(k,"isCompressed"),this.assertValidity(),f(B,this,k)}toHex(k=!0){return fa(this.toBytes(k))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return ns(B,k)}static msm(k,L){return em(B,i,k,L)}static fromPrivateKey(k){return B.BASE.multiply(va(i,k))}}B.BASE=new B(s.Gx,s.Gy,a.ONE),B.ZERO=new B(a.ZERO,a.ONE,a.ZERO),B.Fp=a,B.Fn=i;const F=i.BITS,M=new Jp(B,e.endo?Math.ceil(F/2):F);return B.BASE.precompute(8),B}function Dr(n){return Uint8Array.of(n?2:3)}function Vr(n,e){return{secretKey:e.BYTES,publicKey:1+n.BYTES,publicKeyUncompressed:1+2*n.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function rm(n,e={}){const{Fn:t}=n,a=e.randomBytes||Qn,i=Object.assign(Vr(n.Fp,t),{seed:xr(t.ORDER)});function s(f){try{return!!va(t,f)}catch{return!1}}function r(f,p){const{publicKey:m,publicKeyUncompressed:x}=i;try{const b=f.length;return p===!0&&b!==m||p===!1&&b!==x?!1:!!n.fromBytes(f)}catch{return!1}}function o(f=a(i.seed)){return Fp(qt(f,i.seed,"seed"),t.ORDER)}function c(f,p=!0){return n.BASE.multiply(va(t,f)).toBytes(p)}function d(f){const p=o(f);return{secretKey:p,publicKey:c(p)}}function h(f){if(typeof f=="bigint")return!1;if(f instanceof n)return!0;const{secretKey:p,publicKey:m,publicKeyUncompressed:x}=i;if(t.allowedLengths||p===m)return;const b=Ze("key",f).length;return b===m||b===x}function u(f,p,m=!0){if(h(f)===!0)throw new Error("first arg must be private key");if(h(p)===!1)throw new Error("second arg must be public key");const x=va(t,f);return n.fromHex(p).multiply(x).toBytes(m)}return Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:d,Point:n,utils:{isValidSecretKey:s,isValidPublicKey:r,randomSecretKey:o,isValidPrivateKey:s,randomPrivateKey:o,normPrivateKeyToScalar:f=>va(t,f),precompute(f=8,p=n.BASE){return p.precompute(f,!1)}},lengths:i})}function om(n,e,t={}){qn(e),is(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const a=t.randomBytes||Qn,i=t.hmac||((L,...T)=>Er(e,L,Pt(...T))),{Fp:s,Fn:r}=n,{ORDER:o,BITS:c}=r,{keygen:d,getPublicKey:h,getSharedSecret:u,utils:g,lengths:f}=rm(n,t),p={prehash:!1,lowS:typeof t.lowS=="boolean"?t.lowS:!1,format:void 0,extraEntropy:!1},m="compact";function x(L){const T=o>>ba;return L>T}function b(L,T){if(!r.isValidNot0(T))throw new Error(`invalid signature ${L}: out of range 1..Point.Fn.ORDER`);return T}function v(L,T){cs(T);const I=f.signature,R=T==="compact"?I:T==="recovered"?I+1:void 0;return qt(L,R,`${T} signature`)}class y{constructor(T,I,R){this.r=b("r",T),this.s=b("s",I),R!=null&&(this.recovery=R),Object.freeze(this)}static fromBytes(T,I=m){v(T,I);let R;if(I==="der"){const{r:_,s:O}=Et.toSig(qt(T));return new y(_,O)}I==="recovered"&&(R=T[0],I="compact",T=T.subarray(1));const P=r.BYTES,H=T.subarray(0,P),D=T.subarray(P,P*2);return new y(r.fromBytes(H),r.fromBytes(D),R)}static fromHex(T,I){return this.fromBytes(fi(T),I)}addRecoveryBit(T){return new y(this.r,this.s,T)}recoverPublicKey(T){const I=s.ORDER,{r:R,s:P,recovery:H}=this;if(H==null||![0,1,2,3].includes(H))throw new Error("recovery id invalid");if(o*Rr<I&&H>1)throw new Error("recovery id is ambiguous for h>1 curve");const _=H===2||H===3?R+o:R;if(!s.isValid(_))throw new Error("recovery id 2 or 3 invalid");const O=s.toBytes(_),Z=n.fromBytes(Pt(Dr((H&1)===0),O)),U=r.inv(_),W=w(Ze("msgHash",T)),$=r.create(-W*U),Y=r.create(P*U),te=n.BASE.multiplyUnsafe($).add(Z.multiplyUnsafe(Y));if(te.is0())throw new Error("point at infinify");return te.assertValidity(),te}hasHighS(){return x(this.s)}toBytes(T=m){if(cs(T),T==="der")return fi(Et.hexFromSig(this));const I=r.toBytes(this.r),R=r.toBytes(this.s);if(T==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return Pt(Uint8Array.of(this.recovery),I,R)}return Pt(I,R)}toHex(T){return fa(this.toBytes(T))}assertValidity(){}static fromCompact(T){return y.fromBytes(Ze("sig",T),"compact")}static fromDER(T){return y.fromBytes(Ze("sig",T),"der")}normalizeS(){return this.hasHighS()?new y(this.r,r.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return fa(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return fa(this.toBytes("compact"))}}const C=t.bits2int||function(T){if(T.length>8192)throw new Error("input is too large");const I=xi(T),R=T.length*8-c;return R>0?I>>BigInt(R):I},w=t.bits2int_modN||function(T){return r.create(C(T))},N=Ha(c);function E(L){return wp("num < 2^"+c,L,Nt,N),r.toBytes(L)}function A(L,T){return qt(L,void 0,"message"),T?qt(e(L),void 0,"prehashed message"):L}function B(L,T,I){if(["recovered","canonical"].some($=>$ in I))throw new Error("sign() legacy options not supported");const{lowS:R,prehash:P,extraEntropy:H}=ds(I,p);L=A(L,P);const D=w(L),_=va(r,T),O=[E(_),E(D)];if(H!=null&&H!==!1){const $=H===!0?a(f.secretKey):H;O.push(Ze("extraEntropy",$))}const Z=Pt(...O),U=D;function W($){const Y=C($);if(!r.isValidNot0(Y))return;const te=r.inv(Y),re=n.BASE.multiply(Y).toAffine(),ee=r.create(re.x);if(ee===Nt)return;const me=r.create(te*r.create(U+ee*_));if(me===Nt)return;let Re=(re.x===ee?0:2)|Number(re.y&ba),ye=me;return R&&x(me)&&(ye=r.neg(me),Re^=1),new y(ee,ye,Re)}return{seed:Z,k2sig:W}}function F(L,T,I={}){L=Ze("message",L);const{seed:R,k2sig:P}=B(L,T,I);return kp(e.outputLen,r.BYTES,i)(R,P)}function M(L){let T;const I=typeof L=="string"||ui(L),R=!I&&L!==null&&typeof L=="object"&&typeof L.r=="bigint"&&typeof L.s=="bigint";if(!I&&!R)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(R)T=new y(L.r,L.s);else if(I){try{T=y.fromBytes(Ze("sig",L),"der")}catch(P){if(!(P instanceof Et.Err))throw P}if(!T)try{T=y.fromBytes(Ze("sig",L),"compact")}catch{return!1}}return T||!1}function S(L,T,I,R={}){const{lowS:P,prehash:H,format:D}=ds(R,p);if(I=Ze("publicKey",I),T=A(Ze("message",T),H),"strict"in R)throw new Error("options.strict was renamed to lowS");const _=D===void 0?M(L):y.fromBytes(Ze("sig",L),D);if(_===!1)return!1;try{const O=n.fromBytes(I);if(P&&_.hasHighS())return!1;const{r:Z,s:U}=_,W=w(T),$=r.inv(U),Y=r.create(W*$),te=r.create(Z*$),re=n.BASE.multiplyUnsafe(Y).add(O.multiplyUnsafe(te));return re.is0()?!1:r.create(re.x)===Z}catch{return!1}}function k(L,T,I={}){const{prehash:R}=ds(I,p);return T=A(T,R),y.fromBytes(L,"recovered").recoverPublicKey(T).toBytes()}return Object.freeze({keygen:d,getPublicKey:h,getSharedSecret:u,utils:g,lengths:f,Point:n,sign:F,verify:S,recoverPublicKey:k,Signature:y,hash:e})}function lm(n){const e={a:n.a,b:n.b,p:n.Fp.ORDER,n:n.n,h:n.h,Gx:n.Gx,Gy:n.Gy},t=n.Fp;let a=n.allowedPrivateKeyLengths?Array.from(new Set(n.allowedPrivateKeyLengths.map(r=>Math.ceil(r/2)))):void 0;const i=Kt(e.n,{BITS:n.nBitLength,allowedLengths:a,modFromBytes:n.wrapPrivateKey}),s={Fp:t,Fn:i,allowInfinityPoint:n.allowInfinityPoint,endo:n.endo,isTorsionFree:n.isTorsionFree,clearCofactor:n.clearCofactor,fromBytes:n.fromBytes,toBytes:n.toBytes};return{CURVE:e,curveOpts:s}}function cm(n){const{CURVE:e,curveOpts:t}=lm(n),a={hmac:n.hmac,randomBytes:n.randomBytes,lowS:n.lowS,bits2int:n.bits2int,bits2int_modN:n.bits2int_modN};return{CURVE:e,curveOpts:t,hash:n.hash,ecdsaOpts:a}}function dm(n,e){const t=e.Point;return Object.assign({},e,{ProjectivePoint:t,CURVE:Object.assign({},n,pr(t.Fn.ORDER,t.Fn.BITS))})}function hm(n){const{CURVE:e,curveOpts:t,hash:a,ecdsaOpts:i}=cm(n),s=nm(e,t),r=om(s,a,i);return dm(n,r)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function hs(n,e){const t=a=>hm({...n,hash:a});return{...t(e),create:t}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Pr={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},Ir={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},zr={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},um=Kt(Pr.p),gm=Kt(Ir.p),fm=Kt(zr.p),pm=hs({...Pr,Fp:um,lowS:!1},Sr);hs({...Ir,Fp:gm,lowS:!1},qp),hs({...zr,Fp:fm,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Up);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const mm=Object.freeze(Object.defineProperty({__proto__:null,p256:pm},Symbol.toStringTag,{value:"Module"})),xm=Object.freeze(Object.defineProperty({__proto__:null,sha256:Sr},Symbol.toStringTag,{value:"Module"})),bm=Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"}));/*!
318
318
  * ApexCharts v4.7.0
319
319
  * (c) 2018-2025 ApexCharts
320
320
  * Released under the MIT License.