pivotkit-element 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +143 -0
- package/LICENSE +21 -0
- package/README.md +73 -2
- package/dist/THIRD_PARTY_LICENSES.txt +547 -0
- package/dist/chunks/chunk-BL6ROOK3.js +6 -0
- package/dist/chunks/chunk-CETTRMB6.js +9 -0
- package/dist/chunks/chunk-DCANE7XH.js +1 -0
- package/dist/chunks/chunk-JGSNJX3N.js +1 -0
- package/dist/chunks/chunk-MB64GADT.js +1 -0
- package/dist/chunks/chunk-UTPKLCNX.js +1 -0
- package/dist/chunks/echarts-42T6EZ6B.js +18 -0
- package/dist/chunks/export-EASUJGEK.js +6 -0
- package/dist/chunks/link-52SWRX4P.js +1 -0
- package/dist/chunks/menu-texts-de-TRCAQWTH.js +1 -0
- package/dist/chunks/menus-CRKZQ2O3.js +1 -0
- package/dist/chunks/unused-texts-YTNJCFFC-HJOIWMO6.js +1 -0
- package/dist/chunks/unused-texts-de-SGOHV4N7-LJH5VMQZ.js +1 -0
- package/dist/element.js +1 -0
- package/dist/index.js +1 -0
- package/package.json +72 -4
- package/types/element.d.ts +428 -0
- package/types/events.d.ts +34 -0
- package/types/global.d.ts +33 -0
- package/types/index.d.ts +22 -0
- package/types/jsx.d.ts +25 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{c as oe,e as ne}from"./chunk-UTPKLCNX.js";import{A as ee,B as N,Y as R,_ as te,b as G,e as Y,h as q,n as J,o as W,v as Z,w as K,x as Q,y as L}from"./chunk-JGSNJX3N.js";import{b as d,c as _,d as A,e as P,f as S,g,l as z,q as V}from"./chunk-MB64GADT.js";import"./chunk-DCANE7XH.js";var ye=25569,$e=1048576,Ce=16384,re=32767,Te=Date.UTC(1900,0,1),ge=Date.UTC(1900,2,1),be=Date.UTC(1e4,0,1),Fe=new Set(["history"]);function M(e){return String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F]/g,"").replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"")}function E(e,t){let o="",n=e+1;for(;n>0;){let r=(n-1)%26;o=String.fromCharCode(65+r)+o,n=Math.floor((n-1)/26)}return`${o}${t+1}`}function Se(e){if(!(e>=Te&&e<be))return null;let t=e/A+ye;return e<ge?t-1:t}function se(e){return`FF${z(e).toUpperCase()}`}function Ee(e){let t=String(e??"").replace(/[\u0000-\u001F\u007F\\/?*[\]:]/g," ").replace(/^'+|'+$/g,"").trim().slice(0,31).trim();return Fe.has(t.toLowerCase())?`${t} 1`:t||"Pivot"}function ke(e){let t=new Map;for(let[n,r]of e)t.has(r)||t.set(r,[]),t.get(r).push(n);let o=[];for(let[n,r]of[...t.entries()].sort((a,i)=>a[0]-i[0])){r.sort((s,c)=>s-c);let a=r[0],i=r[0];for(let s=1;s<=r.length;s++){if(s<r.length&&r[s]===i+1){i=r[s];continue}o.push(a===i?E(n,a):`${E(n,a)}:${E(n,i)}`),s<r.length&&(a=i=r[s])}}return o.join(" ")}function X(e,t){t=g(t,"toXlsx"),d(R(e),"toXlsx(grid): grid must come from toGrid()"),_("xlsxRows",e.rows.length,$e,"rows (an Excel sheet)"),_("xlsxColumns",e.columnCount,Ce,"columns (an Excel sheet)");let o={...te,...t.theme||{}},n=e.locale,r=new Map,a=[{fmt:0,bold:!1}],i=new Map([["0|false",0]]),s=(u,p)=>{let v=0;u&&u!=="General"&&(r.has(u)||r.set(u,164+r.size),v=r.get(u));let y=`${v}|${p}`;return i.has(y)||(i.set(y,a.length),a.push({fmt:v,bold:p})),i.get(y)},c=(u,p,v)=>{let y=p.length>re?p.slice(0,re):p;return`<c r="${u}" t="inlineStr" s="${s("General",v)}"><is><t xml:space="preserve">${M(y)}</t></is></c>`},m=(u,p,v,y)=>`<c r="${u}" s="${s(v,y)}"><v>${p}</v></c>`,h=new Array(e.columnCount).fill(6),f=new Map,x=e.rows.map((u,p)=>{let v=p<e.headerRows,y=u.map((l,F)=>{if(!l)return"";let $=E(F,p),T=v||l.total>0;if((!l.colSpan||l.colSpan===1)&&(h[F]=Math.max(h[F],Math.min(60,l.text.length+2))),l.kind==="value"&&typeof l.value=="number"&&Number.isFinite(l.value)){if(l.total===0&&l.valueIndex!==void 0&&e.conditional&&e.conditional[l.valueIndex]){let C=f.get(l.valueIndex)??{cells:[],min:1/0,max:-1/0};C.cells.push([p,F]),C.min=Math.min(C.min,l.value),C.max=Math.max(C.max,l.value),f.set(l.valueIndex,C)}if(l.valueType==="date"){let C=Se(l.value);return C===null?c($,l.text,T):m($,C,N(l.format,l.value,n),T)}return m($,l.value,N(l.format,l.value,n),T)}return(l.kind==="rowHeader"||l.kind==="colHeader")&&typeof l.value=="number"&&l.text===String(l.value)?m($,l.value,"General",T):l.text===""?T?`<c r="${$}" s="${s("General",!0)}"/>`:"":c($,l.text,T)});return`<row r="${p+1}">${y.join("")}</row>`}),b=1,D=[...f.entries()].map(([u,{cells:p,min:v,max:y}])=>{let l=e.conditional[u],F;if(l.type==="colorScale"){let $=l.colors.length>=2?l.colors:o.colorScale,T=$.length===3?'<cfvo type="min"/><cfvo type="percentile" val="50"/><cfvo type="max"/>':'<cfvo type="min"/><cfvo type="max"/>';F=`<cfRule type="colorScale" priority="${b++}"><colorScale>${T}${$.map(C=>`<color rgb="${se(C)}"/>`).join("")}</colorScale></cfRule>`}else{let $=v>0?'<cfvo type="num" val="0"/>':'<cfvo type="min"/>',T=y<0?'<cfvo type="num" val="0"/>':'<cfvo type="max"/>';F=`<cfRule type="dataBar" priority="${b++}"><dataBar>${$}${T}<color rgb="${se(l.color||o.dataBar)}"/></dataBar></cfRule>`}return`<conditionalFormatting sqref="${ke(p)}">${F}</conditionalFormatting>`}),w=e.headerRows>0||e.rowHeaderColumns>0?`<pane${e.rowHeaderColumns?` xSplit="${e.rowHeaderColumns}"`:""}${e.headerRows?` ySplit="${e.headerRows}"`:""} topLeftCell="${E(e.rowHeaderColumns,e.headerRows)}" activePane="${e.rowHeaderColumns&&e.headerRows?"bottomRight":e.headerRows?"bottomLeft":"topRight"}" state="frozen"/>`:"",j=h.map((u,p)=>`<col min="${p+1}" max="${p+1}" width="${u}" customWidth="1"/>`).join(""),pe=e.merges.length?`<mergeCells count="${e.merges.length}">${e.merges.map(u=>`<mergeCell ref="${E(u.col,u.row)}:${E(u.col+u.colSpan-1,u.row+u.rowSpan-1)}"/>`).join("")}</mergeCells>`:"",k=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
+
`,he=`${k}<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><sheetViews><sheetView workbookViewId="0">${w}</sheetView></sheetViews>${j?`<cols>${j}</cols>`:""}<sheetData>${x.join("")}</sheetData>${pe}${D.join("")}</worksheet>`,xe=[...r.entries()].map(([u,p])=>`<numFmt numFmtId="${p}" formatCode="${M(u)}"/>`).join(""),de=`${k}<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">${r.size?`<numFmts count="${r.size}">${xe}</numFmts>`:""}<fonts count="2"><font><sz val="11"/><name val="Calibri"/></font><font><b/><sz val="11"/><name val="Calibri"/></font></fonts><fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills><borders count="1"><border/></borders><cellStyleXfs count="1"><xf/></cellStyleXfs><cellXfs count="${a.length}">${a.map(u=>`<xf numFmtId="${u.fmt}" fontId="${u.bold?1:0}"${u.fmt?' applyNumberFormat="1"':""}${u.bold?' applyFont="1"':""}/>`).join("")}</cellXfs><dxfs count="0"/></styleSheet>`,we=M(Ee(t.sheetName)),ve={"[Content_Types].xml":`${k}<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/></Types>`,"_rels/.rels":`${k}<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>`,"xl/workbook.xml":`${k}<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><sheets><sheet name="${we}" sheetId="1" r:id="rId1"/></sheets></workbook>`,"xl/_rels/workbook.xml.rels":`${k}<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>`,"xl/styles.xml":de,"xl/worksheets/sheet1.xml":he},H={};for(let[u,p]of Object.entries(ve))H[u]=oe(p);return ne(H,{level:6})}var O=String.raw`[+\-\u2212]?\p{Sc}?\d[\d.,'\u2019\u00a0\u202f ]*(?:[\u00a0\u202f ]?(?:%|\p{Sc}))?`,Re=new RegExp(`^${O}$`,"u"),De=new RegExp(`^${O}\\s\u2013\\s${O}$`,"u");function _e(e){return le(e)===","?";":","}function le(e){let t=q(e).formatToParts(1.5).find(o=>o.type==="decimal");return t?t.value:"."}function me(e){if(/^[\t\r]/.test(e))return`'${e}`;let t=e.replace(/^[\s\u0000-\u001F\u007F]+/,"");return/^[=@]/.test(t)||/^[+-]/.test(t)&&!Re.test(t)&&!De.test(t)?`'${e}`:e}function ue(e){let t=new Date(e),o=`${S(t.getUTCFullYear(),4)}-${S(t.getUTCMonth()+1)}-${S(t.getUTCDate())}`;return e%A===0?o:`${o} ${S(t.getUTCHours())}:${S(t.getUTCMinutes())}:${S(t.getUTCSeconds())}`}function Ae(e,t){let o=String(Number(e.toPrecision(15)));return t==="."?o:o.replace(".",t)}function Le(e,t){let o=Math.sign(e)*Number(Math.abs(e).toFixed(t));return o===0?0:o}function Ie(e,t,o,n,r){let a=Z(t)?.name,i=a==="percent"||a==="percent100",s=n||i?K(t,r):null,c=a==="percent"?e*100:e,m=Ae(s===null?c:Le(c,s),o);return i?`${m}%`:m}function B(e,t){let o=new Map;for(let n of e.merges)for(let r=n.row;r<n.row+n.rowSpan;r++)for(let a=n.col;a<n.col+n.colSpan;a++)(r!==n.row||a!==n.col)&&o.set(`${r},${a}`,e.rows[n.row][n.col]);return e.rows.map((n,r)=>n.map((a,i)=>{if(a)return a;let s=o.get(`${r},${i}`);return t&&s&&s.kind==="rowHeader"&&s.total===0&&(s.colSpan??1)===1?s:null}))}var ce=e=>e.kind==="value"&&typeof e.value=="number"&&Number.isFinite(e.value);function ie(e,t){return t=g(t,"toCsv"),d(R(e),"toCsv(grid): grid must come from toGrid()"),I(e,t)}function I(e,t){let o=e.locale??P,n=t.separator??_e(o),r=le(o),a=s=>{let c=me(s);return/["\r\n]/.test(c)||c.includes(n)?`"${c.replace(/"/g,'""')}"`:c};return B(e,t.repeatLabels!==!1).map(s=>s.map(c=>{if(!c)return"";if(ce(c)){let m=c.valueIndex!==void 0&&!!e.showAs?.[c.valueIndex];return c.valueType==="date"?ue(c.value):Ie(c.value,c.format,r,m,o)}return a(c.text)}).join(n)).join(`\r
|
|
3
|
+
`)+`\r
|
|
4
|
+
`}function ae(e){let t=o=>{let n=me(String(o??""));return/["\t\r\n]/.test(n)?`"${n.replace(/"/g,'""')}"`:n};return e.map(o=>o.map(t).join(" ")).join(`\r
|
|
5
|
+
`)+`\r
|
|
6
|
+
`}function Ne(e){return Array.isArray(e)?(d(e.every(Array.isArray),"toTsv(rows): rows must be arrays of texts"),ae(e)):(d(R(e),"toTsv(grid): grid must come from toGrid() or be an array of rows"),ae(B(e,!0).map(t=>t.map(o=>o?o.text:""))))}function Me(e){return!e||e.value===null||e.value===void 0?null:ce(e)?e.valueType==="date"?ue(e.value):Number(e.value.toPrecision(15)):typeof e.value=="number"?null:e.value}function Xe(e,t){t=g(t,"toJson"),d(R(e),"toJson(grid): grid must come from toGrid()");let o=B(e,!0),n=e.rowHeaderColumns,r=o.slice(0,e.headerRows),a=m=>m?m.text:"",i=r[r.length-1]??[],s=r.map(m=>m.slice());for(let m of e.merges)for(let h=m.row;h<Math.min(m.row+m.rowSpan,e.headerRows);h++)for(let f=m.col;f<m.col+m.colSpan;f++)s[h][f]=e.rows[m.row][m.col];let c={rowHeaders:Array.from({length:n},(m,h)=>a(i[h]??null)),columns:e.dataColumns.map((m,h)=>{let f=n+h,x=[],b=null;for(let D of s){let w=D[f];w&&w!==b&&w.kind!=="corner"&&w.text!==""&&x.push(w.text),b=w}return{labels:x,value:m.valueIndex>=0?e.valueNames[m.valueIndex]??null:null,total:m.total}}),rows:e.bodyRows.map((m,h)=>{let f=o[e.headerRows+h];return{labels:f.slice(0,n).map(a),total:m.total,collapsed:m.collapsed,values:f.slice(n).map(Me)}})};return JSON.stringify(c,null,t.space??2)}function Oe(e,t){return t=g(t,"toCsvBytes"),new TextEncoder().encode((t.bom===!1?"":"\uFEFF")+ie(e,t))}var fe=new Set(["date","datetime","time"]);function Be(e,t){if(!e||typeof e!="object")return;if(Object.hasOwn(e,t))return e[t];let o=t.toLowerCase(),n=Object.keys(e).find(r=>r.toLowerCase()===o);return n===void 0?void 0:e[n]}function Ue(e,t,o,n){let r=t?t.split(":")[0]:null;if(e.type==="date"){let a=r&&fe.has(r)?t:e.dateOnly?"date":"datetime",i=L(a,o);return s=>({kind:"value",total:0,value:s,valueType:"date",format:a,text:i(s)})}if(e.type==="number"&&r!=="text"){let a=t&&!fe.has(r)?t:null,i=a?L(a,o):null;return s=>{let c=a??`number:${ee(s,6)}`;return{kind:"value",total:0,value:s,valueType:"number",format:c,text:i?i(s):L(c,o)(s)}}}return e.type==="boolean"?a=>({kind:"value",total:0,value:null,valueType:"text",text:a?n.true:n.false}):a=>({kind:"value",total:0,value:null,valueType:"text",text:String(a)})}function U(e,t,o,n){d(Y(e),`${n}(data, indices): data must come from encode()`),d(t!==null&&typeof t=="object"&&typeof t.length=="number",`${n}(data, indices): indices must be an array of row positions`);let r=G(o),a=V(null,o.locale),i={...J,...o.labels||{}},s=e.columns;o.columns!==void 0&&(d(Array.isArray(o.columns),`${n}: options.columns must be an array of field names`),s=o.columns.map(f=>e.column(String(f))).filter(f=>f!==void 0)),_("cells",(t.length+1)*s.length,r.cells,"rows x columns of the rows export");let c=s.map(f=>{let x=Be(o.formats,f.name);return Ue(f,typeof x=="string"&&Q(x)?x.trim().toLowerCase():null,a,i)}),h=[s.map(f=>({kind:"colHeader",total:0,value:f.name,text:W(f.name,i)}))];for(let f=0;f<t.length;f++){let x=t[f];d(Number.isInteger(x)&&x>=0&&x<e.length,`${n}: indices[${f}] is not a row of the data`),h.push(s.map((b,D)=>{let w=b.codes[x];return w<0?null:c[D](b.dict[w])}))}return{rows:h,headerRows:1,rowHeaderColumns:0,columnCount:s.length,merges:[],dataColumns:[],bodyRows:[],formats:[],showAs:[],valueNames:[],conditional:[],locale:a,timeZone:e.timeZone}}function je(e,t,o){return o=g(o,"rowsToCsv"),I(U(e,t,o,"rowsToCsv"),o)}function He(e,t,o){return o=g(o,"rowsToCsvBytes"),new TextEncoder().encode((o.bom===!1?"":"\uFEFF")+I(U(e,t,o,"rowsToCsvBytes"),o))}function Ge(e,t,o){return o=g(o,"rowsToXlsx"),X(U(e,t,o,"rowsToXlsx"),{sheetName:o.sheetName})}export{je as rowsToCsv,He as rowsToCsvBytes,Ge as rowsToXlsx,ie as toCsv,Oe as toCsvBytes,Xe as toJson,Ne as toTsv,X as toXlsx};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as m,b as w,c as b,d as y}from"./chunk-UTPKLCNX.js";import{a as p,b as d,h as f}from"./chunk-MB64GADT.js";import"./chunk-DCANE7XH.js";var h=1024;function L(r,t){let e=[],n=0,l=!1,o=!1,c=new w((i,S)=>{n+=i.length,n>t?l=!0:e.push(i),o=o||S});for(let i=0;i<r.length&&!l;i+=h)c.push(r.subarray(i,i+h),i+h>=r.length);if(l)return{bytes:null,inflated:n};if(!o)throw new Error("unexpected end of data");let u=new Uint8Array(n),g=0;for(let i of e)u.set(i,g),g+=i.length;return{bytes:u,inflated:n}}var a="1.",s=Object.freeze({text:32e3,json:1e6}),k=/^[A-Za-z0-9_-]*$/;function j(r){let t="";for(let e=0;e<r.length;e+=32768)t+=String.fromCharCode(...r.subarray(e,e+32768));return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function v(r){let t=atob(r.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-r.length%4)%4)),e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}function $(r){d(f(r),"encodeViewLink(view): view must be an object");let t=JSON.stringify(r),e=(l,o,c)=>new p("LIMIT_EXCEEDED",`${l.toLocaleString("en-US")} ${c} exceed the limit of ${o.toLocaleString("en-US")} (LINK_LIMITS)`,{limit:"link",value:l,max:o});if(t.length>s.json)throw e(t.length,s.json,"characters of the view");let n=a+j(m(b(t),{level:9}));if(n.length>s.text)throw e(n.length,s.text,"characters of the link");return n}function A(r){let t=o=>({view:null,issues:[{path:"",message:o}]});if(typeof r!="string"||r.trim()==="")return t("empty link");let e=r.trim();if(e.length>s.text)return t(`link longer than ${s.text} characters`);if(!e.startsWith(a)||!k.test(e.slice(a.length)))return t("not a pivotkit view link");let n=e.slice(a.length);if(n==="")return t("the link is damaged");let l;try{let o=L(v(n),s.json);if(o.bytes===null)return t(`view larger than ${s.json} characters`);l=y(o.bytes)}catch{return t("the link is damaged")}try{let o=JSON.parse(l);return f(o)?{view:o,issues:[]}:t("not a view object")}catch{return t("not valid JSON")}}export{s as LINK_LIMITS,A as decodeViewLink,$ as encodeViewLink};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-DCANE7XH.js";var e={aboutSetting:"\xDCber {setting}",settingInfo:{grandTotalRow:"Eine letzte Zeile mit der Summe jeder Spalte.",grandTotalColumn:"Eine letzte Spalte mit der Summe jeder Zeile.",rowSubtotals:"Mit zwei oder mehr Feldern in Zeilen: eine Summenzeile unter jeder Gruppe des \xE4u\xDFeren Felds.",colSubtotals:"Mit zwei oder mehr Feldern in Spalten: eine Summenspalte nach jeder Gruppe des \xE4u\xDFeren Felds.",along:"Die Richtung der Berechnung: Zeilen geht die Zeilen jeder Spalte hinunter, Spalten \xFCber die Spalten jeder Zeile. Eine laufende Summe addiert entlang, eine Differenz vergleicht mit dem Eintrag davor.",showAs:"Zeigt jeden Wert als Anteil, Differenz, laufende Summe oder Rang statt der Zahl selbst. Bei Prozenten sagt ein Tipp \xFCber dem Ergebnis, was 100 % ist.",exportXlsx:"Jede Zahl mit allen Nachkommastellen, Formate bleiben, bereit zum Rechnen.",exportCsv:"Prozente und Berechnungen wie in der Tabelle, als reiner Text.",copyTable:"Die Tabelle wie angezeigt, mit \xDCberschriften und Summen: tabulatorgetrennt, wird in Excel oder Google Sheets in Spalten eingef\xFCgt.",copyDataJson:"Die Zahlen der Tabelle mit ihren Beschriftungen als JSON, f\xFCr ein Programm. Nicht die Ansicht selbst: Das ist Ansichten \u2192 Ansicht als JSON kopieren.",drillCopy:"Die Zeilen wie im Bereich angezeigt, mit einer \xDCberschriftenzeile: tabulatorgetrennt, wird in Excel oder Google Sheets in Spalten eingef\xFCgt.",drillJson:"Die Zeilen als JSON-Objekte, mit den Feldnamen und Rohwerten der Daten, f\xFCr ein Programm.",groupLabels:"Mit zwei oder mehr Feldern in Zeilen: die Eintr\xE4ge des \xE4u\xDFeren Felds einmal unter der Achse, unter ihren Kategorien.",labelPosition:"Au\xDFen: Name und Zahl jedes Segments daneben. Innen: die Zahl auf dem Segment, die Namen in der Legende; au\xDFen, wenn der Ring eines Donuts daf\xFCr zu schmal ist.",sharedView:"Nur Admins k\xF6nnen gemeinsame Ansichten \xE4ndern.",newReport:"Nimmt alle Felder heraus, um neu anzufangen. R\xFCckg\xE4ngig holt sie zur\xFCck; gespeicherte Ansichten bleiben.",valuesFilter:"Werte werden hier nicht gefiltert: Ein Feld in Zeilen oder Spalten \xFCber sein Men\xFC filtern oder ein Feld in Filter ziehen."},moveLeft:"Nach links",moveRight:"Nach rechts",remove:"Feld entfernen",chartAutoNow:"Jetzt: {type}",sharedViews:"Gemeinsame Ansichten",myViews:"Meine Ansichten",noViews:"Noch keine gespeicherten Ansichten.",noViewsStore:"Noch keine. Gespeicherte Ansichten bleiben nur in diesem Browser.",publishView:"{name} als gemeinsame Ansicht ver\xF6ffentlichen",publishConfirm:"\u201E{name}\u201C als gemeinsame Ansicht ver\xF6ffentlichen? Alle, die diesen Bericht nutzen, sehen sie.",publishAction:"Ver\xF6ffentlichen",storeNote:"Nur in diesem Browser gespeichert: nicht auf anderen Ger\xE4ten, und weg, wenn die Websitedaten gel\xF6scht werden.",storeFull:"dieser Browser beh\xE4lt h\xF6chstens {max} Ansichten",storeTooLarge:"die Ansichten br\xE4uchten mehr als {max} Zeichen",storeRefused:"dieser Browser hat sie nicht behalten (Speicher gesperrt oder voll)",storeChanged:"die Ansichten wurden in einem anderen Tab ge\xE4ndert; das Men\xFC neu \xF6ffnen",toastSaved:"Ansicht \u201E{name}\u201C gespeichert",toastDeleted:"Ansicht \u201E{name}\u201C gel\xF6scht",toastPublished:"Ansicht \u201E{name}\u201C ver\xF6ffentlicht",toastSaveFailed:"Die Ansicht konnte nicht gespeichert werden: {message}",toastDeleteFailed:"Die Ansicht konnte nicht gel\xF6scht werden: {message}",toastPublishFailed:"Die Ansicht konnte nicht ver\xF6ffentlicht werden: {message}",toastSaveRejected:"Der Server konnte die Ansicht nicht speichern.",toastDeleteRejected:"Der Server konnte die Ansicht nicht l\xF6schen.",toastPublishRejected:"Der Server konnte die Ansicht nicht ver\xF6ffentlichen.",deleteView:"{name} l\xF6schen",deleteConfirm:"\u201E{name}\u201C l\xF6schen?",deleteAction:"L\xF6schen",saveView:"Aktuelle Ansicht speichern",viewName:"Name der Ansicht",thisView:"Diese Ansicht",saveNamed:"\u201E{name}\u201C speichern",saveAs:"Speichern unter\u2026",saveSharedLocked:"Gemeinsame Ansicht: nicht \xE4nderbar. \u201ESpeichern unter\u201C nutzen.",saveNotInViews:"Noch nicht gespeichert. \u201ESpeichern unter\u201C nutzen.",replaceConfirm:"\u201E{name}\u201C gibt es schon. Ersetzen?",replaceAction:"Ersetzen",replaceSharedConfirm:"Die gemeinsame Ansicht \u201E{name}\u201C f\xFCr alle ersetzen?",newAlready:"Der Bericht ist schon leer.",save:"Speichern",cancel:"Abbrechen",expandAll:"Alle aufklappen",collapseAll:"Alle zuklappen",aggregation:"Zusammenfassen mit",moreStatistics:"Weitere Statistiken",showAsNone:"Der Wert selbst",moreCalculations:"Weitere Berechnungen",showAsNames:{percentOfGrandTotal:"% des Gesamtergebnisses",percentOfRowTotal:"% der Zeilensumme",percentOfColumnTotal:"% der Spaltensumme",percentOfParentRow:"% der \xFCbergeordneten Zeile",percentOfParentColumn:"% der \xFCbergeordneten Spalte",differenceFromPrevious:"Differenz zum vorherigen",percentDifferenceFromPrevious:"% Differenz zum vorherigen",runningTotal:"Laufende Summe",percentRunningTotal:"% laufende Summe",rankAscending:"Rang, kleinster zuerst",rankDescending:"Rang, gr\xF6\xDFter zuerst"},along:"Entlang",format:"Zahlenformat",formatAuto:"Automatisch",formats:{number:"Zahl","number:0":"Zahl ohne Nachkommastellen","number:2":"Zahl mit 2 Nachkommastellen",integer:"Ganze Zahl",currency:"W\xE4hrung",percent:"Prozent",compact:"Kompakt (1,2 Tsd.)",bytes:"Bytes (KB, MB)","duration:h":"Dauer aus Stunden","duration:s":"Dauer aus Sekunden"},conditional:"Hervorheben",conditionalNone:"Keine",colorScale:"Farbskala",dataBar:"Datenbalken",rename:"Name",sortOldest:"\xC4lteste zuerst",sortNewest:"Neueste zuerst",groupBy:"Datum gruppieren nach",groupNone:"Keine Gruppierung (jedes Datum mit Uhrzeit)",groupTimeline:"Entlang der Zeitachse",groupCyclic:"Zeitr\xE4ume \xFCber Jahre vergleichen",unitHints:{year:"2025",yearQuarter:"Q1 2025",yearMonth:"Jan. 2025",yearWeek:"2025-W03",day:"15.01.2025",quarter:"Q1 jedes Jahres",month:"Jan. jedes Jahres",week:"W03 jedes Jahres",weekday:"Mo. bis So.",hour:"00:00 bis 23:00",bin:""},bins:"Zahlenbereiche",binsStart:"In Bereiche gruppieren\u2026",binsState:"Bereiche zu {size} ab {start}",binSize:"Bereichsgr\xF6\xDFe",binStart:"Beginnt bei",binStartFar:"Bereiche ab {start} k\xF6nnen die Werte dieses Felds ({min} bis {max}) nicht fassen: Jede Zeile w\xE4re leer. Einen Beginn n\xE4her an den Werten w\xE4hlen.",apply:"Anwenden",change:"\xC4ndern",removeSetting:"Entfernen",topN:"Oberste Eintr\xE4ge",topStart:"Nur die obersten Eintr\xE4ge zeigen\u2026",topCount:"Anzahl",bottom:"Unterste",topBy:"nach",searchValues:"Werte suchen",selectAll:"Alle ausw\xE4hlen",selectNone:"Keine ausw\xE4hlen",onlyThis:"Nur",valuesShown:"{shown} von {total} Werten; suchen, um weitere zu finden",conditionNumber:"Bedingung f\xFCr die Beschriftung",conditionNone:"Keine Bedingung",conditionValue:"Text",selected:"{count} ausgew\xE4hlt",exportDownload:"Herunterladen",exportCopy:"Kopieren",exportXlsx:"Excel-Arbeitsmappe (.xlsx)",exportCsv:"CSV-Datei (.csv)",exportPng:"Diagramm als Bild (.png)",exportPngNeedsChart:"Zuerst zum Diagramm wechseln.",exportNeedsField:"Zuerst ein Feld hinzuf\xFCgen.",copyTable:"Tabelle kopieren",copyDataJson:"Daten als JSON kopieren",toastTableCopied:"Tabelle kopiert: tabulatorgetrennt, wird in Excel oder Google Sheets in Spalten eingef\xFCgt",toastDataCopied:"Daten als JSON kopiert",toastCopyBlocked:"Diese Seite erlaubt kein Kopieren. Stattdessen eine Datei herunterladen.",drillTitle:"Zeilen hinter diesem Wert",drillCount:{one:"{count} Zeile",other:"{count} Zeilen"},drillShown:"Die ersten {shown} von {count} Zeilen",drillCopy:"Kopieren",drillJson:"Als JSON kopieren",drillCsv:"CSV herunterladen",drillXlsx:"Excel herunterladen",drillPart:"{shown} von {count} Zeilen",drillCopied:"{rows} kopiert: tabulatorgetrennt, wird in Excel oder Google Sheets in Spalten eingef\xFCgt",drillCopiedJson:"{rows} als JSON kopiert",drillExported:"{file} exportiert ({rows})",drillExportNote:"Enth\xE4lt die ersten {shown} von {count} Zeilen, wie hier gezeigt.",showTips:"Tipps zeigen",showSettingInfo:"Erkl\xE4rungen zeigen",resetTips:"Ausgeblendete Tipps wieder zeigen",resetSections:"Men\xFCbereiche zur\xFCcksetzen",resetSectionsDone:"Men\xFCbereiche zur\xFCckgesetzt",sectionChanged:", ge\xE4ndert",help:"Hilfe",shortcutsTitle:"Tastenk\xFCrzel",keys:{Mod:"Strg",Shift:"Umschalt","Arrow keys":"Pfeiltasten",Enter:"Eingabe",Space:"Leertaste",Escape:"Esc",F10:"F10"},shortcuts:{undo:"R\xFCckg\xE4ngig",redo:"Wiederholen",move:"Zwischen den Werten der Tabelle wechseln",open:"Die Zeilen hinter einem Wert \xF6ffnen; nach einer \xDCberschrift sortieren; ein Men\xFC \xF6ffnen",drag:"Ein Feld oder einen Chip aufnehmen und ablegen",close:"Ein Men\xFC, ein Fenster oder einen Tipp schlie\xDFen",fields:"In der Feldliste: auf und ab zwischen den Feldern, links und rechts zum Griff eines Felds, seinem \u201Ei\u201C und seinem Men\xFC",fieldMenu:"Das Men\xFC des Felds im Fokus \xF6ffnen"},valueLabels:"Wertbeschriftung",valueLabelNames:{auto:"Automatisch",off:"Aus",value:"Wert",percent:"Prozent",both:"Wert und Prozent"},legend:"Legende",legendNames:{auto:"Automatisch",bottom:"Unten",right:"Rechts",off:"Aus"},chartTitle:"Titel",chartTitleNone:"Kein Titel",smoothLines:"Gegl\xE4ttete Linien",labelPosition:"Beschriftung",labelPositionNames:{outside:"Au\xDFen",inside:"Innen"},axisLabels:"Achsenbeschriftung",axisLabelNames:{auto:"Automatisch",all:"Alle (schr\xE4g)",nth:"Jede n-te"},groupLabels:"Gruppen unter der Achse",groupLabelNames:{auto:"Automatisch",on:"Ein",off:"Aus"},defaultName:"Standardnamen verwenden",share:"Teilen",copyLink:"Link kopieren",copyJson:"Ansicht als JSON kopieren",downloadView:"Ansicht herunterladen (.pivotkit.json)",sharePrivacy:"Eine Ansicht enth\xE4lt die Namen der Felder und in ihren Filtern die dort gew\xE4hlten Werte: Nur dort teilen, wo diese gesehen werden d\xFCrfen.",loadView:"Ansicht laden\u2026",loadViewHint:"Eine Ansichtsdatei, eine Ansicht als JSON oder einen Link einf\xFCgen oder eine .pivotkit.json-Datei w\xE4hlen.",loadViewText:"Ansicht als JSON oder Link",chooseFile:"Datei w\xE4hlen\u2026",load:"Laden",loadCheckTitle:"Diese Ansicht passt vielleicht nicht zu diesen Daten",loadAnyway:"Trotzdem laden",switchAndLoad:"Zu \u201E{source}\u201C wechseln und laden",switchStartsFresh:"Der Wechsel zeigt die anderen Daten mit dieser Ansicht; R\xFCckg\xE4ngig beginnt dort.",numberInvalid:"Eine Zahl eingeben, etwa {example}.",countInvalid:"Eine ganze Zahl ab 1 eingeben.",sizeInvalid:"Eine Zahl \xFCber 0 eingeben, etwa {example}.",chooseValues:"Werte ausw\xE4hlen\u2026",valueFilter:"Wertbedingung\u2026",valueFilterBy:"Wert",valueFilterOp:"Bedingung",valueFilterNumber:"Zahl",valueFilterTo:"und",valueOps:{"=":"gleich","!=":"ungleich",">":"gr\xF6\xDFer als",">=":"gr\xF6\xDFer oder gleich","<":"kleiner als","<=":"kleiner oder gleich",between:"zwischen",notBetween:"nicht zwischen"},removeFilter:"Filter entfernen",moreFormats:"Weitere Formate",totals:"Summen",grandTotalRow:"Gesamtzeile",grandTotalColumn:"Gesamtspalte",rowSubtotals:"Teilergebnisse der Zeilen",colSubtotals:"Teilergebnisse der Spalten",needsRowField:"Braucht ein Feld in Zeilen.",needsColField:"Braucht ein Feld in Spalten.",needsRowFields:"Braucht zwei oder mehr Felder in Zeilen.",needsColFields:"Braucht zwei oder mehr Felder in Spalten.",expandNothing:"Nichts ist zugeklappt.",collapseNeedsRows:"Braucht zwei oder mehr Felder in Zeilen.",collapseAllDone:"Alle Gruppen sind schon zugeklappt.",groupsCollapsed:{one:"{count} Gruppe zugeklappt",other:"{count} Gruppen zugeklappt"},groupsExpanded:{one:"{count} Gruppe aufgeklappt",other:"{count} Gruppen aufgeklappt"},chartDisplay:"Darstellung",labelOps:{equals:"ist",notEquals:"ist nicht",contains:"enth\xE4lt",notContains:"enth\xE4lt nicht",beginsWith:"beginnt mit",endsWith:"endet mit"},filterIs:"Filter: {filter}",toastExported:"{file} exportiert",toastLinkCopied:"Link kopiert",toastJsonCopied:"Ansicht als JSON kopiert",toastCopyFailed:"Diese Seite erlaubt kein Kopieren. Stattdessen \u201EAnsicht herunterladen\u201C verwenden.",toastLinkTooLong:"Diese Ansicht ist zu gro\xDF f\xFCr einen Link. Stattdessen \u201EAnsicht herunterladen\u201C verwenden."};export{e as de};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as W,C as Ie,D as vt,E as gt,F as fe,Fa as ve,G as wt,K as Et,M as G,O as yt,P as K,Qa as $t,S as kt,Ta as Rt,U as Nt,V as bt,W as St,X as T,Y as Fe,Z as xt,_ as he,a as se,aa as Ae,ba as Oe,c as st,db as Ve,eb as Be,f as U,fa as Ct,g as Se,ga as $e,gb as Pe,hb as Dt,i as te,ia as Tt,ib as Vt,j as le,ja as Lt,k as it,ka as Re,l as ct,la as It,lb as Bt,m as ut,mb as Pt,na as Ft,nb as Mt,o as xe,oa as At,q as mt,r as L,s as Ce,sa as Y,t as dt,ta as Ot,u as pt,ua as De,va as ie,w as Te,x as ft,y as ht,z as Le}from"./chunk-CETTRMB6.js";import{R as rt,Z as lt,g as at,o as q,x as ee,z as be}from"./chunk-JGSNJX3N.js";import"./chunk-MB64GADT.js";import{c as re}from"./chunk-DCANE7XH.js";var Jt={aboutSetting:"About {setting}",settingInfo:{grandTotalRow:"A last row with the total of every column.",grandTotalColumn:"A last column with the total of every row.",rowSubtotals:"With two or more fields in Rows: a total row under each group of the outer field.",colSubtotals:"With two or more fields in Columns: a total column after each group of the outer field.",along:"The direction the calculation walks: Rows goes down the rows of each column, Columns across the columns of each row. A running total adds up along it, a difference compares with the item before it.",showAs:"Shows each value as a share, a difference, a running total or a rank instead of the number itself. For percentages, a tip above the result says what 100% is.",exportXlsx:"Every number with all its decimals, formats kept, ready to calculate with.",exportCsv:"Percentages and calculations as the table shows them, as plain text.",copyTable:"The table as it is shown, headers and totals included: tab-separated, pastes into Excel or Google Sheets as columns.",copyDataJson:"The table's numbers with their labels as JSON, for a program. Not the view itself: that is Views \u2192 Copy view as JSON.",drillCopy:"The rows as the panel shows them, with a header row: tab-separated, pastes into Excel or Google Sheets as columns.",drillJson:"The rows as JSON objects, with the data's field names and raw values, for a program.",groupLabels:"With two or more fields in Rows: the outer field's items written once under the axis, below their categories.",labelPosition:"Outside: each slice's name and number next to it. Inside: the number on the slice, the names in the legend; outside when a donut's ring is too thin for it.",sharedView:"Only admins can change shared views.",newReport:"Takes every field out, to start over. Undo brings them back; saved views stay.",valuesFilter:"Values are not filtered here: filter a field on Rows or Columns through its menu, or move a field to Filters."},moveLeft:"Move left",moveRight:"Move right",remove:"Remove field",chartAutoNow:"Now: {type}",sharedViews:"Shared views",myViews:"My views",noViews:"No saved views yet.",noViewsStore:"None yet. Saved views stay in this browser only.",publishView:"Publish {name} as a shared view",publishConfirm:"Publish \u201C{name}\u201D as a shared view? Everyone who uses this report sees it.",publishAction:"Publish",storeNote:"Kept in this browser only: not on other devices, and gone when the site's data is cleared.",storeFull:"this browser keeps at most {max} views",storeTooLarge:"the views would take more than {max} characters",storeRefused:"this browser did not keep it (storage blocked or full)",storeChanged:"the views were changed in another tab; open the menu again",toastSaved:"View \u201C{name}\u201D saved",toastDeleted:"View \u201C{name}\u201D deleted",toastPublished:"View \u201C{name}\u201D published",toastSaveFailed:"The view could not be saved: {message}",toastDeleteFailed:"The view could not be deleted: {message}",toastPublishFailed:"The view could not be published: {message}",toastSaveRejected:"The server could not save the view.",toastDeleteRejected:"The server could not delete the view.",toastPublishRejected:"The server could not publish the view.",deleteView:"Delete {name}",deleteConfirm:"Delete \u201C{name}\u201D?",deleteAction:"Delete",saveView:"Save current view",viewName:"Name of the view",thisView:"This view",saveNamed:"Save \u201C{name}\u201D",saveAs:"Save as\u2026",saveSharedLocked:"Shared view: you cannot change it. Use Save as.",saveNotInViews:"Not saved yet. Use Save as.",replaceConfirm:"\u201C{name}\u201D exists. Replace it?",replaceAction:"Replace",replaceSharedConfirm:"Replace the shared view \u201C{name}\u201D for everyone?",newAlready:"The report is empty already.",save:"Save",cancel:"Cancel",expandAll:"Expand all",collapseAll:"Collapse all",aggregation:"Summarize by",moreStatistics:"More statistics",showAsNone:"The value itself",moreCalculations:"More calculations",showAsNames:{percentOfGrandTotal:"% of grand total",percentOfRowTotal:"% of row total",percentOfColumnTotal:"% of column total",percentOfParentRow:"% of parent row",percentOfParentColumn:"% of parent column",differenceFromPrevious:"Difference from previous",percentDifferenceFromPrevious:"% difference from previous",runningTotal:"Running total",percentRunningTotal:"% running total",rankAscending:"Rank, smallest first",rankDescending:"Rank, largest first"},along:"Along",format:"Number format",formatAuto:"Automatic",formats:{number:"Number","number:0":"Number, no decimals","number:2":"Number, 2 decimals",integer:"Whole number",currency:"Currency",percent:"Percent",compact:"Compact (1.2K)",bytes:"Bytes (KB, MB)","duration:h":"Duration from hours","duration:s":"Duration from seconds"},conditional:"Highlight",conditionalNone:"None",colorScale:"Colour scale",dataBar:"Data bars",rename:"Name",sortOldest:"Oldest first",sortNewest:"Newest first",groupBy:"Group dates by",groupNone:"No grouping (every date and time)",groupTimeline:"Along the time line",groupCyclic:"Compare periods across years",unitHints:{year:"2025",yearQuarter:"Q1 2025",yearMonth:"Jan 2025",yearWeek:"2025-W03",day:"Jan 15, 2025",quarter:"Q1 of every year",month:"Jan of every year",week:"W03 of every year",weekday:"Mon to Sun",hour:"00:00 to 23:00",bin:""},bins:"Number ranges",binsStart:"Group into ranges\u2026",binsState:"Ranges of {size} from {start}",binSize:"Range size",binStart:"Starting at",binStartFar:"Ranges from {start} cannot hold this field's values ({min} to {max}): every row would be blank. Pick a start closer to them.",apply:"Apply",change:"Change",removeSetting:"Remove",topN:"Top items",topStart:"Show top items\u2026",topCount:"Count",bottom:"Bottom",topBy:"by",searchValues:"Search values",selectAll:"Select all",selectNone:"Select none",onlyThis:"Only",valuesShown:"{shown} of {total} values; search to find more",conditionNumber:"Condition on the label",conditionNone:"No condition",conditionValue:"Text",selected:"{count} selected",exportDownload:"Download",exportCopy:"Copy",exportXlsx:"Excel workbook (.xlsx)",exportCsv:"CSV file (.csv)",exportPng:"Chart image (.png)",exportPngNeedsChart:"Switch to Chart first.",exportNeedsField:"Add a field first.",copyTable:"Copy table",copyDataJson:"Copy data as JSON",toastTableCopied:"Table copied: tab-separated, pastes into Excel or Google Sheets as columns",toastDataCopied:"Data copied as JSON",toastCopyBlocked:"This page does not allow copying. Download a file instead.",drillTitle:"Rows behind this value",drillCount:{one:"{count} row",other:"{count} rows"},drillShown:"Showing the first {shown} of {count} rows",drillCopy:"Copy",drillJson:"Copy as JSON",drillCsv:"Download CSV",drillXlsx:"Download Excel",drillPart:"{shown} of {count} rows",drillCopied:"Copied {rows}: tab-separated, pastes into Excel or Google Sheets as columns",drillCopiedJson:"Copied {rows} as JSON",drillExported:"Exported {file} ({rows})",drillExportNote:"Holds the first {shown} of {count} rows, as shown here.",showTips:"Show tips",showSettingInfo:"Show explanations",resetTips:"Show dismissed tips again",resetSections:"Reset menu sections",resetSectionsDone:"Menu sections reset",sectionChanged:", changed",help:"Help",shortcutsTitle:"Keyboard shortcuts",keys:{Mod:"Ctrl",Shift:"Shift","Arrow keys":"Arrow keys",Enter:"Enter",Space:"Space",Escape:"Escape",F10:"F10"},shortcuts:{undo:"Undo",redo:"Redo",move:"Move between values in the table",open:"Open the rows behind a value; sort by a header; open a menu",drag:"Pick up a field or chip, and drop it",close:"Close a menu, a panel or a tip",fields:"In the field list: up and down between fields, left and right to a field's grip, its \u201Ci\u201D and its menu",fieldMenu:"Open the menu of the field in focus"},valueLabels:"Value labels",valueLabelNames:{auto:"Automatic",off:"Off",value:"Value",percent:"Percent",both:"Value and percent"},legend:"Legend",legendNames:{auto:"Automatic",bottom:"Bottom",right:"Right",off:"Off"},chartTitle:"Title",chartTitleNone:"No title",smoothLines:"Smooth lines",labelPosition:"Labels",labelPositionNames:{outside:"Outside",inside:"Inside"},axisLabels:"Axis labels",axisLabelNames:{auto:"Automatic",all:"All (slanted)",nth:"Every n-th"},groupLabels:"Group labels under the axis",groupLabelNames:{auto:"Automatic",on:"On",off:"Off"},defaultName:"Use the default name",share:"Share",copyLink:"Copy link",copyJson:"Copy view as JSON",downloadView:"Download view (.pivotkit.json)",sharePrivacy:"A view holds the names of fields and, in its filters, the values chosen there: share it only where those may be seen.",loadView:"Load view\u2026",loadViewHint:"Paste a view file, a view as JSON or a link, or choose a .pivotkit.json file.",loadViewText:"View as JSON or link",chooseFile:"Choose file\u2026",load:"Load",loadCheckTitle:"This view may not fit this data",loadAnyway:"Load anyway",switchAndLoad:"Switch to \u201C{source}\u201D and load",switchStartsFresh:"Switching shows the other data with this view; Undo starts there.",numberInvalid:"Enter a number, such as {example}.",countInvalid:"Enter a whole number of 1 or more.",sizeInvalid:"Enter a number above 0, such as {example}.",chooseValues:"Choose values\u2026",valueFilter:"Value condition\u2026",valueFilterBy:"Value",valueFilterOp:"Condition",valueFilterNumber:"Number",valueFilterTo:"and",valueOps:{"=":"equals","!=":"does not equal",">":"greater than",">=":"greater than or equal to","<":"less than","<=":"less than or equal to",between:"between",notBetween:"not between"},removeFilter:"Remove filter",moreFormats:"More formats",totals:"Totals",grandTotalRow:"Grand total row",grandTotalColumn:"Grand total column",rowSubtotals:"Row subtotals",colSubtotals:"Column subtotals",needsRowField:"Needs a field in Rows.",needsColField:"Needs a field in Columns.",needsRowFields:"Needs two or more fields in Rows.",needsColFields:"Needs two or more fields in Columns.",expandNothing:"Nothing is collapsed.",collapseNeedsRows:"Needs two or more fields in Rows.",collapseAllDone:"Every group is collapsed already.",groupsCollapsed:{one:"{count} group collapsed",other:"{count} groups collapsed"},groupsExpanded:{one:"{count} group expanded",other:"{count} groups expanded"},chartDisplay:"Display",labelOps:{equals:"is",notEquals:"is not",contains:"contains",notContains:"does not contain",beginsWith:"begins with",endsWith:"ends with"},filterIs:"Filter: {filter}",toastExported:"Exported {file}",toastLinkCopied:"Link copied",toastJsonCopied:"View copied as JSON",toastCopyFailed:"This page does not allow copying. Use \u201CDownload view\u201D instead.",toastLinkTooLong:"This view is too large for a link. Use \u201CDownload view\u201D instead."},Me=new Map([["en",Jt]]);function hn(e,t){Me.set(e,t)}var vn=e=>Me.has(e),jt=new WeakMap;function Ut(e){let t=Me.get(e.lang)??Jt,n=jt.get(e);if(n&&n.base===t)return n.out;let o={...e,...pt(t,e[dt])};return jt.set(e,{base:t,out:o}),o}var c=re(se(),1);var V=re(se(),1);var i=re(se(),1);var Q=Object.freeze({count:500,text:5e6});function gn(e){try{return JSON.stringify(e)?.length??0}catch{return-1}}function _t(e){let t={templates:[],issues:[]},n=(a,s)=>t.issues.push({path:a,message:s}),o=e;if(typeof e=="string"){if(e.length>Q.text)return n("",`longer than ${Q.text} characters; not read`),t;try{o=JSON.parse(e)}catch{return n("","not valid JSON"),t}}if(!Array.isArray(o))return n("","not a list of templates"),t;o.length>Q.count&&n("",`${o.length} templates, more than ${Q.count}: the first ${Q.count} are read`);let r=typeof e=="string"?-1/0:0;for(let a=0;a<Math.min(o.length,Q.count);a++){let s=o[a];if(r!==-1/0){let v=gn(s);if(v<0){n(`[${a}]`,"not JSON; left out");continue}if(r+=v,r>Q.text){n(`[${a}]`,`the templates are longer than ${Q.text} characters as JSON; this one and the rest are left out`);break}}let l=ut(s);if(l.failed||!l.view){n(`[${a}]`,`${l.issues.at(-1)?.message??"no view"}; left out`);continue}let m=l.view===s,u=Se(m?Object.hasOwn(l.view,"name")?l.view.name:void 0:l.name,te.name);if(!u){n(`[${a}]`,"no name; left out");continue}let p={...l.view};m&&delete p.name;let d={name:u,view:p},f=Se(l.description,te.description);f&&(d.description=f),l.source&&Object.keys(l.source).length>0&&(d.source=l.source),t.templates.push(d),l.issues.forEach(v=>n(`[${a}]${v.path?`.${v.path}`:""}`,v.message))}return t}var x=re(se(),1);var y=re(se(),1);var zt=new Map;function wn(e){let t=zt.get(e);if(!t){let n;try{n=new Intl.NumberFormat(e).formatToParts(12345.6)}catch{n=new Intl.NumberFormat("en-US").formatToParts(12345.6)}t={decimal:n.find(o=>o.type==="decimal")?.value??".",group:n.find(o=>o.type==="group")?.value??","},zt.set(e,t)}return t}var qt=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),En=/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?$/i;function yn(e,t){let n=String(e??"").replace(/[\s\u00a0\u202f]/g,"").replace(/\u2212/g,"-");if(n==="")return null;let{decimal:o,group:r}=wn(t),a=/[\s\u00a0\u202f]/.test(r)?"":qt(r),s=qt(o),l=a?`\\d{1,3}(?:${a}\\d{3})+`:"(?!)",u=new RegExp(`^([+-]?)(${l}|\\d+)?(?:${s}(\\d+))?$`).exec(n);if(u&&(u[2]!==void 0||u[3]!==void 0)){let p=(u[2]??"0").split(r).join(""),d=+`${u[1]}${p}${u[3]!==void 0?`.${u[3]}`:""}`;return Number.isFinite(d)?d:null}if(En.test(n)){let p=Number(n);return Number.isFinite(p)?p:null}return null}function ce(e,t){if(typeof e!="number"||!Number.isFinite(e))return"";try{return e.toLocaleString(t,{useGrouping:!1,maximumFractionDigits:20})}catch{return String(e)}}function Z({id:e,name:t}){let{explain:n,labels:o}=(0,V.useContext)(ve),r=o&&o.settingInfo&&Object.hasOwn(o.settingInfo,e)?o.settingInfo[e]:null;return!n||!o||!r?null:V.default.createElement(Fe,{info:{description:r},name:t,label:L(o.aboutSetting,{setting:t}),labels:o,className:"pk-setting-info",testId:`setting-info-${e}`})}function $({title:e,children:t,id:n,info:o,state:r,changed:a}){let s=(0,V.useId)(),l=(0,V.useId)(),{isOpen:m,setOpen:u,labels:p}=(0,V.useContext)(ve),d=typeof e=="string"?e:"",f=o?V.default.createElement(Z,{id:o,name:d}):null;if(!n)return V.default.createElement("div",{className:"pk-section",role:"group","aria-labelledby":s},V.default.createElement("div",{className:"pk-section-head"},V.default.createElement("div",{className:"pk-section-title",id:s},e),f),t);let v=m(n),k=!v&&r,h=k&&d?`${d}, ${r}${a&&p?.sectionChanged?p.sectionChanged:""}`:void 0;return V.default.createElement("div",{className:`pk-section${v?"":" pk-folded"}`,role:"group","aria-labelledby":s,"data-section":n},V.default.createElement("div",{className:"pk-section-head"},V.default.createElement("button",{type:"button",className:"pk-section-title pk-section-toggle",id:s,"aria-expanded":v,"aria-controls":l,"aria-label":h,onClick:()=>u(n,!v),"data-testid":`section-${n}`},V.default.createElement(G,{name:v?"chevronDown":"chevronRight",size:18}),V.default.createElement("span",{className:"pk-section-name"},e),k?V.default.createElement("span",{className:"pk-section-state pk-badge-cut","data-testid":`section-state-${n}`},a?V.default.createElement("span",{className:"pk-section-mark","aria-hidden":"true"},"\u25CF "):null,r):null),f),V.default.createElement("div",{id:l,className:"pk-section-body",hidden:!v},t))}var kn=new Set(["count","countUnique","listUnique"]),ge=e=>kn.has(e)?"count":"field";function Gt(e,t,n,o={}){let r=he(e);if(!r.values[t])return e;let a=e.values[t],s={...r.values[t],...n};if(n.agg&&n.agg!==a.agg){s.showAs=n.showAs??null;let l=o.defaults??{},m=typeof l.format=="string"&&ee(l.format)?l.format:null,u=a.format&&a.format!==m?a.format:null;n.format!==void 0?s.format=n.format:u?s.format=ge(a.agg)===ge(n.agg)?u:null:s.format=m&&ge(typeof l.agg=="string"?l.agg:"sum")===ge(n.agg)?m:null}return r.values[t]=s,r}function Nn(e,t,n){if(!n)return null;for(let o of[n.min,n.max]){let r=Math.floor((o-t)/e),a=t+r*e,s=e*1e-9;if(!Number.isSafeInteger(r)||a+e===a||a>o+s||o>=a+e+s)return"far"}return null}function me(e,t,n,o){let r=he(e),a=r.filters.findIndex(m=>W(m.field,t)),s=r.filters.filter(m=>!(W(m.field,t)&&n.includes(m.type))),l=a===-1?s.length:Math.min(a,s.length);return s.splice(l,0,...o),r.filters=s,!Oe(r,t)&&Ae(e).some(m=>W(m,t))&&!s.some(m=>W(m.field,t))&&r.filters.splice(l,0,{field:t,type:"exclude",items:[]}),r}function en(e,t,n,o){let r=he(e),a=n?JSON.stringify(n):null,s=a===null?-1:r.filters.findIndex(l=>W(l.field,t)&&JSON.stringify(l)===a);if(s===-1){if(!o)return r;let l=r.filters.map(m=>W(m.field,t)).lastIndexOf(!0);return r.filters.splice(l+1,0,o),r}return o?r.filters[s]=o:(r.filters.splice(s,1),!Oe(r,t)&&Ae(e).some(l=>W(l,t))&&!r.filters.some(l=>W(l.field,t))&&r.filters.splice(s,0,{field:t,type:"exclude",items:[]})),r}function bn(e,t,n,o){let r=new Set(n.map(s=>JSON.stringify(s))),a=o.filter(s=>!r.has(JSON.stringify(s)));return me(e,t,["include","exclude"],a.length?[{field:t,type:"exclude",items:a}]:[])}function Wt(e,t,n){return me(e,t,["label"],n&&n.value!==""?[{field:t,type:"label",op:n.op,value:n.value}]:[])}function Sn(e,t,n,o){let r=n?{field:t,type:"top",count:n.count,bottom:!!n.bottom,...n.by?{by:n.by}:{}}:null;return o?en(e,t,o,r):me(e,t,["top"],r?[r]:[])}function Ht(e,t,n,o){let r=null;if(n){let{by:a,op:s,value:l,value2:m}=n,u=s==="between"||s==="notBetween";r={field:t,type:"value",by:{field:a.field,agg:a.agg},op:s,value:l,...u?{value2:m}:{}}}return o?en(e,t,o,r):me(e,t,["value"],r?[r]:[])}function xn(e,t){return t&&!e.some(n=>ie(n,t))?[...e,{field:t.field??null,agg:t.agg}]:e}function Cn(e,t){let n=[];for(let o of e.values){let r={field:o.field??null,agg:o.agg};De(o,o.field?t(o.field)??"string":"number")&&!n.some(a=>ie(a,r))&&n.push(r)}return n.length?n:[{field:null,agg:"count"}]}function Tn(e,t){return me(e,t,["include","exclude","label","value"],[])}function tn(e,t){return Y(e,t,["include","exclude","label","value"]).some(n=>n.type!=="exclude"||n.items.length>0)}var Ln=Object.freeze(["grandTotalRow","grandTotalColumn","rowSubtotals","colSubtotals"]);function In(e,t){return t==="grandTotalRow"?e.rows.length>=1?null:"needsRowField":t==="grandTotalColumn"?e.cols.length>=1?null:"needsColField":t==="rowSubtotals"?e.rows.length>=2?null:"needsRowFields":e.cols.length>=2?null:"needsColFields"}function Fn(e,t,n){let o=e.column(Re(t,n))?.type??"string";return o==="date"||o==="boolean"?null:o==="number"?"number":"text"}function An(e,t,n,o,r){let a=l=>typeof l.field=="string"&&l.field.toLowerCase()===t.toLowerCase(),s=[];n&&n.summary&&s.push(L(o.filterSummary,{shown:n.summary.shown.toLocaleString(r),total:n.summary.total.toLocaleString(r)}));for(let l of e.filters.filter(a))if(l.type==="label"){let m=Object.hasOwn(o.labelOps,l.op)?o.labelOps[l.op]:l.op;s.push(`${m} \u201C${l.value}\u201D`)}else l.type==="value"&&s.push(fe(e,l,o,r));return s.length?L(o.filterIs,{filter:s.join(", ")}):null}var On=["number","number:0","number:2","currency","percent"].filter(ee),Xt=["integer","compact","bytes","duration:h","duration:s"].filter(ee),Kt=U.showAs.filter(e=>["percentOfGrandTotal","percentOfRowTotal","percentOfColumnTotal"].includes(e));function je({title:e,open:t,children:n}){return c.default.createElement("details",{className:"pk-more",open:t},c.default.createElement("summary",{className:"pk-more-title"},e),n)}function ue(e,{kind:t="number",required:n=!0,tried:o=!1,labels:r,locale:a}){let s=yn(e,a),l=s!==null&&(t==="number"||(t==="size"?s>0:Number.isInteger(s)&&s>=1)),m=()=>t==="count"?r.countInvalid:L(t==="size"?r.sizeInvalid:r.numberInvalid,{example:(t==="size"?.5:1234.5).toLocaleString(a)});return e.trim()===""?{value:null,problem:n&&o?m():null}:l?{value:s,problem:null}:{value:null,problem:m()}}function Ee({value:e,onChange:t,problem:n,label:o,testId:r,className:a="pk-field-label",shown:s,shownClass:l}){let m=(0,c.useId)();return c.default.createElement(c.default.Fragment,null,c.default.createElement("label",{className:a},s?c.default.createElement("span",{className:l},s):c.default.createElement("span",{className:"pk-sr"},o),c.default.createElement("input",{type:"text",inputMode:"decimal",autoComplete:"off",spellCheck:!1,value:e,onChange:u=>t(u.target.value),"aria-label":o,"aria-invalid":n?!0:void 0,"aria-describedby":n?m:void 0,"data-testid":r})),n?c.default.createElement("p",{id:m,className:"pk-form-problem","data-testid":`${r}-problem`},n):null)}function $n({grouping:e,labels:t,onApply:n,onClear:o,onCancel:r,range:a,locale:s}){let[l,m]=(0,c.useState)(ce(e?.size,s)),[u,p]=(0,c.useState)(ce(e?.origin,s)),[d,f]=(0,c.useState)(!1),v=(0,c.useId)(),k=ue(l,{kind:"size",tried:d,labels:t,locale:s}),h=ue(u,{required:!1,labels:t,locale:s}),g=k.value,w=u.trim()===""?0:h.value,E=g!==null&&w!==null&&Nn(g,w,a)==="far",F=I=>I.toLocaleString(s,{maximumFractionDigits:6});return c.default.createElement("form",{className:"pk-inline-form pk-bin-form",onSubmit:I=>{if(I.preventDefault(),o&&l.trim()===""){o();return}f(!0),g!==null&&w!==null&&!E&&n(g,w)}},c.default.createElement(Ee,{value:l,onChange:m,problem:k.problem,label:t.binSize,shown:t.binSize,testId:"bin-size"}),c.default.createElement("label",{className:"pk-field-label"},c.default.createElement("span",null,t.binStart),c.default.createElement(K,{type:"text",inputMode:"decimal",autoComplete:"off",spellCheck:!1,value:u,placeholder:"0",onChange:p,clearLabel:t.clearText,"data-testid":"bin-start","aria-invalid":E||h.problem?!0:void 0,"aria-describedby":E||h.problem?v:void 0})),h.problem?c.default.createElement("p",{id:v,className:"pk-form-problem","data-testid":"bin-start-problem"},h.problem):E&&a&&w!==null&&g!==null?c.default.createElement("p",{id:v,className:"pk-form-problem","data-testid":"bin-problem"},L(t.binStartFar,{start:F(w),min:F(a.min),max:F(a.max)})):null,c.default.createElement("button",{type:"submit",className:"pk-btn pk-primary",disabled:E},t.apply),c.default.createElement(We,{labels:t,onCancel:r,testId:"bin-cancel"}))}function nn({choices:e,names:t,index:n,onChange:o,label:r,prefix:a,testId:s}){return e.length<2?c.default.createElement("span",{className:"pk-muted pk-by"},a?`${a} ${t[0]}`:t[0]):c.default.createElement("label",{className:"pk-field-label pk-by-pick"},a?c.default.createElement("span",{className:"pk-muted"},a):c.default.createElement("span",{className:"pk-sr"},r),c.default.createElement("select",{value:n,onChange:l=>o(Number(l.target.value)),"aria-label":r,"data-testid":s},e.map((l,m)=>c.default.createElement("option",{key:`${l.field}:${l.agg}`,value:m},t[m]))))}var Ge=(e,t)=>Math.max(0,e.findIndex(n=>ie(n,t)));function Rn({top:e,labels:t,choices:n,names:o,onApply:r,onCancel:a,locale:s}){let[l,m]=(0,c.useState)(ce(e?.count??10,s)),[u,p]=(0,c.useState)(!!e?.bottom),[d,f]=(0,c.useState)(()=>Ge(n,e?.by)),[v,k]=(0,c.useState)(!1),h=ue(l,{kind:"count",tried:v,labels:t,locale:s});return c.default.createElement("form",{className:"pk-inline-form",onSubmit:g=>{if(g.preventDefault(),e&&l.trim()===""){r(null);return}k(!0),h.value!==null&&r({count:h.value,bottom:u,by:n[d]})}},c.default.createElement("div",{className:"pk-segmented pk-small",role:"group","aria-label":t.topN},c.default.createElement("button",{type:"button","aria-pressed":!u,onClick:()=>p(!1)},t.top),c.default.createElement("button",{type:"button","aria-pressed":u,onClick:()=>p(!0)},t.bottom)),c.default.createElement(Ee,{value:l,onChange:m,problem:h.problem,label:t.topCount,testId:"top-count",className:"pk-field-label pk-narrow-input"}),c.default.createElement(nn,{choices:n,names:o,index:d,onChange:f,label:t.topBy,prefix:t.topBy,testId:"top-by"}),c.default.createElement("button",{type:"submit",className:"pk-btn pk-primary"},t.apply),c.default.createElement(We,{labels:t,onCancel:a,testId:"top-cancel"}))}function Dn({condition:e,labels:t,choices:n,names:o,onApply:r,onCancel:a,locale:s}){let[l,m]=(0,c.useState)(()=>Ge(n,e?.by)),[u,p]=(0,c.useState)(e?.op??">"),[d,f]=(0,c.useState)(ce(e?.value,s)),[v,k]=(0,c.useState)(ce(e?.value2,s)),[h,g]=(0,c.useState)(!1),w=u==="between"||u==="notBetween",E=ue(d,{tried:h,labels:t,locale:s}),F=ue(v,{tried:h,labels:t,locale:s}),I=E.value!==null&&(!w||F.value!==null);return c.default.createElement("form",{className:"pk-inline-form pk-value-filter",onSubmit:A=>{if(A.preventDefault(),e&&d.trim()===""&&v.trim()===""){r(null);return}g(!0),I&&r({by:n[l],op:u,value:E.value,...w?{value2:F.value}:{}})}},c.default.createElement(nn,{choices:n,names:o,index:l,onChange:m,label:t.valueFilterBy,testId:"value-filter-by"}),c.default.createElement("label",{className:"pk-field-label"},c.default.createElement("span",{className:"pk-sr"},t.valueFilterOp),c.default.createElement("select",{value:u,onChange:A=>p(A.target.value),"aria-label":t.valueFilterOp,"data-testid":"value-filter-op"},U.valueOps.map(A=>c.default.createElement("option",{key:A,value:A},t.valueOps[A]??A)))),c.default.createElement(Ee,{value:d,onChange:f,problem:E.problem,label:t.valueFilterNumber,testId:"value-filter-number",className:"pk-field-label pk-narrow-input"}),w?c.default.createElement(Ee,{value:v,onChange:k,problem:F.problem,label:`${t.valueFilterTo} ${t.valueFilterNumber}`,shown:t.valueFilterTo,shownClass:"pk-muted",testId:"value-filter-number2",className:"pk-field-label pk-narrow-input"}):null,c.default.createElement("button",{type:"submit",className:"pk-btn pk-primary","data-testid":"value-filter-apply"},t.apply),c.default.createElement(We,{labels:t,onCancel:a,testId:"value-filter-cancel"}))}function We({labels:e,onCancel:t,testId:n}){return c.default.createElement("button",{type:"button",className:"pk-btn",onClick:t,"data-testid":n},e.cancel)}function Je({text:e,start:t,icon:n,labels:o,onRemove:r,testId:a,form:s}){let[l,m]=(0,c.useState)(!1),u=(0,c.useRef)(null),p=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{l!==p.current&&(p.current=l,u.current?.querySelector(l?"input, select":"button")?.focus({preventScroll:!0}),u.current?.scrollIntoView({block:"nearest"}))},[l]),c.default.createElement("div",{ref:u,className:"pk-editable"},l?s(()=>m(!1)):e?c.default.createElement("div",{className:"pk-inline-form pk-state-line","data-testid":`${a}-state`},c.default.createElement("span",{className:"pk-state-text"},e),c.default.createElement("button",{type:"button",className:"pk-link",onClick:()=>m(!0),"data-testid":`${a}-change`},o.change),c.default.createElement("button",{type:"button",className:"pk-link",onClick:r,"data-testid":`${a}-remove`},o.removeSetting)):c.default.createElement(T,{icon:n,onSelect:()=>m(!0),testId:`${a}-open`},t))}function on({name:e,info:t,extra:n,labels:o}){if(!t?.description&&!n)return null;let r=c.default.createElement(c.default.Fragment,null,t?.description,t?.href?c.default.createElement(c.default.Fragment,null," ",c.default.createElement("a",{href:t.href,target:"_blank",rel:"noopener noreferrer",className:"pk-learn-more"},o.learnMore)):null,t?.description&&n?c.default.createElement(c.default.Fragment,null,c.default.createElement("br",null),c.default.createElement("br",null)):null,n);return c.default.createElement("div",{className:"pk-section"},c.default.createElement("div",{className:"pk-section-head"},c.default.createElement("div",{className:"pk-section-title","data-testid":"menu-head"},e),c.default.createElement(Fe,{info:{description:r},name:e,labels:o,className:"pk-menu-info",testId:"menu-info"})))}function an({view:e,zone:t,index:n,count:o,labels:r,commit:a,close:s,text:l,type:m}){return c.default.createElement($,{title:r.move,id:"move"},xt.filter(u=>u!==t).map(u=>c.default.createElement(T,{key:u,icon:yt[u],onSelect:()=>{s(),a(Ct(e,t,n,u,void 0,{type:m}),{step:"moved",field:l,zone:u})},testId:`move-${u}`},L(r.moveTo,{zone:r.zones[u]}))),t!=="filters"&&n>0?c.default.createElement(T,{icon:"chevronRight",onSelect:()=>{s(),a($e(e,t,n,n-1),{step:"reordered",zone:t})}},r.moveLeft):null,t!=="filters"&&n<o-1?c.default.createElement(T,{icon:"chevronRight",onSelect:()=>{s(),a($e(e,t,n,n+1),{step:"reordered",zone:t})}},r.moveRight):null)}function rn({labels:e,onRemove:t,close:n}){return c.default.createElement("div",{className:"pk-menu-foot"},c.default.createElement(T,{icon:"trash",danger:!0,onSelect:()=>{n(),t()},testId:"menu-remove"},e.remove))}function $o({view:e,zone:t,index:n,field:o,types:r,labels:a,commit:s,close:l,openFilter:m,chipRef:u,onRemove:p,defaultsOf:d,rangeOf:f,locale:v,info:k,state:h}){let g=Re(e,o),w=q(o,a.core),E=r.get(g.toLowerCase()),F=Lt(e,o),I=Ft(e,o),A=Cn(e,b=>r.get(b.toLowerCase())),D=Y(e,o,["top"])[0],B=Y(e,o,["value"])[0],C=b=>{let R=xn(A,b);return{choices:R,names:R.map(z=>vt(e,z,a))}},{choices:_,names:X}=C(I?.by==="value"?I.value:null),j=C(D?.by),S=C(B?.by),N=(b,R,z)=>I?I.by===b&&I.order===R&&(b!=="value"||ie(I.value,z)):b==="label"&&R==="asc",O=g===o?d?.(g)?.order:void 0,P=I?.by==="custom"?I.items:Array.isArray(O)&&O.length>0?O:null,M=(b,R,z)=>{l();let pe=b==="value"?{by:b,order:R,value:z}:b==="custom"?{by:b,order:R,items:[...P]}:{by:b,order:R};s(It(e,o,At(pe,Array.isArray(O)&&O.length>0)),{step:"sort",field:w})},J=(b,R,z)=>{l();let pe=q(g,a.core),fn=b?wt(pe,b,a,R):null;s(Tt(e,o,b,{size:R,origin:z,name:fn??void 0}).view,{step:"group",field:pe})},ae=b=>b.toLocaleString(v,{maximumFractionDigits:6}),Ye=D?`${L(D.bottom?a.bottomBadge:a.topBadge,{count:ae(D.count)})} ${L(a.by,{value:j.names[Ge(j.choices,D.by)]})}`:null,Qe=F?.by==="bin"?L(a.binsState,{size:ae(F.size),start:ae(F.origin??0)}):null,Ze=b=>c.default.createElement(T,{key:b,checked:F?.by===b,onSelect:()=>J(b),testId:`group-${b}`,hint:a.unitHints[b]||void 0},a.units[b]??b),ke=F?.by==="bin"?F:null,dn=Y(e,o,["value"]),Ne={...e,filters:e.filters.filter(b=>!dn.includes(b))},et=tn(Ne,o),de=et?An(Ne,o,h,a,v):null,tt=a.filterIs.split("{filter}")[0],nt=[de?.startsWith(tt)?de.slice(tt.length):de,B?fe(e,B,a,v):null].filter(Boolean).join(", "),pn=()=>{l();let b=new Set(Y(Ne,o,["include","exclude","label"]));s({...e,filters:e.filters.filter(R=>!b.has(R))},{step:"filter",field:w})},ot=b=>{l(),s(Sn(e,o,b,D),{step:"top",field:w})};return c.default.createElement(c.default.Fragment,null,c.default.createElement("div",{className:"pk-menu-body"},c.default.createElement(on,{name:q(g,a.core),info:k,labels:a}),c.default.createElement($,{title:a.sort,id:"sort",state:I?gt(e,I,a):null,changed:!!I},c.default.createElement(T,{checked:N("label","asc"),icon:"sortAsc",onSelect:()=>M("label","asc")},E==="date"?a.sortOldest:a.sortLabelAsc),c.default.createElement(T,{checked:N("label","desc"),icon:"sortDesc",onSelect:()=>M("label","desc")},E==="date"?a.sortNewest:a.sortLabelDesc),_.map((b,R)=>c.default.createElement(c.default.Fragment,{key:`${b.field}:${b.agg}`},c.default.createElement(T,{checked:N("value","desc",b),icon:"sortDesc",onSelect:()=>M("value","desc",b),testId:`sort-value-desc-${R}`},L(a.sortValueDesc,{value:X[R]})),c.default.createElement(T,{checked:N("value","asc",b),icon:"sortAsc",onSelect:()=>M("value","asc",b),testId:`sort-value-asc-${R}`},L(a.sortValueAsc,{value:X[R]})))),P?c.default.createElement(T,{checked:N("custom","asc"),icon:"sortAsc",onSelect:()=>M("custom","asc"),testId:"sort-custom"},a.sortCustom):null,P?c.default.createElement(T,{checked:N("custom","desc"),icon:"sortDesc",onSelect:()=>M("custom","desc"),testId:"sort-custom-desc"},a.sortCustomDesc):null),c.default.createElement($,{title:a.zones.filters,id:"filters",state:nt||null,changed:!!nt},et?c.default.createElement("div",{className:"pk-inline-form pk-state-line","data-testid":"filter-state"},c.default.createElement("span",{className:"pk-state-text"},de),c.default.createElement("button",{type:"button",className:"pk-link",onClick:pn,"data-testid":"remove-filter"},a.removeSetting)):null,c.default.createElement(T,{icon:"filter",onSelect:()=>{l(),m(o,u.current)},testId:"open-filter"},a.chooseValues),c.default.createElement(Je,{text:B?fe(e,B,a,v):null,start:a.valueFilter,icon:"sigma",labels:a,onRemove:()=>{l(),s(Ht(e,o,null,B),{step:"filter",field:w})},testId:"value-filter",form:b=>c.default.createElement(Dn,{condition:B,labels:a,choices:S.choices,names:S.names,locale:v,onCancel:b,onApply:R=>{l(),s(Ht(e,o,R,B),{step:"filter",field:w})}})})),c.default.createElement($,{title:a.topN,id:"topN",state:D?Ye:null,changed:!!D},c.default.createElement(Je,{text:D?Ye:null,start:a.topStart,icon:"top",labels:a,onRemove:()=>ot(null),testId:"top",form:b=>c.default.createElement(Rn,{top:D,labels:a,choices:j.choices,names:j.names,locale:v,onCancel:b,onApply:ot})})),E==="date"?c.default.createElement($,{title:a.groupBy,id:"groupBy",state:F?a.units[F.by]??F.by:null,changed:!!F},c.default.createElement("div",{className:"pk-subtitle"},a.groupTimeline),c.default.createElement("div",{className:"pk-choice-grid"},U.timelineUnits.map(Ze)),c.default.createElement("div",{className:"pk-subtitle"},a.groupCyclic),c.default.createElement("div",{className:"pk-choice-grid"},U.cyclicUnits.map(Ze)),c.default.createElement(T,{checked:!F,onSelect:()=>J(null),testId:"group-none"},a.groupNone)):null,E==="number"?c.default.createElement($,{title:a.bins,id:"bins",state:Qe,changed:!!ke},c.default.createElement(Je,{text:Qe,start:a.binsStart,icon:"number",labels:a,onRemove:()=>J(null),testId:"bin",form:b=>c.default.createElement($n,{grouping:ke,labels:a,range:f?.(g)??null,locale:v,onCancel:b,onApply:(R,z)=>J("bin",R,z),onClear:ke?()=>J(null):null})})):null,c.default.createElement(an,{view:e,zone:t,index:n,count:e[t].length,labels:a,commit:s,close:l,text:w,type:E})),c.default.createElement(rn,{labels:a,onRemove:p,close:l}))}function Ro({view:e,index:t,types:n,labels:o,commit:r,close:a,onRemove:s,defaultsOf:l,info:m}){let u=e.values[t],p=u.field?n.get(u.field.toLowerCase())??"string":"number",d=u.field?at(p):["count"],f=U.commonAggregators.filter(C=>d.includes(C)),v=d.filter(C=>!U.commonAggregators.includes(C)),k=U.showAs.filter(C=>!Kt.includes(C)),h=De(u,p),g=Ie(u,o),w=C=>{a(),r(Gt(e,t,C,{defaults:u.field?l?.(u.field):void 0}),{step:"value",field:g})},[E,F]=(0,c.useState)(u.label??""),{explain:I}=(0,c.useContext)(ve),A=C=>c.default.createElement(T,{key:C,checked:u.agg===C,onSelect:()=>w({agg:C}),testId:`agg-${C}`},o.core.aggregators[C]??C),D=C=>c.default.createElement(T,{key:C,checked:u.format===C,onSelect:()=>w({format:C}),testId:`format-${C}`},o.formats[C]??C),B=C=>c.default.createElement(T,{key:C,checked:u.showAs?.type===C,onSelect:()=>w({showAs:{type:C,axis:u.showAs?.axis??"rows"}}),testId:`showas-${C}`},o.showAsNames[C]??C);return c.default.createElement(c.default.Fragment,null,c.default.createElement("div",{className:"pk-menu-body"},c.default.createElement(on,{name:g,info:m,extra:I?o.settingInfo.valuesFilter:null,labels:o}),c.default.createElement($,{title:o.aggregation,id:"summarize",state:o.core.aggregators[u.agg]??u.agg},c.default.createElement("div",{className:"pk-choice-grid"},f.map(A)),v.length?c.default.createElement(je,{title:o.moreStatistics,open:v.includes(u.agg)},c.default.createElement("div",{className:"pk-choice-grid"},v.map(A))):null),h?c.default.createElement($,{title:o.showAs,id:"showAs",info:"showAs",state:u.showAs?o.showAsNames[u.showAs.type]??u.showAs.type:o.showAsNone,changed:!!u.showAs},c.default.createElement("div",{className:"pk-choice-grid"},c.default.createElement(T,{checked:!u.showAs,onSelect:()=>w({showAs:null}),testId:"showas-none"},o.showAsNone),Kt.map(B)),c.default.createElement(je,{title:o.moreCalculations,open:!!(u.showAs&&k.includes(u.showAs.type))},c.default.createElement("div",{className:"pk-choice-grid"},k.map(B))),u.showAs&&U.showAsAlongAxis.includes(u.showAs.type)?c.default.createElement("div",{className:"pk-setting-row"},c.default.createElement("div",{className:"pk-segmented pk-small",role:"group","aria-label":o.along},c.default.createElement("span",{className:"pk-muted"},o.along),["rows","cols"].map(C=>c.default.createElement("button",{key:C,type:"button","aria-pressed":u.showAs.axis===C,onClick:()=>w({showAs:{...u.showAs,axis:C}})},o.zones[C]))),c.default.createElement(Z,{id:"along",name:o.along})):null):null,h?c.default.createElement($,{title:o.format,id:"format",state:u.format?o.formats[u.format]??o.formats[u.format.split(":")[0]]??u.format:o.formatAuto,changed:!!u.format&&u.format!==(u.field?l?.(u.field)?.format:void 0)},c.default.createElement("div",{className:"pk-choice-grid"},c.default.createElement(T,{checked:!u.format,onSelect:()=>w({format:null})},o.formatAuto),On.map(D)),c.default.createElement(je,{title:o.moreFormats,open:Xt.includes(u.format??"")},c.default.createElement("div",{className:"pk-choice-grid"},Xt.map(D)))):null,h?c.default.createElement($,{title:o.conditional,id:"highlight",state:u.conditional?u.conditional.type==="dataBar"?o.dataBar:o.colorScale:o.conditionalNone,changed:!!u.conditional},c.default.createElement("div",{className:"pk-choice-grid"},c.default.createElement(T,{checked:!u.conditional,onSelect:()=>w({conditional:null})},o.conditionalNone),c.default.createElement(T,{checked:u.conditional?.type==="colorScale",onSelect:()=>w({conditional:{type:"colorScale"}}),testId:"cond-colorScale"},o.colorScale),c.default.createElement(T,{checked:u.conditional?.type==="dataBar",onSelect:()=>w({conditional:{type:"dataBar",color:null}}),testId:"cond-dataBar"},o.dataBar))):null,c.default.createElement($,{title:o.rename},c.default.createElement("form",{className:"pk-inline-form",onSubmit:C=>{C.preventDefault(),w({label:E.trim()||null})}},c.default.createElement(K,{type:"text",value:E,placeholder:Ie({...u,label:null},o),onChange:F,onClear:()=>u.label?r(Gt(e,t,{label:null}),{step:"value",field:g}):void 0,clearLabel:o.defaultName,"aria-label":o.rename,maxLength:200,"data-testid":"value-name"}),c.default.createElement("button",{type:"submit",className:"pk-btn pk-primary"},o.apply))),c.default.createElement(an,{view:e,zone:"values",index:t,count:e.values.length,labels:o,commit:r,close:a,text:g,type:p})),c.default.createElement(rn,{labels:o,onRemove:s,close:a}))}var Vn=e=>e.filter(t=>!$t(t)),Bn=/[<>:"/\\|?*\u0000-\u001F\u007F]+/g,Pn=/^(con|prn|aux|nul|com\d|lpt\d)$/i;function He(e){let n=Mn((typeof e=="string"?e:"").replace(Bn,"-").replace(/^[\s.-]+/,"").slice(0,120));return n&&!Pn.test(n)?n:"pivot"}function Mn(e){let t=e.length;for(;t>0&&(e[t-1]==="."||/\s/.test(e[t-1]));)t--;return e.slice(0,t)}function jn(e){let t=/^data:([^,;]*)((?:;[^,;]*)*?)(;base64)?,(.*)$/s.exec(e);if(!t)throw new TypeError("not a data: URL");let n=t[1]||"application/octet-stream";if(t[3]){let o=atob(t[4]),r=new Uint8Array(o.length);for(let a=0;a<o.length;a++)r[a]=o.charCodeAt(a);return new Blob([r],{type:n})}return new Blob([decodeURIComponent(t[4])],{type:n})}function sn(e,t,n=document){let o=URL.createObjectURL(e),r=n.createElement("a");r.href=o,r.download=t,r.rel="noopener",n.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(o),1e4)}async function _e(e,t){try{if(typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function")return await navigator.clipboard.writeText(e),!0}catch{}if(!t)return!1;let n=t.ownerDocument,o=n.createElement("textarea");o.value=e,o.readOnly=!0,o.className="pk-sr";let r=t.getRootNode()instanceof ShadowRoot?t.getRootNode().activeElement:n.activeElement;t.appendChild(o);let a;try{o.select(),a=typeof n.execCommand=="function"&&n.execCommand("copy")}catch{a=!1}return o.remove(),r?.focus?.({preventScroll:!0}),a}var Jn="0.2.0",Un=()=>typeof location<"u"?location.href:void 0;function _n(e,t){let{view:n,viewName:o,sourceId:r,sourceName:a,schemaUrl:s,encoded:l,announce:m,limits:u,param:p}=e,d=()=>it(le(n,{name:o??"",createdAt:new Date,generator:{name:"pivotkit-react",version:Jn},source:{id:r,name:a},data:l,...s!==void 0?{schemaUrl:s}:{}}));return{copyLink:async()=>{let f=Vt(e.shareLink,Un());if(f===null)return;let v;try{v=(Be()??await Ve()).encodeViewLink(le(n,{name:o??void 0,source:{id:r}},{link:!0}))}catch(h){m(h&&h.code==="LIMIT_EXCEEDED"?t.toastLinkTooLong:L(t.error,{message:String(h)}),{tone:"error"});return}let k=await _e(Dt(f,p,v),e.root.current);m(k?t.toastLinkCopied:t.toastCopyFailed,k?void 0:{tone:"error"})},copyJson:async()=>{let f=await _e(d(),e.root.current);m(f?t.toastJsonCopied:t.toastCopyFailed,f?void 0:{tone:"error"})},download:()=>{let f=ct(o||a||He(e.fileName)),v=new Blob([d()],{type:"application/json"});e.onExport?.({kind:"json",fileName:f,blob:v})!==!1&&(sn(v,f,e.root.current?.ownerDocument??document),m(L(t.toastExported,{file:f})))},loadText:async f=>{let v=Bt(f,l,{limits:u,sourceId:r});if(v.failed==="notJson"){let E=f.trim(),I=(E.includes("#")?Pe(E.slice(E.indexOf("#")),p)??Pe(E.slice(E.indexOf("#")),"pivot"):null)??(E.startsWith("1.")?E:null);if(!I)return t.viewFailed.notJson;try{let A=(Be()??await Ve()).decodeViewLink(I);v=A.view?Pt(A.view,l,{limits:u,sourceId:r}):{view:null,issues:[],failed:"badLink",file:null}}catch{return t.viewFailed.badLink}}if(!v.view)return t.viewFailed[v.failed??"notView"]??t.viewFailed.notView;let k=v,h=Mt(k,t,Array.isArray(e.sources)?e.sources:[]);if(!h)return e.applyLoaded(k),null;let g=h.switchTo,w=e.onSourceSwitch;return{lines:h.lines,load:()=>e.applyLoaded(k),switchTo:g&&typeof w=="function"?{name:g.name,run:()=>w({source:{id:g.id,name:g.name},view:k.file?.view??k.view,name:k.file?.name||void 0})}:void 0}}}}var ye=e=>e.host||e.store,zn=(e,t)=>!!t&&e.name===t.name&&(e.scope==="user"?"user":"shared")===t.scope&&e.at!==void 0===t.store&&(!t.store||(e.sourceId??null)===(t.storeSource??null)),ze=(e,t,n)=>e.find(o=>o.at!==void 0&&o.name===t&&(o.sourceId??null)===(n??null));function qn(e,t,n,o=!1){if(!e)return null;let r;if(e.scope==="shared")r=n.publish?{kind:"publish"}:ye(n)?{kind:null,why:"saveSharedLocked"}:null;else if(e.scope==="user"&&e.store){let a=ze(t,e.name,e.storeSource);r=n.store?a?{kind:"store",at:a.at,storeSource:e.storeSource??null}:{kind:"store",storeSource:n.sourceId??null}:null}else e.scope==="user"?r=n.host?{kind:"host"}:null:r=ye(n)?{kind:null,why:"saveNotInViews"}:null;return r&&r.kind&&o?{kind:null,why:"exportNeedsField"}:r}function Gn(e,t,n){if(n.host)return{kind:"host",replaces:t.find(r=>r.scope==="user"&&r.at===void 0&&r.name===e)??null};let o=ze(t,e,n.sourceId)??ze(t,e,null);return o?{kind:"store",at:o.at,storeSource:o.sourceId??null,replaces:o}:{kind:"store",storeSource:n.sourceId??null,replaces:null}}var oe=Object.freeze({count:100,text:5e5}),Yt=!1;function ln(e){return e?e.length>oe.text?(Yt||(Yt=!0,console.warn(`pivotkit: the browser store of views holds more than ${oe.text} characters; it is not read, and the next save replaces it`)),[]):_t(e).templates:[]}function Mo(e,t){return ln(e).map((n,o)=>({name:n.name,view:n.view,at:o,...n.source?.id?{sourceId:n.source.id}:{}})).filter(n=>!n.sourceId||!t||n.sourceId===t)}function Wn(e,t,n){let o=ln(e),r=o;if(t.remove!==void 0){if(o[t.remove]?.name!==t.removeName)throw new Error(n("changed",0));r=o.filter((l,m)=>m!==t.remove)}let a=!!(t.name&&t.view);if(a&&t.replace!==void 0){let l=o[t.replace];if(l?.name!==t.name)throw new Error(n("changed",0));r=o.map((m,u)=>u===t.replace?{name:l.name,view:t.view,...l.source?{source:l.source}:{}}:m)}else if(a){let l=t.sourceId;if(r=r.filter(m=>m.name!==t.name||(m.source?.id??void 0)!==l),r.push({name:t.name,view:t.view,...l?{source:{id:l}}:{}}),r.length>oe.count)throw new Error(n("count",oe.count))}let s=r.length?JSON.stringify(r.map(l=>le(l.view,{name:l.name,source:l.source},{link:!0}))):null;if(a&&s&&s.length>oe.text)throw new Error(n("text",oe.text));return s}function Hn(e,t,n,o,r){let a={count:n.storeFull,text:n.storeTooLarge,changed:n.storeChanged},s=Wn(e,t,(l,m)=>L(a[l],{max:m.toLocaleString(o)}));if(!r(s))throw new Error(n.storeRefused)}function Xn({view:e,plan:t,labels:n,onChart:o,close:r}){let a=Le(e.chart);return ht.map(s=>i.default.createElement(T,{key:s,icon:Te[s].icon,checked:e.display==="chart"&&a===s,hint:s==="auto"&&t?L(n.chartAutoNow,{type:n.chartTypes[t.name]}):void 0,onSelect:()=>{r(),o(s)},testId:`chart-${s}`},n.chartTypes[s]))}var Qt={slices:["auto","off","value","percent","both"],other:["auto","off","value"]},Kn=["outside","inside"],Yn=["auto","bottom","right","off"],Qn=["auto","all","nth"],Zn=["auto","on","off"];function eo({title:e,labels:t,onDisplay:n}){let[o,r]=(0,i.useState)(e??""),[a,s]=(0,i.useState)(e);return e!==a&&(s(e),r(e??"")),i.default.createElement("form",{className:"pk-inline-form",onSubmit:l=>{l.preventDefault(),n({title:o.trim()||null})}},i.default.createElement(K,{type:"text",value:o,onChange:r,onClear:()=>e?n({title:null}):void 0,clearLabel:t.clearText,placeholder:t.chartTitleNone,"aria-label":t.chartTitle,maxLength:200,"data-testid":"chart-title"}),i.default.createElement("button",{type:"submit",className:"pk-btn pk-primary",disabled:(o.trim()||null)===(e??null)},t.apply))}function to({view:e,plan:t,labels:n,onDisplay:o}){let r=e.chart,a=t?t.name:Le(r),s=ft.includes(a),l=Te[a].axis,m=s?Qt.slices:Qt.other,u=!s&&(r.valueLabels==="percent"||r.valueLabels==="both")?"value":r.valueLabels,p=[[u!=="auto",n.valueLabels],[s&&(r.labelPosition??"outside")!=="outside",n.labelPosition],[r.legend!=="auto",n.legend],[!!r.title,n.chartTitle],[l&&r.axisLabels!=="auto",n.axisLabels],[l&&e.rows.length>=2&&r.groupLabels!=="auto",n.groupLabels],[(a==="line"||a==="area")&&r.smooth,n.smoothLines]].flatMap(([d,f])=>d?[f]:[]);return i.default.createElement($,{title:n.chartDisplay,id:"chartDisplay",state:p.join(", ")||n.formatAuto,changed:p.length>0},i.default.createElement("div",{className:"pk-subtitle"},n.valueLabels),i.default.createElement("div",{className:"pk-choice-grid"},m.map(d=>i.default.createElement(T,{key:d,checked:u===d,onSelect:()=>o({valueLabels:d}),testId:`labels-${d}`},n.valueLabelNames[d]))),s?i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{className:"pk-subtitle pk-setting-row"},i.default.createElement("span",null,n.labelPosition),i.default.createElement(Z,{id:"labelPosition",name:n.labelPosition})),i.default.createElement("div",{className:"pk-choice-grid"},Kn.map(d=>i.default.createElement(T,{key:d,checked:(r.labelPosition??"outside")===d,disabled:r.valueLabels==="off",onSelect:()=>o({labelPosition:d}),testId:`label-position-${d}`},n.labelPositionNames[d])))):null,i.default.createElement("div",{className:"pk-subtitle"},n.legend),i.default.createElement("div",{className:"pk-choice-grid"},Yn.map(d=>i.default.createElement(T,{key:d,checked:r.legend===d,onSelect:()=>o({legend:d}),testId:`legend-${d}`},n.legendNames[d]))),i.default.createElement("div",{className:"pk-subtitle"},n.chartTitle),i.default.createElement(eo,{title:r.title,labels:n,onDisplay:o}),l?i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{className:"pk-subtitle"},n.axisLabels),i.default.createElement("div",{className:"pk-choice-grid"},Qn.map(d=>i.default.createElement(T,{key:d,checked:r.axisLabels===d,onSelect:()=>o({axisLabels:d}),testId:`axis-${d}`},n.axisLabelNames[d])))):null,l&&e.rows.length>=2?i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{className:"pk-subtitle pk-setting-row"},i.default.createElement("span",null,n.groupLabels),i.default.createElement(Z,{id:"groupLabels",name:n.groupLabels})),i.default.createElement("div",{className:"pk-choice-grid"},Zn.map(d=>i.default.createElement(T,{key:d,checked:r.groupLabels===d,onSelect:()=>o({groupLabels:d}),testId:`groups-${d}`},n.groupLabelNames[d])))):null,a==="line"||a==="area"?i.default.createElement(we,{checked:r.smooth,onChange:d=>o({smooth:d}),testId:"chart-smooth"},n.smoothLines):null)}function jo({view:e,plan:t,labels:n,onChart:o,onDisplay:r,close:a}){return i.default.createElement(i.default.Fragment,null,i.default.createElement($,{title:n.chartType,id:"chartType"},i.default.createElement("div",{className:"pk-choice-grid"},i.default.createElement(Xn,{view:e,plan:t,labels:n,onChart:o,close:a}))),i.default.createElement(to,{view:e,plan:t,labels:n,onDisplay:r}))}function no({labels:e,mod:t}){let n=o=>o==="Mod"?t==="\u2318"?"\u2318":e.keys.Mod:Object.hasOwn(e.keys,o)?e.keys[o]:o;return i.default.createElement("dl",{className:"pk-shortcuts","data-testid":"shortcuts"},Rt.map(o=>i.default.createElement("div",{key:o.text,className:"pk-shortcut"},i.default.createElement("dt",null,o.keys.map((r,a)=>i.default.createElement(i.default.Fragment,{key:r},a?" + ":null,i.default.createElement("kbd",null,n(r))))),i.default.createElement("dd",null,e.shortcuts[o.text]))))}function we({checked:e,onChange:t,testId:n,children:o,disabled:r,reason:a,info:s,name:l}){let m=(0,i.useId)();return i.default.createElement("div",{className:"pk-setting-row"},i.default.createElement("label",{className:`pk-switch${r?" pk-disabled":""}`},i.default.createElement("input",{type:"checkbox",checked:e,disabled:r,onChange:u=>t(u.target.checked),"aria-describedby":r&&a?m:void 0,"data-testid":n}),i.default.createElement("span",{className:"pk-switch-track","aria-hidden":"true"}),i.default.createElement("span",{className:"pk-switch-text"},o,r&&a?i.default.createElement("span",{id:m,className:"pk-option-hint","data-testid":n?`${n}-reason`:void 0},a):null)),s?i.default.createElement(Z,{id:s,name:l??""}):null)}function oo({list:e,change:t,labels:n}){let o=Vn(e),[r,a]=(0,i.useState)(!1),s=(0,i.useRef)(null);return i.default.createElement(i.default.Fragment,null,i.default.createElement(T,{icon:"reset",onSelect:()=>{let l=s.current?.closest(".pk-section")?.querySelector(".pk-section-toggle");t(o,null),l?.focus(),a(!0)},disabled:o.length===e.length,testId:"reset-sections"},n.resetSections),i.default.createElement("span",{ref:s,className:"pk-sr",role:"status","data-testid":"reset-sections-status"},r?n.resetSectionsDone:""))}function Jo({view:e,labels:t,onTotal:n,onExpand:o,onCollapse:r,close:a,tips:s,mod:l,folding:m,help:u}){return i.default.createElement(i.default.Fragment,null,i.default.createElement($,{title:t.totals,id:"totals"},Ln.map(p=>{let d=In(e,p);return i.default.createElement(we,{key:p,checked:e.totals[p],onChange:f=>n(p,f),disabled:d!==null,reason:d?t[d]:null,info:p,name:t[p],testId:`total-${p}`},t[p])})),i.default.createElement($,{title:t.zones.rows},i.default.createElement(T,{icon:"chevronDown",onSelect:()=>{a(),o(t)},disabled:!m.canExpand,reason:m.why.expand?t[m.why.expand]:void 0,testId:"expand-all"},t.expandAll),i.default.createElement(T,{icon:"chevronRight",onSelect:()=>{a(),r(t)},disabled:!m.canCollapse,reason:m.why.collapse?t[m.why.collapse]:void 0,testId:"collapse-all"},t.collapseAll)),i.default.createElement($,{title:t.help,id:"help"},s.controls?i.default.createElement(we,{checked:s.on,onChange:s.onOn,testId:"show-tips"},t.showTips):null,u?.explanations?i.default.createElement(we,{checked:u.explanations.on,onChange:u.explanations.set,testId:"show-explanations"},t.showSettingInfo):null,s.controls?i.default.createElement(T,{icon:"reset",onSelect:()=>s.onReset(),disabled:!s.canReset,testId:"reset-tips"},t.resetTips):null,u?.sections?i.default.createElement(oo,{list:u.sections[0],change:u.sections[1],labels:t}):null,i.default.createElement("details",{className:"pk-more"},i.default.createElement("summary",{className:"pk-more-title","data-testid":"shortcuts-title"},t.shortcutsTitle),i.default.createElement(no,{labels:t,mod:l}))))}function cn({question:e,action:t,cancel:n,onYes:o,onNo:r,testId:a,yesId:s,noId:l}){let m=(0,i.useRef)(null);return(0,i.useEffect)(()=>{m.current?.focus({preventScroll:!0})},[]),i.default.createElement("div",{className:"pk-confirm pk-save-confirm",role:"group","aria-label":e,"data-testid":a},i.default.createElement("span",{className:"pk-confirm-text"},e),i.default.createElement("button",{type:"button",className:"pk-btn pk-primary","data-testid":s,onClick:o},t),i.default.createElement("button",{ref:m,type:"button",className:"pk-btn","data-autofocus":"","data-testid":l,onClick:r},n))}function ao({labels:e,button:t,onSave:n,resolve:o,close:r}){let[a,s]=(0,i.useState)(""),[l,m]=(0,i.useState)(null),u=(0,i.useRef)(null),p=(0,i.useRef)(!1);return(0,i.useEffect)(()=>{l?p.current=!0:p.current&&u.current?.focus({preventScroll:!0})},[l]),l?i.default.createElement(cn,{question:L(e.replaceConfirm,{name:l.name}),action:e.replaceAction,cancel:e.cancel,testId:"replace-confirm",yesId:"confirm-replace",noId:"cancel-replace",onYes:()=>{r(),n(l.name,l.target)},onNo:()=>m(null)}):i.default.createElement("form",{className:"pk-inline-form",onSubmit:d=>{d.preventDefault();let f=a.trim(),v=f?o(f):null;v?.replaces?m({name:f,target:v}):v&&(r(),n(f,v))}},i.default.createElement(K,{type:"text",value:a,onChange:s,clearLabel:e.clearText,placeholder:e.viewName,"aria-label":e.viewName,maxLength:120,"data-testid":"saved-view-name",inputRef:u}),i.default.createElement("button",{type:"submit",className:"pk-btn pk-primary",disabled:!a.trim()},t))}function ro({check:e,labels:t,onCancel:n,close:o,title:r,quiet:a=!1}){let s=(0,i.useId)(),l=(0,i.useRef)(null);return(0,i.useEffect)(()=>{a||l.current?.focus({preventScroll:!0})},[a]),i.default.createElement("div",{className:"pk-load-check",role:"group","aria-labelledby":s,"data-testid":"load-check"},i.default.createElement("p",{id:s,className:"pk-load-check-title"},i.default.createElement(G,{name:"info",size:16}),i.default.createElement("span",null,r??t.loadCheckTitle)),i.default.createElement("ul",{className:"pk-load-check-lines"},e.lines.map((m,u)=>i.default.createElement("li",{key:u},m))),i.default.createElement("div",{className:"pk-load-check-actions"},e.switchTo?i.default.createElement("button",{ref:l,type:"button",className:"pk-btn pk-primary","data-autofocus":"","data-testid":"load-switch",onClick:()=>{o(),e.switchTo?.run()}},L(t.switchAndLoad,{source:e.switchTo.name})):null,i.default.createElement("button",{ref:e.switchTo?void 0:l,type:"button",className:e.switchTo?"pk-btn":"pk-btn pk-primary","data-autofocus":e.switchTo?void 0:"","data-testid":"load-anyway",onClick:()=>{o(),e.load()}},t.loadAnyway),i.default.createElement("button",{type:"button",className:"pk-btn","data-testid":"load-cancel",onClick:n},t.cancel)),e.switchTo?i.default.createElement("p",{className:"pk-hint"},t.switchStartsFresh):null)}function so({labels:e,onLoadText:t,close:n}){let[o,r]=(0,i.useState)(""),[a,s]=(0,i.useState)(null),[l,m]=(0,i.useState)(null),[u,p]=(0,i.useState)(!1),d=(0,i.useRef)(null),f=(0,i.useRef)(null),v=(0,i.useId)();(0,i.useEffect)(()=>{l||f.current?.focus({preventScroll:!0})},[l]);let k=async h=>{p(!0);let g=await t(h);p(!1),typeof g=="string"?s(g):g?m(g):n()};return l?i.default.createElement(ro,{check:l,labels:e,onCancel:()=>m(null),close:n}):i.default.createElement("form",{className:"pk-inline-form pk-load-view",onSubmit:h=>{h.preventDefault(),k(o)}},i.default.createElement("p",{className:"pk-hint"},e.loadViewHint),i.default.createElement(K,{multiline:!0,value:o,onChange:h=>{r(h),s(null)},clearLabel:e.clearText,"aria-label":e.loadViewText,placeholder:e.loadViewText,rows:4,spellCheck:!1,"aria-invalid":a?!0:void 0,"aria-describedby":a?v:void 0,"data-testid":"load-view-text",inputRef:f}),a?i.default.createElement("p",{id:v,className:"pk-form-problem",role:"alert","data-testid":"load-view-problem"},a):null,i.default.createElement("input",{ref:d,type:"file",accept:"application/json,.json",className:"pk-sr",tabIndex:-1,"aria-hidden":"true","data-testid":"load-view-file",onChange:async h=>{let g=h.target.files?.[0];if(h.target.value="",g){let w;try{w=g.size>te.text?null:await g.text()}catch{w=null}w===null?s(g.size>te.text?e.viewFailed.tooLarge:e.viewFailed.file):k(w)}}}),i.default.createElement("button",{type:"button",className:"pk-btn",onClick:()=>d.current?.click(),disabled:u,"data-testid":"load-view-choose"},i.default.createElement(G,{name:"file"}),i.default.createElement("span",{className:"pk-btn-text"},e.chooseFile)),i.default.createElement("button",{type:"submit",className:"pk-btn pk-primary",disabled:u||!o.trim(),"data-testid":"load-view-apply"},e.load))}function lo({labels:e,share:t,close:n}){let[o,r]=(0,i.useState)(!1),a=_n(t,e);return o?i.default.createElement($,{title:e.loadView.replace(/…$/,"")},i.default.createElement(so,{labels:e,onLoadText:a.loadText,close:n})):i.default.createElement($,{title:e.share,id:"share"},t.canLink?i.default.createElement(T,{icon:"link",onSelect:()=>{n(),a.copyLink()},testId:"copy-link"},e.copyLink):null,i.default.createElement(T,{icon:"copy",onSelect:()=>{n(),a.copyJson()},testId:"copy-json"},e.copyJson),i.default.createElement(T,{icon:"download",onSelect:()=>{n(),a.download()},testId:"download-view"},e.downloadView),i.default.createElement(T,{icon:"upload",onSelect:()=>r(!0),testId:"load-view"},e.loadView),i.default.createElement("p",{className:"pk-hint pk-menu-hint","data-testid":"share-privacy"},e.sharePrivacy))}function io(e,t){let n=(a,s,l,m,u)=>Promise.resolve().then(a).then(()=>(e.announce(L(s,{name:u})),!0),p=>(e.announce(mt(l,m,p),{tone:"error"}),!1)),o=a=>Hn(e.viewsText,a,t,e.locale,e.keep);return{save:(a,s)=>{let l=e.viewKey;return n(()=>a.kind==="publish"?e.onPublish(s,e.view):a.kind==="host"?e.onSave(s,e.view,{scope:"user"}):o({name:s,view:e.view,sourceId:e.sourceId,replace:a.at}),t.toastSaved,t.toastSaveFailed,t.toastSaveRejected,s).then(m=>m&&e.onSaved({name:s,scope:a.kind==="publish"?"shared":"user",store:a.kind==="store",storeSource:a.kind==="store"?a.storeSource:null},l))},remove:e.onDelete||e.store?a=>n(()=>a.at!==void 0?o({remove:a.at,removeName:a.name}):e.onDelete(a.name,{scope:a.scope}),t.toastDeleted,t.toastDeleteFailed,t.toastDeleteRejected,a.name):null,publish:e.onPublish?a=>n(()=>e.onPublish(a.name,e.normalized(a.view)),t.toastPublished,t.toastPublishFailed,t.toastPublishRejected,a.name):null}}function Uo({templates:e,labels:t,onLoad:n,actions:o,close:r,share:a}){let{save:s,remove:l,publish:m}=io(o,t),u={host:!!o.onSave,store:!!o.store,publish:!!m,sourceId:o.sourceId},p=qn(o.loaded,e,u,o.empty),[d,f]=(0,i.useState)(!1),v=o.store&&!o.onSave,[k,h]=(0,i.useState)(null),[g,w]=(0,i.useState)(!1),E=(0,i.useRef)(null),[F,I]=(0,i.useState)(null);(0,i.useEffect)(()=>{a?.prepare?.()},[a]),(0,i.useEffect)(()=>{if(F&&E.current){let S=[...E.current.querySelectorAll("[data-pk-entry]")];(S.find(O=>O.getAttribute("data-pk-entry")===F.key)??S[Math.min(F.place,S.length-1)]??E.current).querySelector("[data-pk-option]")?.focus({preventScroll:!0}),I(null)}},[F,e]);let A=S=>`${S.scope}:${S.at??""}:${S.name}`;(0,i.useEffect)(()=>{k&&E.current?.querySelector(".pk-confirm [data-autofocus]")?.focus({preventScroll:!0})},[k]);let D=S=>{h(null);let N=E.current?[...E.current.querySelectorAll("[data-pk-entry], .pk-confirm")]:[];I({key:A(S),place:Math.max(0,N.findIndex(O=>O.classList.contains("pk-confirm")))})},B=(S,N)=>{if(k&&k.at===N){let P=k.kind,M=P==="publish",J=L(M?t.publishConfirm:t.deleteConfirm,{name:S.name});return i.default.createElement("div",{key:`${N}:${S.name}`,className:"pk-template pk-confirm",role:"group","aria-label":J},i.default.createElement("span",{className:"pk-confirm-text"},J),i.default.createElement("button",{type:"button",className:M?"pk-btn pk-primary":"pk-btn pk-danger-btn",disabled:g,"data-autofocus":"","data-testid":`confirm-${P}`,onClick:async()=>{w(!0);let ae=await(M?m:l)?.(S);w(!1),ae&&D(S)}},M?t.publishAction:t.deleteAction),i.default.createElement("button",{type:"button",className:"pk-btn",disabled:g,onClick:()=>D(S)},t.cancel))}let O=(P,M,J)=>i.default.createElement("button",{type:"button",className:"pk-icon-btn",onClick:()=>h({at:N,kind:P}),"aria-label":J,title:J,"data-testid":`${P}-view-${S.name}`},i.default.createElement(G,{name:M}));return i.default.createElement("div",{key:`${N}:${S.name}`,className:"pk-template","data-pk-entry":A(S)},i.default.createElement(T,{icon:"bookmark",current:zn(S,o.loaded),onSelect:()=>{r(),n(S)},testId:`saved-view-${S.name}`},S.name),m&&S.scope==="user"?O("publish","upload",L(t.publishView,{name:S.name})):null,l&&S.deletable?O("delete","trash",L(t.deleteView,{name:S.name})):S.scope==="shared"&&C?i.default.createElement(Z,{id:"sharedView",name:S.name}):null)},C=!!m||e.some(S=>S.scope==="shared"&&S.deletable),_=S=>e.map((N,O)=>N.scope===S?B(N,O):null).filter(Boolean),X=_("shared"),j=_("user");return i.default.createElement("div",{ref:E,className:"pk-views"},i.default.createElement($,{title:t.thisView,id:"thisView"},p&&d&&p.kind==="publish"?i.default.createElement(cn,{question:L(t.replaceSharedConfirm,{name:o.loaded.name}),action:t.replaceAction,cancel:t.cancel,testId:"replace-shared-confirm",yesId:"confirm-replace-shared",noId:"cancel-replace-shared",onYes:()=>{r(),s(p,o.loaded.name)},onNo:()=>f(!1)}):p?i.default.createElement(T,{icon:"save",onSelect:()=>{p.kind==="publish"?f(!0):(r(),s(p,o.loaded.name))},disabled:p.kind===null,reason:p.kind===null?t[p.why]:void 0,testId:"save-loaded"},L(t.saveNamed,{name:o.loaded.name})):null,ye(u)?i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{className:"pk-subtitle"},o.loaded?t.saveAs:t.saveView),i.default.createElement(ao,{labels:t,button:o.loaded?t.saveAs.replace(/…$/,""):t.save,onSave:(S,N)=>s(N,S),resolve:S=>Gn(S,e,u),close:r})):null,i.default.createElement("div",{className:"pk-setting-row"},i.default.createElement(T,{icon:"newFile",onSelect:()=>{r(),o.onNew()},disabled:!o.canNew,reason:o.canNew?void 0:t.newAlready,testId:"new-report"},t.newEmpty),i.default.createElement(Z,{id:"newReport",name:t.newEmpty}))),X.length?i.default.createElement($,{title:t.sharedViews,id:"sharedViews"},X):null,j.length||ye(u)||!X.length?i.default.createElement($,{title:t.myViews,id:"myViews"},j.length?j:i.default.createElement("p",{className:"pk-hint","data-testid":v?"store-note":void 0},v?t.noViewsStore:t.noViews),v&&j.length?i.default.createElement("p",{className:"pk-hint pk-menu-hint","data-testid":"store-note"},t.storeNote):null):null,a?i.default.createElement(lo,{labels:t,share:a,close:r}):null)}function H({icon:e,text:t,info:n,onSelect:o,testId:r,disabled:a,reason:s}){let l=i.default.createElement(T,{icon:e,onSelect:o,disabled:a,reason:s,testId:r},t);return n?i.default.createElement("div",{className:"pk-setting-row"},l,i.default.createElement(Z,{id:n,name:t})):l}function _o({labels:e,onExport:t,chartReady:n,display:o,empty:r=!1,prepare:a,close:s}){(0,i.useEffect)(()=>{a()},[a]);let l=u=>()=>{s(),t(u)},m=r?{disabled:!0,reason:e.exportNeedsField}:{};return i.default.createElement(i.default.Fragment,null,i.default.createElement($,{title:e.exportDownload,id:"exportDownload"},i.default.createElement(H,{icon:"file",text:e.exportXlsx,info:"exportXlsx",onSelect:l("xlsx"),...m,testId:"export-xlsx"}),i.default.createElement(H,{icon:"file",text:e.exportCsv,info:"exportCsv",onSelect:l("csv"),...m,testId:"export-csv"}),i.default.createElement(H,{icon:"image",text:e.exportPng,disabled:r||!n,reason:r?m.reason:o!=="chart"?e.exportPngNeedsChart:void 0,onSelect:l("png"),testId:"export-png"})),i.default.createElement($,{title:e.exportCopy,id:"exportCopy"},i.default.createElement(H,{icon:"copy",text:e.copyTable,info:"copyTable",onSelect:l("copy-table"),...m,testId:"export-copy-table"}),i.default.createElement(H,{icon:"copy",text:e.copyDataJson,info:"copyDataJson",onSelect:l("copy-json"),...m,testId:"export-copy-json"})))}var co=300,ne=e=>JSON.stringify(e);function uo({view:e,base:t,field:n,encoded:o,locale:r,labels:a,commit:s,close:l}){let m=t??e,u=(0,x.useMemo)(()=>st(o,n,{view:m,locale:r,labels:a.core}),[o,n,m,r,a]),p=(0,x.useMemo)(()=>u?u.items.map(N=>N.value):[],[u]),[d,f]=(0,x.useState)(()=>new Set(Ot(m,n,p).map(ne))),[v,k]=(0,x.useState)(""),h=Y(m,n,["label"])[0],[g,w]=(0,x.useState)(h?.op??""),[E,F]=(0,x.useState)(h?.value??"");if(!u)return null;let I=v.trim().toLocaleLowerCase(),A=I?u.items.filter(N=>N.label.toLocaleLowerCase().includes(I)):u.items,D=A.slice(0,co),B=N=>{let O=new Set(d);for(let P of A)N?O.add(ne(P.value)):O.delete(ne(P.value));f(O)},C=N=>{let O=new Set(d),P=ne(N);O.has(P)?O.delete(P):O.add(P),f(O)},_=q(n,a.core),X=()=>{let N=bn(m,n,p.filter(O=>d.has(ne(O))),p);N=Wt(N,n,g?{op:g,value:E}:null),l(),s(N,{step:"filter",field:_})},j=!t&&tn(m,n),S=Fn(o,m,n)??(h?"text":null);return x.default.createElement("form",{className:"pk-filter",onSubmit:N=>{N.preventDefault(),X()}},x.default.createElement("div",{className:"pk-popover-head"},x.default.createElement("h3",null,L(a.filterTitle,{field:_})),x.default.createElement("span",{className:"pk-muted"},L(a.selected,{count:d.size.toLocaleString(r)}))),j?x.default.createElement("button",{type:"button",className:"pk-btn pk-remove-filter",onClick:()=>{l(),s(Tn(m,n),{step:"filter",field:_})},"data-testid":"filter-remove"},x.default.createElement(G,{name:"x"}),x.default.createElement("span",{className:"pk-btn-text"},a.removeFilter)):null,x.default.createElement("label",{className:"pk-search"},x.default.createElement(G,{name:"search"}),x.default.createElement("span",{className:"pk-sr"},a.searchValues),x.default.createElement(K,{type:"search",value:v,placeholder:a.searchValues,onChange:k,clearLabel:a.clearText,"data-autofocus":"","data-testid":"filter-search"})),x.default.createElement("div",{className:"pk-filter-actions"},x.default.createElement("button",{type:"button",className:"pk-link",onClick:()=>B(!0)},a.selectAll),x.default.createElement("button",{type:"button",className:"pk-link",onClick:()=>B(!1)},a.selectNone)),x.default.createElement("div",{className:"pk-filter-body"},x.default.createElement("ul",{className:"pk-values",role:"list"},D.map(N=>{let O=ne(N.value);return x.default.createElement("li",{key:O,className:"pk-value"},x.default.createElement("label",null,x.default.createElement("input",{type:"checkbox",checked:d.has(O),onChange:()=>C(N.value)}),x.default.createElement("span",{className:"pk-value-label"},N.label),x.default.createElement("span",{className:"pk-count"},N.count.toLocaleString(r))),x.default.createElement("button",{type:"button",className:"pk-link pk-only",onClick:()=>f(new Set([O])),"aria-label":`${a.onlyThis}: ${N.label}`},a.onlyThis))})),A.length>D.length?x.default.createElement("p",{className:"pk-hint"},L(a.valuesShown,{shown:D.length,total:A.length.toLocaleString(r)})):null,S?x.default.createElement("fieldset",{className:"pk-condition"},x.default.createElement("legend",null,S==="number"?a.conditionNumber:a.condition),x.default.createElement("select",{value:g,onChange:N=>w(N.target.value),"aria-label":S==="number"?a.conditionNumber:a.condition},x.default.createElement("option",{value:""},a.conditionNone),U.labelOps.map(N=>x.default.createElement("option",{key:N,value:N},a.labelOps[N]??N))),g?x.default.createElement(K,{type:"text",value:E,onChange:F,onClear:()=>{!t&&Y(m,n,["label"]).length&&s(Wt(m,n,null),{step:"filter",field:_})},clearLabel:a.clearText,"aria-label":a.conditionValue,placeholder:a.conditionValue,maxLength:1e3,"data-testid":"filter-condition-text"}):null):null),x.default.createElement("div",{className:"pk-popover-foot"},x.default.createElement("button",{type:"button",className:"pk-btn",onClick:l},a.cancel),x.default.createElement("button",{type:"submit",className:"pk-btn pk-primary","data-testid":"filter-apply"},a.apply)))}function qo({target:e,onClose:t,view:n,encoded:o,locale:r,labels:a,commit:s}){let l=(0,x.useMemo)(()=>({current:e?e.anchor:null}),[e]);return x.default.createElement(bt,{open:!!e,anchor:l,onClose:t,label:e?L(a.filterTitle,{field:q(e.field,a.core)}):"",className:"pk-filter-popover",fill:!0},e?x.default.createElement(uo,{key:e.field,view:n,base:e.base,field:e.field,encoded:o,locale:r,labels:a,commit:s,close:t}):null)}var un="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",Xe=null,Ue=null;function Ke(){return Ue??=import("./export-EASUJGEK.js").then(e=>(Xe=e,e),e=>{throw Ue=null,e}),Ue}var mo=()=>Xe,po=()=>{Ke().catch(()=>{})};function qe(e,{doc:t,onExport:n,...o}){return n?.({...o,blob:e})===!1?!1:(sn(e,o.fileName,t),!0)}async function mn(e,{type:t,container:n,onExport:o,...r}){return o?.({...r,blob:new Blob([e],{type:t}),text:e})===!1?"kept":await _e(e,n)?"copied":"blocked"}async function Wo(e,{fileName:t,result:n,locale:o,labels:r,limits:a,root:s,chartRef:l,announce:m,onExport:u}){r=Ut(r);let p=He(t),d=s.current?.ownerDocument;try{if(e==="png"){let g=s.current?getComputedStyle(s.current).getPropertyValue("--pk-surface").trim():"",w=l.current?.getDataURL({type:"png",pixelRatio:2,backgroundColor:g||void 0}),E=`${p}.png`;w&&qe(jn(w),{kind:e,fileName:E,doc:d,onExport:u})&&m(L(r.toastExported,{file:E}));return}if(!n)return;let f=Xe??await Ke(),v=lt(n,{locale:o,labels:r.core,limits:a});if(e==="copy-table"||e==="copy-json"){let g=e==="copy-json",w=await mn(g?f.toJson(v):f.toTsv(v),{kind:e,fileName:`${p}.${g?"json":"tsv"}`,type:g?"application/json":"text/tab-separated-values",container:s.current,onExport:u});w!=="kept"&&m(w==="copied"?g?r.toastDataCopied:r.toastTableCopied:r.toastCopyBlocked,w==="copied"?void 0:{tone:"error"});return}let k=`${p}.${e}`,h=e==="xlsx"?f.toXlsx(v,{sheetName:p}):f.toCsvBytes(v,{bom:!0});qe(new Blob([h],{type:e==="xlsx"?un:"text/csv;charset=utf-8"}),{kind:e,fileName:k,doc:d,onExport:u})&&m(L(r.toastExported,{file:k}))}catch(f){m(L(r.toastExportFailed,{message:xe(f)}),{tone:"error"})}}function fo({shown:e,count:t},n,o){return e<t?L(n.drillPart,{shown:e.toLocaleString(o),count:t.toLocaleString(o)}):Ce(n.drillCount,t,{lang:n.lang,locale:o})}async function ho(e,{drill:t,encoded:n,labels:o,onExport:r,announce:a,root:s}){let{locale:l}=t,m={shown:t.rows.length,count:t.count},u=fo(m,o,l),p=He(t.name);try{let d=mo()??await Ke();if(e==="drill-copy"||e==="drill-json"){let E=e==="drill-json",F=E?JSON.stringify(Array.from(t.indices,A=>Et(n,A)),null,2):d.toTsv([t.columns.map(A=>A.label??A.name),...t.rows]),I=await mn(F,{kind:e,fileName:`${p}.${E?"json":"tsv"}`,type:E?"application/json":"text/tab-separated-values",container:s,onExport:r,rows:m});I!=="kept"&&a(I==="copied"?L(E?o.drillCopiedJson:o.drillCopied,{rows:u}):o.toastCopyBlocked,I==="copied"?void 0:{tone:"error"});return}let f=e==="drill-xlsx",v=Object.fromEntries(t.columns.map(E=>[E.name,E.label??E.name])),k={locale:l,formats:t.formats,labels:{fields:v,true:o.core.true,false:o.core.false}},h=`${p}.${f?"xlsx":"csv"}`,g=f?d.rowsToXlsx(n,t.indices,{...k,sheetName:t.name}):d.rowsToCsvBytes(n,t.indices,k),w=new Blob([g],{type:f?un:"text/csv;charset=utf-8"});qe(w,{kind:e,fileName:h,doc:s?.ownerDocument,onExport:r,rows:m})&&a(L(o.drillExported,{file:h,rows:u}))}catch(d){a(L(o.toastExportFailed,{message:xe(d)}),{tone:"error"})}}var Zt=new Set(["date","datetime","time"]);function vo(e,{locale:t,labels:n,format:o}){let r=typeof o=="string"&&ee(o)?o.trim().toLowerCase():null;if(e.type==="date")return{text:be(r&&Zt.has(r.split(":")[0])?r:e.dateOnly?"date":"datetime",{locale:t}),numeric:!1};if(e.type==="number"){let a=new Intl.NumberFormat(t,{maximumFractionDigits:6});return{text:r&&!Zt.has(r.split(":")[0])?be(r,{locale:t}):l=>a.format(l),numeric:r!=="text"}}return e.type==="boolean"?{text:a=>a?n.true:n.false,numeric:!1}:{text:a=>String(a),numeric:!1}}function go(e,t,{locale:n,labels:o,formatOf:r=()=>{}}){let a=e.columns.map(l=>({column:l,...vo(l,{locale:n,labels:o,format:r(l.name)})})),s=Array.from(t,l=>a.map(({column:m,text:u})=>{let p=m.codes[l],d=p<0?null:m.dict[p];return d==null?"":u(d)}));return{columns:a.map(l=>({name:l.column.name,numeric:l.numeric})),rows:s}}function wo(e,t,n,o){let r=[],a=[],s=(l,m,u)=>{let p=rt(e,l,u);for(let d=p;d&&d.parent;d=d.parent){let f=e.label(l,d,o.core);r.unshift(`${q(m[d.depth-1],o.core)}: ${f}`),a.unshift(f)}};return s("cols",e.colFields,n),s("rows",e.rowFields,t),{title:r.length?r.join(" \xB7 "):o.core.grandTotal,name:a.length?a.join(" \u2013 "):o.core.grandTotal}}function Eo({result:e,rowPath:t,colPath:n,count:o,indices:r,formatOf:a,nameOf:s,infoOf:l},m){let u=go(e.encoded,r,{locale:e.locale,labels:m.core,formatOf:a}),p=u.columns.map(f=>({...f,label:s(f.name),description:l(f.name)?.description})),d=Object.fromEntries(u.columns.map(f=>[f.name,a(f.name)]).filter(([,f])=>typeof f=="string"));return{...wo(e,t,n,m),count:o,rows:u.rows,columns:p,indices:r,formats:d,locale:e.locale}}function Xo({drill:e,onClose:t,labels:n,locale:o,exportContext:r}){let a=(0,y.useId)(),s=(0,y.useMemo)(()=>e?Eo(e,n):null,[e,n]),l=(0,y.useRef)(null),[m,u]=(0,y.useState)(!1),p=(0,y.useContext)(Nt).size==="narrow",{onKeyDown:d}=kt(l,!!s,m?()=>u(!1):t);if((0,y.useEffect)(()=>{s&&r&&po()},[s,r]),!s)return null;let f=s.count.toLocaleString(o),v=s.rows.length<s.count,k=(h,g)=>()=>{g(),r&&ho(h,{drill:s,labels:n,...r,root:r.root.current})};return y.default.createElement(y.default.Fragment,null,y.default.createElement("div",{className:"pk-scrim pk-drill-scrim",onClick:t,"aria-hidden":"true"}),y.default.createElement("div",{className:`pk-drill${m&&!p?" pk-drill-big":""}`,role:"dialog","aria-modal":"true","aria-labelledby":a,"data-testid":"drill-panel","data-pk-enlarged":m&&!p?"":void 0,ref:l,tabIndex:-1,onKeyDown:h=>{h.target instanceof Node&&l.current?.contains(h.target)&&d(h)}},y.default.createElement("div",{className:"pk-drill-head"},y.default.createElement("div",{className:"pk-drill-heading"},y.default.createElement("h2",{id:a},n.drillTitle),y.default.createElement("p",{className:"pk-drill-path"},s.title),y.default.createElement("p",{className:"pk-muted","data-testid":"drill-count"},v?L(n.drillShown,{shown:s.rows.length.toLocaleString(o),count:f}):Ce(n.drillCount,s.count,{lang:n.lang,locale:o}))),y.default.createElement("div",{className:"pk-drill-actions"},r?y.default.createElement(St,{label:n.exportLabel,icon:"download",text:n.exportLabel,role:"dialog",align:"end",testId:"drill-export",className:"pk-btn pk-small-btn"},h=>y.default.createElement(y.default.Fragment,null,v?y.default.createElement("p",{className:"pk-hint pk-menu-hint","data-testid":"drill-export-note"},L(n.drillExportNote,{shown:s.rows.length.toLocaleString(o),count:f})):null,y.default.createElement($,{title:n.exportDownload,id:"exportDownload"},y.default.createElement(H,{icon:"file",text:n.drillCsv,onSelect:k("drill-csv",h),testId:"drill-csv"}),y.default.createElement(H,{icon:"file",text:n.drillXlsx,onSelect:k("drill-xlsx",h),testId:"drill-xlsx"})),y.default.createElement($,{title:n.exportCopy,id:"exportCopy"},y.default.createElement(H,{icon:"copy",text:n.drillCopy,info:"drillCopy",onSelect:k("drill-copy",h),testId:"drill-copy"}),y.default.createElement(H,{icon:"copy",text:n.drillJson,info:"drillJson",onSelect:k("drill-json",h),testId:"drill-json"})))):null,p?null:y.default.createElement("button",{type:"button",className:"pk-btn pk-pressable pk-small-btn","data-pk-on":m?"":void 0,onClick:()=>u(h=>!h),"data-testid":"drill-enlarge"},y.default.createElement(G,{name:"enlarge",size:14}),y.default.createElement("span",{className:"pk-btn-text"},m?n.reduce:n.enlarge)),y.default.createElement("button",{type:"button",className:"pk-icon-btn",onClick:t,"data-autofocus":"","aria-label":n.close,title:n.close},y.default.createElement(G,{name:"x"})))),y.default.createElement("div",{className:"pk-drill-body",tabIndex:0,"aria-label":s.title},y.default.createElement("table",{className:"pk-drill-table"},y.default.createElement("thead",null,y.default.createElement("tr",null,s.columns.map(h=>y.default.createElement("th",{key:h.name,scope:"col",className:h.numeric?"pk-num":void 0,title:h.description,"aria-description":h.description},h.label??h.name)))),y.default.createElement("tbody",null,s.rows.map((h,g)=>y.default.createElement("tr",{key:g},s.columns.map((w,E)=>y.default.createElement("td",{key:w.name,className:w.numeric?"pk-num":void 0},w.numeric||h[E].length<24?h[E]:y.default.createElement("div",{className:"pk-drill-text"},h[E]))))))))))}export{$o as AxisMenu,jo as ChartTypePanel,Xo as DrillPanel,_o as ExportPanel,qo as FilterPopover,ro as LoadCheck,Jo as OptionsPanel,Ro as ValueMenu,Uo as ViewsPanel,hn as addMenuTexts,vn as hasMenuTexts,Ut as menuLabels,po as prepareExporters,Wo as runExport,Mo as storedViews};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-DCANE7XH.js";var k={item:"{subject}: {text}",quote:"\u201C{key}\u201D",position:"{subject} (no. {n} in {part})",view:"The view",sections:{sort:"Sorting",derived:"Groupings",totals:"Totals",collapsed:"Collapsed groups",display:"Table or chart",chart:"Chart",formatting:"Formatting"},settings:{display:"display",type:"chart type",valueLabels:"value labels",legend:"legend position",axisLabels:"axis labels",groupLabels:"group labels",labelPosition:"label position",other:"setting"},dropped:{rows:"it is left out of Rows",cols:"it is left out of Columns",values:"this value is left out",filters:"this filter is left out",sort:"the usual order is used",derived:"this grouping is left out",other:"it is left out"},codes:{notView:"this is not a pivotkit view - the report starts empty",notJson:"this is not valid JSON - the report starts empty",tooLarge:"the view is too large - the report starts empty",badVersion:"the view has an unknown version - the report starts empty",newerVersion:"the view comes from a newer pivotkit - the report starts empty; update pivotkit to open it",noMigration:"the view cannot be brought to this version - the report starts empty",unknownKey:"this setting is unknown here - it is ignored",notList:"this is not a list - nothing of it is used",tooMany:"more than {max} entries - only the first {max} are used",tooManyItems:"more than {max} items - only the first {max} are used",itemType:"the item \u201C{value}\u201D does not fit a {type} field - it is left out",unknownField:"the data has no field \u201C{field}\u201D - {dropped}",unknownFieldHere:"the data has no field of this name - {dropped}",placedTwice:"the field is in Rows or Columns twice - only its first place is used",groupingNoName:"the grouping has no name - it is left out",groupingNameTaken:"the data already has a field of this name - the grouping is left out",groupingNoSource:"the data has no field \u201C{field}\u201D to group - the grouping is left out",groupingUnknown:"the grouping \u201C{value}\u201D is unknown - it is left out",binsNeedNumber:"ranges need a number field, \u201C{field}\u201D is not one - the grouping is left out",groupingNeedsDate:"a date grouping needs a date field, \u201C{field}\u201D is not one - the grouping is left out",binSize:"ranges need a size above zero - the grouping is left out",notValueRef:"this is not a value - {dropped}",unknownAggregator:"the calculation \u201C{value}\u201D is unknown - {dropped}",aggregatorNeedsField:"{agg} needs a field - {dropped}",aggregatorType:"{agg} does not work on \u201C{field}\u201D ({type}) - {dropped}",unknownFormat:"the number format \u201C{value}\u201D is unknown - the usual format is used",badLabel:"the name is empty or longer than {max} characters - the usual name is used",unknownShowAs:"\u201CShow as\u201D \u201C{value}\u201D is unknown - the plain value is shown",showAsNotAdditive:"this \u201CShow as\u201D needs a sum or a count, not {agg} - the plain value is shown",showAsNotNumber:"{agg} gives no number to show as a share - the plain value is shown",unknownConditional:"the colour format \u201C{value}\u201D is unknown - the value is shown without colours",conditionalNotNumber:"colours need a number value - the value is shown without colours",colorScaleColors:"the colour scale needs two or three colours - the default colours are used",dataBarColor:"the bar colour is not a colour - the default colour is used",unknownFilterType:"the filter type \u201C{value}\u201D is unknown - this filter is left out",filterNoItems:"the filter lists no items - it is left out",filterLabelOp:"the text condition \u201C{value}\u201D is unknown - this filter is left out",filterText:"the text condition has no text - this filter is left out",filterNotNumber:"{agg} gives no number to filter by - this filter is left out",filterCount:"Top needs a whole number from 1 to {max} - this filter is left out",filterValue:"the condition needs a comparison and a number - this filter is left out",filterValue2:"\u201C{value}\u201D needs a second number - this filter is left out",sortNoItems:"the custom order lists no items - the usual order is used",sortedTwice:"the field is sorted twice - only its first sort is used",badTotals:"the totals cannot be read - the usual totals are shown",collapsedPath:"a collapsed group does not fit the fields - it is shown expanded",unknownSetting:"the {setting} \u201C{value}\u201D is unknown - the default is used",badTitle:"the title is empty or longer than {max} characters - the chart has no title",unknownLocale:"the language \u201C{value}\u201D is unknown - the report's language is used",unknownTimeZone:"the time zone \u201C{value}\u201D is unknown - the data's time zone is used",timeZoneMismatch:"the view was made for the time zone {value}, the data is in {zone} - times are read in {zone}"},other:"this part could not be used - it is left out"},p=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),n=(e,a)=>p(e)&&Object.hasOwn(e,a)?e[a]:void 0,f=e=>typeof e=="string"&&e.trim()!==""?e.trim():null,g=/^(rows|cols|values|filters|sort|derived)\[(\d+)\]/;function C(e,a){let s=f(n(e,"label"));if(s)return s;let i=n(e,"agg");if(typeof i!="string")return null;let o=n(e,"field");return a.value({field:typeof o=="string"?o:null,agg:i,label:null,showAs:null})}function N(e,a,s,i){if(e.code==="unknownKey")return i.fill(s.quote,{key:e.path});let o=g.exec(e.path);if(o){let r=n(a,o[1]),l=Array.isArray(r)?r[Number(o[2])]:void 0,d=o[1]==="values"?C(l,i):f(o[1]==="rows"||o[1]==="cols"?l:o[1]==="derived"?n(l,"name"):n(l,"field"));if(d)return o[1]==="values"||o[1]==="derived"?d:i.field(d)}let t=/^[a-z]*/i.exec(e.path)?.[0]??"";return n(i.labels.zones,t)??n(s.sections,t)??s.view}function c(e,a,s,i){let{labels:o,fill:t}=i,r=/^[a-z]*/i.exec(e.path)?.[0]??"",l=typeof e.code=="string"?e.code:"",d=l==="unknownField"&&/^(rows|cols|filters|sort)\[\d+\]$/.test(e.path)?"unknownFieldHere":l,m=l?n(s.codes,d)??s.other:"{message}",u=p(e.params)?e.params:{},w=o.core,v={dropped:n(s.dropped,r)??s.dropped.other,setting:n(s.settings,e.path.split(".").pop()??"")??s.settings.other,field:typeof u.field=="string"?i.field(u.field):"",value:u.value??"",agg:typeof u.agg=="string"?n(w.aggregators,u.agg)??u.agg:"",type:typeof u.type=="string"?n(o.types,u.type)??u.type:"",max:typeof u.max=="number"?u.max.toLocaleString(o.lang):"",zone:u.zone??"",message:e.message},[b,y=""]=s.item.split("{subject}"),h={text:t(m,v)};return{pre:t(b,h),subject:N(e,a,s,i),post:t(y,h)}}function D(e,a,s){let i=e.map(t=>({...c(t.issue,t.raw,a,s),at:g.exec(t.issue.path)})),o=new Map;for(let t of i){let r=o.get(t.subject)??new Set;r.add(t.at?t.at[0]:""),o.set(t.subject,r)}return i.map(({at:t,...r})=>{if(!t||o.get(r.subject).size<2)return r;let l=n(s.labels.zones,t[1])??n(a.sections,t[1])??t[1];return{...r,subject:s.fill(a.position,{subject:r.subject,n:Number(t[2])+1,part:l})}})}export{k as en,c as unusedItem,D as unusedItems};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-DCANE7XH.js";var e={item:"{subject}: {text}",quote:"\u201E{key}\u201C",position:"{subject} (Nr. {n}, {part})",view:"Die Ansicht",sections:{sort:"Sortierung",derived:"Gruppierungen",totals:"Summen",collapsed:"Zugeklappte Gruppen",display:"Tabelle oder Diagramm",chart:"Diagramm",formatting:"Formatierung"},settings:{display:"Darstellung",type:"Diagrammtyp",valueLabels:"Wertbeschriftung",legend:"Legendenposition",axisLabels:"Achsenbeschriftung",groupLabels:"Gruppenbeschriftung",labelPosition:"Beschriftungsposition",other:"Einstellung"},dropped:{rows:"es wird in Zeilen weggelassen",cols:"es wird in Spalten weggelassen",values:"dieser Wert wird weggelassen",filters:"dieser Filter wird weggelassen",sort:"die \xFCbliche Reihenfolge gilt",derived:"diese Gruppierung wird weggelassen",other:"es wird weggelassen"},codes:{notView:"das ist keine pivotkit-Ansicht - der Bericht beginnt leer",notJson:"das ist kein g\xFCltiges JSON - der Bericht beginnt leer",tooLarge:"die Ansicht ist zu gro\xDF - der Bericht beginnt leer",badVersion:"die Ansicht hat eine unbekannte Version - der Bericht beginnt leer",newerVersion:"die Ansicht stammt aus einem neueren pivotkit - der Bericht beginnt leer; aktualisieren Sie pivotkit, um sie zu \xF6ffnen",noMigration:"die Ansicht l\xE4sst sich nicht auf diese Version bringen - der Bericht beginnt leer",unknownKey:"diese Einstellung ist hier unbekannt - sie wird ignoriert",notList:"das ist keine Liste - nichts davon wird verwendet",tooMany:"mehr als {max} Eintr\xE4ge - nur die ersten {max} werden verwendet",tooManyItems:"mehr als {max} Eintr\xE4ge - nur die ersten {max} werden verwendet",itemType:"der Eintrag \u201E{value}\u201C passt nicht zu einem Feld vom Typ {type} - er wird weggelassen",unknownField:"die Daten haben kein Feld \u201E{field}\u201C - {dropped}",unknownFieldHere:"die Daten haben kein Feld mit diesem Namen - {dropped}",placedTwice:"das Feld steht zweimal in Zeilen oder Spalten - nur sein erster Platz gilt",groupingNoName:"die Gruppierung hat keinen Namen - sie wird weggelassen",groupingNameTaken:"die Daten haben schon ein Feld mit diesem Namen - die Gruppierung wird weggelassen",groupingNoSource:"die Daten haben kein Feld \u201E{field}\u201C zum Gruppieren - die Gruppierung wird weggelassen",groupingUnknown:"die Gruppierung \u201E{value}\u201C ist unbekannt - sie wird weggelassen",binsNeedNumber:"Bereiche brauchen ein Zahlenfeld, \u201E{field}\u201C ist keines - die Gruppierung wird weggelassen",groupingNeedsDate:"eine Datumsgruppierung braucht ein Datumsfeld, \u201E{field}\u201C ist keines - die Gruppierung wird weggelassen",binSize:"Bereiche brauchen eine Gr\xF6\xDFe \xFCber null - die Gruppierung wird weggelassen",notValueRef:"das ist kein Wert - {dropped}",unknownAggregator:"die Berechnung \u201E{value}\u201C ist unbekannt - {dropped}",aggregatorNeedsField:"{agg} braucht ein Feld - {dropped}",aggregatorType:"{agg} geht nicht mit \u201E{field}\u201C ({type}) - {dropped}",unknownFormat:"das Zahlenformat \u201E{value}\u201C ist unbekannt - das \xFCbliche Format gilt",badLabel:"der Name ist leer oder l\xE4nger als {max} Zeichen - der \xFCbliche Name gilt",unknownShowAs:"\u201EAnzeigen als\u201C \u201E{value}\u201C ist unbekannt - der Wert wird ohne Berechnung gezeigt",showAsNotAdditive:"dieses \u201EAnzeigen als\u201C braucht eine Summe oder Anzahl, nicht {agg} - der Wert wird ohne Berechnung gezeigt",showAsNotNumber:"{agg} ergibt keine Zahl f\xFCr einen Anteil - der Wert wird ohne Berechnung gezeigt",unknownConditional:"die Farbformatierung \u201E{value}\u201C ist unbekannt - der Wert wird ohne Farben gezeigt",conditionalNotNumber:"Farben brauchen einen Zahlenwert - der Wert wird ohne Farben gezeigt",colorScaleColors:"die Farbskala braucht zwei oder drei Farben - die Standardfarben werden verwendet",dataBarColor:"die Balkenfarbe ist keine Farbe - die Standardfarbe wird verwendet",unknownFilterType:"die Filterart \u201E{value}\u201C ist unbekannt - dieser Filter wird weggelassen",filterNoItems:"der Filter nennt keine Eintr\xE4ge - er wird weggelassen",filterLabelOp:"die Textbedingung \u201E{value}\u201C ist unbekannt - dieser Filter wird weggelassen",filterText:"die Textbedingung hat keinen Text - dieser Filter wird weggelassen",filterNotNumber:"{agg} ergibt keine Zahl zum Filtern - dieser Filter wird weggelassen",filterCount:"\u201EOberste\u201C braucht eine ganze Zahl von 1 bis {max} - dieser Filter wird weggelassen",filterValue:"die Bedingung braucht einen Vergleich und eine Zahl - dieser Filter wird weggelassen",filterValue2:"\u201E{value}\u201C braucht eine zweite Zahl - dieser Filter wird weggelassen",sortNoItems:"die eigene Reihenfolge nennt keine Eintr\xE4ge - die \xFCbliche Reihenfolge gilt",sortedTwice:"das Feld wird zweimal sortiert - nur seine erste Sortierung gilt",badTotals:"die Summen lassen sich nicht lesen - die \xFCblichen Summen werden gezeigt",collapsedPath:"eine zugeklappte Gruppe passt nicht zu den Feldern - sie wird aufgeklappt gezeigt",unknownSetting:"{setting} \u201E{value}\u201C ist unbekannt - die Voreinstellung gilt",badTitle:"der Titel ist leer oder l\xE4nger als {max} Zeichen - das Diagramm hat keinen Titel",unknownLocale:"die Sprache \u201E{value}\u201C ist unbekannt - die Sprache des Berichts gilt",unknownTimeZone:"die Zeitzone \u201E{value}\u201C ist unbekannt - die Zeitzone der Daten gilt",timeZoneMismatch:"die Ansicht wurde f\xFCr die Zeitzone {value} gemacht, die Daten sind in {zone} - Zeiten gelten in {zone}"},other:"dieser Teil konnte nicht verwendet werden - er wird weggelassen"};export{e as de};
|
package/dist/element.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b,c,d}from"./chunks/chunk-BL6ROOK3.js";import"./chunks/chunk-CETTRMB6.js";import"./chunks/chunk-JGSNJX3N.js";import"./chunks/chunk-MB64GADT.js";import"./chunks/chunk-DCANE7XH.js";export{a as EVENTS,c as PivotReportElement,b as TAG,d as define};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as o,b as r,c as t,d as e}from"./chunks/chunk-BL6ROOK3.js";import"./chunks/chunk-CETTRMB6.js";import"./chunks/chunk-JGSNJX3N.js";import"./chunks/chunk-MB64GADT.js";import"./chunks/chunk-DCANE7XH.js";e();export{o as EVENTS,t as PivotReportElement,r as TAG,e as define};
|
package/package.json
CHANGED
|
@@ -1,6 +1,74 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pivotkit-element",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "The pivot report builder of pivotkit as the web component <pivot-report>, with its own React: for Angular, PHP and plain HTML pages without React.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "eizedev <oss@eize.dev>",
|
|
7
|
+
"homepage": "https://pivotkit.eize.dev",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/eizedev/pivotkit.git",
|
|
11
|
+
"directory": "packages/pivotkit-element"
|
|
12
|
+
},
|
|
13
|
+
"bugs": "https://github.com/eizedev/pivotkit/issues",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"pivot-table",
|
|
16
|
+
"pivot",
|
|
17
|
+
"web-component",
|
|
18
|
+
"custom-element",
|
|
19
|
+
"reporting",
|
|
20
|
+
"echarts",
|
|
21
|
+
"self-service-bi"
|
|
22
|
+
],
|
|
23
|
+
"type": "module",
|
|
24
|
+
"sideEffects": [
|
|
25
|
+
"./dist/index.js"
|
|
26
|
+
],
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./types/index.d.ts",
|
|
30
|
+
"default": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./element": {
|
|
33
|
+
"types": "./types/element.d.ts",
|
|
34
|
+
"default": "./dist/element.js"
|
|
35
|
+
},
|
|
36
|
+
"./jsx": {
|
|
37
|
+
"types": "./types/jsx.d.ts"
|
|
38
|
+
},
|
|
39
|
+
"./package.json": "./package.json"
|
|
40
|
+
},
|
|
41
|
+
"files": [
|
|
42
|
+
"dist",
|
|
43
|
+
"types/index.d.ts",
|
|
44
|
+
"types/element.d.ts",
|
|
45
|
+
"types/events.d.ts",
|
|
46
|
+
"types/global.d.ts",
|
|
47
|
+
"types/jsx.d.ts",
|
|
48
|
+
"README.md",
|
|
49
|
+
"CHANGELOG.md",
|
|
50
|
+
"LICENSE"
|
|
51
|
+
],
|
|
52
|
+
"scripts": {
|
|
53
|
+
"build": "node build.js",
|
|
54
|
+
"size": "node build.js --size",
|
|
55
|
+
"test": "node build.js && node --test \"test/*.test.js\"",
|
|
56
|
+
"types": "tsc -p . && node types.js",
|
|
57
|
+
"test:types": "tsc -p test/types",
|
|
58
|
+
"prepack": "node build.js && npm run types && node -e \"require('node:fs').copyFileSync('../../LICENSE', 'LICENSE')\"",
|
|
59
|
+
"coverage": "node build.js && node --test --experimental-test-coverage --test-coverage-include=\"src/**/*.js\" \"test/*.test.js\""
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@dnd-kit/core": "6.3.1",
|
|
63
|
+
"@dnd-kit/sortable": "10.0.0",
|
|
64
|
+
"echarts": "6.1.0",
|
|
65
|
+
"pivotkit-core": "0.2.0",
|
|
66
|
+
"pivotkit-react": "0.2.0",
|
|
67
|
+
"react": "18.3.1",
|
|
68
|
+
"react-dom": "18.3.1"
|
|
69
|
+
},
|
|
70
|
+
"types": "./types/index.d.ts",
|
|
71
|
+
"publishConfig": {
|
|
72
|
+
"access": "public"
|
|
73
|
+
}
|
|
74
|
+
}
|